• 検索結果がありません。

第 2 章 MUDABlue: ソフトウェアシステム自動分類手法 13

2.3 MUDABlue

2.3.2 カテゴリ描画手法

ソフトウェアリポジトリは一般に大規模であり,得られるカテゴリ数もそれだ け多くなるため,得られたカテゴリをわかりやすくユーザに提示する必要がある.

MUDABlueはソフトウェアリポジトリの閲覧,検索のために(1)キーワード検索,

(2)カテゴリツリー,(3)Unifiable Cluster Map (UCM)の3つのビューを提供する.

カテゴリツリーは後述するカテゴリーの階層構造を直接表現する部分である.も しユーザが目的とするカテゴリを知っているのなら,カテゴリツリーを用いるこ とで直接目的とするカテゴリーにアクセスすることができる.

26

UCMはソフトウェアリポジトリ全体を俯瞰するのに用いられる.UCMはカテ ゴリとソフトウェアシステムの関連をグラフィカルに表示する.UCMはカテゴリ 全体を描画することで,リポジトリ内にどのようなソフトウェアが存在するかを 理解しやすくする.

キーワード検索

キーワードを用いた検索は最も一般的な検索手法である.MUDABlueではキー ワードを用いて,カテゴリおよびソフトを検索可能である.カテゴリ検索時には,

カテゴリタイトル,および対応する識別子クラスタに入力されたキーワードと部 分一致するカテゴリを表示する.またソフト検索時にはソフト名,もしくはソフ ト内の識別子とキーワードが部分一致するソフトを表示する.

カテゴリツリー

カテゴリツリーでは抽出したカテゴリの一覧を階層構造にして表示する.カテ ゴリの階層構造はカテゴリに共通するソフトの数を元に決定する.そのため類似 したカテゴリが近くに配置され,それだけユーザにとってカテゴリの閲覧が容易 になる.

本論文では,カテゴリ間の類似度としてオッズ比を少し変更したものを用いる.

母集合Sとその部分集合A, B ⊂Sがあったとき,カテゴリ間の類似度or0(A, B) はor0(A, B) =

{ ad/bc if bc6= 0

ad|S|2 otherwise となる.ただし,a=|A¯∩B¯|, b =|A∩B¯|, c=

|A¯∩B|, d=|A∩B|とする.我々はor0(A, B)を用いてクラスタ分析を行い,その 結果をカテゴリツリーとして表示する.

Unifiable Cluster Map

MUDABlueで抽出したカテゴリの描画には,(1)複数カテゴリへの所属を効率よ

く描画できること,(2)十分なスケーラビリティを持っていること,以上2点の要 求を満たす描画方法が求められる.このような要求を踏まえ,我々はカテゴリ描 画手法としてUnifiable Cluster Mapを定義した.Unifiable Cluster MapはCluster

Map [22]を元にした手法である.

Cluster Mapでは,図2.5の左側のような関係は,右側のグラフとして表す.カ

テゴリは黒い丸であらわし,その丸からのびる辺によって所属しているアイテム を示す.例えばカテゴリCにはアイテム3, 4, 5, 6が属しているため,それらの間 に辺を引く.また,アイテム4, 5, 6はカテゴリBにも属するため,カテゴリBと

カテゴリ アイテム A 1, 2, 3, 7, 8, 9

B 1, 2, 3, 4, 5, 6, 10, 11 C 3, 4, 5, 6

D 7, 8, 9, 10, 11 E 7, 8, 9, 10, 11, 12

7,8,9

D E

B C

10,11

1,2 3 4,5,6

12 A

図2.5: Cluster Mapの例

アイテム4, 5, 6の間にも辺を作成する.スペースの節約のため,所属するカテゴ

リが完全に同一であるアイテム同士は一つの四角でまとめる.Cluster Mapはこの ような形で複数に所属するアイテムの関連を効率的に描画する.しかし,もしカ テゴリが数十個を越える規模になるとノードが画面を埋めつくしてしまい,理解 困難な状態に陥いる.

そこで,我々は「カテゴリの融合・展開」という操作を追加したUnifiable Cluster Mapを定義,実装した[35].UCMではカテゴリを融合させることで,一度に表示 されるノードを減らすことができ,画面がノードで埋めつくされてしまうことを 防いでいる.ユーザは融合したカテゴリを再び分離することもできる.

7,8,9,12

B,C 1,2,3,10,11 4,5,6

7,8,9

D E

B C

10,11

1,2 3 4,5,6

12 A

A,D,E

図2.6: Unifiable Cluster Map

ソフトウェアクラスタと,結合したカテゴリが線で結ばれている場合,それら のソフトは結合しているカテゴリのうちいずれかに所属していることを示してい る.図2.6の右側は, category BとCを, category AとDとEを結合した状態を示 している.

実際には,初期状態ではさきほど定義したカテゴリ階層の上位7個のカテゴリ のみが表示され,その他のカテゴリは融合された状態で表示される.

28

関連したドキュメント