前回のクラス図についての記事では、1つのクラスについてのみを記載していたが、今回は、PlantUMLで、複数のクラス間の関係をもつクラス図を作成してみたので、作成したクラス図と元になるPlantUMLのソースコードを共有する。
なお、クラス図についてと、PlantUMLのクラス図についてのマニュアルは、前回記載した以下の記事を参照のこと。
PlantUMLでgetter・setterメソッドをもつクラスのクラス図を作成してみたクラス図とは、システムを構成するクラスとそれらの関係を表現する図で、各クラスが保持する属性(プロパティ)や操作(メソッド)も記載すること...
前提条件
下記記事の、VSCode上でPlantUMLを利用するための環境構築が完了していること。
PlantUMLをVSCode上で利用してみたPlantUMLは、VSCode(Visual Studio Code)上で編集するようにすると、ソースコードを色つきで分かりやすく表示...
作成したクラス図(1)
ここで作成対象とするクラス図のソースコードの内容は、以下のサイトの通り。
https://qiita.com/shoheiyokoyama/items/c2ce16b4f492cd014d50
上記、抽象クラスを含むクラス間の関係を表現したクラス図の内容は、以下の通り。

また、上記クラス図の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
上記、インターフェースを含むクラス間の関係を表現したクラス図の内容は、以下の通り。

また、上記クラス図の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によるクラス図で、クラスの継承やインタフェースの実装を含む場合や、クラス間で関連がある場合の表現が行える。





