ファンクション・ポイント活用のすすめ

コラムカテゴリー:

1. はじめに

ファンクション・ポイント法(以下FP)はことさら新しい話題ではありません。また、決して派手な技術・手法ではありません。しかしシステム開発の実務においては、システム開発見積やシステム品質評価の基準値として、FPは既にデファクトスタンダートになっていると言っても過言ではないでしょう。事実、IPA(独立行政法人・情報処理推進機構)やJUAS(社団法人日本情報システム・ユーザー協会)等の団体が公表するシステム関連統計調査においては、システムの規模はFP(またはプログラム行数)による統計が行われています。今回はそのFPの活用方法をご紹介したいと思います。

2. ファンクション・ポイントとは

FPは、システムの機能規模を計測し、ポイント換算したものです。

<例: CD販売A店の売上システムの機能>
(1)売上登録・取消 / (2)売上明細照会 / (3)売上集計照会
⇒ FP計測した結果 システムの機能規模は 50ポイント
<例: CD販売B店の売上システムの機能>
(1)売上登録・取消 / (2)売上明細照会 / (3)売上集計照会 / (4)売上ランキング照会 / (5)会計連携
⇒ FP計測した結果 システムの機能規模は 100ポイント

上記の例では、B店のシステムはA店の2倍の機能を持つということになります。
(FP算出方法は割愛します)

3. 活用その1 見積

FP自体はシステム機能規模をポイント化したのであり、開発工数そのものではありません。FPに対する生産性 (1人月でFP何ポイント分の機能を開発できるか)がわかれば、FPを工数に換算することが出来ます。この工数にシステム開発要員の単価をかければ、開発金額が算出できます。

例:
FP150ポイント ÷ 15ポイント(1人月で開発できるFP) = 10人月
10人月 × 要員単価100万円(1ヶ月あたり) = 1,000万円

自社開発のシステム開発工数の算出に使用できますし、外注するのであればベンダーの見積を比較・検討する材料になります。相見積に際しては、各ベンダーの開発想定内容がぴたりと一致しているとは限りません。

例:
ベンダーA社 見積金額5,000万円 A社提案機能のFP500ポイント
ベンダーB社 見積金額4,000万円 B社提案機能のFP360ポイント

この例の場合、FP1ポイントに対する金額(見積金額÷FP)はA社10万円、B社約11万円となり、機能あたりの開発金額はA社のほうが安価ということになります。

4. 活用その2 品質評価

システム開発のテスト工程において、どのようにシステムの品質を評価していますか。テスト担当者の「順調です。」という言葉を信じますか? それとも、テストケースやテスト結果を全て確認しますか?
どちらもあまり良い策ではありません。前者は品質評価になっていませんし、後者は中~大規模システム開発ではプロジェクトマネージャやリーダがテスト内容を全て確認することは物理的に不可能です。
実際にはテストケース件数やバグ発生件数などの客観的な数値を確認することになりますが、ここで一つ疑問が生まれます。これら件数が十分、過不足ないということを、何を持って判断するかということです。
ここで使われるのがFPとそれに対する品質指標です。過去の実績や統計調査による「FP1ポイントあたりの妥当なテスト件数」や「FP1ポイントあたりの妥当なバグ発生件数」があれば良いのです。

例:
<適用指標> FP1ポイントあたりの妥当なテスト件数=5件
FP30ポイントの機能に対して、100ケースのテストが行われた
 ⇒指標では150件(5×30)のケースが必要であり、ケース数が不十分。
  テストケースの追加を依頼する。

<適用指標> FP1ポイントあたりの妥当なバグ発生件数=0.3件から0.5件
FP30ポイントの機能に対して、テストで7件のバグが発生した。
 ⇒指標では9~15件(0.3×30~0.5×30)のバグが発生するはずであり、
  テスト内容が不適切なためバグを発見できていない可能性がある。
  テスト内容の見直しを依頼する。

5. おわりに

スペースの都合でかなり駆け足なコラムになりました。上記以外に、(1)実際のFP計測方法 (2)FPを工数換算する際の生産性指標 (3)システム設計前の機能未確定段階でのFP計測方法など、まだまだご紹介したいことがありますが、ここでは割愛させて頂きます。またの機会にゆずりますが、ご興味がありましたらお問合せください。弊社ではFPを活用したITデューデリジェンス(≒システム資産価値算出)やシステム開発見積評価等のサービスもご提供ししておりますので、こちらもお気軽にご相談ください。

2010年09月09日 (木)

青山システムコンサルティング株式会社

山口晃司