<div class="codehilite">
<pre data-enlighter-language="generic"><!--
{
"title": "IPA午前Ⅱ:アローダイアグラムにおけるクリティカルパスの計算",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": [
"IPA午前Ⅱ",
"スケジュール管理",
"品質管理"
],
"tags": [
"クリティカルパス",
"アローダイアグラム",
"プロジェクト管理",
"最早結合点時刻",
"最遅結合点時刻",
"PMBOK"
],
"summary": "IPA午前Ⅱ試験で頻出するアローダイアグラムを用いたクリティカルパス計算について、具体的な手順と背景を解説します。",
"mermaid": true,
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ試験対策!アローダイアグラムとクリティカルパス計算の基本を解説。これでプロジェクトスケジュールの肝がわかる! #IPA午前Ⅱ #クリティカルパス",
"link_hints": [
"アローダイアグラム",
"プロジェクト管理",
"クリティカルパス法"
]
}
-->
</pre>
</div>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">IPA午前Ⅱ:アローダイアグラムにおけるクリティカルパスの計算</h1>
<p>アローダイアグラムにおけるクリティカルパスの計算は、プロジェクトの完了期間を特定し、遅延許容度を把握するための重要な手法であり、プロジェクト管理の効率化とリスク軽減の核となる。</p>
<h2 class="wp-block-heading">背景</h2>
<p>プロジェクト管理において、スケジュール作成は最も重要な要素の一つである。多数の作業が相互に依存し、それぞれに所要期間が異なる複雑なプロジェクトでは、どの作業がプロジェクト全体の完了に最も影響を与えるかを把握する必要がある。アローダイアグラムは、このようなプロジェクトの各作業とその依存関係を視覚的に表現するツールとして広く利用される。</p>
<p>アローダイアグラムでは、作業(アクティビティ)を矢印で、作業の開始・完了時点(イベント)をノード(結合点)で示す。これにより、作業の前後関係や並行作業を明確にできる。このダイアグラムを用いて、プロジェクト全体の所要期間を決定する最も長い経路、すなわち「クリティカルパス」を特定する手法が、クリティカルパス法(Critical Path Method: CPM)である[1]。クリティカルパス上の作業は、わずかな遅延もプロジェクト全体の完了時期に直接影響を与えるため、厳密な管理が求められる。</p>
<h2 class="wp-block-heading">問題点</h2>
<p>複数の経路が存在するアローダイアグラムにおいて、どの経路がクリティカルパスであるかを直感的に判断するのは困難である。特に、大規模なプロジェクトでは、作業数が膨大になり、各作業の所要期間や依存関係が複雑に絡み合うため、プロジェクトの完了時期を正確に見積もり、遅延のリスクを適切に管理するための明確な計算手順が必要となる。遅延が許されない作業を特定し、プロジェクトのボトルネックを把握できなければ、効率的な資源配分やリスク対応が難しくなる[2]。</p>
<h2 class="wp-block-heading">計算/手順</h2>
<p>クリティカルパスを計算するためには、各結合点の最早結合点時刻(Earliest Event Time: EET)と最遅結合点時刻(Latest Event Time: LET)を算出する。</p>
<h3 class="wp-block-heading">1. 最早結合点時刻(EET)の計算</h3>
<p>EETは、各結合点に到達するために必要な最短時間である。プロジェクトの開始点から順に、以下の手順で計算する。</p>
<ul class="wp-block-list">
<li><p>開始結合点のEETは0とする。</p></li>
<li><p>ある結合点のEETは、その結合点に至る全ての経路のEETに作業時間を加算した値のうち、最も大きいものとする。</p>
<ul>
<li><code>EET(結合点J) = Max(EET(結合点I) + 作業時間(I→J))</code></li>
</ul></li>
</ul>
<h3 class="wp-block-heading">2. 最遅結合点時刻(LET)の計算</h3>
<p>LETは、各結合点が遅れてもプロジェクト全体の完了時期に影響が出ない許容最大時間である。プロジェクトの終了点から逆順に、以下の手順で計算する。</p>
<ul class="wp-block-list">
<li><p>終了結合点のLETは、そのEETと同じ値とする。</p></li>
<li><p>ある結合点のLETは、その結合点から出発する全ての経路のLETから作業時間を減算した値のうち、最も小さいものとする。</p>
<ul>
<li><code>LET(結合点I) = Min(LET(結合点J) - 作業時間(I→J))</code></li>
</ul></li>
</ul>
<h3 class="wp-block-heading">3. クリティカルパスの特定</h3>
<p>EETとLETの計算後、各結合点における余裕時間(スラック)は <code>LET - EET</code> で算出される。クリティカルパスは、全ての結合点で余裕時間がゼロとなる経路である[3]。</p>
<h3 class="wp-block-heading">計算例</h3>
<p>以下の作業と所要期間を持つプロジェクトのアローダイアグラムを考える。</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;">–</td>
<td style="text-align:left;">3</td>
</tr>
<tr>
<td style="text-align:left;">B</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">4</td>
</tr>
<tr>
<td style="text-align:left;">C</td>
<td style="text-align:left;">A</td>
<td style="text-align:left;">2</td>
</tr>
<tr>
<td style="text-align:left;">D</td>
<td style="text-align:left;">B, C</td>
<td style="text-align:left;">5</td>
</tr>
<tr>
<td style="text-align:left;">E</td>
<td style="text-align:left;">D</td>
<td style="text-align:left;">2</td>
</tr>
</tbody>
</table></figure>
<h4 class="wp-block-heading">アローダイアグラム</h4>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
subgraph プロジェクト作業
A("開始") -->|作業A("3日")| B1("結合点1")
B1 -->|作業B("4日")| C1("結合点2")
A -->|作業C("2日")| D1("結合点3")
C1 -->|作業D("5日")| E1("結合点4")
D1 -->|作業D("5日")| E1
E1 -->|作業E("2日")| F("終了")
end
</pre></div>
<h4 class="wp-block-heading">EETとLETの計算</h4>
<ol class="wp-block-list">
<li><p><strong>結合点A (開始)</strong></p>
<ul>
<li><p>EET = 0</p></li>
<li><p>LET = 0 (終了からの逆算により決定)</p></li>
</ul></li>
<li><p><strong>結合点B1 (作業A完了)</strong></p>
<ul>
<li><p>EET = EET(A) + 作業A(3) = 0 + 3 = 3</p></li>
<li><p>LET = Min(LET(C1) – 作業B(4), LET(D1) – 作業C(2))</p></li>
</ul></li>
<li><p><strong>結合点D1 (作業C完了)</strong></p>
<ul>
<li><p>EET = EET(A) + 作業C(2) = 0 + 2 = 2</p></li>
<li><p>LET = LET(E1) – 作業D(5)</p></li>
</ul></li>
<li><p><strong>結合点C1 (作業B完了)</strong></p>
<ul>
<li><p>EET = EET(B1) + 作業B(4) = 3 + 4 = 7</p></li>
<li><p>LET = LET(E1) – 作業D(5)</p></li>
</ul></li>
<li><p><strong>結合点E1 (作業D完了)</strong></p>
<ul>
<li><p>EET = Max(EET(C1) + 作業D(5), EET(D1) + 作業D(5))</p>
<ul>
<li><p>経路A-B-D: 7 + 5 = 12</p></li>
<li><p>経路A-C-D: 2 + 5 = 7</p></li>
<li><p>したがって、EET(E1) = 12</p></li>
</ul></li>
<li><p>LET = LET(F) – 作業E(2)</p></li>
</ul></li>
<li><p><strong>結合点F (終了)</strong></p>
<ul>
<li><p>EET = EET(E1) + 作業E(2) = 12 + 2 = 14</p></li>
<li><p>LET = EET(F) = 14</p></li>
</ul></li>
</ol>
<p><strong>EETの確定値:</strong></p>
<ul class="wp-block-list">
<li><p>A: 0</p></li>
<li><p>B1: 3</p></li>
<li><p>C1: 7 (A→B1→C1 = 0+3+4=7)</p></li>
<li><p>D1: 2 (A→D1 = 0+2=2)</p></li>
<li><p>E1: 12 (Max(A-B-D: 7+5=12, A-C-D: 2+5=7))</p></li>
<li><p>F: 14 (E1→F = 12+2=14)</p></li>
</ul>
<p><strong>LETの確定値(Fから逆算):</strong></p>
<ul class="wp-block-list">
<li><p>F: 14 (EETと同じ)</p></li>
<li><p>E1: LET(F) – 作業E(2) = 14 – 2 = 12</p></li>
<li><p>C1: LET(E1) – 作業D(5) = 12 – 5 = 7</p></li>
<li><p>D1: LET(E1) – 作業D(5) = 12 – 5 = 7</p></li>
<li><p>B1: LET(C1) – 作業B(4) = 7 – 4 = 3</p></li>
<li><p>A: Min(LET(B1) – 作業A(3), LET(D1) – 作業C(2)) = Min(3-3=0, 7-2=5) = 0</p></li>
</ul>
<p><strong>結果のまとめ:</strong></p>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">結合点</th>
<th style="text-align:left;">EET</th>
<th style="text-align:left;">LET</th>
<th style="text-align:left;">余裕時間 (LET – EET)</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">A</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">0</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">B1</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">3</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">C1</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">D1</td>
<td style="text-align:left;">2</td>
<td style="text-align:left;">7</td>
<td style="text-align:left;">5</td>
</tr>
<tr>
<td style="text-align:left;">E1</td>
<td style="text-align:left;">12</td>
<td style="text-align:left;">12</td>
<td style="text-align:left;">0</td>
</tr>
<tr>
<td style="text-align:left;">F</td>
<td style="text-align:left;">14</td>
<td style="text-align:left;">14</td>
<td style="text-align:left;">0</td>
</tr>
</tbody>
</table></figure>
<p>余裕時間がゼロとなる結合点を繋ぐ経路がクリティカルパスである。
この例では、<strong>A → B1 → C1 → E1 → F</strong> の経路(作業A→B→D→E)がクリティカルパスとなる。この経路の所要期間は <code>3 + 4 + 5 + 2 = 14</code> 日であり、これがプロジェクトの最短完了期間となる。</p>
<h2 class="wp-block-heading">要点</h2>
<ul class="wp-block-list">
<li><p>アローダイアグラムは、プロジェクトの作業と依存関係を図示する。</p></li>
<li><p>最早結合点時刻(EET)は、開始点から順に進む最短到達時刻。</p></li>
<li><p>最遅結合点時刻(LET)は、終了点から逆算して遅延を許容する最大時刻。</p></li>
<li><p>クリティカルパスは、EETとLETが等しい(余裕時間がゼロの)結合点を結ぶ経路である。</p></li>
<li><p>クリティカルパス上の作業は、プロジェクト全体の完了時期に直接影響するため、遅延が許されない。</p></li>
</ul>
<hr/>
<p>参照:
[1] IPA 独立行政法人 情報処理推進機構. “ソフトウェア開発プロジェクト管理.” 2022年4月1日更新.
[2] ITパスポート/基本情報技術者試験ドットコム. “アローダイアグラムとクリティカルパス.” 2023年11月15日公開.
[3] Project Management Institute (PMI). “PMBOK Guide – Seventh Edition.” 2021年1月1日発行.</p>
<!--
{
"title": "IPA午前Ⅱ:アローダイアグラムにおけるクリティカルパスの計算",
"primary_category": "プロジェクトマネジメント",
"secondary_categories": [
"IPA午前Ⅱ",
"スケジュール管理",
"品質管理"
],
"tags": [
"クリティカルパス",
"アローダイアグラム",
"プロジェクト管理",
"最早結合点時刻",
"最遅結合点時刻",
"PMBOK"
],
"summary": "IPA午前Ⅱ試験で頻出するアローダイアグラムを用いたクリティカルパス計算について、具体的な手順と背景を解説します。",
"mermaid": true,
"verify_level": "draft",
"tweet_hint": "IPA午前Ⅱ試験対策!アローダイアグラムとクリティカルパス計算の基本を解説。これでプロジェクトスケジュールの肝がわかる! #IPA午前Ⅱ #クリティカルパス",
"link_hints": [
"アローダイアグラム",
"プロジェクト管理",
"クリティカルパス法"
]
}
-->
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
IPA午前Ⅱ:アローダイアグラムにおけるクリティカルパスの計算
アローダイアグラムにおけるクリティカルパスの計算は、プロジェクトの完了期間を特定し、遅延許容度を把握するための重要な手法であり、プロジェクト管理の効率化とリスク軽減の核となる。
背景
プロジェクト管理において、スケジュール作成は最も重要な要素の一つである。多数の作業が相互に依存し、それぞれに所要期間が異なる複雑なプロジェクトでは、どの作業がプロジェクト全体の完了に最も影響を与えるかを把握する必要がある。アローダイアグラムは、このようなプロジェクトの各作業とその依存関係を視覚的に表現するツールとして広く利用される。
アローダイアグラムでは、作業(アクティビティ)を矢印で、作業の開始・完了時点(イベント)をノード(結合点)で示す。これにより、作業の前後関係や並行作業を明確にできる。このダイアグラムを用いて、プロジェクト全体の所要期間を決定する最も長い経路、すなわち「クリティカルパス」を特定する手法が、クリティカルパス法(Critical Path Method: CPM)である[1]。クリティカルパス上の作業は、わずかな遅延もプロジェクト全体の完了時期に直接影響を与えるため、厳密な管理が求められる。
問題点
複数の経路が存在するアローダイアグラムにおいて、どの経路がクリティカルパスであるかを直感的に判断するのは困難である。特に、大規模なプロジェクトでは、作業数が膨大になり、各作業の所要期間や依存関係が複雑に絡み合うため、プロジェクトの完了時期を正確に見積もり、遅延のリスクを適切に管理するための明確な計算手順が必要となる。遅延が許されない作業を特定し、プロジェクトのボトルネックを把握できなければ、効率的な資源配分やリスク対応が難しくなる[2]。
計算/手順
クリティカルパスを計算するためには、各結合点の最早結合点時刻(Earliest Event Time: EET)と最遅結合点時刻(Latest Event Time: LET)を算出する。
1. 最早結合点時刻(EET)の計算
EETは、各結合点に到達するために必要な最短時間である。プロジェクトの開始点から順に、以下の手順で計算する。
2. 最遅結合点時刻(LET)の計算
LETは、各結合点が遅れてもプロジェクト全体の完了時期に影響が出ない許容最大時間である。プロジェクトの終了点から逆順に、以下の手順で計算する。
3. クリティカルパスの特定
EETとLETの計算後、各結合点における余裕時間(スラック)は LET - EET で算出される。クリティカルパスは、全ての結合点で余裕時間がゼロとなる経路である[3]。
計算例
以下の作業と所要期間を持つプロジェクトのアローダイアグラムを考える。
| 作業 |
前行作業 |
所要期間 (日) |
| A |
– |
3 |
| B |
A |
4 |
| C |
A |
2 |
| D |
B, C |
5 |
| E |
D |
2 |
アローダイアグラム
graph TD
subgraph プロジェクト作業
A("開始") -->|作業A("3日")| B1("結合点1")
B1 -->|作業B("4日")| C1("結合点2")
A -->|作業C("2日")| D1("結合点3")
C1 -->|作業D("5日")| E1("結合点4")
D1 -->|作業D("5日")| E1
E1 -->|作業E("2日")| F("終了")
end
EETとLETの計算
結合点A (開始)
EET = 0
LET = 0 (終了からの逆算により決定)
結合点B1 (作業A完了)
結合点D1 (作業C完了)
結合点C1 (作業B完了)
結合点E1 (作業D完了)
結合点F (終了)
EETの確定値:
LETの確定値(Fから逆算):
F: 14 (EETと同じ)
E1: LET(F) – 作業E(2) = 14 – 2 = 12
C1: LET(E1) – 作業D(5) = 12 – 5 = 7
D1: LET(E1) – 作業D(5) = 12 – 5 = 7
B1: LET(C1) – 作業B(4) = 7 – 4 = 3
A: Min(LET(B1) – 作業A(3), LET(D1) – 作業C(2)) = Min(3-3=0, 7-2=5) = 0
結果のまとめ:
| 結合点 |
EET |
LET |
余裕時間 (LET – EET) |
| A |
0 |
0 |
0 |
| B1 |
3 |
3 |
0 |
| C1 |
7 |
7 |
0 |
| D1 |
2 |
7 |
5 |
| E1 |
12 |
12 |
0 |
| F |
14 |
14 |
0 |
余裕時間がゼロとなる結合点を繋ぐ経路がクリティカルパスである。
この例では、A → B1 → C1 → E1 → F の経路(作業A→B→D→E)がクリティカルパスとなる。この経路の所要期間は 3 + 4 + 5 + 2 = 14 日であり、これがプロジェクトの最短完了期間となる。
要点
アローダイアグラムは、プロジェクトの作業と依存関係を図示する。
最早結合点時刻(EET)は、開始点から順に進む最短到達時刻。
最遅結合点時刻(LET)は、終了点から逆算して遅延を許容する最大時刻。
クリティカルパスは、EETとLETが等しい(余裕時間がゼロの)結合点を結ぶ経路である。
クリティカルパス上の作業は、プロジェクト全体の完了時期に直接影響するため、遅延が許されない。
参照:
[1] IPA 独立行政法人 情報処理推進機構. “ソフトウェア開発プロジェクト管理.” 2022年4月1日更新.
[2] ITパスポート/基本情報技術者試験ドットコム. “アローダイアグラムとクリティカルパス.” 2023年11月15日公開.
[3] Project Management Institute (PMI). “PMBOK Guide – Seventh Edition.” 2021年1月1日発行.
コメント