2.10.1. PlantUMLのラインタイプ#

要素間を繋ぐ線には図版タイプによっては、複数の線種から選択が可能です。

2.10.1.1. シークエンス図#

矢印の見た目をいくつかの方法によって変更できます。

  • メッセージの消失を示す最後の x を追加 "->x"

  • や / を < や > の代わりに使うと矢印の先端が上側だけまたは下側だけになります。 "->","<-", "-/", "-"

  • 矢印の先端を繰り返す (たとえば >> や //) と、矢印の先端が細くなります。"->>", "-//",...

  • ".." を "-" の代わりに使うと、矢印が点線になります。

  • 矢じりに最後の "o" を追加すると、矢印の先に円が追加されます。"->o"

  • 双方向の矢印を使用することも可能です。"<->", "/-"

2.10.1.2. クラス図#

a -- b: Nominal
A <|-- B: Extension B extend A \nor\n B inherite A
C *-- D: Composition
E o-- F: Aggregation

H "0 or 1"  |o-- "1" I  : " 0 or 1 対 1"
J "1" ||-- "1" K  : " 1 対 1"
L "0..N" }o-- "1" M : "0以上 対 1"
N "1..N" }|-- "1"  O : "1以上 対 1"

Type

Symbol

Drawing

normal

--

Extension

<|--

extends01_png

Composition

*--

sym03_png

Aggregation

o--

sym01_png

ER図では、さらに

Type

Symbol

Drawing

0か1

|o--

1のみ

||--

0以上

}o--

1以上

}|--

が追加されています。

文字

フィールドのアイコン

メソッドのアイコン

可視性

-

private

#

protected

~

package private

+

public

@startuml

class Dummy {
 -field1 : private
 #field2 : protected
 ~method1() : package private
 +method2() : public
}

@enduml

図 2.48 private/public/protected の区別#

@startuml

' hide the spot
hide circle

' avoid problems with angled crows feet
skinparam linetype ortho

entity "Entity01" as e01 {
  *e1_id : number <<generated>>
  --
  *name : text
  description : text
}

entity "Entity02" as e02 {
  *e2_id : number <<generated>>
  --
  *e1_id : number <<FK>>
  other_details : text
}

entity "Entity03" as e03 {
  *e3_id : number <<generated>>
  --
  e1_id : number <<FK>>
  other_details : text
}

e01 ||..o{ e02
e01 |o..o{ e03

@enduml

図 2.49 ER図の一例#

entity users {
    * **id** : INTEGER <<not null>>
    --
    * username : VARCHAR
    created_at : TIMESTAMP
    deleted_at : TIMESTAMP
    description : VARCHAR
    name : VARCHAR
    updated_at : TIMESTAMP
    }

entity tweets {
    * **id** : INTEGER  <<not null>>
    --
    * author_id : INTEGER <<not null>>
    created_at : TIMESTAMP
    deleted_at : TIMESTAMP
    tweet : VARCHAR
    updated_at : TIMESTAMP
    }

tweets }o-|| users

図 2.50 ER図の一例(Tweet.db) sqlite3のDDLからeralchemy2で作成したer(markdown)ファイルを手動でPlantUMLに変換.#

_images/Tweets.db-users.png

図 2.51 DBeaver による ER図(Tweets.db)#

DBeaverはpngの他に、gif/bmp/erd/graphML でもER図を保存できます。 DBeaverはIDEF1X記法、PlantUMLはIE記法を使っています。

2.10.1.3. SDL図(仕様記述言語)#

終端記号";"を置き換えることで、アクティビティの表現形式を変えることができます:

  • ";" :Ready;

  • "|" :next(0)|

  • "<" :nak(k)<

  • ">" :ack(o)>

  • "/" :foo/

  • "\" :bar\

  • "]" : i:= i+1 ]

  • "}" : i > 5}

:Ready;
:next(o)|
:Receiving;
split
 :nak(i)<
 :ack(o)>
split again
 :ack(i)<
 :next(o)
 on several lines|
 :i := i + 1]
 :ack(o)>
split again
 :err(i)<
 :nak(o)>
split again
 :foo/
split again
 :bar\\
split again
 :i > 5}
stop
end split
:finish;

2.10.1.4. 状態図#

記号->を水平矢印として使用でき、以下の構文を使用することで、矢印の方向を指定することができます。

  • -down-> or -->

  • -right-> or -> (デフォルトの矢印)

  • -left->

  • -up->

[*]   -up-> First : UP
First -right-> Second : RIGHT
Second --> Third : DOWN
Third -left-> Last :LEFT

2.10.1.5. オブジェクト図#

クラス図と同じく、Extension/Composition/Aggregationを区別します。

Type

Symbol

Drawing

Extension

<|--

Composition

*--

Aggregation

o--

2.10.1.6. 配置図#

通常記法のキーワード

省略記法のキーワード

通常記法の例

省略記法の例

参照

actor

a:

actor actor1

actor2:

Actors

component

[c]

component component1

[component2]

Components

interface

()i

interface interface1

() "interface2"

Interfaces

usecase

usecase usecase1

(usecase2)

Usecases

@startuml

actor foo1
: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]

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

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