ソフトウェアメトリクスによる品質分析の実案件への適用
ソフトウェアの品質を分析する指標の1つにソフトウェアメトリクスがあります。現在、実案件の品質分析に適用しているのですが、開発者へのヒアリング内容とメトリクスの傾向が合致していて、非常に面白いです。
ソフトウェアのメトリクスとは、ソフトウェアを計測する方法およびその尺度のことを意味します。(中略)メトリクスを計測し、複雑過ぎるロジックや洗練されないパッケージ構成を見直すことで、バグが少なく保守性が高いソースコードを維持できるようになります。
(中略)
メトリクスを用いると、特に以下の品質にかかわる問題を検出し、信頼性と保守性を高めることができます。
http://www.atmarkit.co.jp/fjava/rensai3/eclipsetst03/eclipsetst03_1.html
メトリクスを計測するにはEclipseのプラグインを使うと簡単です。Eclipse Plugin Metricsとか。HTMLレポートをExcelに取り込めば簡単に分析できます。
複雑なソースコードはテストが困難
複雑なソースコードは入出力のバリエーションが増加するため、ホワイトボックステストが困難になる傾向があります。異常系のテストがおろそかになっていないか、カバレッジ情報と併せてレビューする必要があります。
複雑度メトリクスには、マッケーブのサイクロマチック数(McCabe's cyclomatic complexity)やネスト数があります。
大きなソースコードは内容の把握が困難
大きなソースコードは内容の把握が困難になるため、実装すべき処理の抜け漏れが発生する傾向があります。業務要件を満たしているか、業務と実装の両観点でコードレビューが必要です。
サイズメトリクスには、LOC(行数)やステートメント数があります。