全部で40500命令のプログラム群。ただし、10500命令はコンパイラーなので、抜くと、30000命令。その内でテストプログラムが7500命令(製品コード対テストコードの比は3:1)。けっこうテストコード書いてるじゃん! さて、これは何時頃のプロジェクトの話でしょう?
2012-01-10 09:54:17(続き) 答: "Production of Large Computer Programs" http://t.co/7cvEZXOL (PDF) これの初出は1956年! 米軍のSAGEシステムの話。たしかに、実際に動かしてデバッグしたらエライことになるw
2012-01-10 09:59:04(続き) この論文のp13に出て来るFigure5。コーディングに10人年(not人月)とコンピューター0時間。当時の"Coding"という言葉には、コンパイルやデバッグ実行は含まれていなかった。
2012-01-10 10:05:29(続き) Figure5、Codingの次がユニットテスト("Parameter Testing"となっている)で、先ほどの10500命令のコンパイラーと7500命令のテストコードも使われる。コーディング10人年に対して、ユニットテストに20人年。コーディングの倍の工数。
2012-01-10 10:08:08(続き) Figure5、Codingの前の"Coding Specs"(「コーディング仕様書」と訳せばいいのかな)には30人年、コーディングの3倍の工数。なんでこうも、コーディングの工数が少ないのか?
2012-01-10 10:11:10(続き) p12に、コーディングは理想的には"a simple mechanical translation"(単純で機械的な翻訳)である、とある。"Coding Spec"を「機械的に翻訳」すればコードになった、つまり"Coding Spec"が現代で言うソースコードに当たる。
2012-01-10 10:15:04(続き) "Coding"の成果物の例が、p15のFigure7に載っているが、ご覧の通りアセンブラである。「何か」を「機械的に翻訳」してアセンブラが得られるなら、その「何か」とはソースコードのようなものであろう。
2012-01-10 10:17:30