平成23年秋期試験午後問題 問6

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】

問6 プロジェクトマネジメント

プロジェクトの要員計画に関する次の記述を読んで,設問1~3に答えよ。

 製造会社のA社では,社内の情報システムを再構築することになった。新システムは,将来の保守性を考慮して,既存システムの改修による機能強化ではなく,全て新規に開発する。開発が大規模になることから,要員を確保しやすいよう,2期(第一期と第二期)に分けて開発することになった。 新システムの開発は,A社の要員と,システムの保守を委託しているSI企業B社の要員との共同体制で行うことにした。 既存システムの開発実績を基に,開発規模や要員の生産性などを推定して,プロジェクトの要員計画を作成する。

〔プロジェクトの説明〕
  • 新システムの開発規模は,第一期及び第二期ともに 480k ステップである。
  • 両期ともにウォーターフォールモデルに基づいて,外部設計,内部設計,プログラム開発(単体テストを含む),結合テスト及び総合テストの五つの工程に分ける。
  • 各工程での要員計画の前提条件は,次のとおりである。
    1. 各月のA社の要員数は,第一期及び第二期の全期間を通して13名に固定する。
    2. A社の要員には,全期間を通して全員に作業を常に割り当てる。
    3. プログラム開発工程には,第一期及び第二期ともにA社の要員を割り当てない。
    4. 各月の必要要員のうち,A社の要員だけでは不足する場合には,B社の要員を割り当てる。
  • 第一期は平成24年1月から開始する。第二期は第一期のプログラム開発の開始月から並行して開始する予定である。

設問1

要員数の算出に関する次の記述中の に入れる正しい答えを,解答群の中から選べ。

 第一期における各工程の生産性,工数及び配分月数を表1のとおりに設定した。生産性とは,各工程での1人月当たりの開発規模であり,配分月数とは,あらかじめ各工程に設定した開発期間(月数)である。
 各工程の工数は次の式で算出する。
pm06_1.gif
 各工程の各月の要員数を求めるために,各月の平均要員数を次の式によって算出し,その値を該当する工程の各月の要員数とする。
pm06_2.gif
 例えば,外部設計工程では,平成24年1月~3月のB社の要員数は,各月ともb人になる。同様にして,第一期及び第二期の全工程についてB社の要員数を求める。ここで,第二期の各工程の生産性,工数及び配分月数は第一期に同じとする。
a に関する解答群
  • 52
  • 60
  • 68
  • 72
  • 80
b に関する解答群
  • 2
  • 3
  • 4
  • 15
  • 16
  • 17
解答選択欄
  • a:
  • b:
  • a=
  • b=

解説

aについて〕
結合テストの工数ですが、設問で与えられた以下の式を用いて求めます。
pm06_4.gif
開発規模は、上記の式に他のいずれかの工程の生産性・工数を代入することで求めることができます。例として外部設計の値を代入すると、

 48=開発規模/10
 開発規模=480(kステップ)

以上より開発規模は480kステップとわかります。結合テストの生産性は8kステップなので、工数aは、

 480÷8=60(人月)

a=イ:60

bについて〕
各月の平均要員数は以下の式で求められます。
pm06_2.gif
外部設計工程は工数48人月、配分月数3カ月のため、

 平均要員数=48÷3=16(人)

と計算できます。A社の要員数は13名で全期間を通じて全員に作業を割り当てるという条件があるため、16人のうち13名をA社の要員、不足する3名をB社の要員で賄うことになります。

b=イ:3

設問2

開発スケジュール案の検討に関する次の記述中の に入れる正しい答えを,解答群の中から選べ。

 各月でB社の要員数がばらついていることが分かった。そこで,プログラム開発工程の配分月数を調整して,各月のB社の要員数をできるだけ平準化する。納期の制約から,プログラム開発工程の配分月数は,3~5となる。
 第一期及び第二期ともにプログラム開発工程の配分月数を 3 とした開発スケジュール案1と,配分月数を 4 とした開発スケジュール案2を検討した。しかし,案1ではc,案2ではdが,プロジェクトの説明(3)の前提条件②を満たせないことが分かった。
 この問題は,プログラム開発工程の配分月数を,"e"又は"第一期を 5 に第二期を 4 にする"ことで解消できる。後者を選択した場合の開発スケジュールは表2のようになる。
pm06_3.gif
c,d に関する解答群
  • 平成24年11月
  • 平成24年12月
  • 平成25年 1月
  • 平成25年 2月
  • 平成25年 3月
  • 平成25年 4月
e に関する解答群
  • 第一期を3に第二期を4にする
  • 第一期を3に第二期を5にする
  • 第一期を4に第二期を3にする
  • 第一期を4に第二期を5にする
解答選択欄
  • c:
  • d:
  • e:
  • c=
  • d=
  • e=

解説

cdについて〕
第一期及び第二期のプログラム開発工程の配分月数を両方とも 3 又は 4 とした場合には、要員計画の前提条件②「A社の要員には,全期間を通じて全員に作業を常に割り当てる」を満たさなくなることが指摘されています。

まず配分月数を3とした場合の開発スケジュールは以下のようになります。
pm06_5.gif
表からわかるように、この開発スケジュールでは平成25年3月に行う作業がプログラム開発工程だけになっています。要員計画には「プログラム開発工程にはA社の要員を割り当てない」という前提条件があり、この月にはA社の要員に割り当てる他の作業がないため前提条件②を満たすことができません。

c=オ:平成25年3月

次に配分月数を共に4とした場合の開発スケジュールは以下のようになります。
pm06_6.gif
この開発スケジュールでは平成25年4月に行う作業がプログラム開発工程だけになってしまうため、先程と同様に前提条件②を満たしません。

d=カ:平成25年4月

eについて〕
スケジュールがプログラム開発のみになりA社の要員に割り当てる作業が無くなってしまうことを避けるためには、第一期の総合テストと第二期のプログラム開発の完了を揃える必要があります。そのためには、
  • 第一期のプログラム開発~結合テスト~総合テスト
  • 第二期の外部設計~内部設計~プログラム開発
の期間が同じになるように、それぞれのプログラム開発工程に月数を配分しなければなりません。

第一期のプログラム開発の配分月数をxとすると、第一期のプログラム開発~総合テストの期間は、

 x+2+3(カ月)

と表すことができます。そして第二期のプログラム開発の配分月数をyとすると、第二期の外部設計~プログラム開発の期間は、

 3+3+y(カ月)

と表すことができます。この2つの期間が同じになるときのxとyの関係は、

 x+2+3=3+3+y
 x+5=6+y
 x=y+1

となります。つまり第一期の配分月数を第二期のものよりも1ヶ月長くすれば2つの期間を同じにできることになります。

選択肢のうち、唯一この条件を満たす「ウ」が正解です。

e=ウ:第一期を4に第二期を3に

設問3

最終的な要員計画に関する次の記述中の に入れる適切な答えを,解答群の中から選べ。

 最終的な要員計画として,プログラム開発工程の配分月数を,第一期を 5 に第二期を 4 にする案を選択した。
 第一期及び第二期の各工程における各月の平均要員数を算出する。その値を各月の要員数とすると,各月の総要員数のピーク時はfg人となり,その月だけ他の月よりも要員数が突出する。ピークを減らして,その月と前後の月の3か月の要員数を同じにするためには,当該月のhとすればよい。
 なお,当該月の作業の一部を同一工程内の前月に移動することを"前倒し"と呼び,後月に移動することを"後ろ倒し"と呼んでいる。
f に関する解答群
  • 平成24年 7月
  • 平成24年10月
  • 平成24年12月
  • 平成25年 1月
  • 平成25年 2月
g に関する解答群
  • 56
  • 59
  • 63
  • 66
  • 70
h に関する解答群
  • 第一期及び第二期の作業をともに前倒し
  • 第一期及び第二期の作業をともに後ろ倒し
  • 第一期の作業を前倒しとし,第二期の作業を後ろ倒し
  • 第一期の作業を後ろ倒しとし,第二期の作業を前倒し
解答選択欄
  • f:
  • g:
  • h:
  • f=
  • g=
  • h=

解説

fgについて〕
表1を基に各工程の平均要員数を計算すると以下のようになります。

[外部設計] 48÷3=16(人)
[内部設計] 80÷3=26.66…(切上げ)→27(人)
[第一期:プログラム開発] 160÷5=32(人)
[第二期:プログラム開発] 160÷4=40(人)
[結合テスト] 60÷2=30(人)
[総合テスト] 48÷3=16(人)

この要員数を表2の開発スケジュール表に適切に記入していくと次のようになります。
pm06_7.gif
表より総要員数のピークは平成25年1月で要員数は70人とわかります。

f=エ:平成25年1月
 g=オ:70

hについて〕
3か月の要員数を同じにするということなので、各月の要員数は3つの月の要員数の平均値になります。ピークの前月の要員数は57人、ピーク月は70人、ピークの翌月は56人なので調整目標の要員数は以下のように計算できます。

 (57+70+56)÷3=61(人)

この要員数にするためにはピーク月の作業のうち4人月分を前倒し、5人月分を後ろ倒しする必要があります。設問の論点となっている「どちらをどの方向に移動させるか」については、スケジュール表においてピーク月が"第二期のプログラム開発の開始月"に当たることに着目します。第一期の結合テストは既に前月から開始されていて前倒し可能なのに対し、第二期のプログラム開発工程は前工程にあたる内部設計の完了後でなければ開始できません。すなわちスケジュール上の都合で前倒しを行うことができるのは第一期に限られます。
したがって前倒しの対象は第一期の作業に、後ろ倒しの対象は第二期の作業にするのが適切です。

h=ウ:第一期の作業を前倒しとし,第二期の作業を後ろ倒し

Pagetop