V2: Lu Xiao, Yuanfang Cai, ``Design Rule Spaces: A New

V2: Lu Xiao, Yuanfang Cai, ``Design Rule Spaces:
A New Form of Architecture Insight,''
Proc. IEEE ICSE'14, pp.967-977.
紹介者: 神谷年洋
所感:
●
全部入り: 手法の提案(解析+視覚化)+ツール+実験による
評価
ツール使いやすそう
● 「この分野もうちょっといけるかも」というワクワク感
●
2014-07-22
V2, ICSE'14 勉強会
概略
●
Design Rule Spaceという手法の提案
アーキテクチャとバグ発生の関係を分析する
アイデア
–
●
–
OOの関係(structural relation)とファイル共修正関係
(evolutionary relation)をひとつのマトリックスとして視覚化
継承関係(ir)、インターフェイスの実装(rl)、アクリゲーショ
ン(ag)、依存(dp)、特定のデザインパターン
● 2つのファイルが同時に変更される回数が10回以上 →
evolutionary relationがある
– クラスをクラスタリングしたものをモジュールとし、かつ、モ
ジュール間に層関係を定義する
実験
●
●
出典: Lu Xiao, Yuanfang Cai, ``Design Rule Spaces: A New Form of
Architecture Insight,'' Proc. IEEE ICSE'14, pp.967-977.
–
GUI分析ツールとして実装(Titan)
V2, ICSE'14 勉強会
–
対象: Jboss, Hadoop, JDT(Eclipse)
2014-07-22
Design Rule Spaceの説明図
●
対象となる関係を選ぶ(継承 or 依存 or …) → 関係を持ってい
ないクラスは対象外
●
縦横に同じモジュールを並べる
●
マス目には「行のモジュール→列のモジュール」の関係
●
モジュールの階層を箱で表現
同じ階層内のモジュール間には関係は存在しない
1階層目のモジュールは他のモジュールへの関係なし、2階
層目は1階層目への関係飲みを持つ、・・・
–
–
1階層目, 4つのモジュールを含む
2階層目
3階層目
出典: Lu Xiao, Yuanfang Cai, ``Design Rule Spaces: A New Form of
Architecture Insight,'' Proc. IEEE ICSE'14, pp.967-977.
2014-07-22
V2, ICSE'14 勉強会
適用例: JBoss
(この論文の一番の貢献だと思われる図)
●
JBossの27のファイル、アグリゲーションの関係
–
数字は共修正の回数
白いセル「ag,」は関係あり、かつ共修正がある→OK
–
黒いセル「,35」は関係がないが、共修正が多い→問題
–
出典: Lu Xiao, Yuanfang Cai, ``Design Rule Spaces: A New Form of
Architecture Insight,'' Proc. IEEE ICSE'14, pp.967-977.
2014-07-22
V2, ICSE'14 勉強会
定量的な実験結果
●
●
●
●
●
上位階層のファイルがエラーがちなら、下位の階層のファイル
もエラーがちなファイルが多数ある
数百のエラーがちなファイルが、2, 3個のマトリックス
(DRSpace)に収まった!
問題があるDRSpaceはデザイン原則を破っている(依存関係
の循環)か、不安定なAPIのいずれかであった!
開発者に結果をフィードバックしたところ、リファクタリングがプ
ランされた
Structural relationでは関係がわからないが、共編集が行われ
るファイルがある → “Shared Secrets”
2014-07-22
V2, ICSE'14 勉強会