複雑度メトリクスを用いた 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 2019/07/07 特別研究報告
研究の目的 動的メトリクスの有効性評価 動的メトリクスと静的メトリクスの関係 動的メトリクスがクラスの再利用性を評価可能であるか 2019/07/07 特別研究報告
静的メトリクス: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 Object-Oriented Program Based on Information Flow,”Proc.of international Conference on Software Quality 2019/07/07 特別研究報告
動的メトリクス(1/2) EOC(Export Object Coupling) 入力データxを与えたときの実行中にオブジェクト間 で交換されるメッセージの総数のうちOiからOjに送 信されるメッセージの割合 2019/07/07 特別研究報告
動的メトリクス(2/2) OQFS(Object Request for Service) 入力データxを与えたときの実行中にオブジェクト間で交 換されるメッセージの総数のうちOiから他の全てのオブ ジェクトに送信されるメッセージの割合 入力データの発生確率との積をとりその総和をとる 2019/07/07 特別研究報告
評価実験ー概要 実験の実施: 2000年7月に行われたある企業の新人研修におけるJavaプログラム開発プロジェクト(オークションシステムの作成) 1チームは4~5名の研修生からなり, 7チームが独立して同じシステムの開発を行う 各チームのメンバーがオークションシステムを構築する上で必要なコンポーネントを作成する (22種類) 154個のデータから収集した 2019/07/07 特別研究報告
評価方法 動的メトリクスと静的メトリクス間の関係 再利用性の評価 OQFS vs. MM,ICP 実験により作成された複数のクラスに対して,動的メトリクス(OQFS)と静的メトリクス(MM,ICP)を計測し,それらの間の相関関係の評価 再利用性の評価 同一仕様を基に作成された複数のクラスを交換し,動作の可否 2019/07/07 特別研究報告
入力データの作成と実行 ユーザ10人:A~J A:会員登録→B:会員登録→A:出品→ C:会員登録→B:出品→ C:入札… 30個の入力データを用意した システム中の全てのクラスを使用するように入力データを作成 入力データの発生確率は各3.3% WSH(Windows Scripting Host)を使用し,自動実行をした 2019/07/07 特別研究報告
動的及び静的メトリクスの相関 OQFSとMMの相関係数=0.79 OQFSとICPの相関係数=0.75 両メトリクスは異なった複雑度を評価している(Yacoubらの予想を補完) 2019/07/07 特別研究報告
再利用性の評価(1/2) 計測した154のクラスの中でOQFS値の上位5つ下位5つを抜き出し,他のシステムの同クラスと入れ替え,動作確認を行う 1 2 3 ・・・ 7 ・・・ C1 C1 C1 C1 C22 C22 C22 C22 2019/07/07 特別研究報告
再利用性の評価(2/2) 動的メトリクス値が大きいものは、再利用性が低い事が確認された。 2019/07/07 特別研究報告
まとめ 動的メトリクスと静的メトリクスとの間の相関関係はあまり高くなく,静的な複雑さとは異なる観点の複雑さを評価していることを確認 再利用性については、動的メトリクスを用いる事で再利用性が高いクラスと低いクラスの識別が可能 今後の課題として,同様の実験を他の条件のもとにおいて行う 2019/07/07 特別研究報告
2019/07/07 特別研究報告