PlantUMLを用いてクラス図を作成するための構文を、網羅的に解説します。この記事を読めば、基本的な図形から複雑な関係性まで、PlantUMLで表現力豊かなクラス図を自在に描けるようになります。
PlantUMLは、シンプルなテキスト記述でUMLダイアグラムやフローチャートを作成できるツールです。 専用の構文を覚える必要はありますが、一度慣れてしまえば、GUIツールよりも素早く、そして美しくフローチャートを描けるようになります。 バージョン管理システムとの相性も抜群で、テキストベースなので変更履歴の追跡も簡単です。
UML・PlantUMLや、VSCode環境への導入方法等は以下にまとめていますので、こちらを参照ください。
クラスの基本的な定義方法と、様々な種類のクラスの表現方法を説明します。
@startuml
class ClassName
@enduml
abstractキーワードまたは<>ステレオタイプを使用します。
@startuml
abstract class AbstractClassName
class AbstractClassName <<abstract>>
@enduml
interfaceキーワードまたは<>ステレオタイプを使用します。
@startuml
interface InterfaceName
class InterfaceName <<interface>>
@enduml
クラスの役割を明示的に示すために使用します。
※ ‘ はコメントアウトです。
@startuml
class ClassName <<stereotype>>
' 例:<<entity>>, <<control>>, <<boundary>>, <<exception>>など
@enduml
関連するクラスをグループ化します。
@startuml
package PackageName {
class Class1
class Class2
}
package PackageName1.PackageName2 {
class Class3
}
@enduml
クラス内部の要素であるフィールドとメソッドの定義方法と可視性の設定について説明します。
class ClassName {
- privateField : Type
+ publicMethod(param1 : Type) : ReturnType
# protectedMethod()
~ packagePrivateField : AnotherType
static staticField : StaticType
{abstract} abstractMethod() : AbstractReturnType
}
クラス間の様々な関係性を表現する方法を説明します。
<|– を使用します。
@startuml
ClassA <|-- ClassB
@enduml
<|.. を使用します。
@startuml
InterfaceA <|.. ClassB
@enduml
— を使用します。多重度やロール名も指定できます。
@startuml
ClassA "1" -- "*" ClassB : relates to
@enduml
o– を使用します。
@startuml
ClassA o-- ClassB
@enduml
*– を使用します。
@startuml
ClassA *-- ClassB
@enduml
..> を使用します。
@startuml
ClassA ..> ClassB : depends on
@enduml
クラス図をより分かりやすくするための追加要素を説明します。
‘ (シングルクォート) で行コメント、noteキーワードで注釈を追加できます。
@startuml
' クラスのコメント
note right of ClassName : クラスの右側に注釈
@enduml
hideキーワードで特定の要素を非表示にできます。
@startuml
hide empty members
hide circle
@enduml
図の外観をカスタマイズできます。
@startuml
skinparam classBackgroundColor lightblue
class ClassName
@enduml
この記事では、PlantUMLを使ってクラス図を作成するための基本的な構文を網羅的に解説しました。クラスの定義、メンバーの定義、クラス間の関係、そしてその他の付加的な要素まで、PlantUMLの表現力を最大限に活用するための情報を提供しています。これらの構文を組み合わせることで、複雑なシステム設計でも明確に表現できる、高品質なクラス図を作成できます。より詳細な情報や高度な機能については、PlantUMLの公式ドキュメントを参照することをお勧めします。
この記事が、あなたの役に立てば幸いです!
シーケンス図の書き方について知りたい方は、こちら
フローチャート図の書き方について知りたい方は、こちら
ユースケース図の書き方について知りたい方は、こちら
クラス図の詳細な仕様や高度な機能については、以下の公式ドキュメントをご参照ください。