応用情報技術者 2012年 秋期 午後 問10
プロジェクト計画に関する次の記述を読んで、設問1~3に答えよ。
文具類の販売を行うZ社では、販売予算システムを開発することになった。販売予算システムは、予算登録、予算集計、承認ワークフローの三つのサブシステムから構成される。システム部のY君が、プロジェクトマネージャに任命され、スケジュールを立案することになった。
〔アクティビティリストとプロジェクトスケジュールネットワーク図の作成〕
プロジェクトでは、販売予算システム全体を対象に基本設計を行った後、各サブシステムの詳細設計を開始する。詳細設計では、サブシステムを構成する全てのプログラムの画面項目や処理内容の詳細仕様を決定し、最後にレビューを行う。詳細設計、プログラム作成・テスト、結合テストは、サブシステムごとに行い、サブシステム同士は同時並行に開発を行うことができる。全てのサブシステムの結合テストが完了すると、システム結合テストを開始する。
Y君は、必要なアクティビティ、順序と所要期間を、表1のアクティビティリストにまとめた。

各サブシステムの作業は、表2のサブシステム作業要員リストに基づいて行う。

Y君は、表1を基に、図1のプロジェクトスケジュールネットワーク図を作成した。
アクティビティの最早開始日、最早終了日、最遅開始日、最遅終了日はプロジェクトの開始日を1日目とした日数で表し、休日は考慮しない。最早終了日と最遅終了日の差は余裕日数である。プロジェクトの完了予定日は、開始から185日目となった。
〔プロジェクト期間短縮の検討〕
Y君がプロジェクトの完了予定日を上司に報告したところ、多少コストが増えても構わないから、期間短縮を検討するよう指示された。そこでY君は、期間短縮策として、次の二つの方式を検討した。
方式1:他のプログラムと独立した機能については、サブシステムを構成する個々のプログラムの詳細設計を完了する都度、最後のレビューを待たずに、逐次プログラム作成・テストに着手する。詳細設計とプログラム作成・テストを並行して行うことによって期間を短縮する。予算登録サブシステムでは、設計者とプログラマの日程調整を行えば、この方式で、プログラム作成・テストの開始を20日間早められることが分かった。以後、表1の所要期間のままで、予算登録サブシステムのプログラム作成・テスト完了までの期間を20日間短縮できる。予算集計と承認ワークフローの各サブシステムについては、開発体制などの理由によって、この方式での期間の短縮はできないことが分かった。
方式2:プログラム作成・テストにプログラマを追加投入することによって、期間を短縮する。Y君は、各サブシステムの所要期間の短縮と必要なコストを検討し、表3のプログラム作成・テストの期間短縮策の候補一覧を作成した。表3の番号①~③の期間短縮策の候補は、複数を同時に実施することができる。ただし、それぞれは1回ずつしか実施できない。
↩設問2(2)
↩設問2(2)〔プロジェクト実施要員変更の検討〕
Y君が部内の要員の作業計画を立案していたところ、上司から、R君をより優先度が高い別のプロジェクトに従事させたいので、期間短縮はできなくてもよいから、R君が担当する予定だった作業をQ君に担当させられないか、再検討するよう指示された。そこでY君は、R君と同等の能力をもつQ君が予算集計と承認ワークフローの作業を当初予定の所要期間で順次行うことにし、図1のプロジェクトスケジュールネットワーク図を見直した。見直し後のプロジェクトスケジュールネットワーク図を、図2に示す。
設問1:
問題文を見る図1において、クリティカルパスを構成する一連のアクティビティは何か。一連のアクティビティの記号を、順序に従って、“、”で区切って全て答えよ。
模範解答
A、B1、B2、B3、E
解説
解答の論理構成
- クリティカルパスとは、最早終了日と最遅終了日が一致し、すなわち余裕日数が0になっているアクティビティ列です。
図1の凡例には「ES:最早開始日」「EF:最早終了日」「LS:最遅開始日」「LF:最遅終了日」と示されています。 - 図1の各アクティビティを確認すると、
- 「A」の上下段はともに「1 75」で、余裕0。
- 「B1」は「76」「105」で上下段が一致し余裕0。
- 「B2」は「106」「135」で上下段が一致し余裕0。
- 「B3」は「136」「155」で上下段が一致し余裕0。
- 「E」は「156」「185」で上下段が一致し余裕0。
これらはすべて余裕日数0で直列に接続されています。
- 他経路の例として「C1」は上段「76」「100」、下段「86」「110」と10日の余裕があります。したがってC系列はクリティカルパスになり得ません。同様に「D1」以下も余裕があります。
- 以上より、余裕0で連続する経路は
「A、B1、B2、B3、E」
だけであり、プロジェクト全体の期間「185」日を規定しているクリティカルパスになります。
誤りやすいポイント
- 「図1」で上下段の数字が異なる場合は余裕があることを見落とし、C系列やD系列を誤って選択する。
- クリティカルパスに必ず終端アクティビティ「E」を含めることを失念し、「B3」までで止めてしまう。
- 所要期間だけを合計して最長経路を探そうとし、ネットワーク図上の制約(分岐・合流)を無視してしまう。
FAQ
Q: クリティカルパスは常に最長所要日数の経路ですか?
A: はい。プロジェクト完了日を決定する最長経路であり、余裕日数が0になります。
A: はい。プロジェクト完了日を決定する最長経路であり、余裕日数が0になります。
Q: 途中で余裕0のアクティビティが複数ある場合、すべて同じクリティカルパス上ですか?
A: 接続関係が連続していれば同一クリティカルパス上にありますが、分岐後に再合流するケースでは異なるパスに余裕0が発生することもあります。図を確認して連続しているかを判断してください。
A: 接続関係が連続していれば同一クリティカルパス上にありますが、分岐後に再合流するケースでは異なるパスに余裕0が発生することもあります。図を確認して連続しているかを判断してください。
Q: クリティカルパス上の作業を短縮すると、プロジェクト全体の期間は必ず短縮されますか?
A: そのとおりです。クリティカルパス上の所要期間が短くなると、プロジェクト完了日も同じだけ前倒しされます。
A: そのとおりです。クリティカルパス上の所要期間が短くなると、プロジェクト完了日も同じだけ前倒しされます。
関連キーワード: クリティカルパス、アクティビティ、最早開始日、最遅終了日、余裕日数
(1)方式1及び方式2それぞれの所要期間短縮方法の名称を解答群の中から選び、記号で答えよ。また、各方式によって、プロジェクトの完了予定日は、最短で開始から何日目にすることが可能かを答えよ。
解答群
ア:クラッシング
イ:シミュレーション
ウ:ファストトラッキング
エ:平準化
オ:リードタイム
模範解答
方式1:
名称:ウ
完了予定日:175
方式2:
名称:ア
完了予定日:170
解説
解答の導き方
結論(先に示します)
方式1:名称 ウ(ファストトラッキング)、最短完了日 開始から175日目
方式2:名称 ア(クラッシング)、最短完了日 開始から170日目
方式1:名称 ウ(ファストトラッキング)、最短完了日 開始から175日目
方式2:名称 ア(クラッシング)、最短完了日 開始から170日目
以下は結論に至る段階的な計算と理由です。
- 用いる前提と日付計算のルール
- 図1から主要な最早開始日(ES)と最早終了日(EF)を読み取ると、主要アクティビティは次の通りです(期間は表1の所要期間に基づく)。
- A:ES=1、EF=75(基本設計:75日)
- B1:ES=76、EF=105(詳細設計:30日)
- B2:ES=106、EF=135(プログラム作成・テスト:30日)
- B3:ES=136、EF=155(結合テスト:20日)
- C3:EF=145(予算集計サブシステムの結合テスト)
- D3:EF=115(承認ワークフローの結合テスト)
- E(システム結合テスト):ES=156、EF=185(30日)
- 日数の扱い:最早終了日は で計算します(図1の表示と一致)。
- 方式の名称の判定(設問要求)
- 方式1の記述に「詳細設計を完了する都度、最後のレビューを待たずに…詳細設計とプログラム作成・テストを並行して行う」とあるので、作業順序を重畳して並行化する手法であり、これはファストトラッキングです。したがって名称は「ウ」です。
- 方式2の記述に「プログラム作成・テストにプログラマを追加投入することによって、期間を短縮する」とあるので、リソースを追加して所要期間を短縮する手法であり、これはクラッシングです。したがって名称は「ア」です。
- 方式1(ファストトラッキング)による最短完了日の計算
- 根拠となる記述:「この方式で、プログラム作成・テストの開始を20日間早められることが分かった。」(予算登録サブシステム)
- 図1の値を使い、B2を開始20日早めると、B2の新しい最早開始日は になります。
- するとB3はその翌日から開始:
- 他のサブシステムの結合テスト終了は変わらないため、C3はEF=145、D3はEF=115のままです。
- Eの開始日は三つの結合テストの完了の翌日なので、最大の終了日に依存します:
- よって方式1での最短完了日は開始から175日目となります。
- 方式2(クラッシング)による最短完了日の計算
-
表3の候補(要約):「① B2 30日→15日(追加コスト200)、② C2 25日→15日(追加コスト100)、③ D2 15日→10日(追加コスト50)」。複数を同時に実施できるが各々1回のみです。
-
各候補を適用したときの影響を計算します(クラッシングでは先行関係は維持され、開始日は原則変わりません。つまりB2はB1完了後に開始のままです)。a) ①のみ(B2を30→15に短縮)
- (変わらず)
- 、
- 他は変わらず(C3 EF=145、D3 EF=115)
- →
- 結果:完了は175日目(①のみでは185→175の短縮)。
b) ①+②(B2とC2を同時短縮)- B側:上と同様で 。
- C側:、、よって 、。
- D側は変わらず 。
- → 。
- 結果:完了は170日目。
c) ①+②+③(すべて)- D側を短縮してもD3の終了が早まるだけで(例:)最終的にボトルネックになるのはB3(140)なので、 は変わらず141、。
- 結果:完了は170日目(①+②で達成できる最短に等しい)。
-
以上より、方式2で達成可能な最短完了日は開始から170日目(①と②を同時実施)です。
(まとめ)方式1=ファストトラッキング(ウ)で175日、方式2=クラッシング(ア)で170日が最短となります。
誤りやすいポイント
- ファストトラッキング(方式1)とクラッシング(方式2)を混同すること。前者は順序の重畳(並行化)、後者はリソース追加による所要期間の短縮です。問題文の「逐次…並行して行う」「プログラマを追加投入」の文言で判別します。
- クラッシングで期間を短くしても、先行アクティビティが終わる前に開始できるわけではない点を見落とすこと。先行関係は維持されます。
- E(システム結合テスト)の開始は「B3, C3, D3の完了の翌日」であり、最も遅い終了日が制約になることを忘れがちです。
- 日数計算の端数(含め方):図中は の扱いなので、ここを誤ると1日単位でズレます。
- 余裕(スラック)があるアクティビティを短縮してもプロジェクト全体が短縮されない場合があること。どのアクティビティがクリティカルパス上にあるかを確認してください。
- 同時実施できる短縮策が複数ある場合、最も効果的なのは「クリティカルパス上」や「最終開始を早める複数経路」への介入です。単独で短縮しても他経路により阻まれることがあります。
FAQ
Q: 方式1(ファストトラッキング)では先行アクティビティを完全に無視してよいですか?
A: いいえ。ファストトラッキングは「先行を緩めて並行化する」手法ですが、実務的には依存関係の一部だけを並行化できる場合に限られます。設問では「プログラム作成・テストの開始を20日間早められる」と明示されているため、その範囲でB2をB1の完了前に開始できると解釈します。
A: いいえ。ファストトラッキングは「先行を緩めて並行化する」手法ですが、実務的には依存関係の一部だけを並行化できる場合に限られます。設問では「プログラム作成・テストの開始を20日間早められる」と明示されているため、その範囲でB2をB1の完了前に開始できると解釈します。
Q: 方式2でD2を短縮(③)してもプロジェクト全体が短縮されないのはなぜですか?
A: 図1ではD3のEF=115に対して、プロジェクト全体を決める最も遅い結合テストはB3のEF=155(元の状態)です。D系列は余裕が大きく、D2を短縮しても最終的にEの開始時点を決めるのはより遅い他の経路なので全体には影響しません。
A: 図1ではD3のEF=115に対して、プロジェクト全体を決める最も遅い結合テストはB3のEF=155(元の状態)です。D系列は余裕が大きく、D2を短縮しても最終的にEの開始時点を決めるのはより遅い他の経路なので全体には影響しません。
Q: 方式1と方式2を組み合わせて使うとさらに短縮できますか?
A: 組み合わせればさらに短縮できる場合が多く、実務的には両者を併用して検討します。ただし併用時は「並行化による開始前倒し」と「実際の所要期間短縮」の両方を反映して再計算する必要があります(本問では方式ごとに個別検討を求めています)。
A: 組み合わせればさらに短縮できる場合が多く、実務的には両者を併用して検討します。ただし併用時は「並行化による開始前倒し」と「実際の所要期間短縮」の両方を反映して再計算する必要があります(本問では方式ごとに個別検討を求めています)。
関連キーワード: クリティカルパス法、ファストトラッキング、クラッシング、最早開始/最早終了、余裕日数
(2)表3のプログラム作成・テストの期間短縮策の候補の中で、単独で実施しても、他の候補と組み合わせて実施しても、プロジェクト期間の短縮に貢献しないものはどれか。①〜③の番号で答えよ。
模範解答
③
解説
解答の論理構成
-
現状のクリティカルパスを確認
- 表1によれば、全体に共通する「A基本設計75日」の後、
「B1 30日 → B2 30日 → B3 20日 → E 30日」と続く経路の合計は
75 + 30 + 30 + 20 + 30 = 185日 です。 - 問題文に「プロジェクトの完了予定日は、開始から185日目」とあることからも、この “A‐B1‐B2‐B3‐E” がクリティカルパスであると分かります。
- 表1によれば、全体に共通する「A基本設計75日」の後、
「B1 30日 → B2 30日 → B3 20日 → E 30日」と続く経路の合計は
-
候補①~③を単独で実施した場合
- 番号①は「B2短縮前30日 → 短縮後15日」。
クリティカルパス上の作業を 15日 短縮するので、プロジェクト全体も 185日 → 170日 になります。 - 番号②は「C2短縮前25日 → 短縮後15日」。
C系列は元々175日 で10日の余裕があるため、②だけでは クリティカルパスは依然185日 のままです。 - 番号③は「D2短縮前15日 → 短縮後10日」。
D系列は元々145日 なので、③だけでもやはり 185日 のままです。
- 番号①は「B2短縮前30日 → 短縮後15日」。
-
組み合わせて実施した場合
- ①+②
①でB系列が170日、②でC系列が165日 となり、プロジェクトは 170日。②も期間短縮に貢献しています。 - ①+③
B系列170日、C系列175日、D系列140日。クリティカルパスはC系列になり 175日。③は効果なし。 - ②+③
B系列は変わらず185日。どちらも効果なし。 - ①+②+③
B系列170日、C系列165日、D系列140日。プロジェクトは 170日。③は依然効果なし。
- ①+②
-
結論
番号③「D2 短縮前15日 → 短縮後10日」は、単独でも他候補と同時でもクリティカルパスを短縮できません。
よって解答は ③ です。
誤りやすいポイント
- 追加コストの大小で判断してしまう
(短縮に効果があるかどうかはコストではなくクリティカルパス上かどうかで決まります)。 - “短縮すれば必ず期間も短くなる” と思い込み、余裕(フロート)を確認しない。
- ①を適用した後のクリティカルパスがC系列に移ることに気付かず、②の効果を過小評価してしまう。
FAQ
Q: クリティカルパスはどうやって決まりますか?
A: 全経路の所要期間を合計し、最長になる経路がクリティカルパスです。その経路上の作業は余裕が0日なので、1日でも短縮すればプロジェクト全体が同じだけ短縮します。
A: 全経路の所要期間を合計し、最長になる経路がクリティカルパスです。その経路上の作業は余裕が0日なので、1日でも短縮すればプロジェクト全体が同じだけ短縮します。
Q: 番号②は単独では効果がないのに、①と同時に実施すると効果が出るのはなぜですか?
A: ①を実施するとクリティカルパスがB系列からC系列に移動します。その状態でC系列の②を短縮すると、新しいクリティカルパスがさらに短くなり、結果としてプロジェクト期間も短縮されます。
A: ①を実施するとクリティカルパスがB系列からC系列に移動します。その状態でC系列の②を短縮すると、新しいクリティカルパスがさらに短くなり、結果としてプロジェクト期間も短縮されます。
Q: ③はまったく効果がないのですか?
A: 本問題の範囲(①~③を一度ずつしか適用できない条件)では効果がありません。他のアクティビティをさらに短縮できる余地があれば、③にも意味が出る場合があります。
A: 本問題の範囲(①~③を一度ずつしか適用できない条件)では効果がありません。他のアクティビティをさらに短縮できる余地があれば、③にも意味が出る場合があります。
関連キーワード: クリティカルパス、アクティビティ、フロート、ネットワーク図、プロジェクト短縮
(3)方式2において、プロジェクト全体の期間を最大限短縮するために最低限必要な追加コストは何万円か。
模範解答
300
解説
解答の導き方
-
クリティカルパスの確認
図1を見ると、主要なサブシステムの「結合テスト(B3, C3, D3)」の最早終了日はそれぞれ「B3:155日」「C3:145日」「D3:115日」となっており、システム結合テストEの開始はそれらの翌日(最大値の翌日)であるためプロジェクト完了は185日目になっています。つまり「B系(A→B1→B2→B3)」がクリティカルパスで、B系の余裕日数は0日、C系の余裕は10日、D系の余裕は40日です。 -
表3の候補(方式2)の整理
表3の記載は次のとおりです。
・表3の①は「B2:30→15、追加コスト200(万円)」
・表3の②は「C2:25→15、追加コスト100(万円)」
・表3の③は「D2:15→10、追加コスト50(万円)」 -
各候補がプロジェクト完了日に与える影響(図1の値を基に、日数は包含表記)
- ①のみ(B2を30→15に短縮、追加コスト200万円)
B系は 日まで短くなる。一方でC系は145日、D系は115日のままなので、Eの開始はC系の翌日146日、完了は146〜175日となり、全体は 日短縮されます。 - ②のみ(C2を25→15に短縮、追加コスト100万円)
C系が 日になるが、B系の155日が依然最大なので、プロジェクト全体の終了日は変わらず(短縮なし)。 - ③のみ(D2を15→10に短縮、追加コスト50万円)
D系が 日になるが、B系が最大のままなので短縮なし。
- ①のみ(B2を30→15に短縮、追加コスト200万円)
-
組合せの評価(最大短縮を達成する組合せを探す)
- ①+②:B系 、C系 → 最大はB系140 → E開始141日、完了170日。全体で 日短縮。
- ①+③:B系140、C系145 → 最大はC系145 → 完了175日(①のみと同じ、短縮10日)。
- ②+③:B系155のまま → 短縮なし。
- ①+②+③:B系140、C系135、D系110 → 最大はB系140 → 完了170日(①+②と同じ、短縮15日)。
したがって方式2で達成可能な「プロジェクト全体の最大短縮」は15日であり、それを実現する組合せは①+②または①+②+③です。 -
最低限必要な追加コスト(問題の問い)
15日という「最大短縮」を達成するための最小コストは、候補のうち費用が少ない方を選ぶために①+②を選びます(①+②=、①+②+③は350)。
結論:最低限必要な追加コストは (万円)です。
誤りやすいポイント
- 各候補の短縮日数を単純に合算して考える誤り。クリティカルパスの交代で効果が限定されるため、合算でそのまま全体短縮にはならない。
- 非クリティカルなアクティビティ(余裕がある経路)を短縮しても即座にプロジェクト全体短縮につながらない点を見落とすこと。
- コスト効率(1日当たりの費用)だけで判断し、余裕日数を無視する誤り。安くても効果が出ない場合がある。
- 日数の数え方(開始日を1日目、休日は考慮しない)を忘れてオフバイワンの計算ミスをすること。
- 「方式1」と「方式2」を混同して、それぞれの効果を混ぜて誤った結論を出すこと(本問は方式2のみを評価)。
FAQ
Q: ①(B2の短縮)だけでプロジェクトは15日短縮されないのはなぜですか?
A: ①はB系を15日短縮しますが、短縮後のB系終わり(140日)がC系の145日より早くなるため、最終的なボトルネックがC系に移ります。その結果、全体では日しか短縮されません。
A: ①はB系を15日短縮しますが、短縮後のB系終わり(140日)がC系の145日より早くなるため、最終的なボトルネックがC系に移ります。その結果、全体では日しか短縮されません。
Q: プロジェクト全体を1日でも短くするのに最少コストはいくらですか?
A: 方式2単独で「何らかの短縮」を達成する最少コストは①のみの200(万円)で、これにより10日短縮されます。①以外の単独実施(②または③)は全体短縮になりません。
A: 方式2単独で「何らかの短縮」を達成する最少コストは①のみの200(万円)で、これにより10日短縮されます。①以外の単独実施(②または③)は全体短縮になりません。
Q: 方式1(B系の作業開始を20日早める並行化)と方式2は併用できますか?併用するとどうなるでしょうか?
A: 併用は可能なら効果的です。例えば方式1でB系が20日早まるとB系は日となり、さらに表3の②(C系を10日短縮)を加えればB系135、C系135でE開始は136日、完了は165日となり、合計で日短縮できます(ただし方式1の実現性・コストは別途検討が必要です)。
A: 併用は可能なら効果的です。例えば方式1でB系が20日早まるとB系は日となり、さらに表3の②(C系を10日短縮)を加えればB系135、C系135でE開始は136日、完了は165日となり、合計で日短縮できます(ただし方式1の実現性・コストは別途検討が必要です)。
関連キーワード: クリティカルパス、余裕日数(スラック)、クラッシュ(リソース投入による短縮)、並行作業、ボトルネック
設問3:
問題文を見る模範解答
a:101
b:115
c:111
d:125
解説
解答の論理構成
- 依存関係の確認
【問題文】には
・“基本設計(記号A)” 完了後に各サブシステムの詳細設計が始まる
・見直し後は “C1から下方向に…矢印が…『D1』に接続”
とあるので、D1は “AとC1がともに終わってから着手” という条件になります。 - D1の最早開始日ES=a
AのEFは “1―75”、C1のEFは “76―100” なので、 ES(D1) = 100+1 = 101(引用:図2のC1のEFが “100”) - D1の最早終了日EF=b
所要期間は【表1】の “D1…15日”。
EF(D1) = 101+15-1 = 115 - 後ろ向き計算(遅れ日数の算出)
D1の後続は “D2” と “C2系列” の2経路です。
・D2について
LS(D2) は後続 “D3→E” から逆算し 131(図2のD2下段左)。
ここから求めるとLS(D1)=131-1-15+1=116となります。
・C系列について
C2は “LS=111”(図2のC2下段左)。
この111がD1の締切を5日早めるため、 LF(D1)=111-1=110+15=125、LS(D1)=125-15+1=111
2経路のうち “より厳しい(小さい)値” を採用するのがPERT/CPMのルールです。
したがって
LS(D1)=c=111、LF(D1)=d=125 - 結果
a:101、b:115、c:111、d:125
誤りやすいポイント
- “C1→D1” の矢印を「D1→C1」と読み違え、ESを76にしてしまう。
- 後ろ向き計算で“最も遅くてもよい開始日”は、複数後続があるときに「最小のLS-1」を取る手順を忘れる。
- Duration計算を として1日ずれてしまう(正しくは )。
FAQ
Q: 前後1日を足し引きする理由は何ですか?
A: 本問は “開始日を1日目と数え、終了日も日数に含める” という前提なので、 「次の作業は前作業の終了日の翌日から開始」です。したがって
前向き計算では +1、後ろ向き計算では −1を入れます。
A: 本問は “開始日を1日目と数え、終了日も日数に含める” という前提なので、 「次の作業は前作業の終了日の翌日から開始」です。したがって
前向き計算では +1、後ろ向き計算では −1を入れます。
Q: LSを求めるとき、後続が複数なら平均を取るのですか?
A: いいえ。“最も早く着手しなければならない(=制約の厳しい)後続” を基準にします。
具体的には「後続のLSの最小値 −1」を使います。
A: いいえ。“最も早く着手しなければならない(=制約の厳しい)後続” を基準にします。
具体的には「後続のLSの最小値 −1」を使います。
Q: 余裕日数はどこで確認できますか?
A: 図中の “最遅終了日−最早終了日” です。D1の場合は125−115=10日が余裕です。
A: 図中の “最遅終了日−最早終了日” です。D1の場合は125−115=10日が余裕です。
関連キーワード: PERT, クリティカルパス、前方計算、後方計算、余裕日数





