クラス図
(Class Diagram)
サンプル
@startuml
class A
class B
class C
A --|> B : extends
A --> C : associates
@enduml
クラス
クラスを定義できます。
class Sample
インターフェイス
interface Sample
抽象クラス
abstract class Sample
パッケージ
package Sample
パッケージの中にクラス、インターフェース、抽象クラスを定義
package Sample {
class ClassA
interface InterfacA
abstract class ClassB
}
フィールド
fieldA : int
メソッド
methodA() : void
可視性
これはjavaの可視性を強く感じる要素かもしれません...。
private
-fieldA : int
-methodA() : void
protected
#fieldA : int
#methodA() : void
package private
~fieldA : int
~methodA() : void
public
+fieldA : int
+methodA() : void
static
{static} fieldA : int
{static} methodA() : void
abstract
{abstract} methodA() : void
ステレオタイプ
class Sample <<ステレオタイプ>>
クラス間などの関係
継承
ClassA <|-- ClassB
実装
InterfaceA <.. ClassA
内部クラス
ClassA +-- ClassB
依存
ClassA <|-- ClassB
集約
子が親から独立して存在できる関係を表しそうですが…。
あまり使わない要素かもしれませんw
ClassA *-- ClassB
構成
子が親から独立して存在できない関係を表すそうですが…。
あまり使わない要素かもしれませんw
ClassA o-- ClassB
リンク(実線)
ClassA -- ClassB
リンク(点線)
ClassA .. ClassB
ラベル
ラベルはリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。
ClassA -- ClassB : ラベル
ラベルに矢印の追加
ClassA -- ClassB : ラベル >
ClassA -- ClassB : ラベル <
多重度
多重度はリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。
ClassA "1..*" -- "*" ClassB
ノート
ノートを定義できます。
左側
note left of ClassA : クラスの左側に注釈
右側
note right of ClassA : クラスの右側に注釈
複数行の場合
この機能は、ノートを右側に配置する場合、左側に配置する場合でも使用できます。
尚、このサイトでは右側のみ紹介しています。
note right of ClassA
クラスの右側に注釈1
クラスの右側に注釈2
end note
全体の設定
タイトル
タイトルを定義できます。
title 新基盤構築計画
ヘッダ
ヘッダを定義できます。
header 新基盤構築計画
フッタ
フッタを定義できます。
footer フッタ
キャプション
キャプションを定義できます。
caption キャプション
すべて組み合わせると...
空のフィールド/メソッドを省略
hide empty members
可視性の記号化をしない
skinparam classAttributeIconSize 0
行コメント
'
から始まる行は行コメントとして扱われます。
ブロックコメント
/*
から*/
まではブロックコメントとして扱われます。
warning
注意: ただし、行頭以外に/*
を置いた場合にブロックコメントとして認識されないようです。
また行の途中で*/
を記載してもその行の最後までブロックコメントとして処理されるようです。
参照
https://qiita.com/kyonc5/items/4d536cb59fd7c41debc1