クラス図
特徴
- クラスの属性・操作・関係(継承、関連、集約、コンポジション、依存)を表す
- 多重度や可視性(
+-#~)を記述できる - UMLの中で最も利用頻度が高く、静的構造を表現する基本の図
用途
- オブジェクト指向設計・詳細設計
- ドメインモデルの整理
- データベース設計(ER図の代わり)の下書き
オブジェクト図
Mermaid.js に専用の記法がないため、classDiagram でインスタンスを表現しています
特徴
- ある時点でのインスタンス(オブジェクト)とその関係のスナップショットを表す
- 名前は
オブジェクト名 : クラス名の形式で書き、属性には具体的な値を入れる - クラス図の具体例として機能する
用途
- クラス図の妥当性確認(具体値での検証)
- 複雑な関連構造の説明
- テストデータの構造の可視化
コンポーネント図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- システムを交換可能な部品(コンポーネント)とそのインタフェースで表す
- 提供インタフェース(ロリポップ)と要求インタフェース(ソケット)で依存関係を示す
- 実装の詳細を隠蔽し、モジュール間の境界を明確にする
用途
- アーキテクチャ設計
- モジュール分割・サービス分割の検討
- 外部システム連携の整理
複合構造図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- クラスやコンポーネントの内部構造(パーツ・ポート・コネクタ)を表す
- 内部のパーツ同士の連携を示せる
- クラス図では表現できない「内部の組み立て」を記述できる
用途
- 組込み・ハードウェア寄りの設計
- クラス内部の協調関係の説明
- 再利用可能なパターンの内部構造の記述
配置図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- ソフトウェア(成果物)がどのハードウェア(ノード)上で動作するかを表す
- ノード間の通信経路を示す
- 物理構成と論理構成の対応が分かる
用途
- インフラ構成の設計・説明
- 本番/ステージング環境の配置整理
- ネットワーク構成のレビュー
パッケージ図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- クラスやコンポーネントをパッケージ(名前空間)でグループ化して表す
- パッケージ間の依存関係を示す
- 循環依存の発見に役立つ
用途
- レイヤードアーキテクチャの整理
- モジュール依存関係の可視化
- 大規模システムの全体俯瞰
プロファイル図
Mermaid.js に専用の記法がないため、classDiagram のステレオタイプ表記で代用しています
特徴
- ステレオタイプ・タグ付き値・制約を使って UML を特定領域向けに拡張する仕組みを定義する
- 既存のメタクラスを拡張する形で記述する
- UML自体のカスタマイズ(DSL化)に使う
用途
- ドメイン特化モデリング言語(SysML、MARTEなど)の定義
- 社内標準のモデリング規約の策定
- モデリングツールのカスタマイズ
ユースケース図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- システムの利用者(アクター)と、システムが提供する機能(ユースケース)の関係を表す
- システム境界で「何をシステムの範囲とするか」を示す
«include»«extend»で機能の共通化・拡張を表現できる
用途
- 要件定義・機能一覧の整理
- 利用者視点での機能の洗い出し
- ステークホルダーとの合意形成
アクティビティ図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- 処理の流れ(アクション、分岐、並行処理、合流)を表す
- スイムレーンで責任の所在(誰が行うか)を分けて表現できる
- フローチャートに近く、並行処理を表せる点が強み
用途
- 業務フローの可視化
- アルゴリズム・処理フローの設計
- ユースケースの詳細な手順の記述
ステートマシン図
特徴
- オブジェクトの状態と、イベントによる状態遷移を表す
- ガード条件・アクション(entry / exit / do)を記述できる
- 複合状態や直交領域で複雑な状態も整理できる
用途
- 注文・申請などのライフサイクル設計
- UI画面遷移の設計
- 組込み機器・プロトコルの動作定義
シーケンス図
特徴
- オブジェクト間のメッセージのやり取りを時間順(上から下)に表す
altloopoptなどの複合フラグメントで分岐・繰り返しを表現できる- 同期/非同期メッセージ、戻りメッセージを区別して書ける
用途
- API・システム間連携の設計
- ユースケースの処理シナリオの詳細化
- 障害調査時の処理の流れの共有
コミュニケーション図
Mermaid.js に専用の記法がないため、flowchart で代用しています
メッセージの順序は番号で表しています
特徴
- オブジェクト間のつながり(リンク)を軸に、メッセージを番号付きで表す
- シーケンス図と意味的にほぼ等価だが、オブジェクトの配置関係を重視する
- 時間軸がないため、オブジェクト数が少ない場合に見やすい
用途
- オブジェクト間の協調関係の把握
- 小規模な相互作用の概要説明
- シーケンス図の代替表現
タイミング図
Mermaid.js にUMLのタイミング図はないため、gantt で状態の時間変化を近似しています
特徴
- 横軸に時間、縦軸にライフライン(状態)を取り、状態の変化を時間に沿って表す
- 複数のオブジェクトの状態変化のタイミングを揃えて比較できる
- 時間制約(○ms以内など)を明示できる
用途
- 組込み・リアルタイムシステムの設計
- ハードウェア信号のタイミング設計
- 応答時間・タイムアウトの検討
相互作用概要図
Mermaid.js に専用の記法がないため、flowchart で代用しています
特徴
- アクティビティ図の形式で、複数のシーケンス図(相互作用)の実行順序を表す
- 各ノードがシーケンス図などへの参照(
ref)になる - 全体の流れと詳細な相互作用を階層的に整理できる
用途
- 複数のシナリオにまたがる処理の全体像の整理
- シーケンス図が大きくなった場合の分割・概観
- ユースケース全体の流れの把握