[論文レビュー] Open Source Software: How Can Design Metrics Facilitate Architecture Recovery?
本稿では、依存構造をDAGを用いて分析し、DIT、CBO、WMCなどのメトリクスとレイヤー割り当てを相関させることで、オープンソースJavaシステムにおけるアーキテクチャレイヤーを回復する手法を提案する。結果として、DIT、CBO、RFCなどのメトリクスがアーキテクチャレイヤーと顕著に相関していることが示され、部分的ではあるが意味のあるレイヤー予測が可能であるが、レイヤーやシステムによって精度にばらつきがあることがわかった。
Modern software development methodologies include reuse of open source code. Reuse can be facilitated by architectural knowledge of the software, not necessarily provided in the documentation of open source software. The effort required to comprehend the system's source code and discover its architecture can be considered a major drawback in reuse. In a recent study we examined the correlations between design metrics and classes' architecture layer. In this paper, we apply our methodology in more open source projects to verify the applicability of our method. Keywords: system understanding; program comprehension; object-oriented; reuse; architecture layer; design metrics;
研究の動機と目的
- 文書化が不完全なオープンソースソフトウェアにおいて、設計メトリクスがアーキテクチャ回復を支援できるかどうかを調査すること。
- 静的解析と機械学習に基づく手法を開発し、コードメトリクスからアーキテクチャレイヤーを予測すること。
- JabRef、Jbpm、RapidMiner、SweetHome3Dの4つの大規模なオープンソースJavaシステムを対象に、その手法の妥当性を検証すること。
- ChidamberとKemererのメトリクスが、UI、コントローラ、ビジネスロジック、インフラストラクチャなどの機能的レイヤーを特定するのにどの程度の予測力を持つのかを評価すること。
- 完全な文書がなくても開発者がシステムのアーキテクチャを推測できるようにすることで、ソフトウェア再利用を向上させること。
提案手法
- 静的解析から有向非巡回グラフ(DAG)を構築し、Dレイヤーを導出することで、システム内の依存関係の階層を表現する。
- ckjmツールを用いて、各クラスについて8つのChidamberとKemerer(C&K)設計メトリクス(WMC、DIT、NOC、CBO、RFC、LCOM、Ca、NPM)を計算する。
- ルールベースの機械学習分類器であるJRipを用い、メトリクス値とアーキテクチャレイヤーを結びつける分類ルールを生成する。
- 連続するDレイヤーをグループ化して一時的なアーキテクチャレイヤーを形成し、精度と再現率の指標を用いて予測の妥当性を評価する。
- 設計メトリクスとDレイヤーの間の相関行列を分析し、アーキテクチャ的役割を最も効果的に予測できるメトリクスを特定する。
- 記述統計、相関分析、分類精度を用いて、4つのオープンソースシステム全体で結果を検証する。
実験結果
リサーチクエスチョン
- RQ1DIT、CBO、WMCなどの設計メトリクスが、オープンソースシステムにおけるアーキテクチャレイヤーを効果的に予測できるか。
- RQ2設計メトリクスに基づいて学習された機械学習モデルは、既知のアーキテクチャレイヤー構造をどの程度正確に回復できるか。
- RQ3どの設計メトリクスがアーキテクチャレイヤー割り当てと最も強い統計的相関を示すか。
- RQ4依存関係解析から導かれるDレイヤーが、アーキテクチャレイヤー化の代理としてどの程度有効か。
- RQ5なぜ一部のアーキテクチャレイヤー(例:Dレイヤー4)はメトリクスとの相関があるにもかかわらず、分類性能が低いのか。
主な発見
- DIT、CBO、RFC、LCOM、Caは、4つのシステムすべてにおいてアーキテクチャレイヤーと顕著な相関を示しており、アーキテクチャ回復に有効であることが示された。
- ユーザーインターフェースクラス(Dレイヤー4)については、ルールが低Lcomと低/中程度のDITを示しており、ユーザーインタラクションの役割と整合的であった。
- コントローラクラス(Dレイヤー3)は、低CBOと低Caを好むルールによって予測されており、UIとビジネスロジックの仲介役という役割と整合的であった。
- ビジネスロジッククラス(Dレイヤー2)は、高いCBOとWMCと関連しており、複雑な相互作用と責任の多様性を支持する証拠となった。
- インフラストラクチャクラス(Dレイヤー1)は、低CBOと低RFCによって予測されており、データストレージと最小限の公開インターフェースという役割と整合的であった。
- 分類精度にはばらつきがあり、JabRefではDレイヤー2で0.727の精度と0.5の再現率を示したが、SweetHome3DではDレイヤー2で1.0の精度であったものの再現率はたった0.009にとどまり、システム間での性能の不一致が明らかになった。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。