基本情報技術者 2010年 秋期 午前(科目A) 問53
問題文
システムを構成するプログラムの本数とプログラム1本当たりのコーディング所要工数が表のとき、システムを95日間で開発するには少なくとも何人の要員が必要か。ここで、コーディングのほかに、設計やテストの作業が必要であり、それらの作業の遂行にはコーディング所要工数の8倍の工数がかかるものとする。

選択肢
ア:8
イ:9(正解)
ウ:12
エ:13
🔒 解説は解答すると表示されます
要員数の算定【午前解説】
正解の理由
表からコーディングの合計工数を求めると、 人日です。
設計やテストには「コーディング所要工数の8倍の工数」がかかるので、 人日。全体の工数は 人日になります。
これを95日間で終えるには 人が必要です。したがって正解は イ(9)です。
設計やテストには「コーディング所要工数の8倍の工数」がかかるので、 人日。全体の工数は 人日になります。
これを95日間で終えるには 人が必要です。したがって正解は イ(9)です。
解法ステップ
- 各カテゴリのコーディング合計を求める
- 入力処理: 人日
- 出力処理: 人日
- 計算処理: 人日
- 合計コーディング工数: 人日
- 設計・テストの工数を求める
- 設計・テスト合計 = コーディング合計 × 8 = 人日
- 全体工数を求める
- 全体工数 = コーディング + 設計・テスト = 人日
- 必要要員数を算出する
- 要員数 = 全体工数 ÷ 期間日数 = 人(端数は切り上げ)
選択肢別の誤答解説
- ア: 8
8人では 8 × 95 = 760人日しか作業できず、必要な855人日に届きません。設計・テストの工数(760人日)だけを数えるとこの値になります。 - イ: 9(正解)
9 × 95 = 855人日で、必要な工数をちょうど満たします。 - ウ: 12
12人なら間に合いますが、「少なくとも何人」の最小値ではありません。 - エ: 13
13人でも間に合いますが、最小値ではありません。
よくある誤解
- 「8倍」を設計とテストの合計と解釈するか、それぞれ8倍と解釈するか混同する
- 問文どおりなら「それらの作業(設計やテスト)の遂行にはコーディング所要工数の8倍の工数がかかる」=設計+テストで合計8倍。個別に8倍ずつは別の解釈です。
- 小数切り上げの扱いを忘れる
- 要員数は人の数なので端数が出たら切り上げる(例: 9.1人 → 10人)。
- 「日数」と「稼働日数(実働日)」を混同する
- 指定された期間が実働日かカレンダー日かで利用可能工数は変わります。試験では与えられた日数をそのまま実働日として扱うのが通常です。
補足コラム
短時間で要員を算定する際の公式は次の通りです。
- コーディング合計 = Σ(プログラム本数 × 1本当たりのコーディング所要工数)
- 他作業合計 = コーディング合計 ×(設計・テスト等の倍率)
- 全体工数 = コーディング合計 + 他作業合計
- 要員数 = ceil(全体工数 ÷ 期間日数)
簡単な確認用スクリプト例(参考):
prog_counts = [20, 10, 5]
coding_per = [1, 3, 9]
coding = sum(p*c for p,c in zip(prog_counts, coding_per))
other = coding * 8
total = coding + other
period = 95
import math
required = math.ceil(total / period)
print(coding, other, total, required) # 95, 760, 855, 9
FAQ
Q. 端数はどう扱うべきか?
A. 要員数は整数なので、割り切れない場合は切り上げます(本問は 855 ÷ 95 = 9 で割り切れます)。
A. 要員数は整数なので、割り切れない場合は切り上げます(本問は 855 ÷ 95 = 9 で割り切れます)。
Q. 期間95日は実働日と考えてよいか?
A. 問題文に特別な注意がなければ、95日間をそのまま作業できる日数として扱います。実務では週末・祝日や稼働率も考慮します。
A. 問題文に特別な注意がなければ、95日間をそのまま作業できる日数として扱います。実務では週末・祝日や稼働率も考慮します。
関連キーワード: 工数算定、要員配置、人日計算、プロジェクト見積もり、工数倍率、リソース計画

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

