Skip to main content

クラス図

(Class Diagram)

サンプル​

@startuml
class A
class B
class C

A --|> B : extends
A --> C : associates
@enduml
PlantUML diagram

クラス​

クラスを定義できます。

class Sample
PlantUML diagram

インターフェイス​

interface Sample
PlantUML diagram

抽象クラス​

abstract class Sample
PlantUML diagram

パッケージ​

package Sample
PlantUML diagram

パッケージの中にクラス、インターフェース、抽象クラスを定義​

package Sample {
class ClassA
interface InterfacA
abstract class ClassB
}
PlantUML diagram

フィールド​

fieldA : int
PlantUML diagram

メソッド​

methodA() : void
PlantUML diagram

可視性​

これはjavaの可視性を強く感じる要素かもしれません...。

private​

-fieldA : int
-methodA() : void
PlantUML diagram

protected​

#fieldA : int
#methodA() : void
PlantUML diagram

package private​

~fieldA : int
~methodA() : void
PlantUML diagram

public​

+fieldA : int
+methodA() : void
PlantUML diagram

static​

{static} fieldA : int
{static} methodA() : void
PlantUML diagram

abstract​

{abstract} methodA() : void
PlantUML diagram

ステレオタイプ​

class Sample <<ステレオタイプ>>
PlantUML diagram

クラス間などの関係​

継承​

ClassA <|-- ClassB
PlantUML diagram

実装​

InterfaceA <.. ClassA
PlantUML diagram

内部クラス​

ClassA +-- ClassB
PlantUML diagram

依存​

ClassA <|-- ClassB
PlantUML diagram

集約​

子が親から独立して存在できる関係を表しそうですが…。
あまり使わない要素かもしれませんw

ClassA *-- ClassB
PlantUML diagram

構成​

子が親から独立して存在できない関係を表すそうですが…。
あまり使わない要素かもしれませんw

ClassA o-- ClassB
PlantUML diagram

リンク(実線)​

ClassA -- ClassB
PlantUML diagram

リンク(点線)​

ClassA .. ClassB
PlantUML diagram

ラベル​

ラベルはリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。

ClassA -- ClassB : ラベル
PlantUML diagram

ラベルに矢印の追加​

ClassA -- ClassB : ラベル >
PlantUML diagram
ClassA -- ClassB : ラベル <
PlantUML diagram

多重度​

多重度はリンク(実践)以外でも定義できますが、ここでは代表としてリンクにラベルを付ける形で記載しています。

ClassA "1..*" -- "*" ClassB
PlantUML diagram

ノート​

ノートを定義できます。

左側​

note left of ClassA : クラスの左側に注釈
PlantUML diagram

右側​

note right of ClassA : クラスの右側に注釈
PlantUML diagram

複数行の場合​

この機能は、ノートを右側に配置する場合、左側に配置する場合でも使用できます。
尚、このサイトでは右側のみ紹介しています。

note right of ClassA
クラスの右側に注釈1
クラスの右側に注釈2
end note
PlantUML diagram

全体の設定​

タイトル​

タイトルを定義できます。

title 新基盤構築計画
PlantUML diagram

ヘッダ​

ヘッダを定義できます。

header 新基盤構築計画
PlantUML diagram

フッタ​

フッタを定義できます。

footer フッタ
PlantUML diagram

キャプション​

キャプションを定義できます。

caption キャプション
PlantUML diagram

すべて組み合わせると...​

PlantUML diagram

空のフィールド/メソッドを省略​

hide empty members
PlantUML diagram

可視性の記号化をしない​

skinparam classAttributeIconSize 0
PlantUML diagram

行コメント​

'から始まる行は行コメントとして扱われます。

ブロックコメント​

/*から*/まではブロックコメントとして扱われます。

warning

注意: ただし、行頭以外に/*を置いた場合にブロックコメントとして認識されないようです。
また行の途中で*/を記載してもその行の最後までブロックコメントとして処理されるようです。

参照​

https://qiita.com/kyonc5/items/4d536cb59fd7c41debc1

https://niyanmemo.com/4576/#toc18

https://help.docbase.io/posts/3720083