アローダイアグラムの計算は、結合点ごとにそこへ入ってくる作業が全部終わる日を書き込んでいけば、全体の日数・クリティカルパス・遅れの影響・余裕まで同じ手順で答えが出ます。後半では、仕事の量を人日・人月で数える工数の計算と、人数に限りがあるときの日数をまとめます。
アローダイアグラムの読み方
作業の順番と所要日数を矢線でつないだ図がアローダイアグラムです(PERT図とも呼びます)。 矢線1本が作業1つで、ふつうは矢線の上に作業名、下に所要日数が書かれます。矢線と矢線の区切りの丸が結合点です。
矢線1本が作業1つです。丸に入る作業が全部終わってから、丸から出る作業を始めます。
読むときの決まりは1つです。 結合点から出る作業は、その結合点に入ってくる作業が全部終わるまで始められません。 早く終わった作業があっても、ほかの作業が終わるのを待ちます。
このページでは、次の例を使います。
このページの例です。いちばん長い経路 A→C→F の14日が、全体の日数になります。
このページの例(始まりの結合点→終わりの結合点・所要日数)
A … 1→2・3日
B … 1→3・5日
C … 2→3・4日
D … 2→4・5日
E … 3→4・2日
F … 3→5・7日
G … 4→5・3日
結合点3には、B と C の2本が入ってきます。B は始まってすぐ取りかかれますが、C は A が終わってからでないと始められません。
結合点3から出る作業(EとF)を始められる日 Bが終わる日:0+5=5日 Cが終わる日:3(Aが終わる日)+4=7日 両方が終わるのは遅いほう:7日
B は5日で終わりますが、E と F は C が終わるまで待ちます。このページの「7日」のような日は、開始からたった日数です(7日がたったら始める=暦でいえば8日目から)。人数に限りがある節の書き出しだけは、暦の「◯日目」で書きます。
全体の日数とクリティカルパス
全体の日数は、いちばん左の結合点を0日として、左から順に結合点の日を書き込めば出ます。 2本以上の矢線が入ってくる結合点では、それぞれの「前の結合点の日+作業の日数」を出して、大きいほうを書きます。
結合点1:0日
結合点2:0+3(A)=3日
結合点3:0+5(B)=5日、3+4(C)=7日
→ 大きいほう 7日
結合点4:3+5(D)=8日、7+2(E)=9日
→ 大きいほう 9日
結合点5:7+7(F)=14日、9+3(G)=12日
→ 大きいほう 14日
全体:14日
結合点ごとに、入ってくる作業の終わる日の大きいほうを書いていけば、最後の結合点の日が全体の日数です。 ここで書いた日を、その結合点の最早の日(最も早く通過できる日。一般に最早結合点時刻と呼ばれます)といいます。
全体の日数を決めている、いちばん長い経路がクリティカルパスです。 最後の結合点から、大きいほうとして選んだ矢線を逆にたどると見つかります。 結合点5では F(14日)を選んだので結合点3へ、結合点3では C(7日)を選んだので結合点2へ、そこから A で結合点1へ戻ります。クリティカルパスは A→C→F です。
経路を全部書き出して比べる方法もありますが、この例でも経路は5本あり、書き漏らしやすいので、結合点に日を書き込む方法を基本にします。
クリティカルパス・PERT・工数の見積りはいまの試験のシラバス(Ver6.5)だけにある語で、2027年度からの新しい試験のシラバス案(Ver0.1)は「スケジュール」「アローダイアグラム」「ガントチャート」までで、この3つの語はありません。
次の作業でできたアローダイアグラムがあります。全体の所要日数は何日ですか。
作業(始まりの結合点→終わりの結合点・所要日数)
P … 1→2・3日
Q … 1→3・5日
R … 2→3・1日
S … 2→4・7日
T … 3→4・4日
U … 4→5・2日
× 結合点で小さいほうを取っています(結合点3を 3+1=4日、結合点4を 4+4=8日)。入ってくる作業が全部終わるのを待つので、大きいほうを取ります。
× 最初の作業のうち長い Q(5日)から進んで、Q→T→U(5+4+2)を答えています。いちばん長い経路は、途中の作業まで足してみないと分かりません。
○ 正解 12日です。
結合点2は 0+3=3日。結合点3は Q の 0+5=5日と R の 3+1=4日の大きいほうで5日。結合点4は S の 3+7=10日と T の 5+4=9日の大きいほうで10日。結合点5は 10+2=12日です。クリティカルパスは P→S→U です。
× 6つの作業の日数を全部足しています。別の経路にある作業は同時に進められます。
作業が遅れた・早まったときの全体の日数
作業の日数が予定から変わったら、その作業より後ろの結合点の日を書き直します。前の結合点は変わりません。 結果は、変わった作業がクリティカルパスの上にあるかどうかで分かれます。
まず、クリティカルパスに入っていない G が3日遅れて、6日かかった場合です。
Gが3日遅れて6日かかった
結合点1〜4:変わらない(Gより前)
結合点5:7+7(F)=14日、9+6(G)=15日
→ 大きいほう 15日
全体:14日 → 15日(1日遅れる)
G は3日遅れたのに、全体は1日しか遅れません。G を通る経路のうちいちばん長い A→C→E→G は、もともと12日で、クリティカルパスより2日短かったので、その2日ぶんは吸収されます。
次に、クリティカルパス上の F が3日早まって、4日で終わった場合です。
Fが3日早まって4日で終わった
結合点5:7+4(F)=11日、9+3(G)=12日
→ 大きいほう 12日
全体:14日 → 12日(2日短縮)
F は3日縮んだのに、全体は2日しか縮みません。F を短くしたことで、G を通る A→C→E→G(12日)のほうが長くなり、新しいクリティカルパスになったからです。
日数が変わったら、足し引きで済ませず、後ろの結合点の日を書き直して最後の日を比べます。 クリティカルパス上の作業が遅れれば、その日数がそのまま全体の遅れになります。クリティカルパスの外の作業は、余裕(次の節で数で出します)の範囲までなら遅れても全体に響きません。
このページの例(予定は14日)で、作業 C が予定より2日早く終わり、作業 G が予定より3日遅れました。ほかの作業は予定どおりです。全体の所要日数は、予定と比べてどうなりますか。
× クリティカルパス上の C の前倒しだけを見ています。G の遅れで、G を通る経路のほうが長くなります。
× C だけ変えた場合(2日短縮)と G だけ変えた場合(1日遅れ)を別々に計算して足しています。C が早まると結合点4の日も変わるので、両方を入れて1回で計算し直します。
○ 正解 変わらないです。
C を2日、G を6日にして書き直します。結合点3は B の 0+5=5日と C の 3+2=5日で5日。結合点4は D の 3+5=8日と E の 5+2=7日の大きいほうで8日。結合点5は F の 5+7=12日と G の 8+6=14日の大きいほうで14日です。クリティカルパスが A→D→G に入れ替わり、全体は予定と同じ14日です。
× 3日遅れと2日前倒しを足し引きしています。どの経路が最も長くなるかを、結合点の日で確かめます。
結合点の余裕と作業の余裕
全体の日数を守るために、各結合点を遅くともいつまでに通過すればよいかを、今度は右から引き算で出します。これを最遅の日(一般に最遅結合点時刻と呼ばれます)といいます。 2本以上の矢線が出ていく結合点では、それぞれの「後ろの結合点の日-作業の日数」を出して、小さいほうを書きます。
結合点5:14日(全体の日数)
結合点4:14-3(G)=11日
結合点3:14-7(F)=7日、11-2(E)=9日
→ 小さいほう 7日
結合点2:7-4(C)=3日、11-5(D)=6日
→ 小さいほう 3日
結合点1:3-3(A)=0日、7-5(B)=2日
→ 小さいほう 0日
小さいほうを取るのは、出ていく作業のどれか1つでも間に合わなければ全体が遅れるからです。 最早の日と最遅の日の差が、その結合点の余裕です。
結合点の余裕=最遅の日-最早の日 結合点1:0-0=0日 結合点2:3-3=0日 結合点3:7-7=0日 結合点4:11-9=2日 結合点5:14-14=0日
結合点の余裕は、最遅の日から最早の日を引いた日数です。 結合点4は早ければ9日がたったときに通過でき、11日がたつまでに通過すれば間に合うので、結合点4から始まる G の開始を最大2日遅らせても全体の14日は変わりません。 問題文が「その結合点から始まる全ての作業の開始を、全体の完了を遅らせずに最も遅らせられるのはどれか」と聞いていたら、この余裕がいちばん大きい結合点を選びます。結合点に数字ではなく記号が振られていても、計算は同じです。
作業1つずつの余裕も、同じ日から出せます。
作業の余裕= 終わりの結合点の最遅の日 -始まりの結合点の最早の日 -作業の日数 B:7-0-5=2日 D:11-3-5=3日 E:11-7-2=2日 G:14-9-3=2日 A・C・F:0日
作業の余裕が0日の作業をつないだ経路が、クリティカルパス A→C→F です。
B の両端の結合点1と結合点3は、どちらも余裕が0日です。それでも B 自身には2日の余裕があり、クリティカルパスには入りません。両端の結合点の余裕だけでクリティカルパスを決めず、作業の余裕か経路の日数で確かめます。
次の作業でできたアローダイアグラムがあります(全体は12日)。全体の完了を遅らせずに、結合点3から始まる作業(L と M)の開始を最大何日遅らせられますか。
作業(始まりの結合点→終わりの結合点・所要日数)
H … 1→2・4日
J … 1→3・3日
K … 2→4・5日
L … 3→4・2日
M … 3→5・4日
N … 4→5・3日
× 結合点3の最早の日(0+3=3日)をそのまま答えています。余裕は、最遅の日から最早の日を引いた差です。
○ 正解 4日です。
最早の日は、結合点2が4日、結合点3が3日、結合点4が K の 4+5=9日と L の 3+2=5日の大きいほうで9日、結合点5が M の 3+4=7日と N の 9+3=12日の大きいほうで12日。最遅の日は、結合点4が 12-3=9日、結合点3が L から 9-2=7日、M から 12-4=8日の小さいほうで7日。余裕は 7-3=4日です。
× 結合点3の最遅の日を、大きいほうの8日で取っています(8-3=5)。M だけなら5日遅らせられますが、L を5日遅らせると結合点4に着くのが10日になり、9日がたったら始める予定の N に響きます。出ていく作業が2本あるときは、小さいほうの7日を取ります。
× 結合点3の最遅の日をそのまま答えています。7日は「この日数がたつまでに通過すればよい」という日で、遅らせられる日数はそこから最早の3日を引いた差です。
工数を人日・人月で数える
仕事の量(工数)は、人数と期間を掛けて数えます。1人が1日でこなす量が1人日(にんにち)、1人が1か月でこなす量が1人月(にんげつ)です。 4人で3日かかる仕事も、2人で6日かかる仕事も、同じ12人日です。試験では「要員の作業効率は一律」「各要員の生産性は同じ」のように、だれが担当しても同じ速さで進む前提が書かれます。
生産性から工数を出す
1人月でこなせる量を生産性といい、ソフトウェアの開発では「kステップ/人月」(1人月で何千行のプログラムを作れるか)のように表します。工数は、作る量を生産性で割れば出ます。 設計と製造のように工程ごとに生産性がちがうときは、どの工程もソフトウェア全体を扱うので、工程ごとに割ってから足します。
90kステップのソフトウェア 生産性(kステップ/人月):設計 9.0、 製造 3.0 設計の工数 90 ÷ 9.0 = 10人月 製造の工数 90 ÷ 3.0 = 30人月 開発全体の工数 10 + 30 = 40人月
工程ごとに生産性がちがうときは、全体の量を工程ごとの生産性で割ってから足します。 かかる人月は工程ごとにちがうので、生産性を平均した値(90 ÷ 6.0 = 15)や足した値(90 ÷ 12 = 7.5)では割れません。工程ごとに割って足します。
60kステップのソフトウェアを開発します。生産性(1人月当たりのkステップ)は、設計が 5.0、製造が 3.0 です。開発全体の工数は何人月ですか。
× 生産性を足して 60 ÷(5.0+3.0)としています。設計と製造は同時にこなす仕事ではなく、それぞれが60kステップ全体を扱います。
× 生産性を平均した 4.0 で 60 ÷ 4.0 としています。設計と製造でかかる人月がちがうので、平均した生産性では割れません。工程ごとに割って足します。
× 製造の工数(60 ÷ 3.0)だけです。設計の工数を足し忘れています。
○ 正解 32人月です。
設計は 60 ÷ 5.0 = 12人月、製造は 60 ÷ 3.0 = 20人月。足して 12 + 20 = 32人月です。
遅れを、人を足して取り戻す
前の作業が遅れると、後ろの作業に使える日数が減ります。仕事の量(人日)は変わらないので、仕事の量 ÷ 使える日数で必要な人数が出ます。 このページの例で、A が2日遅れて5日かかったとします。F には10人が割り当てられていて、全体を予定どおり14日で終えるために F に人を足します。
Aが5日かかったときの結合点3の日
0+5(B)=5日、5+4(C)=9日
→ 大きいほう 9日
Fに使える日数(14日がたつまでに終える)
14 - 9 = 5日
Fの仕事の量
10人 × 7日 = 70人日
5日で終えるのに要る人数
70 ÷ 5 = 14人
追加する人数
14 - 10 = 4人
答える前に、ほかの経路が間に合うかも確かめます。結合点4は D の 5+5=10日と E の 9+2=11日の大きいほうで11日、G を足して 11+3=14日なので間に合います。
作業 K は、12人で6日かかる予定でした。前の作業が遅れたため、予定の日までに終えるには、K を4日で終えなければなりません。K に追加する要員は最少で何人ですか。ここで、要員の作業効率は一律です。
○ 正解 6人です。
K の仕事の量は 12 × 6 = 72人日。4日で終えるには 72 ÷ 4 = 18人要るので、追加は 18 - 12 = 6人です。
× 4日で終えるのに要る人数そのものです。聞かれているのは、もとの12人に追加する人数です。
× 仕事の量 72人日を、減った日数(6 - 4 = 2日)で割って 36人とし、そこから12人を引いています。割るのは、使える4日です。
× 仕事の量 72人日を、減った日数の2日で割っています。割るのは使える4日で、さらにもとの12人を引いたぶんが追加です。
途中で人数が変わるとき
計画どおりの人数を最初からそろえられないときも、仕事の量は変わりません。全体の量から、最初の期間にこなせる量を引き、残りを残りの日数で割ります。 8人で12日かかる計画なのに、最初の4日間は5人しか確保できない場合です。
仕事の量 8人 × 12日 = 96人日 最初の4日でこなせる量 5人 × 4日 = 20人日 残りの量 96 - 20 = 76人日 残りの日数 12 - 4 = 8日 必要な人数 76 ÷ 8 = 9.5人 → 切り上げて 10人
残りの量を残りの日数で割り、割り切れなければ切り上げます。 9人では 9 × 8 = 72人日で、4人日足りません。
12人で10日かかる計画を立てましたが、最初の4日間は8人しか確保できないことが分かりました。計画どおり10日で終えるには、5日目以降は最低何人必要ですか。ここで、各要員の生産性は同じです。
× 残りの量 88人日を、全体の10日で割っています(8.8 → 9)。5日目以降に使えるのは6日です。
× 計画の人数に戻しただけです。最初の4日間に足りなかった 4人 × 4日 = 16人日を取り戻せません。
× 88 ÷ 6 = 14.66… を切り捨てています。14人では 14 × 6 = 84人日で、4人日足りません。
○ 正解 15人です。
仕事の量は 12 × 10 = 120人日。最初の4日で 8 × 4 = 32人日こなすので、残りは 120 - 32 = 88人日。残りの6日で割ると 88 ÷ 6 = 14.66… なので、切り上げて15人です。
人数に限りがあるときの最短日数
アローダイアグラムの上では同時に進められる作業でも、人数が足りなければ順に並べるしかありません。問題文には、ふつう次の条件が付きます。 指定の人数がそろわないと始められない、指定より多く充てても日数は縮まない、始めた作業は途中で止められない。 この形は、日を区切って「その期間にどの作業を何人で行うか」を書き出して解きます。
3名で行う作業(前提作業・要員数・所要日数)
W … 前提なし・2名・3日
X … Wのあと・2名・2日
Y … Wのあと・2名・3日
Z … Xのあと・1名・3日
W のあと、X と Y はどちらも2名要るので、3名では同時にできません。どちらを先にするかで、日数が変わります。
Yを先にした場合 1〜3日目:W(2名) 4〜6日目:Y(2名) 残り1名では X を始められない 7〜8日目:X(2名) 9〜11日目:Z(1名) 全体:11日
Xを先にした場合 1〜3日目:W(2名) 4〜5日目:X(2名) 6〜8日目:Y(2名)とZ(1名) 同時に行い、計3名 全体:8日
先に済ませたとき、後ろの作業を空いた人数で同時に進められるほうを先にします。 X を先に終えれば、1名で足りる Z を Y と並べられます。迷ったら両方の順を書き出して、短いほうを答えます。
次の表の作業を4名で行います。全ての作業を終えるのに必要な最短の日数は何日ですか。ここで、複数の要員が必要な作業は全員がそろわないと始められず、指定より多く充てても日数は縮まず、始めた作業は途中で止められないものとします。
作業(前提作業・要員数・所要日数)
A … 前提なし・2名・2日
B … Aのあと・3名・2日
C … Aのあと・2名・4日
D … Bのあと・1名・3日
E … Cのあと・2名・1日
F … DとEのあと・1名・2日
× 人数の制約を無視して、B と C を同時に進めています(2+5+2)。B と C を同時に行うと5名要るので、4名ではできません。
○ 正解 11日です。
1〜2日目に A、3〜4日目に B(3名)。5〜8日目に C(2名)を行い、同時に5〜7日目に D(1名)を進めます(計3名)。9日目に E(2名)、10〜11日目に F です。C を先にすると、C のあいだに B(3名)を並べられず13日かかります。
× C を先にした場合の日数です(A 2日、C 4日、B 2日、D と E を同時に3日、F 2日)。B を先に済ませれば、1名で足りる D を C と並べられます。
× 6つの作業を全部1つずつ順に並べています。人数に空きがあれば、作業は同時に進められます。
進み具合とコストを割合で測る
途中の時点で、予定に対する進み具合とコストを割合で出す問題もあります。式は問題文に示されるので、何と何を比べるかを読み取ります。 予算900万円・30日間で90本のプログラムを作る計画(毎日同じ量だけ進み、1本の日数とコストは同じ)で、20日の時点で57本が完成し、684万円かかっていたとします。
1日に作る予定の本数 90 ÷ 30 = 3本 20日時点の完成見込み 3 × 20 = 60本 スケジュール 57 ÷ 60 × 100 = 95% 1本の予定コスト 900万円 ÷ 90 = 10万円 完成した57本の予定コスト 57 × 10万円 = 570万円 コスト 684 ÷ 570 × 100 = 120%
コストの比べる相手は、予算の全額でも、経過日数ぶんの予算でもなく、完成した分に計画していたコストです。 予算の全額と比べると 684 ÷ 900 × 100 = 76%、経過日数ぶんの予算(900万円 × 20 ÷ 30 = 600万円)と比べると 684 ÷ 600 × 100 = 114% になり、どちらも誤りです。 スケジュールが100%を下回れば遅れ、コストが100%を上回れば予定より費用がかかっている、と読みます。
令和4〜8年度の公開問題
令和4〜8年度の公開問題で、このページの計算が出たのは次の7問です。
工数と人数
令和4年度 問50生産性から開発全体の工数令和5年度 問55途中で人数が変わるときの必要な人数令和8年度 問50要員数に制約があるときの最短日数令和7年度 問45スケジュールとコストの指標
スコープ・WBS・リスクの対応策など、プロジェクトマネジメントのまわりの知識は、教科書のプロジェクトマネジメントで扱っています。
まとめ
このページで持ち帰ること
1. 矢線=作業、丸=結合点。結合点から出る作業は、入ってくる作業が全部終わってから
2. 最早の日は左から足し算、入ってくる矢線は大きいほう。最後の結合点の日が全体の日数。選んだ矢線を逆にたどるとクリティカルパス
3. 日数が変わったら後ろの結合点を書き直す。2つ同時に変わったら1回で計算し直す
4. 最遅の日は右から引き算、出ていく矢線は小さいほう。余裕=最遅-最早
5. 工数=人数×期間(人日・人月)。工程ごとに生産性がちがえば、全体の量を工程ごとに割って足す
6. 必要な人数=残りの量÷残りの日数(切り上げ)。人数に限りがあれば日を区切って書き出し、後ろの作業を空いた人数で並べられるほうを先に(迷ったら両方の順を書き出す)
7. コストは、完成した分に計画していたコストと比べる
出典:IPA「ITパスポート試験 シラバス Ver6.5」、「ITパスポート試験 シラバス(案)Ver0.1」(2026年8月31日)、ITパスポート試験 令和4・5・6・7・8年度 公開問題。 本文の計算例と練習問題は、当サイトが説明のために作ったものです。