オブジェクトの動的支配関係解析を用いた シーケンス図の縮約手法の提案 大阪大学 大学院情報科学研究科 ○伊藤芳朗 渡邊結 石尾隆 井上克郎 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
© Copyright 2024 ExpyDoc