設計・テスト

PlantUMLでgetter・setterメソッドをもつクラスのクラス図を作成してみた

クラス図とは、システムを構成するクラスとそれらの関係を表現する図で、各クラスが保持する属性(プロパティ)や操作(メソッド)も記載することができる。システム全体の静的な構造を明らかにするために作成される。

今回は、PlantUMLで、getter/setterメソッドをもつクラスのクラス図を作成してみたので、作成したクラス図と元になるPlantUMLのソースコードを共有する。

なお、クラス図については、以下のサイトを参照のこと。
http://www.itsenka.com/contents/development/uml/class.html

また、PlantUMLのクラス図についてのマニュアルは、以下のサイトを参照のこと。
https://plantuml.com/ja/class-diagram



前提条件

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

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

クラス図作成対象のソースコード

今回の、クラス図作成対象となるソースコードの内容は、以下の通り。

package com.example.demo;

import lombok.Data;

@Data
public class UserData {

    /** ID */
    private long id;

    /** 名前 */
    private String name;

    /** 生年月日_年 */
    private int birthY;

    /** 生年月日_月 */
    private int birthM;

    /** 生年月日_日 */
    private int birthD;

    /** 性別 */
    private String sex;

    /** メモ */
    private String memo;

    /** 性別(文字列) */
    private String sex_value;

}



作成したクラス図(1)

一般的な方法で作成したクラス図の内容は、以下の通り。
userDataClass1

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

@startuml
class UserData {
  - long id
  - String name
  - int birthY
  - int birthM
  - int birthD
  - String sex
  - String memo
  - String sex_value
  + getId(): long 
  + setId(id:long): void
  + getName(): String
  + setName(name:String): void
  + getBirthY(): int
  + setBirthY(birthY:int): void
  + getBirthM(): int
  + setBirthM(birthM:int): void
  + getBirthD(): int
  + setBirthD(birthD:int): void
  + getSex(): String
  + setSex(sex:String): void
  + getMemo(): String
  + setMemo(memo:String): void
  + getSex_value(): String
  + setSex_value(sex_value:String): void
  + toString(): String
}
@enduml



フリーランスエンジニアのエージェントは就業中でも無料で登録できるITエンジニアには、フリーランスという働き方がある。 フリーランスとは、会社や団体などに所属せず、仕事に応じて自由に契約する人のこ...

作成したクラス図(2)

getter/setterメソッドには、«get/set»という独自のステレオタイプを使うこともできる。このステレオタイプを利用した場合のクラス図の内容は、以下の通り。
userDataClass2

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

@startuml
class UserData {
  - «get/set» long id
  - «get/set» String name
  - «get/set» int birthY
  - «get/set» int birthM
  - «get/set» int birthD
  - «get/set» String sex
  - «get/set» String memo
  - «get/set» String sex_value
  + toString(): String
}
@enduml

要点まとめ

  • クラス図とは、システムを構成するクラスとそれらの関係を表現する図で、各クラスが保持する属性(プロパティ)や操作(メソッド)も記載することができる。
  • PlantUMLを利用すれば、コードベースでクラス図を作成できる。
  • getter/setterメソッドは、«get/set»という独自のステレオタイプを利用すると、クラス図のメソッドの記述を省略できる。