

小林聡美
名前:小林 聡美(こばやし さとみ) ニックネーム:さと・さとみん 年齢:25歳 性別:女性 職業:季節・暮らし系ブログを運営するブロガー/たまにライター業も受注 居住地:東京都杉並区・阿佐ヶ谷の1Kアパート(築15年・駅徒歩7分) 出身地:長野県松本市(自然と山に囲まれた町で育つ) 身長:158cm 血液型:A型 誕生日:1999年5月12日 趣味: ・カフェで執筆&読書(特にエッセイと季節の暮らし本) ・季節の写真を撮ること(桜・紅葉・初雪など) ・和菓子&お茶めぐり ・街歩きと神社巡り ・レトロ雑貨収集 ・Netflixで癒し系ドラマ鑑賞 性格:落ち着いていると言われるが、心の中は好奇心旺盛。丁寧でコツコツ型、感性豊か。慎重派だけどやると決めたことはとことん追求するタイプ。ちょっと天然で方向音痴。ひとり時間が好きだが、人の話を聞くのも得意。 1日のタイムスケジュール(平日): 時間 行動 6:30 起床。白湯を飲んでストレッチ、ベランダから天気をチェック 7:00 朝ごはん兼SNSチェック(Instagram・Xに季節の写真を投稿することも) 8:00 自宅のデスクでブログ作成・リサーチ開始 10:30 近所のカフェに移動して作業(記事執筆・写真整理) 12:30 昼食。カフェかコンビニおにぎり+味噌汁 13:00 午後の執筆タイム。主に記事の構成づくりや装飾、アイキャッチ作成など 16:00 夕方の散歩・写真撮影(神社や商店街。季節の風景探し) 17:30 帰宅して軽めの家事(洗濯・夕飯準備) 18:30 晩ごはん&YouTube or Netflixでリラックス 20:00 投稿記事の最終チェック・予約投稿設定 21:30 読書や日記タイム(今日の出来事や感じたことをメモ) 23:00 就寝前のストレッチ&アロマ。23:30に就寝
アクティビティ図とステートマシン図の違いをわかりやすく解説
このガイドでは、ソフトウェア開発や設計でよく使われる UML の二つの図、アクティビティ図と ステートマシン図 の違いを、中学生でも理解できるように丁寧に説明します。どちらも「何かの流れ」を表す点は共通ですが、伝えたい情報の種類が異なります。アクティビティ図は“作業の流れ”を順序と分岐で追い、ステートマシン図は“状態とその変化”を追います。実務では、この二つを使い分けることで、全体の設計が見やすくなり、バグの予防にもつながります。
本記事を読めば、どちらを使うべきかの判断材料と、図の読み方のコツが身に付きます。読み物としても参考になるよう、身近な例を交えながら解説します。特に、作業の流れと状態の変化を混同しないように、具体的な違いをしっかり抑えましょう。
この記事のポイントは三つです。第一に、アクティビティ図は動きの順序と分岐を表すのに対し、ステートマシン図は状態と遷移の関係を表す点。第二に、対象となる情報の粒度が異なり、図の見方も変わる点。第三に、設計の段階で役立つ場面が違うため、状況に応じて使い分けることが重要である点です。これらを押さえれば、図の読み方がぐっと楽になります。
アクティビティ図とは何か
アクティビティ図は、作業の「流れ」を図示するための UML 図です。工程の順序、分岐、並行処理、決定点、合流点など、作業がどう進んでいくかを視覚的に追えるのが特徴。具体的には、アクションや活動をノードとして描き、それらを接続する矢印(コントロールフロー)で順序を示します。複数の分岐が同時に進む場合はフォークやジョインを使い、処理の並行性を表現します。
アクティビティ図は主に「何をするか」という作業の手順を把握するのに適しています。たとえば、オンラインで商品を購入する一連の作業を図にすると、どの時点で入力が必要か、どの道に分かれるのか、どのタイミングで完了するのかが一目で分かります。これにより、改修時の影響範囲を推測しやすく、関係者間での共通認識を作るのに役立つのです。
ただし、アクティビティ図は「変化していく状態」自体にはあまりフォーカスしません。つまり、回帰的な状態遷移や、イベントによって変わる内部状態を追うのには向かない場合が多い点に注意が必要です。もしシステム全体の動作の順序と並行性を理解したいときには、アクティビティ図が強力な味方になります。
ステートマシン図とは何か
ステートマシン図は、システムやオブジェクトが「どんな状態にあるか」という観点と、それらの状態をどう変化させるか(遷移)を表す図です。状態は丸や長方形で表現され、遷移は矢印で結ばれます。遷移にはイベントや条件が付き、ある状態から別の状態へ移るきっかけを示します。
また、ステートマシン図では状態の遷移が中心に描かれるため、イベント駆動の変化や、過去に遡って動作するロジック、状態の持つ属性(例: 電源が入っている/いない)など、状態とその変化の関係が分かりやすくなります。実務では、 UI の画面遷移、機械の運転モード、ゲームのキャラクターの状態など、変化の過程を厳密に追う場面で重宝します。
ただし、ステートマシン図は「流れそのものの順序」を表すのには適していません。作業の順序が主眼のときには、他の図と組み合わせて使うと効果的です。
違いのポイントを整理
ここでは、二つの図の違いを分かりやすく整理します。まず一つ目は「表現する情報の性質」。アクティビティ図は“何をしているか”和“どう進むか”を描くのに対し、ステートマシン図は“状態と状態の切替条件”を描きます。二つ目は「用途の違い」。前者は業務の流れ・手順の把握、後者はシステムの状態管理やイベント対応の検証に向いています。三つ目は「粒度の差」です。アクティビティ図は比較的粗い流れを捉え、ステートマシン図は細かな状態と遷移の関係を追います。四つ目は「実装の関係」です。実装での使用場面が異なり、API の状態管理や UI の画面設計など、現場の設計粒度に影響します。これらを混同すると、図の意味がぼやけてしまい、ミスの原因になります。
以下の表は、代表的な違いを一目で比較できるようにまとめたものです。
<table>
実世界の例で学ぶ
身近な例で比べてみましょう。アクティビティ図は、「学校の一日の過ごし方」を想像すると分かりやすいです。朝起きて、朝ごはんを食べて、学校へ行き、授業を受け、部活動をして、家に帰るという一連の流れ。途中で“体調が悪くなる”などの分岐があっても、全体としては順序の流れが重視されます。こうした流れは、作業を順番に並べる際に役立ちます。
一方、ステートマシン図は、スマホの電源を例にすると分かりやすいです。スマホは「電源オフ」→「電源オン」→「ロック状態」→「再度操作でアプリを開く」など、状態と遷移の連続で動作します。イベント(ユーザーがボタンを押す、バッテリー残量が減る、通知が来るなど)がきっかけで状態が変わります。こうした状態と遷移の関係をきちんと書くのが、ステートマシン図の役割です。部品の状態管理や UI の画面遷移など、イベントに応じた変化を追いたい場面で力を発揮します。
現場では、まずアクティビティ図で全体の流れを把握→次にステートマシン図で重要な状態と遷移を細かく定義、という順番で作ると、設計がスムーズになります。これにより、設計担当者と実装担当者のコミュニケーションがとても楽になります。
まとめと使い分けのヒント
結論として、アクティビティ図とステートマシン図は「焦点の違いを活かして使い分ける」ことが大切です。業務の流れや手順を全体として把握したい場合はアクティビティ図、状態と遷移の細かな変化を厳密に追いたい場合はステートマシン図を使います。実務では、両方を組み合わせて使うのが最も効果的です。まずは大まかな流れをアクティビティ図で描き、次に要素の状態や遷移をステートマシン図で補完することで、仕様の抜け落ちを防ぎ、変更にも強い設計になります。
この二つの図を使い分けるコツは、最初に「何を説明したいのか」をはっきり決めることです。流れを知りたいのか、状態の変化を知りたいのか、それを決めてから図を選ぶと、後の修正も楽になります。最後に、図は人に伝える道具です。見やすさと分かりやすさを第一に考え、必要な情報だけを過不足なく盛り込みましょう。
こうして作成した図は、チーム全体の理解を深め、設計の品質を高める頼もしい味方になります。
補足情報と使いどころのまとめ
・アクティビティ図は、業務プロセスの可視化、並行処理の表現、分岐の理解に適している。
・ステートマシン図は、状態と遷移の管理、イベント駆動の挙動検証に適している。
・現場では両図を組み合わせることで、設計の透明性が高まり、保守性も向上する。
・表や表現方法の選択は、対象となるシステムの性質と開発チームの慣れに合わせて柔軟に決定するのが良い。
ねえ、今日はアクティビティ図の深掘り雑談だよ。僕らが部活の準備をするとき、先にやることを順番に並べて思いっきり流れを作る。アクティビティ図はそんな“やることの流れ”を見せてくれるツール。イベントが起きたときにどう分岐するかも描ける。けれど、車の運転みたいに「どの状態にいるか」という話は苦手。だからステートマシン図と組み合わせると、設計がもっとしっかりするんだ。



















