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

オブジェクト指向プログラムのための
動的結合メトリクスの評価
竹原 元康
井上研究室
発表内容
研究の背景
動的複雑度メトリクス
実験計画の作成
評価実験と分析
まとめ
2015/10/01
修士論文発表会
1
背景(1/3) 複雑度メトリクス
オブジェクト指向開発方法論による
ソフトウェア開発の活発化
オブジェクト指向ソフトウェアの開発管理を効果的に行
うためには各工程においてメトリクスを使用し,品質や
進捗状況の定量的な評価が必要
Chidamberらの複雑度メトリクス(C&Kメトリクス)

6種類のメトリクスを定義し,それぞれのメトリクスでクラス間
の結合や継承関係等の複雑さを計測
2015/10/01
修士論文発表会
2
背景(2/3) 動的複雑度メトリクス
ソフトウェアの動的複雑度(実行時のソフトウェアの振舞い)
の重要性が指摘されている
Yacoubらによるオブジェクト指向ソフトウェアに対する動的な
複雑度メトリクス[1]
 特定の入力データに対する評価
 クラス間メッセージの送受信回数
 状態遷移の複雑さ
提案のみがされており有効性についての評価が不十分
[1]Yacoub S., Ammar H. and Robinson T.: ``Dynamic Metrics for Object Oriented Designs'',
Proceedings of the Sixth International Symposium on Software Metrics,pp. 50-61 (1999).
2015/10/01
修士論文発表会
3
背景(3/3) 評価の重要性
ソフトウェア工学の分野で数多くの手法やツールが提案
されてきているが,その有効性についての具体的な証拠
はほとんど収集されていない[2].
Empirical Software Engineering
実際のソフトウェア開発現場や研究機関において様々
な状況(コンテキスト)を設定し,理論や技術の適用実験
(ソフトウェア工学実験)を行い,その妥当性や有効性な
どを検証する
[2] W. F. Tichy, N. Harbermann and L. Prechelt: "Future directions in software
engineering," ACM SIGSOFT, Software Engineering Notes, Vol.18, No.1, pp.3548(1993).
2015/10/01
修士論文発表会
4
本研究の目的
実験計画の作成と遂行
 動的メトリクスと静的メトリクスの関係
 動的メトリクスが以下の品質特性を評価可能
であるか
保守性
 理解容易性
 再利用性
 エラーの伝播と発生可能性

2015/10/01
修士論文発表会
5
静的メトリクス:CBO
CBO(Coupling Between Object classes)
クラス間の結合による複雑度[3]
計測対象クラスが「結合」しているクラスの数
結合とは,計測対象クラスが他のクラスの属性
やメソッドを用いていることを意味する
設計書やソースコードから収集される情報のみ
で計測
[3] Chidamber S. R. and Kemerer C. F.: ``A Metrics Suite for Object Oriented
Design'', IEEE Trans. on Software Eng., Vol. 20, No. 6, pp. 476-493 (1994).
2015/10/01
修士論文発表会
6
動的メトリクス(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
修士論文発表会
7
動的メトリクス(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
修士論文発表会
8
品質特性評価への利用
動的メトリクスがソフトウェアの品質特性を
評価するのに有効であると予想している
保守性
 理解容易性
 再利用性
 エラーの伝播と発生可能性

2015/10/01
修士論文発表会
9
実験計画(1/2)
動的メトリクスと静的メトリクスの関係
OQFS vs CBO
MM[4]
ICP[5]
[4]Briand L. C., Devanbu P. and Melo W. L.,: `` An Investigation into Coupling
Measures for C++,'' Proceedings of the 19th International Conference on Software
Engineering(ICSE97), Boston, pp. 412-421(1997).
[5]Lee, Y., Liang B. and Wu S.: ``Measuring the Coupling and Cohesion of an
Object-Oriented Program Based on Information Flow,'' Proceedings of
International Conference on Software Qualiy, Maribor, Slovenia (1995).
2015/10/01
修士論文発表会
10
実験計画(2/2)
保守性,理解容易性

コンポーネントを作成する際に,発生したエラーを修
正するのに要した時間
再利用性

同一仕様を基に作成された複数のクラスを交換し,動
作の可否
エラーの伝播と発生可能性

あるコンポーネントにエラーが存在し,調査した結果,
他のコンポーネントが原因
→コンポーネントを作成する際に,発生したエラー数
2015/10/01
修士論文発表会
11
評価実験ー概要
実験の実施:
2000年7月に行われたある企業の新人研修にお
けるJavaプログラム開発プロジェクト(オークション
システムの作成)
被験者 (研修生)は事前に, オブジェクト指向開発につい
て講習を受けている
1チームは4~5名の研修生からなり, 7チームが独立して
同じシステムの開発を行う
各チームのメンバーがオークションシステムを構築する
上で必要なコンポーネントを作成する(29種類)
2015/10/01
修士論文発表会
12
収集データ
ソースコード


メトリクス値を計測するためのデータ
1時間ごとにソースコードを自動的に収集
エラーデータ


設計レビュー,コードレビュー,テストにおいて発見さ
れたエラーと各エラーの修正に要した時間に関する
データ
記入フォームに被験者が記入する
154個のクラスから収集されたエラーデータの総
数は, 80個である
2015/10/01
修士論文発表会
13
評価方法
動的メトリクスと静的メトリクス間の関係

OQFS vs CBO
実験により作成された複数のクラスに対して,動的メ
トリクス(OQFS)と静的メトリクス(CBO)を計測し,それ
らの間の相関関係の評価
品質特性の評価

保守性,理解容易性,エラーの伝播と発生可能性
各クラスで発生したエラー数,修正時間と動的メトリク
ス(OQFS)の間の関係を調べる
2015/10/01
修士論文発表会
14
使用した入力データ
ユーザ10人:A~J
A:会員登録→B:会員登録→A:出品→
C:会員登録→B:出品→ C:入札…
30個の入力データを用意した

入力データの発生確率は各3.3%
2015/10/01
修士論文発表会
15
計測結果
クラス
メトリクス
動的
48.9
35.9
0.1
・
・
AuctionClient
AuctionManagerImpl
AuctionServer
・
・
最大値
動的
静的
2015/10/01
67.4
13
静的
10
13
1
・
・
最小値
0
平均値
0
3.0
修士論文発表会
4.5
16
動的及び静的メトリクスの相関
両メトリクス間の相関係数=0.73
 あまり強く相関していない
 両メトリクスは異なった複雑度を評価し
ている(Yacoubらの予想を補完)
動的メトリクスと静的メトリクスはどちらがよ
りよくソフトウェアの複雑度を評価している
かの検証が必要
2015/10/01
修士論文発表会
17
品質特性の評価
エラー数
エラー修正時間
動的
0.60
0.57
静的
0.56
0.43
有意水準 1%
保守性,理解容易性,エラーの伝播と発生
可能性に関しては,動的メトリクスのほうが
より良い評価を与える
2015/10/01
修士論文発表会
18
メトリクスの利用方法
14
12
10
静的
8
6
A
4
B
2
0
0.00
20.00
40.00
60.00
80.00
動的
動的メトリクスを使用することで,静的に複雑なク
ラスから更に複雑なクラスを判別可能
Bの方がより注意が必要

B>A(修正時間が約2.5倍)
2015/10/01
修士論文発表会
19
まとめ
Yacoubらの提案したオブジェクト指向ソフトウェア
に対する動的複雑度メトリクスの有効性について
の実験計画をし,評価を行った
Chidamberらの静的メトリクスとの間の相関関係
はあまり高くなく,静的な複雑さとは異なる観点
の複雑さを評価していることを確認
今後の課題として,同様の実験を他のコンテキス
トにおいて行う
2015/10/01
修士論文発表会
20