LoginSignup
41
34

More than 1 year has passed since last update.

PlantUML クラス図 早見表

Last updated at Posted at 2020-09-05

PlantUMLでクラス図を描く際よく使う記法をまとめています。

目次

  1. フィールド、メソッドの表現
    1. 可視性の定義
    2. Static、Abstract
    3. 空のフィールド、メソッドの省略
  2. クラス間の関係
    1. 継承 Extension
    2. 実装 Implements
    3. 集約 Aggregation
    4. 構成 Composition
    5. 依存 Dependency
    6. 内部クラス Inner Class
  3. 関係のラベル
    1. ラベル、矢印の追加
    2. 多重度
  4. パッケージ

1. フィールド、メソッドの表現

1. 可視性の定義

可視性は以下で表現します。
- : private
# : protected
~ : package private
+ : public

@startuml

class ClassA {
 -fieldA : int
 #fieldB : String
 ~methodA() : void
 +methodB() : String
}

@enduml

各可視性は記号で表現されます。

コマンド skinparam classAttributeIconSize 0 で可視性の記号化をオフにできます。
業務で使う場合、記号では伝わらない場合があるのでオフにしておいた方が良いかもしれません。

@startuml
skinparam classAttributeIconSize 0

class ClassA {
 -fieldA : int
 #fieldB : String
 ~methodA() : void
 +methodB() : String
}

@enduml

2. Static、Abstract

静的、抽象的の表現は {static}{abstract} 修飾子を使用します。

@startuml

class ClassA {
 {static} +fieldA : String
 {abstract} +methodA() : void
}

@enduml

3. 空のフィールド、メソッドの省略

コマンド hide empty members で空のフィールド、メソッドを省略することができます。
図のサイズを省略できるため気に入っています。
※以降このコマンドを使います。

@startuml
hide empty members

class ClassA  {
}

class ClassB  {
field
}

class ClassC  {
method()
}

class ClassD  {
field
method()
}

@enduml

2. クラス間の関係

1. 継承 Extension

UMLでは、汎化、Generalizationと表現されますが、馴染みのある継承と表現しています。

@startuml
hide empty members

abstract class AbstractClassA {
}

class ClassA {
}

AbstractClassA <|-- ClassA

@enduml

2. 実装 Implements

UMLでは、実現、Realization と表現されますが、馴染みのある実装と表現しています。

@startuml
hide empty members

Interface InterfaceA {
}

class ClassA {
}

InterfaceA <|.. ClassA

@enduml

3. 集約 Aggregation

子が親から独立して存在できる関係を表します。

@startuml
hide empty members

Class House {
}

class Persion {
}

House o-- Persion

@enduml

4. 構成 Composition

子が親から独立して存在できない関係を表します。一般に強い集約と表現されます。

@startuml
hide empty members

Class Persion {
}

class Head {
}

Persion *-- Head

@enduml

5. 依存 Dependency

一方がもう一方を使用する、または依存している関係を使用関係や依存関係と呼びます。

@startuml
hide empty members

Class GasStation {
}

class Car {
}

GasStation <.. Car
@enduml

6. 内部クラス Inner Class

内部クラスは以下のように表します。

@startuml
hide empty members

Class OuterClass {
}

class InnerClass {
}

OuterClass +-- InnerClass

@enduml

3. 関係のラベル

1. ラベル、矢印の追加

クラス間の関係に対して : text をつけることでラベルを追加することができます。
: text >とすると矢印を付けることができます。

@startuml
hide empty members

Class ClassA {
}

class ClassB {
}

class ClassC {
}

ClassA -- ClassB : text
ClassB -- ClassC : text >

@enduml

2. 多重度

多重度は関係の両端に""で記載します。

@startuml
hide empty members

Class ClassA {
}

class ClassB {
}

ClassA "1..*" -- "*" ClassB

@enduml

4. パッケージ

@startuml
hide empty members

package PackageA {
    Class ClassA {
    }

    package PackageB {
        Class ClassB {
        }
    }
}

@enduml

参考文献

この記事は以下の情報を参考にしました。

41
34
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
41
34