目次
Microservicesアーキテクチャを実践中!
PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。
インストール方法の選択
Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine や Confluence にインストールする方法など、様々な利用方法が選択できます。ここでは簡単のため、GitHub Gist の ID を指定してアクセスすると画像を生成して返す PlantUML Gist というサービスを利用します。その他、オンラインエディタも編集時に便利です。「Switch layout」ボタンを押してから利用します。
簡単なサンプル
PlantUML 言語仕様がまとめられた公式ドキュメントを参考に、簡単なサンプルを記載します。
シーケンス図
@startuml
actor アリス as A
database ボブ as B
== 初期化 ==
A -> B: 矢印
note left: 一行
B --> A: 点線矢印
note right
複数行
複数行
end note
== 何らかの処理グループ ==
A -> B
A <-- B
create actor 新規アクター as C
A -> C: new
@enduml
クラス図
@startuml
package com.example.mypackage {
class MyClass {
int myVal1
String myVal2
void myMethod()
}
note left: クラス定義直後の注釈
MyClass <|-- MySubClass: 継承
MyClass1 <-- MyClass2: 実線の矢印
MyClass1 <.. MyClass2: 点線の矢印
note top of MyClass1: 一行
note bottom of MyClass1: 一行
note left of MyClass1
複数行
複数行
end note
note "複数クラスに対する注釈" as N
MyClass1 .. N
N .. MyClass2
}
enum MyEnum {
C1
C2
}
interface IMyClass
abstract class MyAbstractClass
annotation MyAnnotation
@enduml
状態遷移図
@startuml
state "状態1" as S1
state "状態2" as S2
S1: 状態に関する説明その1
S1: 状態に関する説明その2
note left of S1: 一行注釈
[*] --> S1: 始点から状態1へ
S1 --> [*]
S1 --> S2
S2 --> [*]
@enduml
アクティビティ図
@startuml
start
:処理1;
note left
複数行注釈
複数行注釈
end note
fork
:並行処理2-1;
fork again
:並行処理2-2;
end fork
if (何らかの判定) then (yes)
:処理3;
elseif (何らかの別の判定) then (yes)
:処理4;
else (該当なし)
:処理5;
endif
repeat
:処理6;
repeat while (繰り返し判定?)
while (繰り返し判定?) is (ループ必要)
:処理7;
-> 文字列あり矢印;
endwhile (ループ不要)
stop
@enduml
全 UML 図に共通の PlantUML 文法
@startuml
title
タイトル文字列
end title
legend right
説明
説明
end legend
Alice -> Bob
'一行コメント
/'
コメント
コメント
'/
@enduml
記事の執筆者にステッカーを贈る
有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。
さらに詳しく →Feedbacks
ログインするとコメントを投稿できます。
関連記事
- Spring Security フォームログインのサンプルコードSpring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
- Java配列の宣言方法 (C/C++との違い)Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
- Akka HTTP サンプルコード (Scala)Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
- Kestrel の使用例Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
- Android Activity ライフサイクルの様子を把握するための簡易サンプルコードAndroid アプリケーションのコンポーネントの一つである Activity についてライフサイクルの様子を把握するための簡易サンプルコードです。 The Activity Lifecycle [ライフサイクルの状態遷移図](https://developer.android.com/guide/components/