Department of Computer Science Graduate School of Information

  • Slides: 27
Download presentation
機能的関心事を抽出するための プログラムスライシングの拡張 井上研究室 仁井谷 竜介 Department of Computer Science, Graduate School of Information Science

機能的関心事を抽出するための プログラムスライシングの拡張 井上研究室 仁井谷 竜介 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 2007/02/19 修士論文発表会

理解支援でのスライシングの問題点 n 関心事との関連の弱い箇所が多く含まれる n 例:main()やライブラリの詳細 p スライスのサイズが大きくなる p 異なる関心事についての出力が重複する n 例: 「ドキュメントを開く」と「ドキュメントを保存」 Main. main(args)

理解支援でのスライシングの問題点 n 関心事との関連の弱い箇所が多く含まれる n 例:main()やライブラリの詳細 p スライスのサイズが大きくなる p 異なる関心事についての出力が重複する n 例: 「ドキュメントを開く」と「ドキュメントを保存」 Main. main(args) App. run() Menu. on. Click(button. ID) File. Dialog. get. Path() Document. open(path) File. read(path) MDI. add(document) Log. debug(message) File. Dialog. get. Path() Document. save(path) File. write(path) 修士論文発表会 依存 制御フロー 関心事(開く) スライス(開く) 関心事(保存) スライス(保存) App. quit() 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 4

提案手法 n 関連の強い / 弱い箇所の境界(バリア)をヒューリスティックに 見つける p p n [1] では手動で設置される 頂点 提案手法では自動で設置される 依存辺

提案手法 n 関連の強い / 弱い箇所の境界(バリア)をヒューリスティックに 見つける p p n [1] では手動で設置される 頂点 提案手法では自動で設置される 依存辺 適切な関連の強さの箇所にバリアを配置することで、関心事に 固有の部分が抽出できる Main. main(args) App. run() Menu. on. Click(button. ID) File. Dialog. get. Path() Document. open(path) File. read(path) MDI. add(document) Log. debug(message) File. Dialog. get. Path() Document. save(path) File. write(path) バリア 依存 制御フロー 関心事(開く) スライス(開く) 関心事(保存) スライス(保存) App. quit() 2007/02/19 修士論文発表会 [1] Krinke, J. : Slicing, Chopping, and Path Conditions with Barriers. Software Quality Vol. 12, No. 4, Department of Computer Science, Graduate. Journal, School of Information Sciencepp. 339 -360, December & Technology, Osaka University 2004. 5

3. ii. バリアと開発者の入力を用いたスライシング 開発者の入力からの依存関係を順/逆両方向に辿る n バリアで訪問を停止 n 修士論文発表会 2007/02/19 Department of Computer Science, Graduate

3. ii. バリアと開発者の入力を用いたスライシング 開発者の入力からの依存関係を順/逆両方向に辿る n バリアで訪問を停止 n 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 9

5. 関心事グラフを用いた可視化 n 頂点 クラス(メソッド・フィールドを内包) p メソッド p フィールド p n 辺 呼び出し辺 p

5. 関心事グラフを用いた可視化 n 頂点 クラス(メソッド・フィールドを内包) p メソッド p フィールド p n 辺 呼び出し辺 p フィールドに対するデータフロー辺 p インスタンス生成辺 p 親子クラス辺 p org. gjt. sp. jedit. Autosave org. gjt. sp. jedit. j. Edit get. Integer. Property(java. lang. String, int): int properties. Changed(): void call action. Performed(java. awt. event. Action. Event): void init(): void set. Interval(int): void javax. swing. Timer timer 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 10

修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka

修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 17

実装 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology,

実装 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 19

修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka

修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 20

関心事グラフ変化の考察 n 閾値が大きい p 重要なクラスや関係のみを抽出 n 閾値が小さい p 重要なクラスの周辺の振る舞いも抽出 n ソフトウェア構造の段階的な理解を支援する p Storeyら[2]の提案する、ソフトウェア理解支援ツールが満た すべき項目の

関心事グラフ変化の考察 n 閾値が大きい p 重要なクラスや関係のみを抽出 n 閾値が小さい p 重要なクラスの周辺の振る舞いも抽出 n ソフトウェア構造の段階的な理解を支援する p Storeyら[2]の提案する、ソフトウェア理解支援ツールが満た すべき項目の 1つ「E 5: システムの構造を表すオーバービ ューが抽象度を変化させながら使えること」とも合致 [2] M. -A. D. Storey, F. D. Fracchia, and H. A. M¨uller. Cognitive design elements to support the construction of a mental model during software exploration. The Journal of Systems and Software, Vol. 44, No. 3, pp. 171– 185, 1999. 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 22

引数のないメソッド n 何と組み合わせても少し減っているだけ 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science

引数のないメソッド n 何と組み合わせても少し減っているだけ 修士論文発表会 2007/02/19 Department of Computer Science, Graduate School of Information Science & Technology, Osaka University 24