【開発】【設計】PlantUMLチートシート - j-komatsu/myCheatSheet GitHub Wiki

PlantUML ユースケース チートシート

インデックス

  1. シーケンス図(Sequence Diagrams)
  2. クラス図(Class Diagrams)
  3. ユースケース図(Use Case Diagrams)
  4. アクティビティ図(Activity Diagrams)
  5. ステート図(State Diagrams)
  6. コンポーネント図(Component Diagrams)
  7. オブジェクト図(Object Diagrams)
  8. デプロイメント図(Deployment Diagrams)
  9. タイミング図(Timing Diagrams)
  10. ガントチャート(Gantt Charts)
  11. ワイヤフレーム図(Wireframe Diagrams)
  12. マインドマップ(Mindmaps)
  13. ER図(Entity-Relationship Diagrams)
  14. PlantUMLの設定とカスタマイズ(Settings and Customizations)

詳細

1. シーケンス図(Sequence Diagrams)

コマンドとユースケース系

シーケンス図は、オブジェクト間のメッセージ交換を視覚化します。

シチュエーション

API通信のフローを可視化したい場合に便利です。

サンプル1(シンプルバージョン)

@startuml
Alice -> Bob: Hello
Bob --> Alice: Hi
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
actor User
participant "Web Server" as WS
participant "Database" as DB

User -> WS: Request Data
WS -> DB: Query Data
DB --> WS: Return Data
WS --> User: Display Data
@enduml

2. クラス図(Class Diagrams)

コマンドとユースケース系

クラス図は、システムのクラス構造とその関係を視覚化します。

シチュエーション

オブジェクト指向設計でのクラス設計を表現する際に役立ちます。

サンプル1(シンプルバージョン)

@startuml
class Animal {
  +name: String
  +makeSound(): void
}
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
class Animal {
  +name: String
  +makeSound(): void
}

class Dog extends Animal {
  +breed: String
  +bark(): void
}

class Cat extends Animal {
  +color: String
  +meow(): void
}
@enduml

3. ユースケース図(Use Case Diagrams)

コマンドとユースケース系

ユースケース図は、システムとアクターの相互作用を視覚化します。

シチュエーション

システムの要求仕様をクライアントに説明する際に有効です。

サンプル1(シンプルバージョン)

@startuml
actor User
usecase "Login" as UC1
User -> UC1
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
actor User
actor Admin

usecase "View Data" as UC1
usecase "Edit Data" as UC2

User -> UC1
Admin -> UC1
Admin -> UC2
@enduml

4. アクティビティ図(Activity Diagrams)

コマンドとユースケース系

アクティビティ図は、フローやプロセスを視覚化します。

シチュエーション

業務フローやアルゴリズムの説明に最適です。

サンプル1(シンプルバージョン)

@startuml
start
:開始;
if (条件A?) then (yes)
  :処理A;
else (no)
  :処理B;
endif
stop
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
start
:ユーザー認証;
if (認証成功?) then (yes)
  :ダッシュボードを表示;
else (no)
  :エラーメッセージを表示;
endif
:終了;
stop
@enduml

5. ステート図(State Diagrams)

コマンドとユースケース系

ステート図は、オブジェクトの状態とその遷移を表現します。

シチュエーション

システムの状態遷移を可視化したい場合に有用です。

サンプル1(シンプルバージョン)

@startuml
[*] --> 初期状態
初期状態 --> 動作中 : イベント1
動作中 --> 停止 : イベント2
停止 --> [*]
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
[*] --> Idle
Idle --> Processing : Start
Processing --> Idle : Complete
Processing --> Error : Fail
Error --> [*]
@enduml

6. コンポーネント図(Component Diagrams)

コマンドとユースケース系

コンポーネント図は、システムの構造や依存関係を示します。

シチュエーション

モジュール間の関係や依存を説明する際に適しています。

サンプル1(シンプルバージョン)

@startuml
[Client] --> [Server]
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
[User Interface] --> [Application Layer]
[Application Layer] --> [Database Layer]
[Application Layer] --> [External API]
@enduml

7. オブジェクト図(Object Diagrams)

コマンドとユースケース系

オブジェクト図は、クラスとそのインスタンスの関係を表現します。

シチュエーション

具体的なデータモデルを説明する際に便利です。

サンプル1(シンプルバージョン)

@startuml
object User {
  name = "Alice"
  age = 30
}
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
object User {
  name = "Bob"
  email = "[email protected]"
}

object Order {
  id = 1234
  total = 49.99
}

User --> Order : places
@enduml

8. デプロイメント図(Deployment Diagrams)

コマンドとユースケース系

デプロイメント図は、システムの物理構成を示します。

シチュエーション

サーバーやノードの配置を説明する際に役立ちます。

サンプル1(シンプルバージョン)

@startuml
node "Web Server" {
  [App]
}
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
node "Web Server" {
  [Frontend Application]
}

node "Database Server" {
  [Database]
}

"Frontend Application" --> "Database"
@enduml

9. タイミング図(Timing Diagrams)

コマンドとユースケース系

タイミング図は、オブジェクトのライフラインと状態の変化を視覚化します。

シチュエーション

時間に依存するシステムの挙動を示すのに適しています。

サンプル1(シンプルバージョン)

@startuml
robust "Object" as A
@0
A is Active
@10
A is Inactive
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
robust "Client" as C
robust "Server" as S

@0
C is Idle
S is Idle

@5
C is Sending
S is Receiving

@15
C is Waiting
S is Processing

@25
C is Idle
S is Idle
@enduml

10. ガントチャート(Gantt Charts)

コマンドとユースケース系

ガントチャートは、プロジェクトのスケジュールや進捗を視覚化します。

シチュエーション

プロジェクト計画を簡潔に表現する際に便利です。

サンプル1(シンプルバージョン)

@startuml
[Task 1] lasts 5 days
[Task 2] lasts 3 days
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
[Design] lasts 5 days
[Development] starts after [Design] and lasts 10 days
[Testing] starts after [Development] and lasts 4 days
@enduml

11. ワイヤフレーム図(Wireframe Diagrams)

コマンドとユースケース系

ワイヤフレーム図は、UIデザインや画面レイアウトを視覚化します。

シチュエーション

アプリケーションの画面設計を初期段階で共有する際に役立ちます。

サンプル1(シンプルバージョン)

@startuml
frame "Login Screen" {
  label "Username"
  input
  label "Password"
  input
  button "Login"
}
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
frame "Main Dashboard" {
  label "Welcome, User!"
  rectangle "Graph" {
    rectangle "Chart" as Chart1
    rectangle "Chart" as Chart2
  }
  button "Logout"
}
@enduml

12. マインドマップ(Mindmaps)

コマンドとユースケース系

マインドマップは、アイデアや情報を階層的に整理します。

シチュエーション

ブレインストーミングや情報整理に便利です。

サンプル1(シンプルバージョン)

@startmindmap
* Root
** Idea 1
** Idea 2
*** Sub-idea 2.1
@endmindmap

サンプル2(システム構築を想定したバージョン)

@startmindmap
* Project
** Requirements
*** Functional
*** Non-functional
** Design
*** UI Design
*** System Architecture
** Development
@endmindmap

13. ER図(Entity-Relationship Diagrams)

コマンドとユースケース系

ER図は、データベースのエンティティとその関係を表現します。

シチュエーション

データベース設計時に使用します。

サンプル1(シンプルバージョン)

@startuml
entity User {
  *id : INT
  name : VARCHAR
}

entity Order {
  *id : INT
  amount : DECIMAL
}

User ||--o{ Order : places
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
entity User {
  *id : INT
  name : VARCHAR
  email : VARCHAR
}

entity Product {
  *id : INT
  name : VARCHAR
  price : DECIMAL
}

entity Order {
  *id : INT
  user_id : INT
  product_id : INT
  quantity : INT
}

User ||--o{ Order : places
Product ||--o{ Order : contains
@enduml

14. PlantUMLの設定とカスタマイズ(Settings and Customizations)

コマンドとユースケース系

PlantUMLの設定やスタイルをカスタマイズすることで、図の見た目を調整できます。

シチュエーション

図のテーマやスタイルを変更したい場合に使用します。

サンプル1(シンプルバージョン)

@startuml
skinparam backgroundColor LightYellow
skinparam classFontColor DarkBlue

class Example {
  +attribute: type
  +method()
}
@enduml

サンプル2(システム構築を想定したバージョン)

@startuml
skinparam monochrome true
skinparam shadowing false

actor User
rectangle "System" {
  User --> (Feature 1)
  User --> (Feature 2)
}
@enduml