2002/01/27
ステップの話2
続きです。
サブルーチンを用いてプログラミングすれば絶対コード量が少なくなり、結果としてステップ数が減ります。しかし、構造化設計はプログラムが複雑となり、アルゴリズムも複雑となります。つまり、単位時間あたりに記述できるコード量が減るのです。よってステップ数だけを見れば生産性が落ちたように見えます。実際にはアルゴリズムの考察のほうに時間が取られていますし、また、実際のプログラムにおいては先ほど書いたとおり1命令を1行ということは無く、複数命令が1行に集約されます。よってステップというものが意味を持たないのです。これがオブジェクト設計になると、もっと大変です。オブジェクト設計技法が再利用性を高めて、コード記述量を減らすための技法だということは以前に説明しました。ですから例えばC++でプログラムを書いていると、ステップ数というのがいかに馬鹿らしい計算なのかがわかります。ステップ数というものが実態を反映していない証拠として、記述法を変えただけで、ステップ数に大きな差が出ることでもわかるでしょう。例えばfor文の後ろの{を改行してからつけるか、そのままforの後ろにつけるかによって(改行の数だけを数えている)ステップ数が大きく変わったように見えたりもします。にも関わらず、古のプログラマだった人達は現状を把握せずにステップ数だけを見て、自分たちの時代よりも生産性が落ちていると言います。ただ単にコピーペーストして同じようなプログラムコードをべたにだらだら書いていた時代から、コピーペーストする手間を省けるようになっただけなのに。では実際の生産性はどのようにして測定すればいいのでしょうか。これに関しては、ファンクションポイント法など色々とありますが、いまだ結論は出ていません。あらゆる手法が存在していてどれも決定打に欠けているのが現状です。
そういうわけで未だにステップ数の算出を命じられます。いいかげんにやめてほしいのですが変わるものもないしなぁ。


 

Topへ