コンポーネント図
Let's have few examples : Let's have few examples. WARNING
This translation need to be updated. WARNING
コンポーネント コンポーネントは括弧でくくります。
また、 component
キーワードでもコンポーネントを定義できます。 そして、コンポーネントには as
キーワードにより別名をつけることができます。 この別名は、後でリレーションを定義するときに使えます。
Edit online
@startuml
[First component]
[Another component] as Comp2
component Comp3
component [Last\ncomponent] as Comp4
@enduml
インタフェース
インタフェースは丸括弧 ()
でシンボルを囲うことで定義できます。 (何故なら見た目が丸いからです。)
もちろん interface
キーワードを使って定義することもできます。 as
キーワードでエイリアスを定義できます。 このエイリアスは後で、関係を定義する時に使えます。
後で説明されますが、インタフェースの定義は省略可能です。
Edit online
@startuml
() "First Interface"
() "Another interface" as Interf2
interface Interf3
interface "Last\ninterface" as Interf4
[component]
footer //Adding "component" to force diagram to be a **component diagram**//
@enduml
基本的な例
要素間の関係は、破線 (..
)、直線 (--
), 矢印 (-->
) の組合せで構成されます。
Edit online
@startuml
DataAccess - [First Component]
[First Component] ..> HTTP : use
@enduml
ノートの使用方法
オブジェクトに関連のあるノートを作成するにはnote left of
、note right of
、note top of
、 note bottom of
キーワードを使います。 note left of
, note right of
, note top of
, note bottom of
または note
キーワードを使ってノートを作成し、..
記号を使ってオブジェクトに紐づけること ができます。
Edit online
@startuml
interface "Data Access" as DA
DA - [First Component]
[First Component] ..> HTTP : use
note left of HTTP : Web Service only
note right of [First Component]
A note can also
be on several lines
end note
@enduml
コンポーネントのグループ化
いくつかのキーワードをグループコンポーネントやインタフェースに使用することができます: package
node
folder
frame
cloud
database
Edit online
@startuml
package "Some Group" {
HTTP - [First Component]
[Another Component]
}
node "Other Groups" {
FTP - [Second Component]
[First Component] --> FTP
}
cloud {
[Example 1]
}
database "MySql" {
folder "This is my folder" {
[Folder 3]
}
frame "Foo" {
[Frame 4]
}
}
[Another Component] --> [Example 1]
[Example 1] --> [Folder 3]
[Folder 3] --> [Frame 4]
@enduml
矢印の方向を変える
デフォルトではクラス間のリンクは 2 つのダッシュ --
を持っており垂直方向に配向されています。 次のように単一のダッシュ(またはドット)を置くことによって水平方向のリンクを使用することが可能です:
Edit online
@startuml
[Component] --> Interface1
[Component] -> Interface2
@enduml
リンクを反対にすることで方向を変更することもできます。
Edit online
@startuml
Interface1 <-- [Component]
Interface2 <- [Component]
@enduml
また、 left
を加えることで矢印の向きを変更することもできます。 right
, up
, down
などのキーワードを矢印の間に記述します。:
Edit online
@startuml
[Component] -left-> left
[Component] -right-> right
[Component] -up-> up
[Component] -down-> down
@enduml
方向の最初の文字のみを使用して矢印を短くすることができます(例えば、-down-
の代わりに-d-
)、または最初の 2 文字(-do-
)。
この機能を悪用してはならないことに注意してください:Graphviz は微調整の必要がない良い結果を通常は与えてくれます。
left to right direction
パラメータを指定した場合は、次のようになります。:
Edit online
@startuml
left to right direction
[Component] -left-> left
[Component] -right-> right
[Component] -up-> up
[Component] -down-> down
@enduml
UML2 表記の使用
デフォルトでは、UML2表記が使用されます(v1.2020.13-14以降) 。
Edit online
@startuml
interface "Data Access" as DA
DA - [First Component]
[First Component] ..> HTTP : use
@enduml
UML1 表記の使用
コマンド skinparam componentStyle uml1
は、UML1 表記に切り替えるために使用されます。
Edit online
@startuml
skinparam componentStyle uml1
interface "Data Access" as DA
DA - [First Component]
[First Component] ..> HTTP : use
@enduml
四角形表記の使用(UML表記をしない)
skinparam componentStyle rectangle
コマンドを使用すると、UML表記ではなく四角形による表記を行うことができます。
Edit online
@startuml
skinparam componentStyle rectangle
interface "Data Access" as DA
DA - [First Component]
[First Component] ..> HTTP : use
@enduml
長い説明 角括弧を使用して説明を複数行で記述することができます。
Edit online
@startuml
component comp1 [
This component
has a long comment
on several lines
]
@enduml
個々の色
コンポーネント定義のあとに色を指定することができます。
Edit online
@startuml
component [Web Server] #Yellow
@enduml
ステレオタイプでスプライトを使用 ステレオタイプのコンポーネント内にスプライトを使用することができます。
Edit online
@startuml
sprite $businessProcess [16x16/16] {
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFF00FFFF
FF00000000000FFF
FF000000000000FF
FF00000000000FFF
FFFFFFFFFF00FFFF
FFFFFFFFFF0FFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFFFFFFFFF
}
rectangle " End to End\nbusiness process" <<$businessProcess>> {
rectangle "inner process 1" <<$businessProcess>> as src
rectangle "inner process 2" <<$businessProcess>> as tgt
src -> tgt
}
@enduml
見かけを変える
ダイアグラムの色やフォントを変更するには skinparam コマンドを使用します。
このコマンドは以下の場面で使用できます。
ステレオタイプのコンポーネントおよびインタフェースのための特定の色とフォントを定義することができます。
Edit online
@startuml
skinparam interface {
backgroundColor RosyBrown
borderColor orange
}
skinparam component {
FontSize 13
BackgroundColor<<Apache>> Red
BorderColor<<Apache>> #FF6655
FontName Courier
BorderColor black
BackgroundColor gold
ArrowFontName Impact
ArrowColor #FF6655
ArrowFontColor #777777
}
() "Data Access" as DA
DA - [First Component]
[First Component] ..> () HTTP : use
HTTP - [Web Server] << Apache >>
@enduml
Edit online
@startuml
[AA] <<static lib>>
[BB] <<shared lib>>
[CC] <<static lib>>
node node1
node node2 <<shared node>>
database Production
skinparam component {
backgroundColor<<static lib>> DarkKhaki
backgroundColor<<shared lib>> Green
}
skinparam node {
borderColor Green
backgroundColor Yellow
backgroundColor<<shared node>> Magenta
}
skinparam databaseBackgroundColor Aqua
@enduml
WARNING
This translation need to be updated. WARNING
Specific SkinParameter
componentStyle
By default (or with skinparam componentStyle uml2
), you have an icon for component
Edit online
@startuml
skinparam BackgroundColor transparent
skinparam componentStyle uml2
component A {
component "A.1" {
}
component A.44 {
[A4.1]
}
component "A.2"
[A.3]
component A.5 [
A.5]
component A.6 [
]
}
[a]->[b]
@enduml
If you want to suppress it, and to have only the rectangle, you can use skinparam componentStyle rectangle
Edit online
@startuml
skinparam BackgroundColor transparent
skinparam componentStyle rectangle
component A {
component "A.1" {
}
component A.44 {
[A4.1]
}
component "A.2"
[A.3]
component A.5 [
A.5]
component A.6 [
]
}
[a]->[b]
@enduml
[Ref. 10798 ]