PlantUML クラス図
定義
class.puml@startuml
class クラス名
interface インターフェース名
enum 列挙名
@enduml
↓
関係
長くすれば線を長くすることができる
以下は一例
関連
--
で定義
↓
集約
o-
で定義
↓
コンポジション
*-
で定義
↓
多重度
線の定義の前や後ろに定義することで多重度を定義できる
<クラス名> "<多重度>" <関係記号> "<多重度>" <クラス名>
class-multi.puml@startuml
class クラス1
class クラス2
'関係
クラス1 "1" -- "1..*" クラス2
@enduml
↓
関係ラベル
関係に関する記述のあとに、コロンでクラス同士の関係ラベルを定義できる
<クラス名> "<多重度>" <関係記号> "<多重度>" <クラス名> : <関係>
↓
方向を指定
関係の前か後ろに <
や >
をつけると方向を指定できる
↓
メソッド、フィールド
クラス名のあとにコロンを付けてメソッドやフィールドを記述する
()
をつけるとメソッド扱い、付けない場合はフィールド扱いになる
↓
中括弧内に記述する方法もある
↓
{method}
、 {field}
修飾子を指定すると、強制的にメソッドやフィールドとして指定できる
アクセス修飾子
メソッドやフィールドの前に記号を定義すればアクセス修飾子を指定できる
class-access.puml@startuml
class クラス1 {
+public
#protected
~package private
-private
+public()
#protected()
~package private()
-private()
}
@enduml
↓
なお、これらの記号表示は次の記述でオフにすることができる
skinparam classAttributeIconSize 0
class-access-skinparam.puml@startuml
skinparam classAttributeIconSize 0
class クラス1 {
+public
#protected
~package private
-private
+public()
#protected()
~package private()
-private()
}
@enduml
↓
静的・抽象修飾子
{static}
や {abstract}
で静的、抽象の修飾子を付けられる
メソッド及びフィールドで指定できる
↓
パッケージ
package
でパッケージを指定できる
パッケージは入れ子にできる
↓
パッケージは複数定義でき、パッケージ外から関係線を定義できる
その場合は後の方に定義を書く
class-package-multi.puml@startuml
package パッケージ1 {
class クラス1
class クラス2
}
package パッケージ2 {
class クラス3
class クラス4
クラス1 -- クラス3
}
@enduml
↓
関連クラス
関連クラスを定義することができる
class-relation-class.puml@startuml
class クラス1
class クラス2
クラス1 "1..*" - "1..*" クラス2
(クラス1, クラス2) .. 中間クラス
class 中間クラス {
メソッド()
}
@enduml
↓
今回紹介した内容はほんの一部
詳細はPlantUMLのドキュメントサイトを参照。