<div class="codehilite">
<pre data-enlighter-language="generic">{
"title": "IPA午前Ⅱ:クリティカルパス法(CPM)によるプロジェクト期間の算定",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": [
"スケジュール管理",
"品質管理"
],
"tags": [
"IPA午前Ⅱ",
"クリティカルパス",
"CPM",
"アローダイアグラム",
"プロジェクト期間"
],
"summary": "IPA午前Ⅱ試験で頻出するクリティカルパス法(CPM)について、アローダイアグラムを用いたプロジェクト期間の算定方法と、最早開始時刻・最遅開始時刻の計算手順を具体例を交えて解説します。",
"mermaid": true,
"verify_level": "業務ドラフト(未検証)",
"tweet_hint": "IPA午前Ⅱ対策!クリティカルパス法をマスターしてプロジェクト期間を正確に算定しよう。アローダイアグラムの読み解き方も解説。
#IPA #クリティカルパス #プロジェクトマネジメント",
"link_hints": [
"https://www.ipa.go.jp/",
"https://www.pmi-japan.org/"
]
}
</pre>
</div>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">IPA午前Ⅱ:クリティカルパス法(CPM)によるプロジェクト期間の算定</h1>
<p>クリティカルパス法は、プロジェクトの全工程の中で、最長となる経路(クリティカルパス)を特定し、プロジェクト完了までの最短所要時間を算定する手法である。</p>
<h2 class="wp-block-heading">背景</h2>
<p>プロジェクト管理において、多数の作業と複雑な依存関係を持つ場合、全体の完了時期を正確に予測することは重要な課題である。作業の遅延はプロジェクト全体の遅延に直結し、コスト増や品質低下のリスクを高める。特に、どの作業がプロジェクト期間に最も影響を与えるかを把握することは、効果的なリスク管理とスケジュール最適化のために不可欠である[1]。</p>
<h2 class="wp-block-heading">問題点</h2>
<p>一般的なプロジェクトにおいて、個々の作業の進捗を管理するだけでは、プロジェクト全体のボトルネックや潜在的な遅延要因を特定しにくい。どの作業が遅れても許容範囲内であり、どの作業が一日でも遅れると全体が遅延するのかを明確に区別できなければ、限られた資源を最適に配分し、リスクに備えることが困難となる。この問題に対し、クリティカルパス法は定量的なアプローチを提供する。</p>
<h2 class="wp-block-heading">計算手順</h2>
<p>クリティカルパス法では、以下のステップでプロジェクト期間を算定し、クリティカルパスを特定する。</p>
<h3 class="wp-block-heading">1. アローダイアグラムの作成</h3>
<p>アローダイアグラムは、プロジェクトの作業とそれらの順序関係を図示する。ノード(結合点)はイベント(作業の開始または完了)を表し、矢印(アクティビティ)は作業とその所要時間を表す。ダミーアクティビティ(所要時間0)は、論理的な依存関係のみを示す場合に用いられる。</p>
<p><strong>例:</strong>
以下の作業データに基づき、アローダイアグラムを作成する。</p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">作業</th>
<th style="text-align:left;">所要日数</th>
<th style="text-align:left;">先行作業</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">–</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">A</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">6</td>
<td style="text-align:left;">A</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">B</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">C</td>
</tr>
<tr>
<td style="text-align:left;">F</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">D, E</td>
</tr>
</tbody>
</table></figure>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph LR
subgraph プロジェクト作業
A("作業A: 5日")
B("作業B: 4日")
C("作業C: 6日")
D("作業D: 7日")
E("作業E: 3日")
F("作業F: 2日")
end
Start["開始"] --> |開始イベント| A;
A --> |終了イベント| B;
A --> |終了イベント| C;
B --> |終了イベント| D;
C --> |終了イベント| E;
D --> |終了イベント| F;
E --> |終了イベント| F;
F --> |完了イベント| End["完了"];
style A fill:#DDF,stroke:#333,stroke-width:2px;
style B fill:#DDF,stroke:#333,stroke-width:2px;
style C fill:#DDF,stroke:#333,stroke-width:2px;
style D fill:#DDF,stroke:#333,stroke-width:2px;
style E fill:#DDF,stroke:#333,stroke-width:2px;
style F fill:#DDF,stroke:#333,stroke-width:2px;
style Start fill:#CCF,stroke:#333,stroke-width:2px;
style End fill:#CCF,stroke:#333,stroke-width:2px;
</pre></div>
<h3 class="wp-block-heading">2. 早最開始時刻(ES)と最早終了時刻(EF)の計算(フォワードパス)</h3>
<p>プロジェクト開始から順に、各作業が最も早く開始できる時刻(ES)と最も早く終了できる時刻(EF)を計算する。</p>
<ul class="wp-block-list">
<li><p><strong>ES</strong>: 直前の先行作業のEFの最大値</p></li>
<li><p><strong>EF</strong>: ES + 当該作業の所要日数</p></li>
</ul>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">作業</th>
<th style="text-align:left;">所要日数</th>
<th style="text-align:left;">先行作業</th>
<th style="text-align:left;">ES</th>
<th style="text-align:left;">EF</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">–</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">5</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">9</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">6</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">11</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">B</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">16</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">C</td>
<td style="text-align:left;">11</td>
<td style="text-align:left;">14</td>
</tr>
<tr>
<td style="text-align:left;">F</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">D, E</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">18</td>
</tr>
</tbody>
</table></figure>
<p>最終作業FのEF(18日)が、このプロジェクトの最短完了期間となる。</p>
<h3 class="wp-block-heading">3. 最遅終了時刻(LF)と最遅開始時刻(LS)の計算(バックワードパス)</h3>
<p>プロジェクト完了から逆算して、プロジェクトの完了期間を遅らせないために各作業が最も遅く終了できる時刻(LF)と最も遅く開始できる時刻(LS)を計算する。</p>
<ul class="wp-block-list">
<li><p><strong>LF</strong>: 直後の後続作業のLSの最小値</p></li>
<li><p><strong>LS</strong>: LF – 当該作業の所要日数
プロジェクトの完了期間は最短完了期間(18日)に設定されるため、最終作業FのLFは18日となる。</p></li>
</ul>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">作業</th>
<th style="text-align:left;">所要日数</th>
<th style="text-align:left;">後続作業</th>
<th style="text-align:left;">LF</th>
<th style="text-align:left;">LS</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">F</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">–</td>
<td style="text-align:left;">18</td>
<td style="text-align:left;">16</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">F</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">9</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">F</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">13</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">D</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">5</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">6</td>
<td style="text-align:left;">E</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">7</td>
</tr>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">B, C</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">0</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">4. 余裕時間(スラック)の算定とクリティカルパスの特定</h3>
<p>各作業の余裕時間(スラック)は「LS – ES」または「LF – EF」で計算される。</p>
<ul class="wp-block-list">
<li><strong>余裕時間</strong>: LS – ES</li>
</ul>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">作業</th>
<th style="text-align:left;">所要日数</th>
<th style="text-align:left;">ES</th>
<th style="text-align:left;">EF</th>
<th style="text-align:left;">LS</th>
<th style="text-align:left;">LF</th>
<th style="text-align:left;">余裕時間</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">4</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">6</td>
<td style="text-align:left;">5</td>
<td style="text-align:left;">11</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">2</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">9</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">11</td>
<td style="text-align:left;">14</td>
<td style="text-align:left;">13</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">2</td>
</tr>
<tr>
<td style="text-align:left;">F</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">18</td>
<td style="text-align:left;">16</td>
<td style="text-align:left;">18</td>
<td style="text-align:left;">0</td>
</tr>
</tbody>
</table></figure>
<p>余裕時間がゼロの作業(A, B, D, F)の連なりがクリティカルパスである。この経路上の作業は一切遅延が許されず、一つでも遅れるとプロジェクト全体の完了が遅れる。</p>
<h2 class="wp-block-heading">短い要点</h2>
<ul class="wp-block-list">
<li><p>クリティカルパス法は、プロジェクトの最長経路(クリティカルパス)を特定する。</p></li>
<li><p>プロジェクトの最短完了期間は、クリティカルパス上の作業の合計期間である。</p></li>
<li><p>余裕時間ゼロの作業がクリティカルパスを構成する。</p></li>
<li><p>最早開始/終了時刻は順方向に、最遅開始/終了時刻は逆方向に計算する。</p></li>
<li><p>アローダイアグラムは作業間の依存関係を可視化するツールである。</p></li>
</ul>
<hr/>
<p>[1] 独立行政法人 情報処理推進機構. プロジェクトマネジメント知識体系ガイド (PMBOK®ガイド) を参照. 2024年7月30日最終確認.</p>
{
"title": "IPA午前Ⅱ:クリティカルパス法(CPM)によるプロジェクト期間の算定",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": [
"スケジュール管理",
"品質管理"
],
"tags": [
"IPA午前Ⅱ",
"クリティカルパス",
"CPM",
"アローダイアグラム",
"プロジェクト期間"
],
"summary": "IPA午前Ⅱ試験で頻出するクリティカルパス法(CPM)について、アローダイアグラムを用いたプロジェクト期間の算定方法と、最早開始時刻・最遅開始時刻の計算手順を具体例を交えて解説します。",
"mermaid": true,
"verify_level": "業務ドラフト(未検証)",
"tweet_hint": "IPA午前Ⅱ対策!クリティカルパス法をマスターしてプロジェクト期間を正確に算定しよう。アローダイアグラムの読み解き方も解説。 #IPA #クリティカルパス #プロジェクトマネジメント",
"link_hints": [
"https://www.ipa.go.jp/",
"https://www.pmi-japan.org/"
]
}
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
IPA午前Ⅱ:クリティカルパス法(CPM)によるプロジェクト期間の算定
クリティカルパス法は、プロジェクトの全工程の中で、最長となる経路(クリティカルパス)を特定し、プロジェクト完了までの最短所要時間を算定する手法である。
背景
プロジェクト管理において、多数の作業と複雑な依存関係を持つ場合、全体の完了時期を正確に予測することは重要な課題である。作業の遅延はプロジェクト全体の遅延に直結し、コスト増や品質低下のリスクを高める。特に、どの作業がプロジェクト期間に最も影響を与えるかを把握することは、効果的なリスク管理とスケジュール最適化のために不可欠である[1]。
問題点
一般的なプロジェクトにおいて、個々の作業の進捗を管理するだけでは、プロジェクト全体のボトルネックや潜在的な遅延要因を特定しにくい。どの作業が遅れても許容範囲内であり、どの作業が一日でも遅れると全体が遅延するのかを明確に区別できなければ、限られた資源を最適に配分し、リスクに備えることが困難となる。この問題に対し、クリティカルパス法は定量的なアプローチを提供する。
計算手順
クリティカルパス法では、以下のステップでプロジェクト期間を算定し、クリティカルパスを特定する。
1. アローダイアグラムの作成
アローダイアグラムは、プロジェクトの作業とそれらの順序関係を図示する。ノード(結合点)はイベント(作業の開始または完了)を表し、矢印(アクティビティ)は作業とその所要時間を表す。ダミーアクティビティ(所要時間0)は、論理的な依存関係のみを示す場合に用いられる。
例:
以下の作業データに基づき、アローダイアグラムを作成する。
作業
所要日数
先行作業
A
5
–
B
4
A
C
6
A
D
7
B
E
3
C
F
2
D, E
graph LR
subgraph プロジェクト作業
A("作業A: 5日")
B("作業B: 4日")
C("作業C: 6日")
D("作業D: 7日")
E("作業E: 3日")
F("作業F: 2日")
end
Start["開始"] --> |開始イベント| A;
A --> |終了イベント| B;
A --> |終了イベント| C;
B --> |終了イベント| D;
C --> |終了イベント| E;
D --> |終了イベント| F;
E --> |終了イベント| F;
F --> |完了イベント| End["完了"];
style A fill:#DDF,stroke:#333,stroke-width:2px;
style B fill:#DDF,stroke:#333,stroke-width:2px;
style C fill:#DDF,stroke:#333,stroke-width:2px;
style D fill:#DDF,stroke:#333,stroke-width:2px;
style E fill:#DDF,stroke:#333,stroke-width:2px;
style F fill:#DDF,stroke:#333,stroke-width:2px;
style Start fill:#CCF,stroke:#333,stroke-width:2px;
style End fill:#CCF,stroke:#333,stroke-width:2px;
2. 早最開始時刻(ES)と最早終了時刻(EF)の計算(フォワードパス)
プロジェクト開始から順に、各作業が最も早く開始できる時刻(ES)と最も早く終了できる時刻(EF)を計算する。
ES : 直前の先行作業のEFの最大値
EF : ES + 当該作業の所要日数
作業
所要日数
先行作業
ES
EF
A
5
–
0
5
B
4
A
5
9
C
6
A
5
11
D
7
B
9
16
E
3
C
11
14
F
2
D, E
16
18
最終作業FのEF(18日)が、このプロジェクトの最短完了期間となる。
3. 最遅終了時刻(LF)と最遅開始時刻(LS)の計算(バックワードパス)
プロジェクト完了から逆算して、プロジェクトの完了期間を遅らせないために各作業が最も遅く終了できる時刻(LF)と最も遅く開始できる時刻(LS)を計算する。
作業
所要日数
後続作業
LF
LS
F
2
–
18
16
D
7
F
16
9
E
3
F
16
13
B
4
D
9
5
C
6
E
13
7
A
5
B, C
5
0
4. 余裕時間(スラック)の算定とクリティカルパスの特定
各作業の余裕時間(スラック)は「LS – ES」または「LF – EF」で計算される。
作業
所要日数
ES
EF
LS
LF
余裕時間
A
5
0
5
0
5
0
B
4
5
9
5
9
0
C
6
5
11
7
13
2
D
7
9
16
9
16
0
E
3
11
14
13
16
2
F
2
16
18
16
18
0
余裕時間がゼロの作業(A, B, D, F)の連なりがクリティカルパスである。この経路上の作業は一切遅延が許されず、一つでも遅れるとプロジェクト全体の完了が遅れる。
短い要点
クリティカルパス法は、プロジェクトの最長経路(クリティカルパス)を特定する。
プロジェクトの最短完了期間は、クリティカルパス上の作業の合計期間である。
余裕時間ゼロの作業がクリティカルパスを構成する。
最早開始/終了時刻は順方向に、最遅開始/終了時刻は逆方向に計算する。
アローダイアグラムは作業間の依存関係を可視化するツールである。
[1] 独立行政法人 情報処理推進機構. プロジェクトマネジメント知識体系ガイド (PMBOK®ガイド) を参照. 2024年7月30日最終確認.
コメント