プログラムのステップ数から規模見積もりを行うということも一般的に行われていると思います。
この場合も、基本的にはFPに置き換えて規模見積もりを行うという方法をとっています。
そうすることにより、さまざまな手法で見積もりを行った結果を比較して近似値をとったり、補正をしたりすることが可能になります。
結果としてより見積精度を向上させることが可能になると思います。
プログラムのステップ数から規模を見積もる方法ですが、これは非常に簡単で1FPが何ステップに該当するかから逆算をするだけです。
言語ごとに1FPが何ステップに該当するのかについては、WEB上でも検索すると出てきますし、書籍等でも記述されていますので、そちらを参照してください。
COBOLでは1FPが110~115ステップぐらいという数値が多いと思います。
ですので、プログラムステップ数から規模を見積もる場合、以下の計算式に当てはめれば、簡単にFP数を求めることができます。
プログラム総ステップ数÷1FP当たりのステップ数=規模(FP数)
作業としては、現行プログラム一覧を入手することから始まります。
その後、プログラムごとのステップ数を調査し、対象システムのプログラムの総ステップ数を算出します。
あとは、前述の計算式に当てはめれば、FPを算出することができるわけです。
しかし、ここで問題となるのが、プログラムステップとして何をカウントしているのかという問題です。
いろんな議論はありますが、コメントは対象外とすべきでしょう。
また、実際にコードの中身を見てみないと判断できないかもしれませんが、保守で修正したプログラムについて、保守(改定)前のコードをコメントアウトしてそのまま残していたり、する場合は当該ステップも対象外とすべきだと思います。
冗長なコード(スキルの高いメンバーが作成すれば、数文の1のステップ数で実現可能のコードも存在する。)を記述しているという場合は、取り扱いが微妙です。初期の見積もりではそこまで行う必要はないと思いますが・・・。
また、コードクローン(わかりやすい表現でいえばコピー&ペースト)の存在も問題となります。
特に長年保守しながら使い続けてきたシステムに多いのですが、保守をする際以前のコードをコピーしてその内容を一部修正することにより、改定を行った結果、同じようなコードがいたるところに出現するというケースです。
本来であれば、共通化できる部分を部品として切り出しておくべきかもしれませんが、実際にはコピー&ペーストで行われることが多いのではないでしょうか。
何かあった場合に元に戻せるようにしておきたいということで、前述したように不要コードをコメントアウトしてそのまま残しておくということが行われます。(本来は構成管理側で実施するべきですが・・・)
初期の段階では、あまりプログラムソースの中身を議論しても無意味かもしれませんが、基本的には以下の作業は実施しておくべきだと思います。
①使用していないプログラムの整理
②コメント行(コメントアウト行)の削除
可能であれば、③も行いたいところです。
③コードクローンの明確化(→再利用率を考慮し、規模から削減する)
コードクローンについての研究もいろいろ行われていまして、ツールを使用してコードクローンを検出するということも可能になってきていますので、ツールを適用することも検討してもいいのではないでしょうか。
いろんな見積もり手法があると思いますが、現行システムの要素から見積もりを実施する場合、どのような手法(考え方)で見積もりを実施するのかということも重要であすが、見積もりを行う対象の精度ということがより重要となってくると思います。必要ないものを対象として見積もりをしても正確な見積もりは行えないと考えるからです。
ここまで、フィールド数や画面・帳票数・プログラムステップからの見積もりの手順を記述してきましたが、見積もる前に見積もり対象の整理(無駄なものを排除)が重要だと思います。
※コメント投稿者のブログIDはブログ作成者のみに通知されます