デプロイメント図

デプロイメント図とは、システムのアーキテクチャを視覚化する図の一種であり、ソフトウェ ア・コンポーネントがハードウェア上にどのようにデプロイされるかを示すものです。これは、サーバ、ワークステーショ ン、およびデバイスなどのさまざまなノードにわたるコンポーネントの分布の明 確な図を提供します。

PlantUML を使用すると、展開図の作成が簡単になります。このプラットフォームは、プレーンテキストを使用してこれらのダイアグラム を設計するシンプルで直感的な方法を提供し、迅速な反復と簡単なバージョン管理を保証 します。さらに、PlantUML フォーラムは、ユーザがヘルプを求めたり、アイデアを共有し たり、ダイアグラム作成の課題に関して協力したりすることができる、活気あるコ ミュニティを提供します。PlantUML の主な利点のひとつは、様々なツールやプラットフォームとシームレスに統合できることであり、専門家や愛好家にとって好ましい選択肢となっています。

要素の宣言

🎉 Copied!

@startuml
actor アクター
actor/ "アクター/"
agent エージェント
artifact アーティファクト
boundary 境界
card カード
circle 円
cloud クラウド
collections コレクション
component コンポーネント
control コントロール
database データベース
entity エンティティ
file ファイル
folder フォルダ
frame フレーム
hexagon 六角形
interface インターフェイス
label ラベル
node ノード
package パッケージ
person 人型
queue キュー
rectangle 四角形
stack スタック
storage ストレージ
usecase ユースケース
usecase/ "ユースケース/"
@enduml

説明文が長くなる場合は、オプションでテキストを [] の中に書くこともできます。

🎉 Copied!

@startuml
folder フォルダ [
これは<b>フォルダ</b>です
----
境界線として
====
いろいろな種類の
....
スタイルが使えます
]

node ノード [
これは<b>ノード</b>です
----
境界線として
====
いろいろな種類の
....
スタイルが使えます
]

database データベース [
これは<b>データベース</b>です
----
境界線として
====
いろいろな種類の
....
スタイルが使えます
]

usecase ユースケース [
これは<b>ユースケース</b>です
----
境界線として
====
いろいろな種類の
....
スタイルが使えます
]

card カード [
これは<b>カード</b>です
----
境界線として
====
いろいろな種類の
....
スタイルが使えます
<i><color:blue>(add from V1.2020.7)</color></i>
]
@enduml

WARNING
 This translation need to be updated. 
WARNING

要素の宣言 (省略記法)

いくつかの省略記法を使って要素を宣言することができます。
通常記法のキーワード 省略記法のキーワード 通常記法の例 省略記法の例 参照
actor : a : actor actor1 :actor2: Actors
component [ c ] component component1 [component2] Components
interface () i interface interface1 () "interface2" Interfaces
usecase ( u ) usecase usecase1 (usecase2) Usecases

アクター

🎉 Copied!

@startuml

actor アクター1
:アクター2:

@enduml

注意: 二重山括弧(guillemet)を使用したアクターの古い記法がありますが、現在は非推奨であり、削除される予定です。今後は使用しないでください。

コンポーネント

🎉 Copied!

@startuml

component コンポーネント1
[コンポーネント2]

@enduml

インターフェース

🎉 Copied!

@startuml

interface インターフェース1
() "インターフェース2"

label "//interface example//"
@enduml

ユースケース

🎉 Copied!

@startuml

usecase ユースケース1
(ユースケース2)

@enduml

リンク、矢印

要素の間をシンプルなリンクで結ぶことができます。リンクにラベルを付けることもできます。

🎉 Copied!

@startuml

node ノード1
node ノード2
node ノード3
node ノード4
node ノード5
ノード1 -- ノード2 : ラベル1
ノード1 .. ノード3 : ラベル2
ノード1 ~~ ノード4 : ラベル3
ノード1 == ノード5

@enduml

複数の種類のリンクを使うこともできます。

🎉 Copied!

@startuml

artifact アーティファクト1
artifact アーティファクト2
artifact アーティファクト3
artifact アーティファクト4
artifact アーティファクト5
artifact アーティファクト6
artifact アーティファクト7
artifact アーティファクト8
artifact アーティファクト9
artifact アーティファクト10
アーティファクト1 --> アーティファクト2
アーティファクト1 --* アーティファクト3
アーティファクト1 --o アーティファクト4
アーティファクト1 --+ アーティファクト5
アーティファクト1 --# アーティファクト6
アーティファクト1 -->> アーティファクト7
アーティファクト1 --0 アーティファクト8
アーティファクト1 --^ アーティファクト9
アーティファクト1 --(0 アーティファクト10

@enduml

次のような種類のリンクも使用できます。

🎉 Copied!

@startuml

cloud クラウド1
cloud クラウド2
cloud クラウド3
cloud クラウド4
cloud クラウド5
クラウド1 -0- クラウド2
クラウド1 -0)- クラウド3
クラウド1 -(0- クラウド4
クラウド1 -(0)- クラウド5

@enduml

別の例:

🎉 Copied!

@startuml
actor foo1
actor foo2
foo1 <-0-> foo2
foo1 <-(0)-> foo2
 
(ac1) -le(0)-> left1
ac1 -ri(0)-> right1
ac1 .up(0).> up1
ac1 ~up(0)~> up2
ac1 -do(0)-> down1
ac1 -do(0)-> down2
 
actor1 -0)- actor2
 
component comp1
component comp2
comp1 *-0)-+ comp2
[comp3] <-->> [comp4]

boundary b1
control c1
b1 -(0)- c1

component comp1
interface interf1
comp1 #~~( interf1

:mode1actor: -0)- fooa1
:mode1actorl: -ri0)- foo1l

[component1] 0)-(0-(0 [componentC]
() component3 )-0-(0 "foo" [componentC]

[aze1] #-->> [aze2]
@enduml

[Ref. QA-547 and QA-1736]

⎘ すべての種類は付録を参照。

各括弧を使用した矢印のスタイル

角括弧を使用したクラスの関係(リンク、矢印)のスタイルと同様)

線のスタイル

矢印にbolddasheddottedhiddenplainのスタイルを指定することができます:

  • ラベル無し

🎉 Copied!

@startuml
node foo
title Bracketed line style without label
foo --> bar
foo -[bold]-> bar1
foo -[dashed]-> bar2
foo -[dotted]-> bar3
foo -[hidden]-> bar4
foo -[plain]-> bar5
@enduml

  • ラベル有り

🎉 Copied!

@startuml
title Bracketed line style with label
node foo
foo --> bar          : ∅
foo -[bold]-> bar1   : [bold]
foo -[dashed]-> bar2 : [dashed]
foo -[dotted]-> bar3 : [dotted]
foo -[hidden]-> bar4 : [hidden]
foo -[plain]-> bar5  : [plain]
@enduml

[Adapted from QA-4181]

線の色

🎉 Copied!

@startuml
title Bracketed line color
node  foo
foo --> bar
foo -[#red]-> bar1     : [#red]
foo -[#green]-> bar2   : [#green]
foo -[#blue]-> bar3    : [#blue]
foo -[#blue;#yellow;#green]-> bar4
@enduml

線の太さ

🎉 Copied!

@startuml
title Bracketed line thickness
node foo
foo --> bar                 : ∅
foo -[thickness=1]-> bar1   : [1]
foo -[thickness=2]-> bar2   : [2]
foo -[thickness=4]-> bar3   : [4]
foo -[thickness=8]-> bar4   : [8]
foo -[thickness=16]-> bar5  : [16]
@enduml

[Adapted from QA-4949]

混合

🎉 Copied!

@startuml
title Bracketed line style mix
node foo
foo --> bar                             : ∅
foo -[#red,thickness=1]-> bar1          : [#red,1]
foo -[#red,dashed,thickness=2]-> bar2   : [#red,dashed,2]
foo -[#green,dashed,thickness=4]-> bar3 : [#green,dashed,4]
foo -[#blue,dotted,thickness=8]-> bar4  : [blue,dotted,8]
foo -[#blue,plain,thickness=16]-> bar5  : [blue,plain,16]
foo -[#blue;#green,dashed,thickness=4]-> bar6  : [blue;green,dashed,4]
@enduml

矢印の色とスタイルを変更する(インラインスタイル)

個別の矢印ごとにとスタイルを変更するには、次の記法を使用します:

  • #color;line.[bold|dashed|dotted];text:color

🎉 Copied!

@startuml
node foo
foo --> bar : normal
foo --> bar1 #line:red;line.bold;text:red  : red bold
foo --> bar2 #green;line.dashed;text:green : green dashed 
foo --> bar3 #blue;line.dotted;text:blue   : blue dotted
@enduml

[Ref. QA-3770 and QA-3816] [See similar feature on class diagram]

要素の色とスタイルを変更する(インラインスタイル)

それぞれ個別の要素について、とスタイルを変更するには、次の記法を使用します: #color;line:color;line.[bold|dashed|dotted];text:color

🎉 Copied!

@startuml
agent a
cloud c #pink;line:red;line.bold;text:red
file  f #palegreen;line:green;line.dashed;text:green
node  n #aliceblue;line:blue;line.dotted;text:blue
@enduml

🎉 Copied!

@startuml
agent a
cloud c #pink;line:red;line.bold;text:red [
c
cloud description
]
file  f #palegreen;line:green;line.dashed;text:green {
[c1]
[c2]
}
frame frame {
node  n #aliceblue;line:blue;line.dotted;text:blue
}
@enduml

[Ref. QA-6852]

入れ子にできる要素

次の要素は入れ子にできます:

🎉 Copied!

@startuml
artifact アーティファクト {
}
card カード {
}
cloud クラウド {
}
component コンポーネント {
}
database データベース {
}
file ファイル {
}
folder フォルダ {
}
frame フレーム {
}
hexagon 六角形 {
}
node ノード {
}
package パッケージ {
}
queue キュー {
}
rectangle 四角形 {
}
stack スタック {
}
storage ストレージ {
}
@enduml

WARNING
 This translation need to be updated. 
WARNING

パッケージと入れ子要素

一階層の例

🎉 Copied!

@startuml
artifact    artifactVeryLOOOOOOOOOOOOOOOOOOOg    as "アーティファクト" {
file f1
}
card        cardVeryLOOOOOOOOOOOOOOOOOOOg        as "カード" {
file f2
}
cloud       cloudVeryLOOOOOOOOOOOOOOOOOOOg       as "クラウド" {
file f3
}
component   componentVeryLOOOOOOOOOOOOOOOOOOOg   as "コンポーネント" {
file f4
}
database    databaseVeryLOOOOOOOOOOOOOOOOOOOg    as "データベース" {
file f5
}
file        fileVeryLOOOOOOOOOOOOOOOOOOOg        as "ファイル" {
file f6
}
folder      folderVeryLOOOOOOOOOOOOOOOOOOOg      as "フォルダ" {
file f7
}
frame       frameVeryLOOOOOOOOOOOOOOOOOOOg       as "フレーム" {
file f8
}
hexagon     hexagonVeryLOOOOOOOOOOOOOOOOOOOg     as "六角形" {
file f9
}
node        nodeVeryLOOOOOOOOOOOOOOOOOOOg        as "ノード" {
file f10
}
package     packageVeryLOOOOOOOOOOOOOOOOOOOg     as "パッケージ" {
file f11
}
queue       queueVeryLOOOOOOOOOOOOOOOOOOOg       as "キュー" {
file f12
}
rectangle   rectangleVeryLOOOOOOOOOOOOOOOOOOOg   as "四角形" {
file f13
}
stack       stackVeryLOOOOOOOOOOOOOOOOOOOg       as "スタック" {
file f14
}
storage     storageVeryLOOOOOOOOOOOOOOOOOOOg     as "ストレージ" {
file f15
}
@enduml

他の例

🎉 Copied!

@startuml
artifact Foo1 {
  folder Foo2
}

folder Foo3 {
  artifact Foo4
}

frame Foo5 {
  database Foo6
}

cloud vpc {
  node ec2 {
    stack stack
  }
}

@enduml

🎉 Copied!

@startuml
node Foo1 {
 cloud Foo2
}

cloud Foo3 {
  frame Foo4
}

database Foo5  {
  storage Foo6
}

storage Foo7 {
  storage Foo8
}
@enduml

すべて入れ子にした例

すべての入れ子要素の例です:
  • アルファベット順:

🎉 Copied!

@startuml
artifact アーティファクト {
card カード {
cloud クラウド {
component コンポーネント {
database データベース {
file ファイル {
folder フォルダ {
frame フレーム {
hexagon 六角形 {
node ノード {
package パッケージ {
queue キュー {
rectangle 四角形 {
stack スタック {
storage ストレージ {
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
@enduml

  • アルファベットの逆順

🎉 Copied!

@startuml
storage ストレージ {
stack スタック {
rectangle 四角形 {
queue キュー {
package パッケージ {
node ノード {
hexagon 六角形 {
frame フレーム {
folder フォルダ {
file ファイル {
database データベース {
component コンポーネント {
cloud クラウド {
card カード {
artifact アーティファクト {
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
@enduml

WARNING
 This translation need to be updated. 
WARNING

別名

asによる単純な別名

🎉 Copied!

@startuml
node ノード1 as n1
node "ノード 2" as n2
file f1 as "ファイル 1"
cloud c1 as "これ
は
クラウド
です"
cloud c2 [これ
も
クラウド
です]

n1 -> n2
n1 --> f1
f1 -> c1
c1 -> c2
@enduml

長い別名の例

🎉 Copied!

@startuml
actor        "アクター"         as actorVeryLOOOOOOOOOOOOOOOOOOOg
agent        "エージェント"     as agentVeryLOOOOOOOOOOOOOOOOOOOg
artifact     "アーティファクト" as artifactVeryLOOOOOOOOOOOOOOOOOOOg
boundary     "境界"             as boundaryVeryLOOOOOOOOOOOOOOOOOOOg
card         "カード"           as cardVeryLOOOOOOOOOOOOOOOOOOOg
cloud        "クラウド"         as cloudVeryLOOOOOOOOOOOOOOOOOOOg
collections  "コレクション"     as collectionsVeryLOOOOOOOOOOOOOOOOOOOg
component    "コンポーネント"   as componentVeryLOOOOOOOOOOOOOOOOOOOg
control      "コントロール"     as controlVeryLOOOOOOOOOOOOOOOOOOOg
database     "データベース"     as databaseVeryLOOOOOOOOOOOOOOOOOOOg
entity       "エンティティ"     as entityVeryLOOOOOOOOOOOOOOOOOOOg
file         "ファイル"         as fileVeryLOOOOOOOOOOOOOOOOOOOg
folder       "フォルダ"         as folderVeryLOOOOOOOOOOOOOOOOOOOg
frame        "フレーム"         as frameVeryLOOOOOOOOOOOOOOOOOOOg
hexagon      "六角形"           as hexagonVeryLOOOOOOOOOOOOOOOOOOOg
interface    "インターフェース" as interfaceVeryLOOOOOOOOOOOOOOOOOOOg
label        "ラベル"           as labelVeryLOOOOOOOOOOOOOOOOOOOg
node         "ノード"           as nodeVeryLOOOOOOOOOOOOOOOOOOOg
package      "パッケージ"       as packageVeryLOOOOOOOOOOOOOOOOOOOg
person       "人型"             as personVeryLOOOOOOOOOOOOOOOOOOOg
queue        "キュー"           as queueVeryLOOOOOOOOOOOOOOOOOOOg
stack        "スタック"         as stackVeryLOOOOOOOOOOOOOOOOOOOg
rectangle    "四角形"           as rectangleVeryLOOOOOOOOOOOOOOOOOOOg
storage      "ストレージ"       as storageVeryLOOOOOOOOOOOOOOOOOOOg
usecase      "ユースケース"     as usecaseVeryLOOOOOOOOOOOOOOOOOOOg
@enduml

🎉 Copied!

@startuml
actor       actorVeryLOOOOOOOOOOOOOOOOOOOg       as "アクター"
agent       agentVeryLOOOOOOOOOOOOOOOOOOOg       as "エージェント"
artifact    artifactVeryLOOOOOOOOOOOOOOOOOOOg    as "アーティファクト"
boundary    boundaryVeryLOOOOOOOOOOOOOOOOOOOg    as "境界"
card        cardVeryLOOOOOOOOOOOOOOOOOOOg        as "カード"
cloud       cloudVeryLOOOOOOOOOOOOOOOOOOOg       as "クラウド"
collections collectionsVeryLOOOOOOOOOOOOOOOOOOOg as "コレクション"
component   componentVeryLOOOOOOOOOOOOOOOOOOOg   as "コンポーネント"
control     controlVeryLOOOOOOOOOOOOOOOOOOOg     as "コントロール"
database    databaseVeryLOOOOOOOOOOOOOOOOOOOg    as "データベース"
entity      entityVeryLOOOOOOOOOOOOOOOOOOOg      as "エンティティ"
file        fileVeryLOOOOOOOOOOOOOOOOOOOg        as "ファイル"
folder      folderVeryLOOOOOOOOOOOOOOOOOOOg      as "フォルダ"
frame       frameVeryLOOOOOOOOOOOOOOOOOOOg       as "フレーム"
hexagon     hexagonVeryLOOOOOOOOOOOOOOOOOOOg     as "六角形"
interface   interfaceVeryLOOOOOOOOOOOOOOOOOOOg   as "インターフェース"
label       labelVeryLOOOOOOOOOOOOOOOOOOOg       as "ラベル"
node        nodeVeryLOOOOOOOOOOOOOOOOOOOg        as "ノード"
package     packageVeryLOOOOOOOOOOOOOOOOOOOg     as "パッケージ"
person      personVeryLOOOOOOOOOOOOOOOOOOOg      as "人型"
queue       queueVeryLOOOOOOOOOOOOOOOOOOOg       as "キュー"
stack       stackVeryLOOOOOOOOOOOOOOOOOOOg       as "スタック"
rectangle   rectangleVeryLOOOOOOOOOOOOOOOOOOOg   as "四角形"
storage     storageVeryLOOOOOOOOOOOOOOOOOOOg     as "ストレージ"
usecase     usecaseVeryLOOOOOOOOOOOOOOOOOOOg     as "ユースケース"
@enduml

[Ref. QA-12082]

角に丸みをつける

🎉 Copied!

@startuml
skinparam rectangle {
    roundCorner<<コンセプト>> 25
}


rectangle "コンセプト・モデル" <<コンセプト>> {
rectangle "例 1" <<コンセプト>> as ex1
rectangle "別の四角形"
}
@enduml

特有のskinparam

roundCorner

🎉 Copied!

@startuml
skinparam roundCorner 15
actor アクター
agent エージェント
artifact アーティファクト
boundary 境界
card カード
circle 円
cloud クラウド
collections コレクション
component コンポーネント
control コントロール
database データベース
entity エンティティ
file ファイル
folder フォルダ
frame フレーム
hexagon 六角形
interface インターフェース
label ラベル
node ノード
package パッケージ
person 人型
queue キュー
rectangle 四角形
stack スタック
storage ストレージ
usecase ユースケース
@enduml

[Ref. QA-5299, QA-6915, QA-11943]

付録:線の種類の一覧

🎉 Copied!

@startuml
left to right direction
skinparam nodesep 5

f3  ~~  b3  : ""~~""\n//dotted//
f2  ..  b2  : ""..""\n//dashed//
f1  ==  b1  : ""==""\n//bold//
f0  --  b0  : ""--""\n//plain//
@enduml

付録:矢印の先端と'0'矢印の一覧

矢印の先端

🎉 Copied!

@startuml
left to right direction
skinparam nodesep 5

f13 --0   b13 : ""--0""
f12 --@   b12 : ""--@""
f11 --:|> b11 : ""--:|>""
f10 --||> b10 : ""--||>""
f9  --|>  b9  : ""--|>""
f8  --^   b8  : ""--^ ""
f7  --\\  b7  : ""--\\\\""
f6  --#   b6  : ""--# ""
f5  --+   b5  : ""--+ ""
f4  --o   b4  : ""--o ""
f3  --*   b3  : ""--* ""
f2  -->>  b2  : ""-->>""
f1  -->   b1  : ""--> ""
f0  --    b0  : ""--  ""
@enduml

丸形の矢印('0'矢印)

🎉 Copied!

@startuml
left to right direction
skinparam nodesep 5

f10 0--0 b10 : "" 0--0 ""
f9 )--(  b9  : "" )--( ""
f8 0)--(0 b8 : "" 0)--(0""
f7 0)--  b7  : "" 0)-- ""
f6 -0)-  b6  : "" -0)- ""
f5 -(0)- b5  : "" -(0)-""
f4 -(0-  b4  : "" -(0- ""
f3 --(0  b3  : "" --(0 ""
f2 --(   b2  : "" --(  ""
f1 --0   b1  : "" --0  ""
@enduml

付録:すべての要素に対するインラインスタイルのテスト

シンプルな要素

🎉 Copied!

@startuml
actor アクター             #aliceblue;line:blue;line.dotted;text:blue
actor/ "アクター/"         #aliceblue;line:blue;line.dotted;text:blue
agent エージェント         #aliceblue;line:blue;line.dotted;text:blue
artifact アーティファクト  #aliceblue;line:blue;line.dotted;text:blue
boundary 境界              #aliceblue;line:blue;line.dotted;text:blue
card カード                #aliceblue;line:blue;line.dotted;text:blue
circle 円                  #aliceblue;line:blue;line.dotted;text:blue
cloud クラウド             #aliceblue;line:blue;line.dotted;text:blue
collections コレクション   #aliceblue;line:blue;line.dotted;text:blue
component コンポーネント   #aliceblue;line:blue;line.dotted;text:blue
control コントロール       #aliceblue;line:blue;line.dotted;text:blue
database データベース      #aliceblue;line:blue;line.dotted;text:blue
entity エンティティ        #aliceblue;line:blue;line.dotted;text:blue
file ファイル              #aliceblue;line:blue;line.dotted;text:blue
folder フォルダ            #aliceblue;line:blue;line.dotted;text:blue
frame フレーム             #aliceblue;line:blue;line.dotted;text:blue
hexagon 六角形             #aliceblue;line:blue;line.dotted;text:blue
interface インターフェース #aliceblue;line:blue;line.dotted;text:blue
label ラベル               #aliceblue;line:blue;line.dotted;text:blue
node ノード                #aliceblue;line:blue;line.dotted;text:blue
package パッケージ         #aliceblue;line:blue;line.dotted;text:blue
person 人型                #aliceblue;line:blue;line.dotted;text:blue
queue キュー               #aliceblue;line:blue;line.dotted;text:blue
rectangle 四角形           #aliceblue;line:blue;line.dotted;text:blue
stack スタック             #aliceblue;line:blue;line.dotted;text:blue
storage ストレージ         #aliceblue;line:blue;line.dotted;text:blue
usecase ユースケース       #aliceblue;line:blue;line.dotted;text:blue
usecase/ "ユースケース/"   #aliceblue;line:blue;line.dotted;text:blue
@enduml

入れ子の要素

サブ要素無し

🎉 Copied!

@startuml
artifact アーティファクト #aliceblue;line:blue;line.dotted;text:blue {
}
card カード #aliceblue;line:blue;line.dotted;text:blue {
}
cloud クラウド #aliceblue;line:blue;line.dotted;text:blue {
}
component コンポーネント #aliceblue;line:blue;line.dotted;text:blue {
}
database データベース #aliceblue;line:blue;line.dotted;text:blue {
}
file ファイル #aliceblue;line:blue;line.dotted;text:blue {
}
folder フォルダ #aliceblue;line:blue;line.dotted;text:blue {
}
frame フレーム #aliceblue;line:blue;line.dotted;text:blue {
}
hexagon 六角形 #aliceblue;line:blue;line.dotted;text:blue {
}
node ノード #aliceblue;line:blue;line.dotted;text:blue {
}
package パッケージ #aliceblue;line:blue;line.dotted;text:blue {
}
queue キュー #aliceblue;line:blue;line.dotted;text:blue {
}
rectangle 四角形 #aliceblue;line:blue;line.dotted;text:blue {
}
stack スタック #aliceblue;line:blue;line.dotted;text:blue {
}
storage ストレージ #aliceblue;line:blue;line.dotted;text:blue {
}
@enduml

サブ要素有り

🎉 Copied!

@startuml
artifact    artifactVeryLOOOOOOOOOOOOOOOOOOOg    as "アーティファクト" #aliceblue;line:blue;line.dotted;text:blue {
file f1
}
card        cardVeryLOOOOOOOOOOOOOOOOOOOg        as "カード" #aliceblue;line:blue;line.dotted;text:blue {
file f2
}
cloud       cloudVeryLOOOOOOOOOOOOOOOOOOOg       as "クラウド" #aliceblue;line:blue;line.dotted;text:blue {
file f3
}
component   componentVeryLOOOOOOOOOOOOOOOOOOOg   as "コンポーネント" #aliceblue;line:blue;line.dotted;text:blue {
file f4
}
database    databaseVeryLOOOOOOOOOOOOOOOOOOOg    as "データベース" #aliceblue;line:blue;line.dotted;text:blue {
file f5
}
file        fileVeryLOOOOOOOOOOOOOOOOOOOg        as "ファイル" #aliceblue;line:blue;line.dotted;text:blue {
file f6
}
folder      folderVeryLOOOOOOOOOOOOOOOOOOOg      as "フォルダ" #aliceblue;line:blue;line.dotted;text:blue {
file f7
}
frame       frameVeryLOOOOOOOOOOOOOOOOOOOg       as "フレーム" #aliceblue;line:blue;line.dotted;text:blue {
file f8
}
hexagon     hexagonVeryLOOOOOOOOOOOOOOOOOOOg     as "六角形" #aliceblue;line:blue;line.dotted;text:blue {
file f9
}
node        nodeVeryLOOOOOOOOOOOOOOOOOOOg        as "ノード" #aliceblue;line:blue;line.dotted;text:blue {
file f10
}
package     packageVeryLOOOOOOOOOOOOOOOOOOOg     as "パッケージ" #aliceblue;line:blue;line.dotted;text:blue {
file f11
}
queue       queueVeryLOOOOOOOOOOOOOOOOOOOg       as "キュー" #aliceblue;line:blue;line.dotted;text:blue {
file f12
}
rectangle   rectangleVeryLOOOOOOOOOOOOOOOOOOOg   as "四角形" #aliceblue;line:blue;line.dotted;text:blue {
file f13
}
stack       stackVeryLOOOOOOOOOOOOOOOOOOOg       as "スタック" #aliceblue;line:blue;line.dotted;text:blue {
file f14
}
storage     storageVeryLOOOOOOOOOOOOOOOOOOOg     as "ストレージ" #aliceblue;line:blue;line.dotted;text:blue {
file f15
}
@enduml

WARNING
 This translation need to be updated. 
WARNING

付録:すべての要素に対するスタイルのテスト

シンプルな要素

グローバルスタイル(componentDiagram)

🎉 Copied!

@startuml
<style>
componentDiagram {
  BackGroundColor palegreen
  LineThickness 1
  LineColor red
}
document {
  BackGroundColor white
}
</style>
actor アクター
actor/ "アクター/"
agent エージェント
artifact アーティファクト
boundary 境界
card カード
circle 円
cloud クラウド
collections コレクション
component コンポーネント
control コントロール
database データベース
entity エンティティ
file ファイル
folder フォルダ
frame フレーム
hexagon 六角形
interface インターフェース
label ラベル
node ノード
package パッケージ
person 人型
queue キュー
rectangle 四角形
stack スタック
storage ストレージ
usecase ユースケース
usecase/ "ユースケース/"
@enduml

エレメント毎のスタイル

🎉 Copied!

@startuml
<style>
actor {
  BackGroundColor #f80c12
  LineThickness 1
  LineColor black
}
agent {
  BackGroundColor #f80c12
  LineThickness 1
  LineColor black
}
artifact {
  BackGroundColor #ee1100
  LineThickness 1
  LineColor black
}
boundary {
  BackGroundColor #ee1100
  LineThickness 1
  LineColor black
}
card {
  BackGroundColor #ff3311
  LineThickness 1
  LineColor black
}
circle {
  BackGroundColor #ff3311
  LineThickness 1
  LineColor black
}
cloud {
  BackGroundColor #ff4422
  LineThickness 1
  LineColor black
}
collections {
  BackGroundColor #ff4422
  LineThickness 1
  LineColor black
}
component {
  BackGroundColor #ff6644
  LineThickness 1
  LineColor black
}
control {
  BackGroundColor #ff6644
  LineThickness 1
  LineColor black
}
database {
  BackGroundColor #ff9933
  LineThickness 1
  LineColor black
}
entity {
  BackGroundColor #feae2d
  LineThickness 1
  LineColor black
}
file {
  BackGroundColor #feae2d
  LineThickness 1
  LineColor black
}
folder {
  BackGroundColor #ccbb33
  LineThickness 1
  LineColor black
}
frame {
  BackGroundColor #d0c310
  LineThickness 1
  LineColor black
}
hexagon {
  BackGroundColor #aacc22
  LineThickness 1
  LineColor black
}
interface {
  BackGroundColor #69d025
  LineThickness 1
  LineColor black
}
label {
  BackGroundColor black
  LineThickness 1
  LineColor black
}
node {
  BackGroundColor #22ccaa
  LineThickness 1
  LineColor black
}
package {
  BackGroundColor #12bdb9
  LineThickness 1
  LineColor black
}
person {
  BackGroundColor #11aabb
  LineThickness 1
  LineColor black
}
queue {
  BackGroundColor #11aabb
  LineThickness 1
  LineColor black
}
rectangle {
  BackGroundColor #4444dd
  LineThickness 1
  LineColor black
}
stack {
  BackGroundColor #3311bb
  LineThickness 1
  LineColor black
}
storage {
  BackGroundColor #3b0cbd
  LineThickness 1
  LineColor black
}
usecase {
  BackGroundColor #442299
  LineThickness 1
  LineColor black
}
</style>
actor アクター
actor/ "アクター/"
agent エージェント
artifact アーティファクト
boundary 境界
card カード
circle 円
cloud クラウド
collections コレクション
component コンポーネント
control コントロール
database データベース
entity エンティティ
file ファイル
folder フォルダ
frame フレーム
hexagon 六角形
interface インターフェース
label ラベル
node ノード
package パッケージ
person 人型
queue キュー
rectangle 四角形
stack スタック
storage ストレージ
usecase ユースケース
usecase/ "ユースケース/"
@enduml

[Ref. QA-13261]

入れ子要素 (階層無し)

グローバルスタイル (componentDiagram)

🎉 Copied!

@startuml
<style>
componentDiagram {
  BackGroundColor palegreen
  LineThickness 2
  LineColor red
}
</style>
artifact artifact {
}
card card {
}
cloud cloud {
}
component component {
}
database database {
}
file file {
}
folder folder {
}
frame frame {
}
hexagon hexagon {
}
node node {
}
package package {
}
queue queue {
}
rectangle rectangle {
}
stack stack {
}
storage storage {
}
@enduml

入れ子要素ごとのスタイル

🎉 Copied!

@startuml
<style>
artifact {
  BackGroundColor #ee1100
  LineThickness 1
  LineColor black
}
card {
  BackGroundColor #ff3311
  LineThickness 1
  LineColor black
}
cloud {
  BackGroundColor #ff4422
  LineThickness 1
  LineColor black
}
component {
  BackGroundColor #ff6644
  LineThickness 1
  LineColor black
}
database {
  BackGroundColor #ff9933
  LineThickness 1
  LineColor black
}
file {
  BackGroundColor #feae2d
  LineThickness 1
  LineColor black
}
folder {
  BackGroundColor #ccbb33
  LineThickness 1
  LineColor black
}
frame {
  BackGroundColor #d0c310
  LineThickness 1
  LineColor black
}
hexagon {
  BackGroundColor #aacc22
  LineThickness 1
  LineColor black
}
node {
  BackGroundColor #22ccaa
  LineThickness 1
  LineColor black
}
package {
  BackGroundColor #12bdb9
  LineThickness 1
  LineColor black
}
queue {
  BackGroundColor #11aabb
  LineThickness 1
  LineColor black
}
rectangle {
  BackGroundColor #4444dd
  LineThickness 1
  LineColor black
}
stack {
  BackGroundColor #3311bb
  LineThickness 1
  LineColor black
}
storage {
  BackGroundColor #3b0cbd
  LineThickness 1
  LineColor black
}

</style>
artifact artifact {
}
card card {
}
cloud cloud {
}
component component {
}
database database {
}
file file {
}
folder folder {
}
frame frame {
}
hexagon hexagon {
}
node node {
}
package package {
}
queue queue {
}
rectangle rectangle {
}
stack stack {
}
storage storage {
}
@enduml

入れ子要素(一階層)

グローバルスタイル(componentDiagram)

🎉 Copied!

@startuml
<style>
componentDiagram {
  BackGroundColor palegreen
  LineThickness 1
  LineColor red
}
document {
  BackGroundColor white
}
</style>
artifact e1 as "アーティファクト" {
file f1
}
card e2 as "カード" {
file f2
}
cloud e3 as "クラウド" {
file f3
}
component e4 as "コンポーネント" {
file f4
}
database e5 as "データベース" {
file f5
}
file e6 as "ファイル" {
file f6
}
folder e7 as "フォルダ" {
file f7
}
frame e8 as "フレーム" {
file f8
}
hexagon e9 as "六角形" {
file f9
}
node e10 as "ノード" {
file f10
}
package e11 as "パッケージ" {
file f11
}
queue e12 as "キュー" {
file f12
}
rectangle e13 as "四角形" {
file f13
}
stack e14 as "スタック" {
file f14
}
storage e15 as "ストレージ" {
file f15
}
@enduml

入れ子要素ごとのスタイル

🎉 Copied!

@startuml
<style>
artifact {
  BackGroundColor #ee1100
  LineThickness 1
  LineColor black
}
card {
  BackGroundColor #ff3311
  LineThickness 1
  LineColor black
}
cloud {
  BackGroundColor #ff4422
  LineThickness 1
  LineColor black
}
component {
  BackGroundColor #ff6644
  LineThickness 1
  LineColor black
}
database {
  BackGroundColor #ff9933
  LineThickness 1
  LineColor black
}
file {
  BackGroundColor #feae2d
  LineThickness 1
  LineColor black
}
folder {
  BackGroundColor #ccbb33
  LineThickness 1
  LineColor black
}
frame {
  BackGroundColor #d0c310
  LineThickness 1
  LineColor black
}
hexagon {
  BackGroundColor #aacc22
  LineThickness 1
  LineColor black
}
node {
  BackGroundColor #22ccaa
  LineThickness 1
  LineColor black
}
package {
  BackGroundColor #12bdb9
  LineThickness 1
  LineColor black
}
queue {
  BackGroundColor #11aabb
  LineThickness 1
  LineColor black
}
rectangle {
  BackGroundColor #4444dd
  LineThickness 1
  LineColor black
}
stack {
  BackGroundColor #3311bb
  LineThickness 1
  LineColor black
}
storage {
  BackGroundColor #3b0cbd
  LineThickness 1
  LineColor black
}
</style>
artifact e1 as "アーティファクト" {
file f1
}
card e2 as "カード" {
file f2
}
cloud e3 as "クラウド" {
file f3
}
component e4 as "コンポーネント" {
file f4
}
database e5 as "データベース" {
file f5
}
file e6 as "ファイル" {
file f6
}
folder e7 as "フォルダ" {
file f7
}
frame e8 as "フレーム" {
file f8
}
hexagon e9 as "六角形" {
file f9
}
node e10 as "ノード" {
file f10
}
package e11 as "パッケージ" {
file f11
}
queue e12 as "キュー" {
file f12
}
rectangle e13 as "四角形" {
file f13
}
stack e14 as "スタック" {
file f14
}
storage e15 as "ストレージ" {
file f15
}
@enduml

付録: すべての要素にスタイル指定した場合のステレオタイプのテスト

単純な要素

🎉 Copied!

@startuml
<style>
.stereo {
  BackgroundColor palegreen
}
</style>
actor アクター << stereo >>
actor/ "アクター/" << stereo >>
agent エージェント << stereo >>
artifact アーティファクト << stereo >>
boundary 境界 << stereo >>
card カード << stereo >>
circle 円 << stereo >>
cloud クラウド << stereo >>
collections コレクション << stereo >>
component コンポーネント << stereo >>
control コントロール << stereo >>
database データベース << stereo >>
entity エンティティ << stereo >>
file ファイル << stereo >>
folder フォルダ << stereo >>
frame フレーム << stereo >>
hexagon 六角形 << stereo >>
interface インターフェース << stereo >>
label ラベル << stereo >>
node ノード << stereo >>
package パッケージ << stereo >>
person 人型 << stereo >>
queue キュー << stereo >>
rectangle 四角形 << stereo >>
stack スタック << stereo >>
storage ストレージ << stereo >>
usecase ユースケース << stereo >>
usecase/ "ユースケース/" << stereo >>
@enduml

Display JSON Data on Deployment diagram

Simple example

🎉 Copied!

@startuml
allowmixing

component Component
actor     Actor
usecase   Usecase
()        Interface
node      Node
cloud     Cloud

json JSON {
   "fruit":"Apple",
   "size":"Large",
   "color": ["Red", "Green"]
}
@enduml

[Ref. QA-15481]

For another example, see on JSON page.

Mixing Deployment (Usecase, Component, Deployment) element within a Class or Object diagram

In order to add a Deployment element or a State element within a Class or Object diagram, you can use the allowmixing or allow_mixing directive.

Mixing all elements

🎉 Copied!

@startuml

allowmixing

skinparam nodesep 10
abstract        abstract
abstract class  "abstract class"
annotation      annotation
circle          circle
()              circle_short_form
class           class
diamond         diamond
<>              diamond_short_form
entity          entity
enum            enum
exception       exception
interface       interface
metaclass       metaclass
protocol        protocol
stereotype      stereotype
struct          struct
object          object
map map {
 key => value
}
json JSON {
   "fruit":"Apple",
   "size":"Large",
   "color": ["Red", "Green"]
}
action action
actor actor
actor/ "actor/"
agent agent
artifact artifact
boundary boundary
card card
circle circle
cloud cloud
collections collections
component component
control control
database database
entity entity
file file
folder folder
frame frame
hexagon hexagon
interface interface
label label
node node
package package
person person
process process
queue queue
rectangle rectangle
stack stack
storage storage
usecase usecase
usecase/ "usecase/"
state state
@enduml

[Ref. QA-2335 and QA-5329]

Port [port, portIn, portOut]

You can added port with port, portinand portout keywords.

Port

🎉 Copied!

@startuml
[c]
node node {
  port p1
  port p2
  port p3
  file f1
}

c --> p1
c --> p2
c --> p3
p1 --> f1
p2 --> f1
@enduml

PortIn

🎉 Copied!

@startuml
[c]
node node {
  portin p1
  portin p2
  portin p3
  file f1
}

c --> p1
c --> p2
c --> p3
p1 --> f1
p2 --> f1
@enduml

PortOut

🎉 Copied!

@startuml
node node {
  portout p1
  portout p2
  portout p3
  file f1
}
[o]
p1 --> o
p2 --> o
p3 --> o
f1 --> p1
@enduml

Mixing PortIn & PortOut

🎉 Copied!

@startuml
[i]
node node {
  portin p1
  portin p2
  portin p3
  portout po1
  portout po2
  portout po3
  file f1
}
[o]

i --> p1
i --> p2
i --> p3
p1 --> f1
p2 --> f1
po1 --> o
po2 --> o
po3 --> o
f1 --> po1
@enduml

Change diagram orientation

You can change (whole) diagram orientation with:
  • top to bottom direction (by default)
  • left to right direction

Top to bottom (by default)

With Graphviz (layout engine by default)

The main rule is: Nested element first, then simple element.

🎉 Copied!

@startuml
card a
card b
package A {
  card a1
  card a2
  card a3
  card a4
  card a5
  package sub_a {
   card sa1
   card sa2
   card sa3
  }
}
  
package B {
  card b1
  card b2
  card b3
  card b4
  card b5
  package sub_b {
   card sb1
   card sb2
   card sb3
  }
}
@enduml

With Smetana (internal layout engine)

The main rule is the opposite: Simple element first, then nested element.

🎉 Copied!

@startuml
!pragma layout smetana
card a
card b
package A {
  card a1
  card a2
  card a3
  card a4
  card a5
  package sub_a {
   card sa1
   card sa2
   card sa3
  }
}
  
package B {
  card b1
  card b2
  card b3
  card b4
  card b5
  package sub_b {
   card sb1
   card sb2
   card sb3
  }
}
@enduml

Left to right

With Graphviz (layout engine by default)

🎉 Copied!

@startuml
left to right direction
card a
card b
package A {
  card a1
  card a2
  card a3
  card a4
  card a5
  package sub_a {
   card sa1
   card sa2
   card sa3
  }
}
  
package B {
  card b1
  card b2
  card b3
  card b4
  card b5
  package sub_b {
   card sb1
   card sb2
   card sb3
  }
}
@enduml

With Smetana (internal layout engine)

🎉 Copied!

@startuml
!pragma layout smetana
left to right direction
card a
card b
package A {
  card a1
  card a2
  card a3
  card a4
  card a5
  package sub_a {
   card sa1
   card sa2
   card sa3
  }
}
  
package B {
  card b1
  card b2
  card b3
  card b4
  card b5
  package sub_b {
   card sb1
   card sb2
   card sb3
  }
}
@enduml


Privacy Policy      Advertise