🗂️ UML記法チートシート(図の種類別)
🏛️ クラス図(Class Diagram)
関係名 |
線の種類 |
矢印の先端 |
意味・特徴 |
例記法(PlantUML) |
継承(Generalization) |
実線 |
白抜き三角 ▷ |
サブクラス → スーパークラス |
`A -- |
実装(Realization) |
破線 |
白抜き三角 ▷ |
クラス → インタフェース |
`A .. |
関連(Association) |
実線 |
矢印 or 無し |
所有または参照、双方向も可能 |
A --> B または A -- B |
依存(Dependency) |
破線 |
通常の矢印 → |
一時的に使う関係(引数・戻り値など) |
A ..> B |
集約(Aggregation) |
実線 |
白菱 ◇ |
弱い「含む」関係 |
A o-- B |
コンポジション(Composition) |
実線 |
黒菱 ◆ |
強い「含む」関係(生死も一体) |
A *-- B |
🎬 シーケンス図(Sequence Diagram)
関係・動作 |
線の種類 |
矢印の先端 |
意味・特徴 |
例記法(PlantUML) |
同期メッセージ |
実線 |
→ |
処理を呼び出して待つ |
A -> B: 処理名 |
非同期メッセージ |
実線 |
→ |
呼び出し後すぐに次に進む(fire & forget) |
A ->> B: 非同期処理 (独自) |
応答/戻り値 |
破線 |
→ |
呼び出し結果など |
B --> A: 戻り値 |
自分自身への呼び出し |
実線ループ |
→ |
再帰やメソッド内呼び出し |
A -> A: 内部処理 |
🧱 コンポーネント図(Component Diagram)
関係名 |
線の種類 |
矢印の先端 |
意味・特徴 |
例記法(PlantUML) |
依存(Dependency) |
破線 |
矢印 → |
他コンポーネントを必要とする |
ComponentA ..> ComponentB |
インターフェース提供 |
破線 |
白抜き三角 ▷ |
提供側が向き(反転三角) |
`ComponentA .. |
👥 ユースケース図(Use Case Diagram)
関係名 |
線の種類 |
矢印の先端 |
意味・特徴 |
例記法(PlantUML) |
アクターとの関係 |
実線 |
→ or 無し |
アクターとユースケースの関係 |
User --> UseCase |
include 関係 |
破線 |
白抜き三角 ▷ |
呼び出し元が include を使う |
UC1 .> UC2 : <<include>> |
extend 関係 |
破線 |
白抜き三角 ▷ |
呼び出し先が条件付きで実行される |
UC1 .> UC2 : <<extend>> |
📌 記号対応まとめ
記号 |
意味 |
出現図 |
`-- |
>` |
継承 |
`.. |
>` |
実装 |
-- |
関連 |
クラス図、ユースケース図 |
--> |
メッセージ応答・戻り |
シーケンス図(破線) |
-> |
呼び出しメッセージ |
シーケンス図、クラス図の依存 |
..> |
依存(破線) |
クラス図、コンポーネント図 |
o-- |
集約(白菱) |
クラス図 |
*-- |
コンポジション(黒菱) |
クラス図 |
->> |
非同期呼び出し(独自) |
PlantUML 拡張表現(シーケンス図) |
🎁 おわりに
このチートシートは、UML図を描く際の「意味のある表現」を素早く選ぶための早見表です。図を「なんとなく」描くのではなく、関係の性質に合った線と矢印を選ぶことで、設計意図が明確に伝わる図になります。
PDF化や画像形式のまとめも可能ですので、ドキュメント資料やチーム共有用に欲しければ対応します!どうしますか?