【VSCode】PlantUMLでクラス図を書く方法
- 作成日:2024/10/15
 
Visual Studio Codeでクラス図を書くやり方を簡単に解説します。 初心者向けです。
PlantUMLの説明と導入
PlantUMLとは
PlantUMLとはVSCの拡張機能で、以下のようなクラス図を簡単に書けるものです。
                                この例ではクラス継承や関係などを簡単に記載したものですが、より複雑な設計図を作ることも可能です。
事前準備
- Visual Studio Codeをインストールする
 - Javaをインストールする
 
PlantUMLのインストール方法
VSCodeを開き、拡張機能の検索画面にて「PlantUML」と入力します。
                                PlantUMLをインストールします。これで導入は完了です。
PlantUMLの使い方
VSCodeで拡張子が「.pu」の新規ファイルを作成し、中身を以下のように書きます。
    @startuml
    
    class test{
        string:data
        out(data):void
    }
    
    @enduml
    
                                「Alt+D」を押下するとプレビュー画像が表示されます。
図の保存
「F1」または「Ctrl+Shift+P」押下でVSCodeの上部にコマンドパレットが表示されます。
                                出力したいファイル形式を選ぶと保存完了です。 VSCode右下に以下のような表示がでるので「View Report」を押下します。
                                VSCodeの下部に図の保存場所が表示されます。
                                今回はpng形式で保存しました。
クラス図の書き方
ここからはより詳しいクラス図の書き方を紹介します。
クラス
クラスの書き方です。以下はフィールドとメソッドをそれぞれ1つもつクラスの例です。
    @startuml
    
    class test{
        + int a
        - void run()
    }
    
    @enduml
    
                                +とーはアクセス修飾子です。
| コード表記 | アクセス修飾子 | 意味 | 
|---|---|---|
| + | public | どこからでもアクセス可能 | 
| - | private | 自分のクラス内でのみアクセス可能 | 
| ~ | package private | 同じパッケージ内でアクセス可能 | 
| # | protected | 自分のクラス、またはその派生クラスからアクセス可能 | 
先ほどのコードをクラス図にするとこのようになります。
                                クラス間の関係
クラス間の関係を表現する場合は以下のような書き方をします。
| 関係 | コード表記 | サンプル | 意味 | 
|---|---|---|---|
| 継承 | A <|-- B | ![]()  | 
                                                Aが継承される側。Bが継承する側。BクラスはAクラスの特性を引き継ぐ。汎化ともいう。 | 
| 実装 | A <|.. B | ![]()  | 
                                                Aが実装されるインターフェース。Bが実装するクラス。BクラスはインターフェースAをimplementsして実装する。 | 
| 関連 | A -- B | ![]()  | 
                                                AクラスとBクラスは比較的強い関連がある。 | 
| 依存 | A <.. B | ![]()  | 
                                                AクラスとBクラスは比較的弱い関連がある。 | 
| 集約 | A o-- B | ![]()  | 
                                                AクラスとBクラスの関係が「全体と部分」である。関連の1種。 | 
| コンポジション | A *-- B | ![]()  | 
                                                AクラスとBクラスの関係が「全体と部分」である。強い集約。 | 
コメント
図にコメントをいれる場合は「note 方向 of クラス名」と書きます。 方向は上(top),下(button),左(left),右(right)が指定可能です。
    @startuml
    
    class A{
    }
    
    ' コメント
    note top of A
    aaaaabbbbbbccccc
    end note
    
    @enduml
    
                                
                                これは上にコメントを入れた例です。
サンプル
クラスや関係を用いて簡単なサンプルを紹介します。
    @startuml
    
    ' クラスの定義
    
    class A{
    
        +string data
        +void fun(data)
    }
    
    class B {
    
    -int test()
    
    }
    
    ' 関係性の設定
    
    A <|- B
    
    ' コメントの設定
    
    note left of A
    Aクラスの説明
    end note
    
    note top of B
    Bクラスの説明
    
    end note
    
    @enduml
    
                                このコードを図に出力すると以下となります。
                                以上、クラス図の書き方でした。










