Read this post in: de_DEen_USes_ESfr_FRhi_INid_IDpl_PLpt_PTru_RUvizh_CNzh_TW

VPASCode PlantUML Playbook リファレンスガイド

VPASCode PlantUML Playbook から選りすぐった記事リストで、UML および非UMLの図をコードで記述するワークフローの構文ガイドを紹介しています。


PlantUML コアおよび構文の基礎

  1. PlantUML 構文の基礎: 図の宣言(@startuml ~ @enduml)を含む、PlantUML 構文の基礎を習得します。@startuml/@enduml、エンティティ定義、関係演算子、スタイル指定、および一般的なキーワード。クリーンで読みやすい PlantUML スクリプトの構造を学び、プロフェッショナルな図を自動的にレンダリングする方法を習得します。[[34]]

  2. PlantUML ユースケース図の構文ガイド: PlantUML のユースケース図を使って、機能要件とアクターの相互作用をモデル化する方法を学びます。アクター、ユースケース、システム境界、include/extend 関係、一般化パターンについて学び、要件文書化やユーザーストーリーマッピングに活用します。

  3. PlantUML クラス図の構文ガイド: PlantUML クラス図を使って静的システム構造を設計します。クラス/属性/メソッドの宣言、可視性修飾子、継承(<|--)、コンポジション(*--)、集約(o--)、および関連関係を、オブジェクト指向アーキテクチャの文書化に活用します。[[49]]

  4. PlantUML シーケンス図の構文ガイド: システムコンポーネント間のメッセージフローと時間的相互作用をモデル化します。参加者宣言、同期/非同期メッセージ(->-->)、アクティベーションバー、ループ、alt/else ブロック、および作成/非アクティブ化の構文を学び、API設計やマイクロサービス間の通信図に活用します。[[51]]

  5. PlantUML アクティビティ図の構文ガイド: PlantUML のアクティビティ図構文を使って、ビジネスプロセスやアルゴリズムワークフローを可視化します。開始/終了ノード、アクション、条件分岐(if/then/else)、ループ(repeat/while)、並列分岐、および手続き論理の文書化のためのパーティションスイムレーン。[[46]]

  6. PlantUMLステート図の構文ガイド:有限状態機械とオブジェクトのライフサイクル遷移をモデル化する。状態宣言、遷移矢印(-->)、エントリ/エグジットアクション、複合状態、および同時領域を学び、イベント駆動型システム設計と動作仕様を記述する。[[36]]

  7. PlantUMLオブジェクト図の構文ガイド:特定の瞬間における具体的なオブジェクトインスタンスとその実行時関係を図示する。デバッグやテストシナリオの可視化のため、オブジェクト名、属性値の割り当て、リンク構文、インスタンスレベルの関連を習得する。[[15]]

  8. PlantUMLコンポーネント図の構文ガイド:コンポーネント、インターフェース、依存関係を用いてモジュール化されたソフトウェアアーキテクチャをマッピングする。コンポーネント宣言、提供/要求インターフェース(<>)、依存関係矢印、パッケージグループ化を学び、マイクロサービスやプラグインベースのシステム文書化に活用する。[[35]]


高度なPlantUML図の種類

  1. PlantUMLデプロイメント図の構文ガイド:物理インフラと実行時デプロイメントトポロジーをモデル化する。マスター ノードクラウドフレームデータベース、および アーティファクト 要素、ネストされたコンテナ構文、ネットワークプロトコルラベル付けを学び、DevOpsランブックとクラウドアーキテクチャ図に活用する。[[31]]

@startuml
skinparam shadowing false
skinparam defaultFontName "Arial"

' スタイルの定義
skinparam node {
BackgroundColor #F1F8FF
BorderColor #005CC5
FontColor #032F62
}

skinparam database {
BackgroundColor #FFF5E6
BorderColor #D96F00
FontColor #5C3000
}

skinparam artifact {
BackgroundColor #E6FFF1
BorderColor #008670
FontColor #004D40
}

left to right direction

' ネットワークゾーン / ノード
node "コンテンツ配信ネットワーク" as cdn <<CDN>> {
artifact "キャッシュ済み静的アセット" as static
}

node "ロードバランサー" as lb <<F5 / HAProxy>>

node "アプリケーションサーバ" as appServer <<Ubuntu Linux>> {
node "Dockerコンテナ" as docker {
artifact "app.war" as artifactApp
}
}

node "データベースサーバ" as dbServer <<クラスタ>> {
database "本番DB" as db <<PostgreSQL>>
}

' プロトコルラベル付き接続
cdn --> lb : HTTP/HTTPS (ポート 443)
lb --> artifactApp : HTTP (ポート 8080)
artifactApp --> db : JDBC / SQL (ポート 5432)

@enduml

例:CDN、ロードバランサー、ネストされたアーティファクトを備えたアプリケーションサーバ、プロトコルラベル付き接続を持つデータベース層を示す、クラシックな3層アーキテクチャ。 [[1]]

@startuml

skinparam shadowing false

skinparam defaultFontName "Arial"

skinparam linetype ortho

' スタイル定義

skinparam rectangle {

    BackgroundColor #F4F6F9

    BorderColor #A0AAB2

    FontColor #232F3E

}

skinparam node {

    BackgroundColor #E2F3FC

    BorderColor #4A90E2

    FontColor #111111

}

skinparam database {

    BackgroundColor #FFF2E6

    BorderColor #FF9900

    FontColor #232F3E

}

' インフラストラクチャのエントリポイント

node "AWS Route 53" as dns

node "AWS Application Load Balancer" as alb

dns --> alb : トラフィックをルーティング

' グローバルクラウド境界

rectangle "AWSクラウドリージョン" {

   

    ' AZ間のKubernetesクラスタ境界

    rectangle "Amazon EKSクラスタ" as eks {

       

        ' アベイラビリティゾーン 1

        rectangle "アベイラビリティゾーン us-east-1a" as az1 #line.dashed {

            node "EC2ワーカーノード (AZ1)" as node1 {

                rectangle "フロントエンドポッド" as podWeb1 <<K8s Pod>> {

                    artifact "Nginxコンテナ" as containerWeb1

                }

                rectangle "バックエンドAPIポッド" as podApi1 <<K8s Pod>> {

                    artifact "Goアプリコンテナ" as containerApi1

                }

            }

        }

        ' アベイラビリティゾーン 2

        rectangle "アベイラビリティゾーン us-east-1b" as az2 #line.dashed {

            node "EC2ワーカーノード (AZ2)" as node2 {

                rectangle "フロントエンドポッド" as podWeb2 <<K8s Pod>> {

                    artifact "Nginxコンテナ" as containerWeb2

                }

                rectangle "バックエンドAPIポッド" as podApi2 <<K8s Pod>> {

                    artifact "Goアプリコンテナ" as containerApi2

                }

            }

        }

    }

    ' 共有データベース層

    rectangle "Amazon Auroraストレージエンジン" as storage {

        database "Auroraプライマリ (ライター)" as dbMaster

        database "Auroraレプリカ (リーダー)" as dbReplica

    }

}

' ルーティング & トラフィックマトリクス

alb --> podWeb1 : HTTP/S (ポート 80/443)

alb --> podWeb2 : HTTP/S (ポート 80/443)

podWeb1 --> podApi1 : gRPC (ポート 50051)

podWeb2 --> podApi2 : gRPC (ポート 50051)

podApi1 --> dbMaster : TCP (ポート 5432)

podApi2 --> dbMaster : TCP (ポート 5432)

dbMaster .right.> dbReplica : ストレージ自動レプリケーション

@enduml

例:AWSアベイラビリティゾーン across のクラウドネイティブKubernetesデプロイメント。ロードバランサーによるルーティング、ポッドのネスト、共有データベースクラスタを備える。 [[1]]

  1. PlantUML タイミング図の構文ガイド: 線形タイムラインに沿って正確な状態持続時間と時間的制約を可視化する。学ぶrobust/簡潔な 参加者スタイル、 @timepoint 状態の割り当て、 クロック 波形生成、および <-> 組込みシステムおよびプロトコル仕様のための制約注釈。[[30]]

@startuml
skinparam handwritten false
skinparam shadowing false
skinparam defaultFontName "Arial"

' タイミング図のタイトル
title データバスレジスタ同期タイムライン

' 周期的なクロック波形を定義する(周期10単位、高さ5単位)
clock "システムクロック" as CLK 期間10 パルス5

' データバスのロバスト参加者を定義する
robust "データバスレジスタ" as BUS

' 時刻0:レジスタの初期状態
@0
BUS は 空

' 時刻10:データバスが「読み取り」状態に移行
@10
BUS は 読み取り中

' 時刻20:データバスが「書き込み」状態に移行
@20
BUS は 書き込み中

' 時刻22:タイムライン上にカスタムテキストラベルを表示
@22
note top of BUS : T_WRITE

' 時刻30:データバスがロック状態になる
@30
BUS は ロック中

' 時刻35:タイムライン上にカスタムテキストラベルを表示
@35
note top of BUS : T_LOCK

' 時刻40:データバスが空状態に戻る
@40
BUS は 空

' 明示的な数値ポイントを使用して時間的制約注釈を追加
@22 <-> @35 : {13 TU 持続時間}

@enduml

例:周期的なシステムクロック波形と同期された、データバスレジスタの状態(空 → 読み取り中 → 書き込み中 → ロック中)を示す簡潔なタイムライン。 [[12]]

@startuml

skinparam shadowing false

skinparam defaultFontName "Arial"

' マルチスレッドタイムライン図のタイトル

title Webクライアントと認証ワーカースレッドの同期

' ロバスト参加者スタイルを使用してタイムラインを宣言

robust "Webクライアントスレッド" as CLIENT

robust "認証ワーカースレッド" as AUTH

' 時刻0ms:初期のアイドル状態

@0

CLIENT は アイドル

AUTH は アイドル

' 時刻10ms:クライアントが認証リクエストを発行

@10

CLIENT は "認証待ち"

AUTH は "資格情報の検証中"

' 時刻25ms:クライアントが追加のペイロードを送信 / 認証がJWTトークン生成を開始

@25

AUTH は "JWTトークン生成中"

' 時刻40ms:認証がトークン生成を完了し、クライアントに応答

@40

AUTH は アイドル

CLIENT は "認証済み"

' 時刻55ms:クライアントがデフォルト状態に戻る

@55

CLIENT は アイドル

' 30msの時間的制約ウィンドウ注釈(@10から@40まで)

@10 <-> @40 : {30ms 生成ウィンドウ}

@enduml

例:30msの生成ウィンドウ制約注釈を伴う、Webクライアントと認証ワーカースレッドの状態をマッピングしたロバストなマルチスレッドタイムライン。 [[12]]

  1. PlantUML ERD構文ガイド: データベーススキーマのドキュメント作成のためのエンティティ関係図を設計する。エンティティ宣言、属性型、主キー/外部キー表記、および基数関係(1|o--o{)をデータモデリングおよびSQLマイグレーション計画に使用する。

  2. PlantUML ArchiMate図構文ガイド: ArchiMate仕様を使用して企業アーキテクチャ層をモデル化する。戦略的IT計画およびガバナンス文書作成のためのビジネス/アプリケーション/テクノロジー層の要素、動機づけ概念、関係タイプを学ぶ。

  3. PlantUML C4モデル構文ガイド: ソフトウェアアーキテクチャの可視化のため、4つの抽象レベル(コンテキスト、コンテナ、コンポーネント、コード)でC4モデルを実装する。マスターPersonSystemコンテナ、およびコンポーネントステレオタイプは境界コンテナと関係のスタイルを備えており、ステークホルダーに整合したアーキテクチャコミュニケーションを実現します。


埋め込み図に関する注意点:VPASCodeドキュメント内のすべてのPlantUMLコード例は、ブラウザ上で直接インタラクティブで編集可能な図としてレンダリングされます。上記のPNG画像リンクは、例の図の静的プレビューを示しています。完全なインタラクティビティ(ライブ編集、構文検証、PNG/SVGへのエクスポートなど)を活用するには、各記事のURLを直接訪問してください。vpascode.com/docs. [[54]]

VPasCodeエディタの機能:各記事には「VPasCodeでPlantUMLを編集」ボタンが含まれており、コード例がVPasCodeの無料でブラウザベースのエディタで起動されます。ログインやインストールは不要です。変更内容はリアルタイムレンダリングで即座にプレビューされます。[[54]]


参考情報はVPASCodeドキュメントから収集されました。VPasCodeは、ログインやインストールが不要な、無料のオンラインブラウザベースのエディタで、PlantUML、Mermaid、Graphvizの図を編集できます。 [[54]]

コメントを残す