設計・テスト

PlantUMLのクラス図でクラス間の関係を表現してみた

前回のクラス図についての記事では、1つのクラスについてのみを記載していたが、今回は、PlantUMLで、複数のクラス間の関係をもつクラス図を作成してみたので、作成したクラス図と元になるPlantUMLのソースコードを共有する。

なお、クラス図についてと、PlantUMLのクラス図についてのマニュアルは、前回記載した以下の記事を参照のこと。

PlantUMLでgetter・setterメソッドをもつクラスのクラス図を作成してみたクラス図とは、システムを構成するクラスとそれらの関係を表現する図で、各クラスが保持する属性(プロパティ)や操作(メソッド)も記載すること...

前提条件

下記記事の、VSCode上でPlantUMLを利用するための環境構築が完了していること。

PlantUMLをVSCode上で利用してみたPlantUMLは、VSCode(Visual Studio Code)上で編集するようにすると、ソースコードを色つきで分かりやすく表示...

作成したクラス図(1)

ここで作成対象とするクラス図のソースコードの内容は、以下のサイトの通り。
https://qiita.com/shoheiyokoyama/items/c2ce16b4f492cd014d50

上記、抽象クラスを含むクラス間の関係を表現したクラス図の内容は、以下の通り。
relatedClass1

また、上記クラス図のPlantUMLソースコードの内容は、以下の通り。

@startuml
abstract class AbstractDisplay {
  + {abstract} open(): void
  + {abstract} print(): void
  + {abstract} close(): void
  + display(): void {final}
}
class CharDisplay{
  - ch:char
  + CharDisplay(ch:char)
  + open(): void
  + print(): void
  + close(): void
}
class StringDisplay{
  - string: String
  - width: int
  + StringDisplay(string: String)
  + open(): void
  + print(): void
  + close(): void
  - printLine(): void
}
class Main{
  + {static} main: void(args: String[])
}
Main --> "1" CharDisplay
Main ---> "2" StringDisplay
AbstractDisplay <|-- CharDisplay
AbstractDisplay <|-- StringDisplay
@enduml



作成したクラス図(2)

ここで作成対象とするクラス図のソースコードの内容は、以下のサイトの通り。
http://www.itsenka.com/contents/development/java/interface.html

上記、インターフェースを含むクラス間の関係を表現したクラス図の内容は、以下の通り。
relatedClass2

また、上記クラス図のPlantUMLソースコードの内容は、以下の通り。

@startuml
interface If1{
    s1: String="If1"
    m1(): void
}
interface If2{
    s2: String="If2"
    m2(): void
}
interface If3{
    s3: String="If3"
    m3(): void
}
interface If4{
    s4: String="If4"
    m4(): void
}
class IfSample{
    + m1(): void
    + m2(): void
    + m3(): void
    + m4(): void
}
class Sample1001{
    + {static} main: void(args: String[])
}
If1 <|-- If3
If2 <|-- If3
If3 <|.. IfSample
If4 <|.. IfSample
Sample1001 ---> "2" IfSample
@enduml

要点まとめ

  • PlantUMLによるクラス図で、クラスの継承やインタフェースの実装を含む場合や、クラス間で関連がある場合の表現が行える。