基本情報技術者 2014年 春期 午後 問06
ファンクションポイント法を用いた工数見積りに関する次の記述を読んで、設問1,2に答えよ。
A社では、名簿データ管理システム開発プロジェクトの計画を策定中であり、アプリケーション設計チームで作成した図1に示す処理フロー図を基に、工数見積りを行う段階に入った。工数見積りの結果がコスト見積り時の根拠となるので、正確性の確保はもとより、プロジェクトにおける各種の制約条件を考慮したものとする必要がある。
〔処理フロー図の説明〕
名簿データ管理システムは、名簿の提供者から受領する名簿データを取り込み、データを整備し、名簿データの利用者からの要求に応じて、データを抽出する。また、利用者から、抽出件数に応じた利用料金を徴収するための請求書を作成する。システムの処理ごとに、その説明を示す。
(1) データ取込処理では、入力データを基にレコードを編集し、名簿マスタを更新する。入力インタフェースとして、“オンライン接続(オンラインストレージサービスの利用)”、“電子記憶媒体授受”及び“授受リストを基にしたメンテナンス用端末からの入力”の3種類が用意されている。名簿マスタの更新ができなかったデータは、エラーファイルに出力する。
(2) データ整備処理では、名簿マスタ更新時のエラーファイルを基に、メンテナンス用端末を使用して、レコードを編集し、名簿マスタを更新する。
(3) データ抽出処理では、名簿マスタ及び抽出条件テーブルを参照し、目的のレコードを抽出して出力する。出力インタフェースとして、“オンライン接続(オンラインストレージサービスの利用)”、“電子記憶媒体授受”及び“授受リスト”の3種類が用意されている。また、利用者ごとのデータ抽出処理の実行と抽出件数に関するログデータを出力する。
(4) 請求書作成処理では、データ抽出処理で出力されたログデータ及び使用した出力インタフェースとデータ抽出件数ごとに設定された料金テーブルを参照して、請求金額を算出する。算出された請求金額を、請求レコード用フォーマットに編集して、請求書を出力する。
〔工数見積方法の説明〕
(1) 工数見積りには、A社でアレンジした簡易ファンクションポイント法を用いる。簡易ファンクションポイント法は、ソフトウェアがもつ機能及び入出力インタフェースの数を基に、そのソフトウェアの開発規模を推定する手法である。図1で示す各処理の内容を、機能及び入出力インタフェースごとに分類し、それぞれをファンクションとして定義する。図1の処理フロー図から見積対象の処理ごとに、各ファンクションの個数を求める。
(2) 求められた各ファンクションの個数を基に、処理ごとの開発規模を求める。名簿データ管理システムのファンクションとそれに対応する開発規模を表1に示す。

(3) 見積対象処理ごとに算出された開発規模と表2に示す開発生産性の計画値から、工数を算出する。

設問1:
問題文を見る プロジェクト管理グループに属する社員Bは、プロジェクトマネージャの指導の下、工数見積方法に従い、図1の処理フロー図に示された各処理の開発に要する工数を算出して、表3にまとめた。表3中のに入れる正しい答えを、解答群の中から選べ。

aに関する解答群
ア:1
イ:2
ウ:3
エ:4
bに関する解答群
ア:1.0
イ:2.0
ウ:2.5
エ:4.0
模範解答
a:ウ、b:エ
解説
解答の導き方
この問題では、表3の空欄に入る「ファンクション数」と「処理別工数」を求めます。ファンクションとは、この見積りで数える処理や入出力の単位です。簡易ファンクションポイント法では、ファンクション数に表1の開発規模を掛けて処理ごとの開発規模を求め、開発生産性を使って工数に換算します。
a:データ抽出のファイル書込数
問題文には、データ抽出の出力インタフェースとして「オンライン接続」「電子記憶媒体授受」「授受リスト」の3種類があると書かれています。表3のファイル書込数は、この出力インタフェースの種類を数えるため、aには3が入ります。解答群ではウです。
ログデータは請求書作成に使うデータで、抽出データの出力インタフェース3種類とは別に扱います。そのため、ログデータを加えて4とはしません。
表1ではファイル書込1個分の開発規模は0.3(kステップ)です。したがって、データ抽出のファイル書込による開発規模は、(kステップ)です。
b:データ整備の処理別工数
まず、表3のデータ整備の行から開発規模を確認します。ファンクションの種類ごとの開発規模は、ファイル読込が0.2、ファイル書込が0.3、帳票作成が0.0、端末画面が1.0、レコード編集が0.5(いずれもkステップ)です。
これらを合計すると、データ整備の開発規模は次のとおりです。
問題文の開発生産性は「0.5(kステップ/人月)」です。これは、1人が1か月働く量(1人月)で0.5kステップを開発する計画値です。したがって、開発規模を開発生産性で割ると工数が求められます。
よって、bに入る値は4.0で、解答群ではエです。
誤りやすいポイント
- ファンクション数と開発規模を混同しないようにします。表3の上段はファンクション数、下段はその数を基に求めた開発規模です。
- aでは、抽出データの出力先の種類を数えます。出力先が3種類あるため、ファイル書込数は3です。
- bの工数は、開発規模に開発生産性を掛けるのではなく、開発規模を開発生産性で割って求めます。生産性が高いほど、同じ開発規模に必要な工数は小さくなるためです。
- 工数の単位にも注意します。開発規模はkステップ、開発生産性はkステップ/人月なので、計算結果は人月になります。
FAQ
Q: ファイル書込数は、出力されるデータの数を数えるのですか?
A: この問題では、データ抽出の出力インタフェースの種類を数えます。出力先として示された「オンライン接続」「電子記憶媒体授受」「授受リスト」の3種類が対象です。
A: この問題では、データ抽出の出力インタフェースの種類を数えます。出力先として示された「オンライン接続」「電子記憶媒体授受」「授受リスト」の3種類が対象です。
Q: 4.0人月は、4人で1か月働くという意味ですか?
A: その場合も4.0人月になります。ただし、人月は作業量の単位なので、たとえば1人で4か月働く場合も4.0人月です。
A: その場合も4.0人月になります。ただし、人月は作業量の単位なので、たとえば1人で4か月働く場合も4.0人月です。
Q: なぜ工数を開発生産性で割るのですか?
A: 開発生産性は「1人月でどれだけ開発できるか」を表すためです。必要な開発規模を、1人月あたりに開発できる量で割ると、必要な人月が求められます。
A: 開発生産性は「1人月でどれだけ開発できるか」を表すためです。必要な開発規模を、1人月あたりに開発できる量で割ると、必要な人月が求められます。
関連キーワード: ファンクションポイント法、開発規模、開発生産性、工数見積り、ファイル入出力
設問2:
問題文を見る 設問1で求めた工数を基に算出した開発コストは、プロジェクトで想定している開発コストの計画値を上回った。社員Bはプロジェクトマネージャから、開発工数を削減する方法の検討を行うよう指示を受けた。
社員Bは、処理別工程ごとの工数を表4にまとめた。表3及び表4を検証して、工数削減方法の検討を進めた。検討を行った作業に関する次の記述中のに入れる適切な答えを、解答群の中から選べ。ここで、工程ごとの工数は、処理ごとの工数に工程比率を乗じて算出したものである。

全ての処理に利用され、ファンクション別開発規模合計が最も大きいファンクションに対して対策を講じることが、工数削減の効果が最も大きいと想定し、表3から対象ファンクションをcと判断した。
工数削減施策として、“対象ファンクションを共通部品として作成し、各処理に適用することによって、工数を削減する施策”を検討した。共通部品化によって、全工程の工数合計の80%に相当するd工程における工数の一部を削減することができる。
例えば、データ抽出処理では、d工程の工数のうちe人月がcの工数なので、本施策によって工数削減を見込むことができる。
cに関する解答群
ア:端末画面
イ:帳票作成
ウ:ファイル書込
エ:ファイル読込
オ:レコード編集
dに関する解答群
ア:外部設計
イ:外部設計、詳細設計
ウ:外部設計、詳細設計、製造
エ:外部設計、詳細設計、製造、総合試験
オ:外部設計、詳細設計、製造、総合試験、運用試験
eに関する解答群
ア:1.088
イ:1.44
ウ:2.176
エ:2.72
模範解答
c:ウ、d:ウ、e:イ
解説
解答の導き方
簡易ファンクションポイント法は、システムに含まれる機能や入出力の数から、開発規模を見積もる方法です。表3にある各処理のファンクションの個数に、表1の開発規模を掛けて、どのファンクションの開発規模が最も大きいかを比べます。
表3の個数を、表1の開発規模と合わせて整理すると、次のようになります。各処理の欄はファンクションの個数で、開発規模の合計は「合計個数×表1の開発規模」で求めています。
「ファイル書込」は、合計個数が7個で、開発規模の合計は kステップです。表のほかのファンクションの開発規模の合計と比べても、これが最も大きくなっています。また、4処理すべてで個数が0ではありません。したがって、工数削減の対象となるcは「ファイル書込」です。
次にdを求めます。表4の工程比率は、外部設計が15%、詳細設計が25%、製造が40%、総合試験が15%、運用試験が5%です。外部設計は利用者から見える機能を決める工程、詳細設計は内部の作りを細かく決める工程、製造は実際に作る工程です。
共通部品化で工数の一部を削減できる工程の比率は、次のとおりです。
したがって、該当するのは「外部設計、詳細設計、製造」です。総合試験と運用試験は、この80%には含めません。
最後にeを求めます。データ抽出処理における「ファイル書込」は3個です。表1では、ファイル書込1個当たりの開発規模は0.3 kステップなので、データ抽出処理のファイル書込の開発規模は次のとおりです。
kステップ
開発生産性は0.5 kステップ/人月です。開発規模を開発生産性で割ると、工数が求められます。
人月
これは、データ抽出処理のファイル書込にかかる全工程の工数です。対象となる工程の比率は80%なので、該当する工数は次のとおりです。
人月
誤りやすいポイント
- ファンクションの個数だけを比べないようにします。開発規模は個数だけでなく、表1の「1個当たりの開発規模」も掛けて比べます。
- 「ファイル書込」の合計個数は7個ですが、最も大きいと判断する根拠は、開発規模の合計が kステップになることです。
- dの比率を求めるとき、全工程の比率を合計して100%にしないようにします。対象は外部設計、詳細設計、製造の3工程で、合計は80%です。
- eはデータ抽出処理全体の工数ではなく、その中のファイル書込にかかる工数です。まずファイル書込3個分の規模を求め、その後に生産性と工程比率を使います。
FAQ
Q: ファイル書込が7個なら、データ抽出処理でも7個分の工数を計算するのですか?
A: いいえ。7個は4処理全体の合計です。データ抽出処理で使うファイル書込は3個なので、eはその3個分だけを計算します。
A: いいえ。7個は4処理全体の合計です。データ抽出処理で使うファイル書込は3個なので、eはその3個分だけを計算します。
Q: 1.44人月は、削減できる工数そのものですか?
A: 設問で求めるのは、共通部品化の対象になる工程に含まれるファイル書込の工数です。実際にどれだけ削減できるかは、共通部品化によってその工数の一部を削減できる、という扱いです。
A: 設問で求めるのは、共通部品化の対象になる工程に含まれるファイル書込の工数です。実際にどれだけ削減できるかは、共通部品化によってその工数の一部を削減できる、という扱いです。
Q: なぜ総合試験と運用試験を含めないのですか?
A: 工程比率のうち、外部設計、詳細設計、製造の合計が80%だからです。総合試験と運用試験を加えると100%になりますが、設問の条件にある80%とは一致しません。
A: 工程比率のうち、外部設計、詳細設計、製造の合計が80%だからです。総合試験と運用試験を加えると100%になりますが、設問の条件にある80%とは一致しません。
関連キーワード: ファンクションポイント法、開発規模、開発生産性、工数見積り、共通部品化




