令和3年度 春期 応用情報技術者試験 午後 問題 問9 システム開発のコスト見積り(3点見積りとファンクションポイント法)

学習ガイド

生産管理システム開発プロジェクトにおける実装工程のコスト見積りを題材にしたプロジェクトマネジメント問題です。請負契約におけるスコープの明確化や、類推法、積上げ法、ファンクションポイント法を用いた見積り精度の向上が問われます。WBSによる作業分解と不確実性を考慮した期待値の計算方法、そしてシステムの機能要件から複雑度を評価してFPを算出し、コストに換算する具体的な手順を、図表を追いながら解説します。

この記事で押さえる論点

  • 類推法、積上げ法(ボトムアップ見積り)、ファンクションポイント法のそれぞれの特徴を説明できる
  • 最頻値、楽観値、悲観値を用いた3点見積りの期待値を計算できる
  • データファンクションとトランザクションファンクションの複雑度を判定し、FP(ファンクションポイント)を算出できる

問題本文

プロジェクトのコスト見積りに関する次の記述を読んで,設問1〜4に答えよ。

L社は大手機械メーカQ社のシステム子会社であり,Q社の様々なシステムの開発,運用及び保守を行っている。このたび,Q社は,新工場の設立に伴い,新工場用の生産管理システムを新規開発することを決定した。この生産管理システム開発プロジェクト(以下,本プロジェクトという)では,業務要件定義と受入れをQ社が担当し,システム設計から導入までと受入れの支援をL社が担当することになった。L社とQ社は,システム設計と受入れの支援を準委任契約,システム設計完了から導入まで(以下,実装工程という)を請負契約とした。

本プロジェクトのプロジェクトマネージャには,L社システム開発部のM課長が任命された。本プロジェクトは現在Q社での業務要件定義が完了し,これからL社でシステム設計に着手するところである。L社側実装工程のコスト見積りは,同部のN君が担当することになった。

なお,L社はQ社の情報システム部が,最近になって子会社として独立した会社であり,本プロジェクトの直前に実施した別の新工場用の生産管理システム開発プロジェクト(以下,前回プロジェクトという)が,L社独立後にQ社から最初に受注したプロジェクトであった。本プロジェクトのL社とQ社の担当範囲や契約形態は前回プロジェクトと同じである。

〔前回プロジェクトの問題とその対応〕

前回プロジェクトの実装工程では,見積り時のスコープは工程完了まで変更がなかったのに,L社のコスト実績がコスト見積りを大きく超過した。しかし,①L社は超過コストをQ社に要求することはできなかった。本プロジェクトでも請負契約となるので,M課長はまず,前回プロジェクトで超過コストが発生した問題点を次のとおり洗い出した。

  • コスト見積りの機能の範囲について,Q社が範囲に含まれると認識していた機能が,L社は範囲に含まれないと誤解していた。
  • 予算確保のためにできるだけ早く実装工程に対するコスト見積りを提出してほしいというQ社の要求に応えるため,L社はシステム設計の途中でWBSを一旦作成し,これに基づいてボトムアップ見積りの手法(以下,積上げ法という)によって実施したコスト見積りを,ほかの手法で見積りを実施する時間がなかったので,そのまま提出した。その後,完成したシステム設計書を請負契約の要求事項として使用したが,コスト見積りの見直しをせず,提出済みのコスト見積りが契約に採用された。
  • コスト見積りに含まれていた機能の一部に,L社がコスト見積り提出時点では作業を詳細に分解し切れず,コスト見積りが過少となった作業があった。
  • 詳細に分解されていたにもかかわらず,想定外の不具合発生のリスクが顕在化し,見積りの基準としていた標準的な不具合発生のリスクへの対応を超えるコストが掛かった作業があった。

次に,今後これらの問題点による超過コストが発生しないようにするため,M課長は本プロジェクトのコスト見積りに際して,N君に次の点を指示した。

  • aを作成し,L社とQ社で見積りの機能や作業の範囲に認識の相違がないようにすること。その後も変更があればメンテナンスして,Q社と合意すること
  • 実装工程に対するコスト見積りは,Q社の予算確保のためのコスト見積りと,契約に採用するためのコスト見積りの2回提出すること
    1. 1回目のコスト見積りは,システム設計の初期の段階で,本プロジェクトに類似したシステム開発の複数のプロジェクトを基に類推法によって実施して,概算値ではあるが,できるだけ早く提出すること
    2. 2回目のコスト見積りは,システム設計の完了後に②積上げ法に加えてファンクションポイント(以下,FPという)法でも実施すること
  • 積上げ法については,次の点について考慮すること
    1. 作業を十分詳細に分解してWBSを完成すること
    2. 標準的なリスクへの対応に基づく通常のケースだけでなく,特定したリスクがいずれも顕在化しない最良のケースと,特定したリスクが全て顕在化する最悪のケースも想定してコスト見積りを作成すること

〔1回目のコスト見積り〕

これらの指示を基に,N君はまず,Q社の業務要件定義の結果を基にaを作成し,Q社とその内容を確認した。

次に,1回目のコスト見積りを類推法で実施し,その結果をM課長に報告した。その際,L社が独立する前も含めて実施した複数のプロジェクトのコスト見積りとコスト実績を比較対象にして,概算値を見積もったと説明した。

しかし,M課長は,“③自分がコスト見積りに対して指示した事項を,適切に実施したという説明がない”とN君に指摘した。

N君は,M課長の指摘に対して漏れていた説明を追加して,1回目のコスト見積りについてL社内の承認を得た。M課長は,この1回目のコスト見積りをQ社に提出した。

〔2回目のコスト見積り〕

N君は,システム設計の完了後に,積上げ法とFP法で2回目のコスト見積りを実施した。

(1) 積上げ法によるコスト見積り

N君は,まず作業を,工数が漏れなく見積もれるWBSの最下位のレベルであるbまで分解してWBSを完成させた後,工数を見積もり,これに単価を乗じてコストを算出した。

次に,この見積もったコストを最頻値とし,これに加えて,最良のケースを想定して見積もった楽観値と,最悪のケースを想定して見積もった悲観値を算出した。楽観値と悲観値の重み付けをそれぞれ1とし,最頻値の重み付けを4としてコストに乗じ,これらを合計した値を6で割って期待値を算出することとした。例えば,最頻値が100千円で,楽観値は最頻値-10%,悲観値は最頻値+100%となった作業のコストの期待値はc千円となる。

bのコストの期待値を合計して,本プロジェクトの積上げ法によるコスト見積りを作成した。

(2) FP法によるコスト見積り

N君は,FP法によってFPを算出して開発dを見積もり,これを工数に換算し単価を乗じて,コスト見積りを作成した。表1〜3は,本プロジェクトにおけるある1機能でのFPの算出例である。表1,表2を基に,表3でFPを算出した。

表1 データファンクションの一覧表
図の説明テキスト

表1 データファンクションの一覧表

データファンクション ファンクションタイプ レコード種類数 データ項目数 複雑さの評価
D1 EIF:外部インタフェースファイル 1 4 低
D2 ILF:内部論理ファイル 1 3 低
D3 EIF:外部インタフェースファイル 1 5 中
D4 ILF:内部論理ファイル 1 4 低
D5 ILF:内部論理ファイル 1 6 中
表2 トランザクションファンクションの一覧表
図の説明テキスト

表2 トランザクションファンクションの一覧表

トランザクションファンクション ファンクションタイプ 関連ファイル数 データ項目数 複雑さの評価
T1 EQ:外部照会 1 5 低
T2 EI:外部入力 2 7 中
T3 EO:外部出力 1 6 低
T4 EI:外部入力 2 8 中
T5 EQ:外部照会 1 5 低
T6 EQ:外部照会 3 10 高
表3 FPの算出表
図の説明テキスト

表3 FPの算出表

ファンクションタイプ 複雑さの評価: 低(個数) 複雑さの評価: 低(重み) 複雑さの評価: 中(個数) 複雑さの評価: 中(重み) 複雑さの評価: 高(個数) 複雑さの評価: 高(重み) 合計
EIF 1 ×3 1 ×4 0 ×6 7
ILF __ ×4 __ ×5 __ ×7 __
EI __ ×3 __ ×4 __ ×6 __
EO __ ×7 __ ×10 __ ×15 __
EQ 2 ×5 0 ×7 1 ×10 20
総合計(FP) e

注記 表中の__部分は,一部を除いて省略されている。

N君は,M課長に積上げ法とFP法によるコスト見積りの差異は許容範囲であることを説明し,積上げ法のコスト見積りを2回目のコスト見積りとして採用することについて,L社内の承認を得た。M課長は,承認された2回目のコスト見積りをQ社に説明し,Q社の合意を得た。その際Q社に,業務要件の仕様変更のリスクを加味し,L社のコスト見積りの総額にfを追加して予算を確定するよう提案した。

設問と解答・解説

設問1

本文中の a,b,f に入れる適切な字句を解答群の中から選び,記号で答えよ。

(1)配点 1点

本文中の a に入れる適切な字句を選べ。

ア. EVM
イ. 活動
ウ. コンティンジェンシ予備
エ. スコープ規定書
オ. スコープクリープ
カ. プロジェクト憲章
キ. マネジメント予備
ク. ワークパッケージ

模範解答

選択肢エ: スコープ規定書

解説

  • 空欄aは、「見積りの機能や作業の範囲に認識の相違がないようにする」「変更があればメンテナンスして、Q社と合意する」ためのものです。
  • プロジェクトにおいて、機能や作業の範囲(スコープ)を定義し、関係者間で合意するための文書は スコープ規定書(スコープ記述書)です。したがって、エ が正解です。

各選択肢の解説

  • ア (EVM): EVM(Earned Value Management)は、プロジェクトの進捗やコストのパフォーマンスを定量的に管理する手法であり、スコープを定義するものではありません。
  • イ (活動): 活動(アクティビティ)はプロジェクトで実施する具体的な作業要素のことであり、機能や作業範囲全体を規定する文書ではありません。
  • ウ (コンティンジェンシ予備): コンティンジェンシ予備は、特定された既知のリスクに対応するためにあらかじめ確保しておく予算や時間のことであり、文書ではありません。
  • オ (スコープクリープ): スコープクリープは、プロジェクトの範囲が正式な変更管理の手続きを経ずに制御不能な状態に拡大していく現象を指します。
  • カ (プロジェクト憲章): プロジェクト憲章は、プロジェクトの立ち上げを正式に承認し、プロジェクトマネージャに権限を与える文書であり、作業範囲の詳細な定義を目的としたものではありません。
  • キ (マネジメント予備): マネジメント予備は、特定されていない未知のリスクに対応するために経営層の権限で確保される予算や時間のことであり、文書ではありません。
  • ク (ワークパッケージ): ワークパッケージはWBSの最下位レベルの要素であり、プロジェクト全体のスコープを規定して合意するための文書そのものではありません。
(2)配点 1点

本文中の b に入れる適切な字句を選べ。

ア. EVM
イ. 活動
ウ. コンティンジェンシ予備
エ. スコープ規定書
オ. スコープクリープ
カ. プロジェクト憲章
キ. マネジメント予備
ク. ワークパッケージ

模範解答

選択肢ク: ワークパッケージ

解説

  • 空欄bは、「WBSの最下位のレベル」を指しています。
  • WBS(Work Breakdown Structure)において、作業を分解した最下位の構成要素は ワークパッケージ と呼ばれます。したがって、ク が正解です。

各選択肢の解説

  • ア (EVM): EVMはプロジェクトの進捗やコストを管理する手法であり、WBSの構成要素ではありません。
  • イ (活動): 活動(アクティビティ)は、ワークパッケージをさらに細かく分解した具体的なスケジュール上の作業要素です。WBS自体の最下位レベルとして見積りの単位となるのは通常ワークパッケージです。
  • ウ (コンティンジェンシ予備): リスク対応のための予備予算・時間であり、WBSの構成要素ではありません。
  • エ (スコープ規定書): プロジェクトの範囲を定義した文書であり、WBSの構成要素ではありません。
  • オ (スコープクリープ): スコープが正式な手続きなしに拡大することであり、用語として適切ではありません。
  • カ (プロジェクト憲章): プロジェクトを正式に承認する文書であり、WBSの構成要素ではありません。
  • キ (マネジメント予備): 未知のリスクに対する予備予算であり、WBSの構成要素ではありません。
(3)配点 1点

本文中の f に入れる適切な字句を選べ。

ア. EVM
イ. 活動
ウ. コンティンジェンシ予備
エ. スコープ規定書
オ. スコープクリープ
カ. プロジェクト憲章
キ. マネジメント予備
ク. ワークパッケージ

模範解答

選択肢キ: マネジメント予備

解説

  • 空欄fは、「業務要件の仕様変更のリスクを加味し,L社のコスト見積りの総額に追加」するものです。
  • 講評にもある通り、L社の2回目のコスト見積りは社内承認とQ社の合意を経て「コストベースライン」となります。
  • コストベースライン(見積り総額)に含まれない、想定外・未知のリスク(ここでは事前の見積り時点で特定できない将来の業務要件の仕様変更など)に備えてベースラインの外側に追加で確保する予算は マネジメント予備 です。したがって、キ が正解です。

各選択肢の解説

  • ア (EVM): 進捗・コストの管理手法であり、予算の名称ではありません。
  • イ (活動): 作業要素のことであり、予算の名称ではありません。
  • ウ (コンティンジェンシ予備): コンティンジェンシ予備は、見積り時点で特定された既知のリスク(本文中の「特定したリスクが全て顕在化する最悪のケース」など)に対する備えとして、コストベースラインの「内側」に含められる予備です。見積り総額に後から追加するものではありません。
  • エ (スコープ規定書): スコープを定義した文書であり、予算ではありません。
  • オ (スコープクリープ): スコープの無統制な拡大現象であり、予算ではありません。
  • カ (プロジェクト憲章): プロジェクトの立ち上げを承認する文書であり、予算ではありません。
  • ク (ワークパッケージ): WBSの構成要素であり、予算ではありません。

設問1のfは,正答率がやや低かった。2回目のコスト見積額は,L社内の承認を得た後,Q社の合意を得たことによって,コストベースラインとなっており,M課長がQ社に提案した追加予算は,コストベースラインの外側であることから,マネジメント予備であることを理解してほしい。

設問2

〔前回プロジェクトの問題とその対応〕について,(1),(2)に答えよ。

(1)配点 3点

本文中の下線①の理由を,契約形態の特徴を含めて 30 字以内で述べよ。

模範解答

請負契約は仕事の完成に対して報酬が支払われるから

採点基準

知識・理解度2点
  • 2点: 請負契約において「完成に対して報酬が支払われる(完成責任を負う)」ことが明記されている。
  • 1点: 請負契約であることには触れているが、完成と報酬の関係などの特徴が不十分である。
  • 0点: 請負契約に触れていない、または見当違いな内容である。
論理性1点
  • 1点: 超過コストを要求できない理由として、文脈が論理的に繋がっている。
  • 0点: 文脈が破綻している、あるいは理由として繋がっていない。

解説

  • 本文第1段落より、実装工程の契約形態は 請負契約 であることが分かります。
  • 本文第3段落より、前回プロジェクトの契約形態は本プロジェクトと同じであるため、前回プロジェクトの実装工程も請負契約です。
  • 請負契約は、受託者が仕事を完成させる義務を負い、委託者はその 仕事の完成に対して報酬を支払う 契約形態です。
  • したがって、L社はスコープの範囲内である以上、想定よりもコストが超過したとしても、システムを完成させる義務があるため、超過分をQ社に要求することはできません。

高得点のポイント

  • 実装工程が「請負契約」であることを明記する。
  • 請負契約の特徴である「仕事の完成に対して報酬が支払われる(完成責任がある)」ことを示す。
  • 超過コストを要求できない理由として、論理的につながるようにまとめる。
(2)配点 3点

本文中の下線②について,積上げ法に加えてもう一つ別の手法で見積りを行う目的を,30 字以内で述べよ。

模範解答

複数の手法を併用して見積りの精度を高めるため

採点基準

知識・理解度2点
  • 2点: 「複数の手法を用いる(併用する)」「見積りの精度を高める(妥当性を確認する)」の2つの要素が両方含まれている。
  • 1点: 上記の要素のいずれか片方のみが含まれている。
  • 0点: いずれの要素も含まれていない。
論理性1点
  • 1点: 積上げ法に加えて別の手法を行う目的として、論理的に自然な文脈になっている。
  • 0点: 文脈が破綻している。

解説

  • 下線②では、積上げ法だけでなくFP法も用いることが指示されています。
  • 〔前回プロジェクトの問題とその対応〕の段落において、前回は積上げ法によるコスト見積りを「ほかの手法で見積りを実施する時間がなかったので,そのまま提出した」結果、コストが大きく超過してしまったことが問題点として挙げられています。
  • ひとつの手法(積上げ法)だけで見積りを確定させるのではなく、別の手法(FP法)でも見積りを行い、両者の結果を比較・検証することで、見積りの精度を高める(あるいは妥当性を確認する)ことができます。

高得点のポイント

  • 「複数の手法を用いる(併用・比較する)」というアプローチに言及する。
  • それにより「見積りの精度を高める(妥当性を確認・検証する)」という目的を明記する。

設問3

配点 2点

〔1 回目のコスト見積り〕について,本文中の下線③で漏れていた説明の内容を 40 字以内で答えよ。

模範解答

本プロジェクト類似の複数のシステム開発プロジェクトと比較していること

採点基準

知識・理解度2点
  • 2点: 比較対象が本プロジェクトに類似したプロジェクトであることを述べている(「類似」は必須。「複数の」を含む公式解答例と同趣旨も可)。
  • 1点: 類似の趣旨はあるが、見積りの比較対象としたことが不明確、又は「同種の」など類似性の表現があいまいである。
  • 0点: 「複数のプロジェクトと比較した」だけで類似に触れない(N君が既に説明した内容)、又は無関係である。

解説

  • M課長が1回目のコスト見積りについて指示した事項は、「本プロジェクトに 類似した システム開発の 複数 のプロジェクトを基に類推法によって実施」することです。
  • 一方、N君がM課長に報告した内容は、「L社が独立する前も含めて実施した 複数 のプロジェクトのコスト見積りとコスト実績を比較対象にして」見積もったというものです。
  • したがって、N君の説明には「類似した」プロジェクトを比較対象にしたという点が漏れています。
  • 講評にも「類似と複数の二つの視点があること」と記載されているため、両方のキーワードを含めて説明の不足分を補う必要があります。

高得点のポイント

  • 比較対象が「本プロジェクトに類似している」プロジェクトであることを明記する。
  • 比較対象が単一ではなく「複数」のプロジェクトであることを明記する。

設問3は,正答率が低かった。類推法では,類似かつ複数のプロジェクトを比較する必要があり,本問では,そのうち類似プロジェクトとの比較を問うている。類似と複数の二つの視点があることを理解して正答を導いてほしい。

設問4

〔2 回目のコスト見積り〕について,(1)〜(3)に答えよ。

(1)配点 3点

本文中の c に入れる適切な数値を答えよ。計算の結果,小数第 1 位以降に端数が出る場合は,小数第 1 位を四捨五入せよ。

模範解答

115

解説

  • 三点見積りの手法を用いてコストの期待値を計算します。
  • 本文の指示に従い、最頻値、楽観値、悲観値をそれぞれ求めます。
    • 最頻値 =100= 100
    • 楽観値 == 最頻値 −10%=100×(1−0.1)=90- 10\% = 100 \times (1 - 0.1) = 90
    • 悲観値 == 最頻値 +100%=100×(1+1)=200+ 100\% = 100 \times (1 + 1) = 200
  • 期待値を求める計算式に当てはめます。
    • 期待値 =(楽観値×1+最頻値×4+悲観値×1)/6= (\text{楽観値} \times 1 + \text{最頻値} \times 4 + \text{悲観値} \times 1) / 6
    • 期待値 =(90×1+100×4+200×1)/6= (90 \times 1 + 100 \times 4 + 200 \times 1) / 6
    • 期待値 =(90+400+200)/6=690/6=115= (90 + 400 + 200) / 6 = 690 / 6 = 115
  • したがって、期待値は 115(千円)となります。
(2)配点 3点

本文中の d に入れる適切な字句を,2 字で答えよ。

模範解答

規模

採点基準

知識・理解度3点
  • 3点: 「規模」と解答している。
  • 0点: 空欄、または「規模」以外の誤った解答である。

解説

  • FP(ファンクションポイント)法は、システムが提供する機能(ファンクション)を基に、処理内容の複雑さなどから点数を付け、システムの 開発規模 を定量的に測定・見積もる手法です。
  • FPを算出した後、それをもとに開発規模を決定し、それを生産性などの指標を用いて工数に換算します。したがって、空欄 d には「規模」が入ります。

高得点のポイント

  • FP法が「開発規模」を測定する手法であることを理解し、「規模」と解答する。
(3)配点 3点

表 3 中の e に入れる適切な数値を答えよ。

模範解答

55

解説

  • 表1および表2の内容から、各ファンクションタイプと複雑さごとの「個数」を集計し、表3に当てはめて計算します。

1. ILF(内部論理ファイル)の集計

  • 表1より、D2(低)、D4(低)、D5(中)の3つがあります。
    • 複雑さ 低: 2個、中: 1個、高: 0個
    • 小計 =2×4+1×5+0×7=8+5+0=13= 2 \times 4 + 1 \times 5 + 0 \times 7 = 8 + 5 + 0 = 13

2. EI(外部入力)の集計

  • 表2より、T2(中)、T4(中)の2つがあります。
    • 複雑さ 低: 0個、中: 2個、高: 0個
    • 小計 =0×3+2×4+0×6=0+8+0=8= 0 \times 3 + 2 \times 4 + 0 \times 6 = 0 + 8 + 0 = 8

3. EO(外部出力)の集計

  • 表2より、T3(低)の1つがあります。
    • 複雑さ 低: 1個、中: 0個、高: 0個
    • 小計 =1×7+0×10+0×15=7+0+0=7= 1 \times 7 + 0 \times 10 + 0 \times 15 = 7 + 0 + 0 = 7

4. EIF(外部インタフェースファイル)とEQ(外部照会)の集計

  • 表3に既に記載されている通り、EIF の小計は 7、EQ の小計は 20 です。

5. 総合計(FP)の算出

  • 総合計 =EIF+ILF+EI+EO+EQ= \text{EIF} + \text{ILF} + \text{EI} + \text{EO} + \text{EQ}
  • 総合計 =7+13+8+7+20=55= 7 + 13 + 8 + 7 + 20 = 55
  • したがって、空欄 e は 55 となります。

設問4(2)は,正答率が低かった。ファンクションポイント法は,利用者の視点から,ソフトウェアの機能を基本にして,その処理内容の複雑さなどからファンクションポイントという点数を付けていき,開発規模を測定する手法である。ファンクションポイント法などの代表的な見積手法については,その特徴や見積方法の理解を深めてほしい。

Spineチーム