
135
参考文献
ファイルサイズによる干渉についても調べ、ファイルサイズの範囲が異なっても高い相関係数は変わら
ないことを示しました。
私たちは、本研究から次のことがらが明らかになったと考えます。構文に基づく複雑度メトリクスで
は、ソフトウェア複雑度の全体像を捉えることはできません。プログラムの構造だけに基づく複雑度メ
トリクスや、テキストの性質のみに基づくもの(たとえば
Halstead
のメトリクスにおける冗長度のよ
うなもの)は、あるコード片を理解するのに必要な労力の量に関する情報を
―
少なくともコード行数
を超えるような情報を
―
提供しません。このことは、これらのメトリクスの使い方に関する示唆を与
えてくれます。具体的には、欠陥予測、開発・保守コストモデル、および統計モデル一般において、こ
れらのメトリクスを使うことの利点は無く、それらのモデルにおいて、コード行数こそが第一かつ唯一
のメトリックと考えられるべきです
†
。
コードの複雑度と理解の難しさに関わる問題は、以前から研究コミュニティが取り組んで来たことで
はあります。たとえば、プログラム中で使われている識別子(たとえば変数名)がどれだけ曖昧である
かということに基づく、意味的エントロピーメトリック(
semantic entropy metric
)なども提案されて
います。興味深いことですが、この種の測定尺度は良好な欠陥予測因子になります[
Etzkorn et al.
2002
]。
だからといって、従来の複雑度メトリクスは役に立つことを教えてくれない、というわけではありま ...