Javaを対象とした 動的複雑度メトリクスの実験的評価

複雑度メトリクスを用いた
JAVAプログラム品質特性の実験的評価
井上研究室
岡井 洋樹
動的複雑度メトリクス
ソフトウェアの動的複雑度(実行時のソフトウェアの振舞い)
の重要性が指摘されている
Yacoubらによるオブジェクト指向ソフトウェアに対する動的な
複雑度メトリクス[1]
特定の入力データに対する評価
クラス間メッセージの送受信回数
状態遷移の複雑さ
提案のみがされており有効性についての評価が不十分
[1]Yacoub S., Ammar H. and Robinson T.: ``Dynamic Metrics for Object Oriented
Designs'', Proc. of the Sixth International Symposium on Software Metrics
2015/10/01
特別研究報告
1
研究の目的
動的メトリクスの有効性評価
動的メトリクスと静的メトリクスの関係
動的メトリクスがクラスの再利用性を評価可能
であるか
2015/10/01
特別研究報告
2
静的メトリクス:MM,ICP
MM(Method-Method Interaction) [2]
他のクラスのメソッドを計測対象クラスが呼び出す回数を,
計測対象クラスごとに合計したもの
ICP(Information Flow-based Coupling) [3]
他のクラスのメソッドを計測対象クラスが呼び出す回数
に引数の重みを加えたものを,計測対象クラスごとに合計
したもの
[2] Briand,L,P.Devandu,and W.Melo,”An Investigation into Coupling Measures for
C++, ” Proc. Of the 19th International Conference on Software Engineering
[3]Lee,Y.,B.Liang,and S.Wu,”Measuring the Coupling and Cohesion of an ObjectOriented Program Based on Information Flow,”Proc.of international Conference
on Software Quality
2015/10/01
特別研究報告
3
動的メトリクス(1/2)
EOC(Export Object Coupling)
入力データxを与えたときの実行中にオブジェクト間
で交換されるメッセージの総数のうちOiからOjに送
信されるメッセージの割合
| {Mx(oi, oj) | oi, oj O  oi  oj} |
EOCx(oi, oj) 
100
MTx
2015/10/01
特別研究報告
4
動的メトリクス(2/2)
OQFS(Object Request for Service)
入力データxを与えたときの実行中にオブジェクト間で交
換されるメッセージの総数のうちOiから他の全てのオブ
ジェクトに送信されるメッセージの割合
K
OQFSx(oi)   EOCx(oi, oj )
j 1
入力データの発生確率との積をとりその総和をとる
|X |
OQFS(oi)   PSx OQFSx(oi)
x 1
2015/10/01
特別研究報告
5
評価実験ー概要
実験の実施:
2000年7月に行われたある企業の新人研修にお
けるJavaプログラム開発プロジェクト(オークショ
ンシステムの作成)
1チームは4~5名の研修生からなり, 7チームが独立し
て同じシステムの開発を行う
各チームのメンバーがオークションシステムを構築する
上で必要なコンポーネントを作成する (22種類)
154個のデータから収集した
2015/10/01
特別研究報告
6
評価方法
動的メトリクスと静的メトリクス間の関係
OQFS vs. MM,ICP
実験により作成された複数のクラスに対して,動的メト
リクス(OQFS)と静的メトリクス(MM,ICP)を計測し,そ
れらの間の相関関係の評価
再利用性の評価
同一仕様を基に作成された複数のクラスを交換し,動
作の可否
2015/10/01
特別研究報告
7
入力データの作成と実行
ユーザ10人:A~J
A:会員登録→B:会員登録→A:出品→
C:会員登録→B:出品→ C:入札…
30個の入力データを用意した
システム中の全てのクラスを使用するように入力デー
タを作成
入力データの発生確率は各3.3%
WSH(Windows Scripting Host)を使用し,自動実
行をした
2015/10/01
特別研究報告
8
動的及び静的メトリクスの相関
OQFSとMMの相関係数=0.79
OQFSとICPの相関係数=0.75
両メトリクスは異なった複雑度を評価し
ている(Yacoubらの予想を補完)
2015/10/01
特別研究報告
9
再利用性の評価(1/2)
計測した154のクラスの中でOQFS値の上位
5つ下位5つを抜き出し,他のシステムの同ク
ラスと入れ替え,動作確認を行う
1
2
3
・・・
7
C1
C1
C1
C1
・・・
C22
2015/10/01
C22
C22
特別研究報告
C22
10
再利用性の評価(2/2)
動的メトリクス値が大きいものは、再利用性が
低い事が確認された。
100
成功率
(%)
50
0
下位5つ
上位5つ
Compile
97
53
Test
97
20
下位5つ
上位5つ
実験
2015/10/01
特別研究報告
11
まとめ
動的メトリクスと静的メトリクスとの間の相関関係
はあまり高くなく,静的な複雑さとは異なる観点
の複雑さを評価していることを確認
再利用性については、動的メトリクスを用いる事
で再利用性が高いクラスと低いクラスの識別が
可能
今後の課題として,同様の実験を他の条件のも
とにおいて行う
2015/10/01
特別研究報告
12
2015/10/01
特別研究報告
13