5
5

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 1 year has passed since last update.

同期と非同期の違い(UML:シーケンス図)新人向け説明

Last updated at Posted at 2022-03-18

UMLのシーケンス図の同期メッセージと非同期メッセージの違い

先日、UML表記法を教えていた時のこと、同期と非同期が分からないので教えて欲しいと言われました。
それが、ソフトウェア経験がほぼない方だったので、即興で日常の例で説明しました。腑に落ちたそうなので、紹介します。

image.png
同期メッセージは矢印が塗りつぶし、非同期メッセージは開いた矢印です。

ソフトウェアエンジニアでプログラミングで、プロセス間通信/スレッド間通信を知っている、RTOSのタスク間通信を知っている、など、イメージが湧く人も多いのですが、そのような知見がなく全くイメージできない人もいます。

宅配で説明

シーケンス図で描くと、
「荷物受取お願いしまーす」ってピンポーン、ってするのが、送信しているメッセージで、
メッセージの引数で、荷物が渡されている感じです。
それを「荷物受取(配達物:荷物)」って表記しています。
image.png

同期メッセージ

荷物受取でピンポーンして、荷物受取人が出てきて渡して受取りを確認してから次に行くのが同期メッセージ。(上図の1つ目のメッセージ)
ハンコを貰う場合と貰わない場合があって、戻り値の違いになる。(上図の2つ目のメッセージ)
2023/4/30追記:「荷物受取():ハンコ」の引数が欠けてました。「荷物受取(配達物 荷物):ハンコ」が正しいです。

非同期メッセージ

荷物受取でピンポーンして、玄関前に荷物置いて、すぐにササっと立ち去って、次に行くのが非同期メッセージ(置き配)。(上図の3つ目のメッセージ)
ただし、ピンポーンってしないで、荷物を置いて行ってしまうのは、メッセージを送ってないので、非同期メッセージのイメージとは違いますね。

時事ネタかも知れませんが

コロナ禍での時事ネタかも知れませんね (^^

5
5
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
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?