2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

設計の超初心者、シーケンス図の複合フラグメントを学ぶ

Posted at

「シーケンス図でループ処理ってどうやって書くんだろう?」

「まさか、ループの数だけ矢印を書くわけではないよね……?」と思い、少し調べてみたところ、シーケンスの繰り返しや分岐は「複合フラグメント」という要素を用いることで記述できることがわかった。

『複合フラグメント』を使う!

そういうわけで、シーケンス図におけるループ処理と、その他分岐処理などよく書きそうなシーケンスについて、書き方を調べてみた。

loop

メッセージが繰り返し送信されることを表現する複合フラグメント。イメージとしてはfor文やwhile文。
相互作用オペレータ(右上の枠)にloop(ループ回数の最小値,ループ回数の最大値)を書く。最小値は省略可で、()内に何も書かない場合は無限ループを表す。
また、相互作用制約(フラグメントを実行する条件)を書く場合は、ループの実行条件を書く。

loop.png

alt

条件によってシーケンスが変わることを表現する複合フラグメント。イメージとしてはif-elseやswitch文。
相互作用オペレータにはaltと書く。点線で条件ごとのシーケンスを区切り、相互作用制約として実行条件をそれぞれの枠に書く。
alt.png

opt

ある条件が成立する場合のみメッセージを送信することを表現する複合フラグメント
。イメージとしてはelseのないif文。
相互作用オペレータにはoptと書く。相互作用制約として実行条件を書く。
opt.png

ref

複雑な相互作用を複数の相互作用に分けて表現する複合フラグメント。
相互作用オペレータにはrefと書き、枠内にシーケンスを分けた相互作用の名前を書く。
ref.png

まとめ

複合フラグメントを活用できると、シーケンス図で表現できる処理の幅が増える。
今回はよく使いそうなものに絞ったが、複合フラグメントは他にも種類がある(parやbrakeなど)ようなので、機会があれば調べて使えるようにしたい。

参考

『かんたん UML入門 [改訂2版] (プログラミングの教科書)』

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?