ドット言語チュートリアル



Dot Language Tutorial



UML描画ドット言語

バックグラウンド

Graphvizは、グラフを作成でき、簡単にスクリプト化できる柔軟なアプリケーションです。この記事では、Graphviz DOT言語の基本を紹介し、いくつかのサンプルスクリプトを提供します。

入手します Graphviz

DOTファイルは、チャートの構成要素とそれらの間の関係を説明するテキストファイルです。 Graphvizはレンダリングプログラムに相当します。 DOTファイルをhtmlと比較する場合、Graphvizがブラウザーです。



  • Macの場合は、brew install graphvizを使用してください。

DOT言語の基本

基本的なDOTファイル

demo01.dot



digraph demo{ A->B[dir=both] B->C[dir=none] C->D[dir=back] D->A[dir=forward] }
DOTファイルから画像を生成する

dot demo01.dot –Tpng –o demo01.png

画像

PlantUML

PlantUMLは、Graphvizに基づくオープンソースプロジェクトであり、高速描画をサポートしています。



  • タイミング図

  • ユースケース図

  • クラス図

  • アクティビティ図(これが新しい構文です)、

  • コンポーネント図

  • 状態図

  • 配置図、

  • オブジェクトグラフ

  • ワイヤーフレームグラフィカルインターフェイス

png、svg、LaTeX形式の画像を生成でき、プラグインとして使用できます。

  • Intellijのアイデア

  • Eclipse

  • NetBeans

  • Ckeditor

  • TinyMCEエディター

  • 崇高なテキストエディター

  • 私が来た

  • Emacs

  • 原子

  • ...。

PlantUMLをインストールするSublimeTextのプロセスについて話しましょう:

  • ダウンロード 崇高なPlantUML プラグインと解凍

  • [設定]-> [パッケージの参照...]からsublimeのPackagesディレクトリを開き、解凍したプラグインをPackagesディレクトリの下に配置します。

  • Sublimeを再起動します

  • 使い方を簡単にするために、Sublimeでショートカットキーを設定できます。 [設定]-> [キーバインド]-[ユーザー]を開き、ショートカットキーを追加します。
    {'キー':['alt + d']、 'コマンド': 'display_diagrams'}

上記のコードは、Alt + dを押してPlantUML画像を生成するように構成されており、お気に入りのボタンに変更できます。

からの参照 Sublime + PlantUMLを使用して効率的に絵を描く

状態図を描く

例として状態図を取り上げます。他の図を描く必要がある場合は、 PlantUML 見る

単純な状態図

@startuml [*] --> State1 State1 --> [*] State1 : this is a string State1 : this is another string State1 -> State2 State2 --> [*] @enduml

ホットキーalt+d

画像

合成状態

@startuml scale 350 width [*] --> NotShooting state NotShooting { [*] --> Idle Idle --> Configuring : EvConfig Configuring --> Idle : EvConfig } state Configuring { [*] --> NewValueSelection NewValueSelection --> NewValuePreview : EvNewValue NewValuePreview --> NewValueSelection : EvNewValueRejected NewValuePreview --> NewValueSelection : EvNewValueSaved state NewValuePreview { State1 -> State2 } } @enduml
  • スケール350幅、指定された画像の幅は350、スケールは比例します

画像

ロングネーム

州の名前が長すぎる場合は、stateキーワードを使用してください

@startuml scale 600 width [*] -> State1 State1 --> State2 : Succeeded State1 --> [*] : Aborted State2 --> State3 : Succeeded State2 --> [*] : Aborted state State3 { state 'Accumulate Enough Data Long State Name' as long1 long1 : Just a test [*] --> long1 long1 --> long1 : New Data long1 --> ProcessData : Enough Data } State3 --> State3 : Failed State3 --> [*] : Succeeded / Save Result State3 --> [*] : Aborted @enduml

画像

並行状態

@startuml [*] --> Active state Active { [*] -> NumLockOff NumLockOff --> NumLockOn : EvNumLockPressed NumLockOn --> NumLockOff : EvNumLockPressed -- [*] -> CapsLockOff CapsLockOff --> CapsLockOn : EvCapsLockPressed CapsLockOn --> CapsLockOff : EvCapsLockPressed -- [*] -> ScrollLockOff ScrollLockOff --> ScrollLockOn : EvCapsLockPressed ScrollLockOn --> ScrollLockOff : EvCapsLockPressed } @enduml
  • 並行状態を合成するための区切り文字として-を使用します。

画像

矢印の方向

  • -> [水平矢印の定義]を使用します。次の形式を使用して、矢印の方向を強制することもできます。
    1.-下->(デフォルトの矢印)

2.-右->または->
3.-左->
4.-up->

@startuml [*] -up-> First First -> Second Second --> Third Third --> Fourth Fourth -left-> Last @enduml

画像

コメント

キーワード:

  • 左のメモ

  • の右に注意してください

  • の上部に注意してください

  • の下部に注意してください

@startuml [*] --> Active Active --> Inactive note left of Active : this is a short note note right of Inactive A note can also be defined on several lines end note @enduml

  • フローティングノート

@startuml state foo note 'This is a floating note' as N1 @enduml

  • 合成状況についてのコメント

@startuml [*] --> NotShooting state 'Not Shooting State' as NotShooting { state 'Idle mode' as Idle state 'Configuring mode' as Configuring [*] --> Idle Idle --> Configuring : EvConfig Configuring --> Idle : EvConfig } note right of NotShooting : This is a note on a composite state @enduml

テーマの変更

  • skinparamコマンドを使用して、フォントと色を変更します。

@startuml skinparam backgroundColor LightYellow skinparam state { StartColor MediumBlue EndColor Red BackgroundColor #e0f BackgroundColor<> #aaa FontColor<> Orange BorderColor Orange FontName Monaco } [*] --> NotShooting state 'Not Shooting State' as NotShooting { state 'Idle mode' as Idle <> state 'Configuring mode' as Configuring [*] --> Idle Idle --> Configuring : EvConfig Configuring --> Idle : EvConfig } NotShooting --> [*] @enduml

リアルタイムでプレビューできるウェブサイトがあります planttext