モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)
目次目次を開く/閉じる

PlantUML による UML 図の描き方

モーダルを閉じる

ステッカーを選択してください

モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2017/09/15
最終更新最終更新
2020/01/21
記事区分記事区分
一般公開

目次

    アカウント プロフィール画像 (サイドバー)

    Microservicesアーキテクチャを実践中!

    0
    ステッカーを贈るとは?

    PlantUML はテキスト形式で表現されたシーケンス図やクラス図といった UML (Unified Modeling Language) 図の情報から画像を生成するためのツールです。簡単な使い方をまとめます。

    インストール方法の選択

    Atom や Eclipse のプラグインをインストールしてエディタから利用する方法、JAR をダウンロードして Java コマンドで実行する方法、Redmine や Confluence にインストールする方法など、様々な利用方法が選択できます。ここでは簡単のため、GitHub Gist の ID を指定してアクセスすると画像を生成して返す PlantUML Gist というサービスを利用します。その他、オンラインエディタも編集時に便利です。「Switch layout」ボタンを押してから利用します。

    簡単なサンプル

    PlantUML 言語仕様がまとめられた公式ドキュメントを参考に、簡単なサンプルを記載します。

    シーケンス図

    @startuml
    actor アリス as A
    database ボブ as B
    
    == 初期化 ==
    A -> B: 矢印
    note left: 一行
    B --> A: 点線矢印
    note right
    複数行
    複数行
    end note
    
    == 何らかの処理グループ ==
    A -> B
    A <-- B
    create actor 新規アクター as C
    A -> C: new
    @enduml
    

    クラス図

    @startuml
    package com.example.mypackage {
      class MyClass {
        int myVal1
        String myVal2
        void myMethod()
      }
      note left: クラス定義直後の注釈
    
      MyClass <|-- MySubClass: 継承
      MyClass1 <-- MyClass2: 実線の矢印
      MyClass1 <.. MyClass2: 点線の矢印
    
      note top of MyClass1: 一行
      note bottom of MyClass1: 一行
      note left of MyClass1
      複数行
      複数行
      end note
    
      note "複数クラスに対する注釈" as N
      MyClass1 .. N
      N .. MyClass2
    }
    
    enum MyEnum {
      C1
      C2
    }
    interface IMyClass
    abstract class MyAbstractClass
    annotation MyAnnotation
    @enduml
    

    状態遷移図

    @startuml
    state "状態1" as S1
    state "状態2" as S2
    
    S1: 状態に関する説明その1
    S1: 状態に関する説明その2
    note left of S1: 一行注釈
    
    [*] --> S1: 始点から状態1へ
    S1 --> [*]
    S1 --> S2
    S2 --> [*]
    @enduml
    

    アクティビティ図

    @startuml
    start
    :処理1;
    note left
    複数行注釈
    複数行注釈
    end note
    fork
      :並行処理2-1;
    fork again
      :並行処理2-2;
    end fork
    
    if (何らかの判定) then (yes)
      :処理3;
    elseif (何らかの別の判定) then (yes)
      :処理4;
    else (該当なし)
      :処理5;
    endif
    
    repeat
      :処理6;
    repeat while (繰り返し判定?)
    
    while (繰り返し判定?) is (ループ必要)
      :処理7;
      -> 文字列あり矢印;
    endwhile (ループ不要)
    stop
    @enduml
    

    全 UML 図に共通の PlantUML 文法

    @startuml
    title
    タイトル文字列
    end title
    legend right
    説明
    説明
    end legend
    Alice -> Bob
    '一行コメント
    /'
    コメント
    コメント
    '/
    @enduml
    
    0
    詳細設定を開く/閉じる
    アカウント プロフィール画像 (本文下)

    Microservicesアーキテクチャを実践中!

    記事の執筆者にステッカーを贈る

    有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

    さらに詳しく →
    ステッカーを贈る コンセプト画像

    Feedbacks

    Feedbacks コンセプト画像

      ログインするとコメントを投稿できます。

      関連記事

      • Spring Security フォームログインのサンプルコード
        Spring フレームワークによる Web アプリケーション開発で、ログイン処理を実装する際は Spring Security が便利です。ここでは特に Spring Boot で Web アプリケーションを開発する場合を対象とし、フォームによる ID/Password ログインを行うためのサンプルコードをまとめます。 公式ドキュメント [Spring Security チュートリアル](http...
        えびちゃんえびちゃん12/4/2019に更新
        いいねアイコン画像0
      • Java配列の宣言方法 (C/C++との違い)
        Javaの配列 Javaの配列宣言方法はC/C++と似ているようで若干異なる。 初期化しない場合 C/C++の int array[10]; はJavaでは int array[] = new int[10]; となる。同様にC/C++の int array[3][3]; はJavaでは int array[][] = new int[3][3]; となる。 初期化
        てんとうむしてんとうむし5/13/2018に更新
        いいねアイコン画像0
      • Akka HTTP サンプルコード (Scala)
        サムネイル画像-a98142497c
        Akka アクターを用いて実装された汎用 HTTP フレームワークです。Spray の後継です。コアモジュールである akka-http-core は 2016/2/17 に experimental が外れました。akka-http などのいくつかのサブモジュールは 2016/3/1 現在 experimental のままですが、基本的な
        雄太雄太10/7/2021に更新
        いいねアイコン画像0
      • Kestrel の使用例
        Kestrel は Message Queue (MQ) の実装のひとつです。一般に MQ はアプリケーション間やプロセス間、スレッド間で非同期に通信するために用いられます。メッセージの送信側は MQ に書き込めば受信側の応答を待たずに次の処理に非同期に進むことができます。Kestrel はわずか 2500 行程の Scala で実装されており JVM で動作します。MQ 自体はメモリ上に存在する...
        したくんしたくん10/12/2017に更新
        いいねアイコン画像0
      • Android Activity ライフサイクルの様子を把握するための簡易サンプルコード
        サムネイル画像-bcdd581127
        Android アプリケーションのコンポーネントの一つである Activity についてライフサイクルの様子を把握するための簡易サンプルコードです。 The Activity Lifecycle [ライフサイクルの状態遷移図](https://developer.android.com/guide/components/
        パンダパンダ12/15/2019に更新
        いいねアイコン画像0