FE EXAM

アクティビティ図(UML)

処理の流れや分岐を表すUMLの図。

INTERACTIVE VISUALIZATION
アクション
判断
開始/終了
フェーズ
idle
ノード数
0
制御フロー数
0
シナリオ
ステップ1 / 8
STEP 1/8まだ何も描かれていないこれからネット注文の処理を題材に、アクティビティ図(=処理の流れや分岐を表すUMLの図)を描いていきます。開始・アクション・判断・終了という記号で、処理が上から下へどう進むかを表します。
▶ を押すとノードが1つずつ置かれます
解説

📌
アクティビティ図とは

処理する条件?

アクティビティ図とは、処理の流れや分岐を表すUMLの図のことです。開始から終了まで、処理がどの順で進み、どこで条件によって枝分かれするかを矢印でつないで表します。

身近な例で考えると、料理のレシピや作業マニュアルに似ています。「材料を切る → 火が通ったか? → 通っていれば盛り付ける、まだなら加熱を続ける」のように、順番と分かれ道を図にしたものがアクティビティ図です。

上のツールで▶ボタンを押すと、ネット注文の処理を題材に、開始ノードから始めてアクション・判断・合流・終了をつなぎ、処理の流れが組み上がる様子を確認できます。

🔣
記法

開始処理アクション判断終了制御フロー(矢印)

アクティビティ図で使う主な記号は次のとおりです。これらを矢印でつないで流れを作ります。

開始ノード(塗りつぶした黒丸):処理のスタート地点。必ず1つ
アクション(角丸の長方形):1つのまとまった処理
判断ノード(ひし形):条件で流れを分ける分岐。枝に[条件]を書く
マージノード(ひし形):分かれた流れを1本に合流させる
終了ノード(二重丸):処理の終わり
制御フロー(矢印):処理が進む向きをつなぐ

さらに、複数の処理を同時に行う並行処理は、太い横棒(フォークで枝分かれ・ジョインで合流)で表せます。また、スイムレーンという縦や横の区切りで「どの担当者・部門がその処理を行うか」を分けて描くこともできます。これらはアクティビティ図ならではの表現です。

⚖️
フローチャートとの違い

アクティビティ図UML・並行/レーン可vsフローチャートUML外・古典的

アクティビティ図とフローチャートは、どちらも処理の流れと分岐を描く点でよく似ています。見た目もそっくりで、混同しやすい図です。

項目アクティビティ図フローチャート
所属UMLの図の一つUMLには含まれない
並行処理フォーク/ジョインで表せる表しにくい
担当の表現スイムレーンで分けられる標準にはない

ざっくり言えば、アクティビティ図はフローチャートを発展させ、UMLに取り込んで並行処理や担当分けも表せるようにしたものです。1本道の単純な処理ならフローチャートでも十分ですが、複数の担当が関わる業務や同時に進む処理を描きたいときは、アクティビティ図が向いています。

🔀
判断ノードの読み方

在庫あり?[はい]注文を確定[いいえ]入荷待ちへ矢印に条件(ガード条件)を書く

判断ノード(ひし形)は、「条件によって流れを分ける」場所です。ひし形から出る矢印には [はい][いいえ] のようなガード条件(=その矢印を進む条件)を書きます。

なぜひし形を使うのか。「分かれ道」であることをパッと見て分かるように、丸や四角とは別の形にしています。ひし形を見たら「ここで流れが2手以上に分岐する」と読み取りましょう。分岐した流れは、後でマージノード(同じひし形)で1本に戻します。

身近な例で考えると、道路の交差点の標識に似ています。判断ノードが交差点で、ガード条件が「右折禁止」「直進のみ」などの標識。条件に合った矢印(道)を選んで次の処理(目的地)へ進みます。上のツールのSTEP4でひし形と分岐を確認できます。

開始・終了ノードが1つずつな理由

処理する正しい:1つずつ開始が2つ?どこから始まる?誤り:曖昧になる

アクティビティ図では、開始ノード(塗りつぶした黒丸)は必ず1つだけ置くというルールがあります。終了ノードは複数置ける場合もありますが、基本は1つでまとめるのが分かりやすい設計です。

なぜ開始は1つだけか。もし開始ノードが2つ以上あると「どちらから処理が始まるのか」が分からなくなり、図を見た人が混乱します。「スタート地点は必ず1か所」と決まっていることで、流れの出発点が明確になり、図が迷わず読めます。

身近な例で考えると、マラソンのスタートラインと同じです。スタートが2か所あれば、どこから走り始めたかで順位が変わってしまいます。スタートは1つと決めることで「同じ条件の同じ流れ」が保証されます。上のツールの最初のSTEPで黒丸(開始ノード)が1つだけ置かれることを確認できます。

練習問題

🎯
基本情報技術者 練習問題

Q1.UMLのアクティビティ図が主に表現するものはどれか。
A.クラスの属性・操作と継承関係
B.処理の流れや分岐
C.利用者とシステムの機能の関係
D.データをためておく場所
Q2.アクティビティ図で、条件によって処理の流れを分ける分岐を表す記号はどれか。
A.ひし形(判断ノード)
B.塗りつぶした黒丸(開始ノード)
C.角丸の長方形(アクション)
D.二重丸(終了ノード)
Q3.アクティビティ図とフローチャートの違いとして適切なものはどれか。
A.アクティビティ図は分岐を表せないが、フローチャートは表せる
B.アクティビティ図はUMLの一部で、並行処理やレーンによる担当の表現に対応している
C.フローチャートはUMLの図の一種である
D.両者はまったく同じもので違いはない

関連コンテンツ