Skip to main content
QUICK REVIEW

[論文レビュー] Do We Need Improved Code Quality Metrics?

Tushar Sharma, Diomidis Spinellis|arXiv (Cornell University)|Dec 22, 2020
Software Engineering Research参考文献 24被引用数 6
ひとこと要約

本論文は、結合度の指標として広く用いられるLCOMメトリックの限界を検証し、開発者直感に整合する新たなアルゴリズムを提案する。8つの多様なケースにおける専門家による評価結果と、9万件を超えるJava型を対象とした定量的分析を通じて、従来のLCOM実装が不正確で誤解を招くものであることを示し、本研究で提案する新しい手法がより正確で直感的な結合度スコアを生成することを示している。

ABSTRACT

The software development community has been using code quality metrics for the last five decades. Despite their wide adoption, code quality metrics have attracted a fair share of criticism. In this paper, first, we carry out a qualitative exploration by surveying software developers to gauge their opinions about current practices and potential gaps with the present set of metrics. We identify deficiencies including lack of soundness, i.e., the ability of a metric to capture a notion accurately as promised by the metric, lack of support for assessing software architecture quality, and insufficient support for assessing software testing and infrastructure. In the second part of the paper, we focus on one specific code quality metric-LCOM as a case study to explore opportunities towards improved metrics. We evaluate existing LCOM algorithms qualitatively and quantitatively to observe how closely they represent the concept of cohesion. In this pursuit, we first create eight diverse cases that any LCOM algorithm must cover and obtain their cohesion levels by a set of experienced developers and consider them as a ground truth. We show that the present set of LCOM algorithms do poorly w.r.t. these cases. To bridge the identified gap, we propose a new approach to compute LCOM and evaluate the new approach with the ground truth. We also show, using a quantitative analysis using more than 90 thousand types belonging to 261 high-quality Java repositories, the present set of methods paint a very inaccurate and misleading picture of class cohesion. We conclude that the current code quality metrics in use suffer from various deficiencies, presenting ample opportunities for the research community to address the gaps.

研究の動機と目的

  • 結合度、アーキテクチャ、テスト、インfra構築などのソフトウェア品質次元を的確に捉えることのできる現在のコード品質メトリックの限界を調査すること。
  • 開発者による実地評価を基準値として用い、既存のLCOMアルゴリズム実装の妥当性と正確性を評価すること。
  • オブジェクト指向クラスにおける結合度の理論的意図をよりよく反映する、新たなLCOM計算アルゴリズムを提案すること。
  • 大規模な実証的分析を通じて、既存のLCOM手法が誤解を招くかつ一貫性のない結合度測定を生じることを示すこと。
  • より正確で分野特化型のメトリックの開発を提唱し、従来のメトリックと補完的役割を果たす機械学習の可能性を検討すること。

提案手法

  • 78名の開発者を対象にオンラインアンケートを実施し、現在のコード品質メトリックに対する意見収集とその課題の特定を実施した。
  • 評価対象となる結合度メトリックのテストケースとして、多様で代表的なクラス構成8例を設計した。
  • 各テストケースについて経験豊富な開発者による結合度スコアを収集し、ベンチマークを確立した。
  • 開発者提供の基準値と照らし合わせて、既存のLCOMアルゴリズムの正確性と妥当性を評価した。
  • メソッドがアクセスするフィールドの処理と結合度論理の改善に基づき、新たなLCOMアルゴリズムを提案し、基準値と照合して検証した。
  • 261の高品質なJavaリポジトリ(9万件を超える型)を対象とした大規模な定量的分析を実施し、異なるLCOMバージョンのメトリック出力を比較し、一貫性と信頼性を評価した。

実験結果

リサーチクエスチョン

  • RQ1現在のLCOMアルゴリズムは、経験豊富な開発者が捉える結合度の概念をどの程度正確に反映しているか。
  • RQ2多様なクラス構成において、開発者による検証済み基準値と照らし合わせた場合、既存のLCOM実装はどの程度の性能を示すか。
  • RQ3ソフトウェアアーキテクチャ、テスト、インfra構築の品質を評価するにあたり、現在のコード品質メトリックに見られる主な欠陥は何か。
  • RQ4人間の直感と専門家の判断に近いメトリック値を生成できる新たなLCOMアルゴリズムを設計できるか。
  • RQ5大規模な実証的分析に基づくと、現行のLCOMメトリック値は実世界のソフトウェアシステムに適用した際にどの程度誤解を招くものか。

主な発見

  • 専門家による評価結果に基づく検証では、既存のLCOMアルゴリズムが設計したテストケースの80%で結合度を正しく表現できていないことが判明した。
  • 本研究で提案する新しいLCOMアルゴリズムは、すべてのテストケースにおいて経験豊富な開発者が設定した基準値と密接に一致するメトリック値を生成した。
  • 261の高品質なJavaリポジトリから得た9万件を超える型に対する定量的分析から、現在のLCOM実装がクラスの結合度について極めて不正確かつ一貫性のない図を描いていることが明らかになった。
  • 本研究では、現在のLCOM実装に妥当性の欠如が見られ、結合度を測定するという理論的意図から著しく逸脱していることが判明した。
  • 研究では、ソフトウェアアーキテクチャ、テスト、インfra構築の品質を評価するにあたり、現行のメトリックが十分に支援していない重要なギャップが浮き彫りになった。
  • 研究結果から、機械学習ベースのアプローチが従来のメトリックと補完的に機能する可能性があるものの、実証的検証と実行可能なインサイトに基づく前提が不可欠であることが示唆された。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。