申し立ては-せいぜい-素朴です。
SLOCは、2つ以上のプロジェクトのサイズを比較することを除いて、有用なものの正確な信頼できる指標ではありません。さらに、SLOCには物理LOCと論理LOCの2つの異なるタイプがあり、それらは大きく異なる場合があります。ウィキペディアのこの例を考えてみましょう。
for (i = 0; i < 100; i += 1) printf("hello");
ここには、1つの物理LOCがありますが、2つの論理LOC(for
およびprintf
ステートメント)があります。しかし、もちろん次のように例を書くことができます。
for (i = 0; i < 100; i += 1)
printf("hello");
これにより、2つの物理LOCと2つの論理LOCが得られます。物理的なLOCに依存する「locごとのバグ」測定は、プログラミングスタイルによって汚染されることは明らかであるため、測定はほとんど役に立たないでしょう。
一方、論理LOCを使用した場合、測定は言語の構文の特異性に大きく依存します。同じ言語で書かれたプロジェクトを比較する場合、結果のメトリックは少し役立つかもしれませんが、異なる言語で書かれたプロジェクトにはかなり役に立ちません。
主張の可能性のある原因の1つは、Les Hattonのソフトウェアの失敗-愚かさと誤りです:
プログラミング言語の選択はせいぜい信頼性とは弱い関係にあると結論付けることができます。
後で、このペーパーではCおよびC ++の同様の欠陥密度に言及しています。
Cに1つ、オブジェクト設計のC ++に1つ、同様のサイズの2つの類似システム(それぞれ約50,000行)を比較する最近の研究では、結果の欠陥密度はそれぞれ1000行あたり2.4および2.9でほぼ同じであることが示されました。
ただし、これは、「LOCごとのバグ」がプログラミング言語間で一定であるという意味ではありません。