私は主に、コードの可読性を欠陥の削減に関連付けるコード メトリクスのケース スタディに興味があります。ウィキペディアには次の例があります。
モジュールに含まれる欠陥の数に対する循環的複雑度の相関関係は、多くの研究で調査されています。そのような研究のほとんどは、循環的複雑さと欠陥との間に強い正の相関があることを発見しています。最も複雑なモジュールには、最も多くの欠陥も含まれる傾向があります。たとえば、メトリック監視ソフトウェアのサプライヤである Enerjy による 2008 年の調査では、オープンソースの Java アプリケーションのクラスを分析し、それらのアプリケーションで障害が検出される頻度に基づいて 2 つのセットに分類しました。彼らは、循環的複雑度とその欠陥性との間に強い相関関係があることを発見しました。複合複雑度が 11 のクラスが欠陥を起こしやすい確率はわずか 0.28 で、複雑度が 74 のクラスでは 0.98 に上昇しました。
これは良いことですが、他にも研究があるかどうか知りたいです (または、SLOC などの他の指標について同様の研究があるかもしれません)。
CC 値の監視を促進するIBMの記事も見つけましたが、ROI の数値を示すケーススタディのサポートがありません。次に、「矢印コード」に関するコーディング ホラーの記事があります。これは、ケース スタディの概要を示していますが、ケース スタディ自体も、結論を正当化した実際の数値も提供していません。
調査によると、プログラムの循環的複雑度とエラー頻度との間に相関関係があることが示されています。サイクロマティックな複雑度が低いと、プログラムが理解しやすくなり、より複雑なプログラムよりもリスクが低く変更しやすいことを示します。モジュールの循環的複雑度も、そのテスト可能性の強力な指標です。
確かに循環的複雑度 (CC) はアローコードの特定に役立ちますが、ROI 値を示すケーススタディが必要です。たとえば、「組織 X はメソッド/機能に最大 10 の CC を組み込み、次の開発イテレーションで欠陥を 20% 削減しました。」
この種のデータがなければ、経営陣に注意を向けさせるのは困難です。誰かが私にいくつかの難しい研究を教えてもらえますか? 一人でも助かる…