PlantUML(プラントユーエムエル、プラントウムル)テキストベースでUML図(シーケンス図、クラス図など)を自動生成できるOSSツールであり、ソフトウェア設計やドキュメント作成に活用されています。
https://help.docbase.io/posts/3720083
@startuml
Alice -> Bob : hello
@enduml
@startuml
class Car {
- String model
- int year
+ void start()
+ void stop()
}
class Driver {
- String name
+ void drive(car)
}
Driver --> Car : drives
@enduml
@startuml
actor User
participant "Web Browser" as Browser
participant "Web Server" as Server
database Database
User -> Browser : 検索クエリ入力
activate Browser
Browser -> Server : HTTP GET /search?q=keyword
activate Server
Server -> Database : SELECT * FROM items WHERE name LIKE '%keyword%'
activate Database
Database --> Server : 検索結果
deactivate Database
alt 結果あり
Server --> Browser : 200 OK (結果リスト)
Browser --> User : 検索結果を表示
else 結果なし
Server --> Browser : 200 OK (空リスト)
Browser --> User : "結果が見つかりません"を表示
end
deactivate Server
deactivate Browser
@enduml
@startuml
left to right direction
actor 利用者 as User
actor 管理者 as Admin
rectangle 図書館管理システム {
User -- (本を検索する)
User -- (本を借りる)
User -- (本を返却する)
(システム管理) -- Admin
(蔵書管理) -- Admin
(本を借りる) .> (利用者認証) : <<include>>
(本を返却する) .> (利用者認証) : <<include>>
(システム管理) .> (管理者認証) : <<include>>
}
@enduml
@startuml
start
:ユーザーがログイン;
if (認証成功?) then (yes)
:ダッシュボードを表示;
fork
:通知を確認;
fork again
:最新のデータを読み込む;
end fork
:タスクを選択;
else (no)
:ログインエラーを表示;
:再試行を促す;
stop
endif
:タスクを実行;
:ログアウト;
stop
@enduml
@startuml
[*] --> 待機中
待機中 --> 処理中 : イベント発生
処理中 --> 待機中 : 処理完了
処理中 --> エラー : エラー発生
エラー --> 待機中 : リセット
待機中 --> [*] : 終了
エラー --> [*] : 強制終了
state 処理中 {
[*] --> データ読込
データ読込 --> データ処理
データ処理 --> データ保存
データ保存 --> [*]
}
@enduml
@startuml
package "フロントエンド" {
[Webブラウザ] as WebBrowser
[UIコンポーネント] as UI
}
package "バックエンド" {
[APIサーバー] as API
[認証サービス] as Auth
[データ処理サービス] as DataProcessor
}
database "データベース" {
[ユーザーDB] as UserDB
[コンテンツDB] as ContentDB
}
WebBrowser --> UI : 表示
UI --> API : リクエスト送信
API --> Auth : 認証要求
API --> DataProcessor : データ要求
Auth --> UserDB : 認証情報確認
DataProcessor --> ContentDB : データ取得
@enduml
@startuml
entity "ユーザー" as users {
* ユーザーID : integer <<PK>>
--
* ユーザー名 : varchar
* Email : varchar
パスワードハッシュ : varchar
登録日時 : datetime
}
entity "投稿" as posts {
* 投稿ID : integer <<PK>>
--
* ユーザーID : integer <<FK>>
* タイトル : varchar
* 内容 : text
作成日時 : datetime
更新日時 : datetime
}
entity "コメント" as comments {
* コメントID : integer <<PK>>
--
* 投稿ID : integer <<FK>>
* ユーザーID : integer <<FK>>
* 内容 : text
作成日時 : datetime
}
users ||--o{ posts
posts ||--o{ comments
users ||--o{ comments
@enduml
@startmindmap
* 自動車の分類
** エンジンの種類による分類
*** ガソリンエンジン
*** ディーゼルエンジン
*** ハイブリッドエンジン
*** 電気エンジン
** 体形による分類
*** セダン
*** ハッチバック
*** SUV
** 用途による分類
*** 個人用
*** 商用
@endmindmap
@startgantt
project starts 2025-03-01
saturday are closed
sunday are closed
-- 要件定義フェーズ --
[要件ヒアリング] lasts 3 days
[要件定義書作成] lasts 5 days
[要件定義書作成] starts at [要件ヒアリング]'s end
-- 設計フェーズ --
[基本設計] lasts 10 days
[基本設計] starts at [要件定義書作成]'s end
[詳細設計] lasts 15 days
[詳細設計] starts at [基本設計]'s end
-- 開発フェーズ --
[フロントエンド開発] lasts 20 days
[バックエンド開発] lasts 25 days
[フロントエンド開発] starts at [詳細設計]'s end
[バックエンド開発] starts at [詳細設計]'s end
-- テストフェーズ --
[単体テスト] lasts 5 days
[単体テスト] starts at [バックエンド開発]'s end
@endgantt
@startsalt
{+
<b>ユーザー管理画面
{
ユーザーID | "ID001"
氏名 | "山田太郎"
メールアドレス | "yamada@example.com"
権限 | ^管理者^一般ユーザー^閲覧者^
}
{[保存] [キャンセル]}
{^"ユーザー一覧"
{#
# | ID | 氏名 | メールアドレス | 権限
1 | ID001 | 山田太郎 | yamada@example.com | 管理者
2 | ID002 | 鈴木花子 | suzuki@example.com | 一般ユーザー
3 | ID003 | 佐藤次郎 | sato@example.com | 閲覧者
}
}
}
@endsalt
@startuml
nwdiag {
network DMZ {
address = "192.168.1.0/24"
web01 [address = "192.168.1.10"]
web02 [address = "192.168.1.11"]
proxy [address = "192.168.1.1"]
}
network 内部ネットワーク {
address = "10.0.0.0/24"
proxy [address = "10.0.0.1"]
app01 [address = "10.0.0.10"]
app02 [address = "10.0.0.11"]
db01 [address = "10.0.0.20"]
db02 [address = "10.0.0.21"]
}
network 管理ネットワーク {
address = "10.1.0.0/24"
app01 [address = "10.1.0.10"]
app02 [address = "10.1.0.11"]
db01 [address = "10.1.0.20"]
db02 [address = "10.1.0.21"]
mgmt [address = "10.1.0.1"]
}
}
@enduml