1 / 5

Detecting Software Modularity Violations

Detecting Software Modularity Violations. Sunny Wong, Yuanfang Cai , Miryung Kim, and Michael Dalton Proc. International Conference on Software Engineering, pp.411-420, 2011. 背景・目的. ソフトウェアの改修によるモジュール性の低下 → ソフトウェアの欠陥や,改修コストの増加を引き起こす モジュール性を低下させている原因 : Modularity Violations

uri
Télécharger la présentation

Detecting Software Modularity Violations

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Detecting Software Modularity Violations Sunny Wong, YuanfangCai, Miryung Kim, and Michael Dalton Proc. International Conference on Software Engineering, pp.411-420, 2011.

  2. 背景・目的 • ソフトウェアの改修によるモジュール性の低下→ ソフトウェアの欠陥や,改修コストの増加を引き起こす • モジュール性を低下させている原因: Modularity Violations →二つのコンポーネントが,独立のものとして設計されているにもかかわらず,常に同時に変更されている場合 • Modularity Violationsを検出する手法 (CLIO) を提案 • Structural Coupling (同時に変更すべきモジュール)の検出 • Design Rule Theory および Design Structure Matrix (DSM) を利用 • C. Y. Baldwin and K. B. Clark: “Design Rules, Vol. 1: The Power of Modularity”, MIT Press, 2000. • Change Coupling (実際に同時に変更されたモジュール)の検出 • プロジェクトの変更履歴を解析 • Modularity Violations の検出 • Structural Coupling と Change Coupling を比較 出典: S.Wong et al. : “Detecting Software Modularity Violations”, Proc. ICSE, pp.411-420, 2011.

  3. Design Structure Matrix (DSM) クラスをインタフェースと実装にわけ,クラス図の関連等から依存関係を抽出 レイヤ1: 他のモジュールへ依存していない レイヤ2: レイヤ1にのみ依存 レイヤ3: 上位レイヤにのみ依存 レイヤ4: 上位レイヤにのみ依存 出典: S.Wong et al. : “Detecting Software Modularity Violations”, Proc. ICSE, pp.411-420, 2011.

  4. Design Rule Hierarchy DSMをクラスタリングし,あるモジュールが変更された際の関連指数を抽出 μ = 0: 同時に変更されない 複数のモジュールに依存する場合, 0と1の間になる 変更対象 (Room クラス) μ = 1: 常に同時に変更される 出典: S.Wong et al. : “Detecting Software Modularity Violations”, Proc. ICSE, pp.411-420, 2011.

  5. 評価 • 適用対象 • Hadoop Common (15 releases, 137-222KLOC) • http://hadoop.apache.org/common/ • Eclipse JDT (10 releases, 13-64KLOC) • http://www.eclipse.org/jdt/ • 適用結果 • |V| : CLIOが検出したバイオレーションの総数 • |V∩R| : 自動リファクタリングツール(*)が検出したものと一致した数 (*) M. Kim et al. : “Automatic Inference of Structural Changes for matching across program versions”, Proc. ICSE, pp.333-343, 2007. • |V∩M| : 手動で確認し,問題があると判断した数(|V∩R| は含まない) • |CV| : 問題があると判断したバイオレーションの総数 (|V∩R| + |V∩M| ) • Pr : 問題があると判断したバイオレーションの割合 (|CV| / |V|) 出典: S.Wong et al. : “Detecting Software Modularity Violations”, Proc. ICSE, pp.411-420, 2011.

More Related