IPA 規模・工数見積り — 頻出論点と過去問

頻出論点

1. この分野は何か

作るソフトウェアの大きさと、それに要る手間や費用を、作り始める前に数字で見積もる技法を扱います。手元にどこまでの情報がそろっているかで使える手法が変わり、規模・工数・生産性は式で結ばれています。

2. 実際の出題のされ方

どの段階でどの見積り手法を使うかを見極める問いが出ています。ITパスポートでは、プロジェクトの計画段階で短期的に概算費用を出すのに適した手法を選ぶ問題や、複数の見積り手法とそれぞれの特徴の説明文を正しく組み合わせる問題が出題されています。

ITサービスマネージャの午前IIでは、機能規模の算出に必要な情報や開発ツールの比較計算が出題されています。調整前のFPを出すのに要る情報を選ぶ問題や、複数のローコード開発ツールについてプログラムのタイプ別の本数と1本当たりの所要工数の表から総工数が最小になるツールを選ぶ問題があります。

手法の手順や式を使う計算は、プロジェクトマネージャの午前IIで深く問われています。データ移動の4つの型に着目して機能規模を算出する手法の名称を選ぶ問題や、要素処理の関連ファイル数・データ項目数から複雑さを判定して調整後のファンクションポイント数を計算する問題があります。また、開発規模と開発工数の関係式から生産性の近似値やグラフの形状を求める問題、工程別の生産性から全体の生産性を表す式を導く問題、チーム開発で発生する総当たりのコミュニケーション工数を加味して1人で開発する場合とのコスト倍率を求める問題も出されています。

3. 学習のポイント

見積り手法の仕組みと適用時期の違いは、プロジェクトで確定している情報の粒度と結び付けて押さえます。

  • 類推見積法(類推法): 似た過去の案件の実績を手がかりにする手法で、要件や作業の細部がまだ分からなくても使えます。
  • 積み上げ法(ボトムアップ見積り): WBSなどで分けた作業の一つ一つに見積りを付け、それを足し上げる手法です。作業が細かく分かれているほど精度が上がります。
  • プログラムステップ法(LOC法): プログラムの行数(ステップ数)を規模の物差しにする手法です。同じ機能でも、使う言語によって行数が変わります。
  • ファンクションポイント法(FP法): 利用者から見た機能の数や複雑さに着目して規模を定量化する手法です。外部入力・外部出力・外部照会といったトランザクションファンクションと、内部論理ファイルなどのデータファンクションに分類し、関連ファイル数やデータ項目数から複雑さ(低・中・高)を判定して未調整ファンクションポイント(調整前FP)を算出します。これにシステムの特性に応じた調整要因(調整係数)を掛けて最終的なファンクションポイント数を求めます。
  • COSMIC法: 利用者が求める機能を、データが境界を出入りしたり記録されたりする動きの数で測る手法です。データの動きを4つの型に分けて数え、その合計を機能の規模とします。
  • COCOMO: 予想される開発規模(コード行数など)を基準とし、指数や補正係数を用いた関係式から開発工数や期間を算出する手法です。

計算問題では、生産性の定義と工数の内訳を式で整理することが重要です。

  • 生産性と指数モデル: 開発生産性は 開発規模開発工数\dfrac{\text{開発規模}}{\text{開発工数}} です。工数を WW、規模を SS として W=cSkW = c S^k と表すと、生産性は SW=1cS1−k\dfrac{S}{W} = \dfrac{1}{c} S^{1-k} になります。COCOMOのように kk が1より大きい場合は 1−k1-k が負になるので、規模が大きくなるほど生産性は下がります。
  • 工程別の生産性の合成: 全体の生産性は、全体の規模を、各工程の工数を足し合わせた全体の工数で割って求めます。各工程の工数は、その工程で扱う規模をその工程の生産性で割れば出ます。
  • コミュニケーション工数と開発期間: nn 人が総当たりで連絡を取り合うと組合せは n(n−1)2\dfrac{n(n-1)}{2} 通りになり、人数の2乗に近い割合で連絡の手間が増えます。人を増やしても、増えた連絡の分だけ開発に使える時間が減るので、費用は人数に比例するより大きくなります。

4. 間違えやすいところ

見積り手法の選択や調整前FPの算出では、対象とする情報の種類を取り違えた選択肢に注意します。

  • 計画の初期に手早く概算を出す方法を選ぶ問題では、作業ごとのコストを見積もって合算する手法が誤答肢にありました。作業を洗い出し終えるまでは使えない手法です。
  • 調整前FPを求めるのに要る情報を選ぶ問題では、プログラムのステップ数が誤答肢にありました。ステップ数は作った後のプログラムの大きさで、FP法が数える利用者から見た機能の量とは別のものです。

数式や表を用いた計算では、途中の計算値や単純な平均が誤答肢として使われます。

  • ファンクションポイント数の計算問題では、トランザクションファンクションとデータファンクションの未調整FPを合計しただけの値が誤答肢にありました。最終的なファンクションポイント数を出すには、未調整FPの合計に調整要因を掛ける必要があります。
  • 規模と工数の関係式から生産性を求める問題では、式の係数をそのまま生産性とみなした値が誤答肢にありました。生産性は規模を工数で割った値であり、式の係数そのものではありません。
  • 工程別の生産性から全体の生産性を求める問題では、各工程の生産性を単純に平均した式が誤答肢にありました。工程ごとに費やす工数が違うので、平均では全体の生産性になりません。

規模・工数見積りの理解度チェック

規模・工数見積りの過去問一覧

開発プロセスのほかの論点

アジャイル開発(スクラム・XP・リーン)50問 DevOps・開発環境とツール21問 開発モデル・ライフサイクルプロセス30問