基本情報技術者 2014年 秋期 午前(科目A) 問53
問題文
システム開発の見積方法の一つであるファンクションポイント法の説明として、適切なものはどれか。
選択肢
ア:開発規模が分かっていることを前提として、工数と工期を見積もる方法である。ビジネス分野に限らず、全分野に適用可能である。
イ:過去に経験した類似のシステムについてのデータを基にして、システムの相違点を調べ、同じ部分については過去のデータを使い、異なった部分は経験から規模と工数を見積もる方法である。
ウ:システムの機能を入出力データ数やファイル数などによって定量的に計測し、複雑さとアプリケーションの特性による調整を行って、システム規模を見積もる方法である。(正解)
エ:単位作業量の基準値を決めておき、作業項目を単位作業項目まで分解し、その積算で全体の作業量を見積もる方法である。
🔒 解説は解答すると表示されます
ファンクションポイント法【午前解説】
正解の理由
選択肢ウは、ファンクションポイント法の本質を的確に表しています。ファンクションポイント(FP)は、ユーザが要求する機能を「外部入力(EI)」「外部出力(EO)」「外部照会(EQ)」「内部論理ファイル(ILF)」「外部インターフェースファイル(EIF)」といった観点で定量化し、それぞれの件数と複雑さに応じた重みを合算して「非調整機能点(UFP)」を算出します。さらにシステム特性(各種の一般システム特性、GSC)で調整して最終的なFPを得るため、設問文にある「入出力データ数やファイル数などによる定量的計測」と「複雑さ・特性による調整」を両方含むウが正解です。
解法ステップ
- 問題文や選択肢から「入出力」「ファイル数」「複雑さの調整」などファンクションポイント特有の語句を探す。
- 該当する選択肢があれば、それが正解の有力候補になる(ファンクションポイントは機能ベースで言語非依存な点が特徴)。
- 他の選択肢が別の見積り手法(類推見積り、ボトムアップ、工数前提の方法など)を説明していないか確認して排除する。
- 最終的にファンクションポイントの定義と照合して選択肢を決定する。
選択肢別の誤答解説
- ア: 「開発規模が分かっていることを前提に、工数と工期を見積もる方法」という説明は誤り。規模が既知であることを前提とする手法はパラメトリック手法や逆方向の見積りに近く、ファンクションポイントの定義と合致しません。また「全分野に適用可能」はやや大げさで、FPは主に業務系アプリケーションの機能を測る際に適するという点も留意が必要です。
- イ: 類似システムのデータを基にするのは「類推見積り(類似見積り)」であり、ファンクションポイントの直接的な説明ではありません。類推見積りは経験則ベースで迅速ですが、機能単位での定量化手順(EI, EO, ILFなど)を含みません。
- ウ: 正しい。FPの基本概念(機能の件数カウント+複雑さと特性での補正)を表しています。
- エ: 作業を単位まで分解して合算するのは「ボトムアップ見積り(作業分解見積り)」であり、FPの手順とは異なります。FPは「機能」を単位にするため、WBSベースの細項目分解とはアプローチが違います。
よくある誤解
- ファンクションポイントはソースコード量(LOC)を直接測るものだと誤解する人が多い。実際は言語非依存の機能指標であり、FPをLOCに変換するには過去の生産性データや経験値が必要です。
- 「調整係数(VAF)」は常に大きな影響を与えるわけではない。GSCの合計が限定的な場合、UFPと最終FPは大幅に変わらないこともあります。
- ILFとEIFの区別(内部で管理するデータと外部参照するデータ)を誤って数えるミスが頻発する。カウントルールの適用が重要です。
補足コラム
ファンクションポイントの代表的な計算手順(IFPUG準拠の概略)は次の通りです。
- 各機能タイプ(EI, EO, EQ, ILF, EIF)をカウントし、複雑さ(低・中・高)に応じた重みを掛けて合計し、UFP(Unadjusted Function Points)を算出する。
- 例:UFP = Σ(各機能タイプの件数 × 重み)
- 一般システム特性(通常14項目:データ通信、性能、設計再使用性など)を0〜5で評価し、合計値 ΣFi を求める。
- VAF(Value Adjustment Factor)を次で計算:
- 最終的なファンクションポイント:
簡単な例:UFP = 120、ΣFi = 20 のとき、VAF = 0.65 + 0.01×20 = 0.85、FP = 120 × 0.85 = 102
FPから工数を算出する場合は、組織の過去データに基づく「FP当たりの工数(人時/FP)」を掛けます。例えば1FP = 8人時の経験値があれば、上の例だと工数 = 102 × 8 = 816人時となります。
簡単な計算例(Python)
def calc_fp(ufp, sum_fi):
vaf = 0.65 + 0.01 * sum_fi
return ufp * vaf
print(calc_fp(120, 20)) # 102.0
FAQ
Q. ファンクションポイントはどんなシステムに向いていますか?
A. 主に業務系(データ処理・トランザクション中心)アプリケーションに適しています。組み込み系やリアルタイム制御系では機能の定義が合わないことがあります。
A. 主に業務系(データ処理・トランザクション中心)アプリケーションに適しています。組み込み系やリアルタイム制御系では機能の定義が合わないことがあります。
Q. LOC(行数)よりFPを使う利点は?
A. 言語非依存でユーザ視点の機能量を評価できる点です。設計や要件段階でも見積り可能なのが強みです。
A. 言語非依存でユーザ視点の機能量を評価できる点です。設計や要件段階でも見積り可能なのが強みです。
Q. 初めて導入する際の注意点は?
A. カウントルールの統一、過去データの収集、担当者のトレーニングが重要です。ILF/EIF区別やトランザクションの境界設定で差が出やすいです。
A. カウントルールの統一、過去データの収集、担当者のトレーニングが重要です。ILF/EIF区別やトランザクションの境界設定で差が出やすいです。
関連キーワード: ファンクションポイント, UFP, VAF, 見積手法, SLOC, 見積精度

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

