複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価

Slides:



Advertisements
Similar presentations
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 ソフトウェア部品推薦のための.
Advertisements

シーケンス図の生成のための実行履歴圧縮手法
背景 ソフトウェアの大規模化・複雑化 生産性と品質の向上 ↓ オブジェクト指向分析設計の適用 開発ツールの投入.
機能実現期間の測定による プログラマ能力の実験的評価
SSR 論文調査 Safety and Cyber-Physical Systems
情報伝播によるオブジェクト指向プログラム理解支援の提案
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
同期的にアドバイスを活性化できる分散動的アスペクト指向システム
クラス動作シナリオ可視化手法の プログラム理解作業に対する有効性評価
ソースコードの利用関係を用いた 再利用性評価手法の提案
MPIによる行列積計算 情報論理工学研究室 渡邉伊織 情報論理工学研究室 渡邉伊織です。
プログラム実行履歴を用いたトランザクションファンクション抽出手法
プログラム実行時情報を用いたトランザクションファンクション抽出手法
ソースコードの変更履歴における メトリクス値の変化を用いた ソフトウェアの特性分析
オブジェクト指向プログラムのための 動的結合メトリクスの評価
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
類似度を用いたプログラムの再利用性尺度の提案と実現
複雑度と機能量に基づくアプリケーションフレームワークの実験的評価
オブジェクト指向プログラムにおける エイリアス解析手法の提案と実現
動的情報を利用したソフトウェア 部品評価手法
ソフトウェアを取り巻く環境の変化がメトリクスに及ぼす影響について
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
限られた保存領域を使用する Javaプログラムの実行トレース記録手法の 提案と評価
Javaプログラムの変更を支援する 影響波及解析システム
利用実績に基づくソフトウェア部品検索システムSPARS-J
プログラム動作理解支援を目的とした オブジェクトの振舞いの同値分割手法
コンポーネントランク法を用いたJavaクラス分類手法の提案
ソフトウェア保守性を評価する メトリクス間の関連分析
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
Javaバイトコードの 動的依存解析情報を用いた スライシングシステムの実現
コードクローン検出に基づくデザイン パターン適用支援手法の提案と実現
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
コードスメルの深刻度がリファクタリングの実施に与える影響の実証的研究
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
○ 後藤 祥1,吉田 則裕2 ,井岡 正和1 ,井上 克郎1 1大阪大学 2奈良先端科学技術大学院大学
コードクローン分類の詳細化に基づく 集約パターンの提案と評価
UMLの概要とオブジェクト指向の基本概念
既存ソフトウェア中の 頻出コード片を用いた コード補完手法の提案
Javaバーチャルマシンを利用した 動的依存関係解析手法の提案
コーディングパターンの あいまい検索の提案と実装
インスタンスの型を考慮したJavaプログラムの実行経路の列挙手法の提案
Q3 On the value of user preferences in search-based software engineering: a case study in software product lines Abdel Salam Sayyad (West Virginia University,
Managing non-functional uncertainty via model-driven adaptivity
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
類似した振舞いのオブジェクトの グループ化による クラス動作シナリオの可視化
静的情報と動的情報を用いた Javaプログラムスライス計算法
プログラムスライスを用いた凝集度メトリクスに基づく 類似メソッド集約候補の順位付け手法
設計情報の再利用を目的とした UML図の自動推薦ツール
保守請負時を対象とした 労力見積のためのメトリクスの提案
メソッドの同時更新履歴を用いたクラスの機能別分類法
蓄積されたオブジェクトの動作履歴を用いた 実行履歴削減手法の提案
JAVAを対象とした 動的複雑度メトリクスの実験的評価
オブジェクト指向開発における フォールト発生早期予測手法の 一提案
エイリアス関係を考慮した Javaプログラム用静的スライシングツール
コードクローン解析に基づく デザインパターン適用候補の検出手法
回帰テストにおける実行系列の差分の効率的な検出手法
ソースコードの利用関係を用いた 再利用性評価手法の提案
木構造の比較に基づく メソッド呼び出し履歴の変化の可視化手法
オブジェクト指向言語における セキュリティ解析アルゴリズムの提案と実現
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
インセンティブにより自律ユーザに 高品質なオーバーレイマルチキャスト木を 構築させるプロトコルの提案
ベイジアンネットワークと クラスタリング手法を用いたWeb障害検知システムの開発
GluonJ を用いたビジネスロジックからのデータベースアクセスの分離
プログラム依存グラフを用いた ソースコードのパターン違反検出法
Detecting Software Modularity Violations
Presentation transcript:

複雑度メトリクスを用いた 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 特別研究報告