PlantUML記号について

PlantUMLを使用してクラス図を作成する際に使用される一般的な記号について説明します

図を簡単に表示することができるブラウザ

最初にコードからクラス図などのUML図を作成できるページを紹介しておきます

公式ページ

全般

クラス

クラスは通常、四角形で表されます。クラス名は四角形内に書かれ、オプションでクラスの属性と操作も含めることができます。

class ClassName {
  + attribute1: DataType
  + attribute2: DataType
  + method1(): ReturnType
  + method2(param: ParameterType): ReturnType
}

関連線

クラス間の関連は直線または矢印で表されます。通常、直線でクラス間の静的な関連を表し、矢印を使用して方向性を示すことができます。

Class1 -- Class2
ClassA --> ClassB

集約とコンポジション

集約は空心のほぼ三角形で表され、コンポジションは実心のほぼ三角形で表されます。これらのシンボルは通常、クラスから集約またはコンポジションへの関連を示すのに使用されます。

UML(Unified Modeling Language)に基づくと、集約とコンポジションはクラス間の関係を示すためのリレーションシップ(関連)です。

集約は、一つのクラスが他のクラスの一部を持つ関係を表し、ダイヤモンド記号で示されます。
コンポジションは、より強い関連で、一つのクラスが他のクラスのライフサイクルに密接に依存しており、実線と塗りつぶしのダイヤモンドで表現されます

集約は「部分-全体」の関係を示し、コンポジションは「所有-被所有」の関係を示します

Class1 o-- PartClass : 集約
ClassA *-- PartClass : 複合

汎化

汎化(継承)は、矢印で表されます。親クラスから派生クラスへの継承を示す際に使用されます。

ParentClass <|-- ChildClass

インターフェース

インターフェースはクラスの四角形内で「<<interface>>」とラベルを付けて表されます。

class MyClass {
  <<interface>> MyInterface
}

これらはPlantUMLでよく使用されるクラス図の記号の一部です。PlantUMLはテキストベースのツールであり、このテキスト記法を使用してクラス図を生成できます。また、PlantUMLには他にもさまざまな記号や機能があり、詳細な図を作成するための豊富なオプションが提供されています。

アクセス修飾子

PlantUMLはテキストベースのモデリング言語で、UML(Unified Modeling Language)図を生成するためのツールです。アクセス修飾子は、クラスの属性やメソッドがどのように他のクラスからアクセスできるかを示す重要な概念です。PlantUMLを使ってアクセス修飾子を説明するには、以下の例をご覧ください

@startuml
class MyClass {
  - privateField: int
  # protectedField: string
  ~ packageField: double
  + publicField: boolean

  - privateMethod()
  # protectedMethod()
  ~ packageMethod()
  + publicMethod()
}

MyClass --|> AnotherClass : Inheritance
@enduml

このPlantUMLのコードでは、MyClassというクラスを定義して、さまざまなアクセス修飾子を示しています。アクセス修飾子の記号とその意味は以下の通りです:

  • -: プライベート (Private) アクセス修飾子は、同じクラス内からのみアクセスできるフィールドやメソッドを示します。他のクラスからはアクセスできません。
  • #: プロテクテッド (Protected) アクセス修飾子は、同じクラス内およびそのサブクラスからのみアクセスできるフィールドやメソッドを示します。
  • ~: パッケージ (Package) アクセス修飾子は、同じパッケージ内からのみアクセスできるフィールドやメソッドを示します。パッケージは特定のプログラミング言語の概念で、Javaなどで使用されます。
  • +: パブリック (Public) アクセス修飾子は、どのクラスからでもアクセスできるフィールドやメソッドを示します。

このPlantUMLのコードを図に変換すると、MyClassクラスのフィールドやメソッドのアクセス修飾子が示され、また、MyClassクラスがAnotherClassクラスからの継承関係を示しています。

アクセス修飾子は、クラス設計やソフトウェアアーキテクチャの設計において、情報隠蔽やセキュリティの観点から非常に重要です。 PlantUMLを使用することで、これらのアクセス修飾子を含むクラス図を効果的に表現できます。

矢印の説明

PlantUMLを使用して、クラス図や他のUML図で矢印(アロー)を表現することができます。矢印は通常、クラス間の関係や依存性を示すために使用されます。以下はPlantUMLを使用して矢印の説明を示す例です。

@startuml
class ClassA
class ClassB

ClassA --|> ClassB : 関連
ClassA --> ClassB : 依存
ClassA o-- ClassB : 集約
ClassA *-- ClassB : 複合
ClassA -- ClassB : 関連なし
@enduml

このPlantUMLのコードでは、ClassAClassBという2つのクラスを定義し、それらのクラス間に異なる種類の矢印を使用して関係を示しています。

  • --|>: 関連(Association)を示す矢印です。ClassAClassBと何らかの関連があることを示します。
  • -->: 依存(Dependency)を示す矢印です。ClassAClassBに依存していることを示します。通常、ClassAClassBのメソッドを呼び出す場合などに使用されます。
  • o--: 集約(Aggregation)を示す矢印です。ClassAClassBを含んでいることを示します。ClassAClassBの一部であることを意味します。
  • *--: 複合(Composition)を示す矢印です。ClassAClassBを複合しています。集約とは異なり、複合はより強い関連性を示します。通常、ClassAClassBを所有していることを意味します。
  • --: 関連なし(No Association)を示す通常の矢印です。クラス間に特定の関係がないことを示します。

これらの矢印は、クラス図やシーケンス図などのUML図でクラス間の関係を視覚的に表現するのに役立ちます。関連性や依存性の理解に役立つ情報を提供します。

UML

Posted by hidepon