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