2017/10/27

[uml]シーケンス図の方向に悩む

データの流れや処理の流れを考えるために、UMLのシーケンス図を描くことがある。

そのときに悩むのが、方向をどっちにするか、だ。
対等な関係のライフラインが並ぶならそこまで気にしないのだが、だいたいはデータの提供元(input)が出てくるので、片方向の矢印を引くことになる。
それを、右側を提供元にするか、左側を提供元にするか、ということで悩んでしまうのだ。


いや、どっちでもよいのだよ。
全体として、その方向が統一して描かれてさえいれば、右だろうと左だろうと困りはしない。
単に、感覚としてどっちを提供元にした方がわかりやすいか、というだけのことだ。


一応検索して見たところ、左側に提供元を置く場合が多そうだ。
電気回路で電源を左側に置くとか、そんな理由なんだろうか?


では、割込の発生は左側に描くかというと・・・上記ルールにあわせるならば、私だと右側になるだろうな。
データの提供元=外面に近い、ではあるものの、アプリ層・ミドル層・ドライバ層、みたいな分け方になると、外面はアプリ層かな、と感じるからだ。
そういう意味では、アプリの階層でいう上位側が左、下位側が右、というところか。


じゃあ左がユーザに近い側かというと、そうでもなかろう。
ソフトウェアとしては、何らかの接点に一番近いのは階層だからだ。
ボタンなりディスプレイなりは、最後はそこで制御するしね。

image

ただ、そこまで細かいことをシーケンス図だけで表現してしまうと、とてもわかりづらくなりそうだ。
本末転倒になりかねないので、そこら辺は割り切ってしまう必要もあるだろう。
機能ブロックに分けて、ブロック単位で描くとか、細かいところは別の図にするとか、工夫がいりそうだ。

image


設計を図で描いていくと、変に細かいところまで同じ表現方法を使おうとして失敗してしまいがちなので、気をつけたい。
というか、今、気をつけねばならんのだ・・・。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。