スライド 1 - Software Engineering Laboratory

オブジェクトの動的支配関係解析を用いた
シーケンス図の縮約手法の提案
大阪大学 大学院情報科学研究科
○伊藤芳朗 渡邊結 石尾隆 井上克郎
2008/06/19
1
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
概要
• 背景
– オブジェクト指向プログラムの解析
• 提案手法
– オブジェクトの動的支配関係解析を用いたシーケ
ンス図の縮約
• 実験
– 提案手法を実装したシステムを作成し実行履歴
の圧縮率を調べた
2
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
背景
• オブジェクト指向プログラムの解析
– 実行時の動作を理解するのは難しい
– 動作の理解には実行履歴等の動的情報の解析
が有効
• プログラムの実行履歴を取得し,UMLのシー
ケンス図として可視化
– 時系列に沿ったオブジェクト間のメソッド呼び出し
関係
– プログラムの実行時に決定される情報
3
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
シーケンス図
• オブジェクト間のメッセージ通信を時系列に沿って
表現する
• システムの設計時に作成される
• プログラムの動作の理解に有効
A
B
C
D
E
F
G
H
I
4
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
シーケンス図生成システム Amida
• 対象プログラムの実行履歴を取得し,シーケ
ンス図を生成するシステム[1]
– シーケンス図のループや再帰呼び出しを圧縮す
る機能を持つ
[1]谷口, 石尾, 神谷, 楠本, 井上: “プログラム実行履歴からの簡潔なシーケンス図の作成手法” , コンピ
ュータソフトウェア,vol.24,No.3 (2007),pp.153-169.
5
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
実行履歴から図を
生成する際の問題点
• プログラムの実行履歴のサイズは巨大
– 実験に使用した実行履歴
• メソッド呼び出し数3300
• オブジェクト数320
– 解析した結果も巨大になる
• 一画面に表示できるメソッド呼び出しとオブジェクトは
それぞれ10程度
• 呼び出し元と呼び出し先のオブジェクトを一画面内に
収めることができない
6
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
関連研究
• 実装の詳細のメソッドの自動フィルタリング[2]
– ユーティリティであるメソッドを自動で判別しシー
ケンス図から除去する
– シーケンス図上での呼び出し関係が途切れる
• 概要を把握するための縮小表示[3]
– 詳細な動作については把握できない
[2]Hamou-Lhadj, A. and Lethbridge, T.: Summarizing the Content of Large Traces to Facilitate the
Understanding of the Behaviour of a Software System, Proceedings of the 28th International
Conference on Software Engineering, pp.181-190, 2006.
[3] Pauw, W. D., Jensen, E., Mitchell, N. Sevitsky, G., Vlissides, J. M. and Yang, J.: Visualizing the
Execution of Java Programs. Revised Lectures on Software Visualization, International Seminar,
pp.151-162, 2002.
7
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
オブジェクトのグループ化
• グループ間のメッセージ通信のみをシーケン
ス図に表示
– 1グループを1オブジェクトとするため表示するオ
ブジェクト数が減る
– グループ内のメッセージ通信が表示されないため
表示するメッセージ通信の数が減る
全体の整合性を保ったまま
シーケンス図を縮約する
8
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
グループ化の例
A
B
B
CDE
F
C
GHI
D
E
F
G
H
I
9
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
提案するグループ化の条件
• グループには代表となるオブジェクトを設定
• グループ外からは代表オブジェクトにメッセー
ジ通信を行うようにする
• 1つのグループも1つのオブジェクトとみなし
て階層的なグループ化を行う
自動的にグループ化を行うために
支配関係解析を用いる
10
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
支配関係解析
• グラフから支配関係木を求めるアルゴリズム[4]
– 入口が1つの有向グラフに適用可能
– 頂点aに到達するどの経路も必ず頂点bを通るとき,
bはaを支配するという
1
2
4
1
3
5
オブジェクトの
呼び出し関係グラフ
2
3
6
4
5
6
7
7
8
支配関係木
8
[4] Cooper, K. D., Harvey, T. J. and Kennedy, K.: A Simple, Fast Dominance Algorithm.
http://www.cs.rice.edu/~keith/EMBED/
11
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
グループ化の手順(1/2)
1. 実行履歴から動的なオブジェクト間の呼び
出し関係のグラフを作る
– スレッドごとにグラフを作る
– mainメソッドを根とする
– 呼び出し元オブジェクトから呼び出し先オブ
ジェクトへ辺を引く
– staticなオブジェクトは個別の仮オブジェクトと
する
• 呼び出し元に関連性がない可能性があるため
12
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
グループ化の手順(2/2)
2. グラフから支配関係木を求める
3. 親を代表オブジェクト,子をメンバーとしてグ
ループを設定する
– グループ外からはグループ内のオブジェクトを
1
呼び出せない
– 階層的なグループ化が可能
2
3
4
5
6
7
8
13
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
シーケンス図の縮約の例
B
B
A
F
C
CDE
D
GHI
E
F
G
H
I
A
A
B
F
B
C
D
E
G
オブジェクト間の
呼び出し関係グラフ
H
I
C
D
F
E
G
H
I
支配関係木
14
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
実装
• 実行履歴を解析し,グループ間のメッセージ
通信のみ取り出すツールを作成
– 根であるmainメソッドに当たる頂点とその直接の
子となるグループのみを取り出す
– 取り出した実行履歴をAmidaに入力し,シーケン
ス図を生成
対象
プログラム
作成した
ツール
Amida
実行履歴
簡略化された
シーケンス図
15
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
実験概要(1/2)
• 実験の目的
– 縮約の効果がどれほどあるか調べる
– 実行履歴ごとに効果の違いがあるかを調べる
• 実験対象
– 図書管理システム
• 学生4グループが同じ設計仕様に基づいて作成した4
個のシステム(A,B,C,D)
• 同じ手順で実行した実行履歴
16
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
実験概要(2/2)
• 実験方法
– 作成したツールを各実行履歴に対して適用する
– 出力された実行履歴の出現オブジェクト数とメッ
セージ通信数を取得し,適用前と比較する
• 評価方法
– ツール適用後の出現オブジェクト数とメッセージ
通信数の圧縮率で評価
17
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
図のサイズの変化
出現オブジェクト数の変化
450
400
メッセージ通信数の変化
5000
適用前
4500
適用後
4000
350
適用前
適用後
3500
300
60.4%
58.3%
59.4%
250
2.8%
71.5%
70.9%
3000
68.4%
3.0%
2500
200
2000
150
1500
100
1000
50
500
0
0
A
B
C
D
A
B
システム
C
D
システム
18
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
シーケンス図の変化
19
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
全体図の変化
適用前
適用後
約70%
約60%
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
20
2008/06/19
グループの分布
• 子供の数が少ないグルー
プ
– グループの数は多い
– 子供が1つであるグループ
が大半
1 %1%1 %1%
3% 1%
6%
1個 2個
3個
27個
29個
55個
56個
78個
• 子供の数が多いグループ
– グループの数は少ない
– 各スレッドのmainオブジェ
クトなど
86%
システムAの分布図
21
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
オブジェクトの比較
• 隠れたオブジェクト
○ 一時オブジェクト
○ 局所的に使われているオブジェクト
• 例:検索実行時に作成されるオブジェクト
• 残ったオブジェクト
○ 動作制御を行うオブジェクト
○ インターフェイス関連のオブジェクト
× 一部のデータオブジェクト
• 取り除くことでより見やすくなる
22
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
考察
• 支配関係解析の効果は実行履歴によって大
きく左右される
– 実行履歴中のオブジェクト数やメソッド呼び出し
数が近いものでも結果に差が出る
– 全てのオブジェクトが1つのグループになってしま
うことがあった
• 全体の動きが把握できない
• GUI上で閲覧者が注目するグループの中身だけを対
話的に調査できるようにする
23
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19
まとめと今後の課題
• まとめ
– 動的支配関係解析を用いたオブジェクトのグループ化に
よりシーケンス図を縮約する手法を提案した
– 実験を行い,実際に縮約できることを確認した
• 今後の課題
– グループ化とグループ化解除ができるようにする
• グループ内のメッセージ通信を削除しているため階層化が無意
味になっている
– 他の手法と組み合わせてシーケンス図の縮約ができるよ
うにする
• Amidaのループ圧縮手法など
24
Department of Computer Science, Graduate School of Information Science and Technology, Osaka University
2008/06/19