問題
問37
システム開発の見積方法として、類推法,積算法,ファンクションポイント法などがある。ファンクションポイント法の説明として、適切なものはどれか。
- WBS によって洗い出した作業項目ごとに見積もった工数を基に、システム全体の工数を見積もる方法
- システムで処理される入力画面や出力帳票,使用ファイル数などを基に、機能の数を測ることでシステムの規模を見積もる方法
- システムのプログラムステップを見積もった後、1人月の標準開発ステップから全体の開発工数を見積もる方法
- 従来開発した類似システムをベースに相違点を洗い出して、システム開発工数を見積もる方法
[出典:ITパスポート試験 平成29年度春期 問37]
正解
正解は「イ」です。
解説
ファンクションポイント法は、システムが提供する「機能」の数を数えて規模を見積もる方法です。具体的には、ユーザーがデータを入力する画面の数、システムから出力される帳票の数、システムが内部で使うファイルの数、外部との連携インターフェースの数、システムが提供する問い合わせ機能の数などを識別し、それぞれに定義された複雑度に応じた「重み」を付けて合計します。この合計値が「ファンクションポイント」と呼ばれ、これを使って開発にかかる工数や費用を算出するのです。
これは、例えば家を建てる際に、部屋の数、窓の数、ドアの数といった「提供される機能」を数えて、それらの総数から建設費用を見積もるようなイメージに似ています。この方法のメリットは、まだ詳細な設計が決まっていない開発の初期段階でも見積もりが可能であることや、プログラミング言語に依存しないため、異なるプロジェクト間で比較しやすい点です。
ア(WBSによって洗い出した作業項目ごとに見積もった工数を基に、システム全体の工数を見積もる方法):
これは積算法(ボトムアップ見積もり)の説明です。プロジェクトの作業を細かく分解し、それぞれの工数を積み上げて全体の見積もりを出します。
ウ(システムのプログラムステップを見積もった後、1人月の標準開発ステップから全体の開発工数を見積もる方法):
これはプログラムステップ法(LOC法:Lines Of Code法)の説明です。開発するプログラムの行数を基準に見積もります。
エ(従来開発した類似システムをベースに相違点を洗い出して、システム開発工数を見積もる方法):
これは類推法(アナロジー見積もり)の説明です。過去の類似プロジェクトの実績を基に見積もります。
難易度
この問題の難易度は、ITパスポート試験の出題範囲の中でも比較的重要な「システム開発の見積方法」に関する知識が問われているため、中程度と言えます。各見積方法の基本的な特徴を理解していれば、正解の選択肢を見つけることは難しくありません。ただし、それぞれの見積方法の名前と内容を正確に区別しておく必要があります。特にファンクションポイント法は出題頻度が高い傾向にありますので、しっかり学習しておきたい分野です。
用語補足
ファンクションポイント法:
システムが提供する機能の数を数えて、システムの規模を見積もる方法です。例えば、顧客情報入力画面や請求書出力機能など、ユーザーから見た機能の数をポイントとして計算し、それに基づいて開発工数を予測します。
類推法:
過去に開発した類似のシステムやプロジェクトのデータ(かかった時間や費用など)を基にして、新しいシステムの規模や工数を見積もる方法です。例えば、以前作った「A店用のレジシステム」と似た「B店用のレジシステム」を作る際に、A店の開発実績を参考にします。
積算法:
システム開発の作業を細かく分解し、それぞれの小さな作業にかかる工数や時間を一つずつ見積もり、それらを合計して全体の工数や時間を見積もる方法です。例えば、料理を作る際に「材料を切る時間」「炒める時間」「煮る時間」など各工程の時間を見積もって合計するようなイメージです。
プログラムステップ法 (LOC法):
開発するプログラムの行数(Lines Of Code: LOC)を予測し、その行数と過去のプロジェクトの生産性データ(1行あたりの開発費用や時間など)を基にして、開発工数や費用を見積もる方法です。例えば、この機能はだいたい1000行のプログラムになりそう、1行あたり100円かかるとすると、10万円と見積もる、といった考え方です。
対策
システム開発の見積方法に関する問題では、類推法、積算法、ファンクションポイント法、プログラムステップ法(LOC法)といった主要な方法それぞれの特徴と、どのような情報を基に見積もりを行うのかを正確に理解しておくことが重要です。特に、ファンクションポイント法は、システムの「機能」に着目して規模を測る点が他の方法と異なるため、この点をしっかり押さえておきましょう。それぞれの方法がどの選択肢に該当するかを識別できるように、定義をしっかりと学習することが効果的な対策となります。

