状態遷移のイベントとトリガーの違い

イベントとトリガーの違いを秋山さんに聞きました。
2
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

状態遷移のTransactionとTriggerとEventの使い分けが分からない。。。

2019-06-23 07:44:20
あきやま🍠 @akiyama924

@nemorine あ、回答してなかった。のでします。 Transration(Transactionって書いてあるけど)は、「遷移すること」または「遷移」と訳しますが、ある状態から別の状態に変わることをいいます。

2019-06-23 08:34:37
あきやま🍠 @akiyama924

@nemorine 次にEventは、イベントと訳しますが、遷移条件を指します。 最後にTrigerですが、こらは、トリガーと訳します。 イベントは、 トリガー[ガード] / エフェクト で表現されますが、このトリガーです。

2019-06-23 08:38:42
あきやま🍠 @akiyama924

@nemorine トリガー:遷移のきっかけとなる事象 ガード:事象発生時に遷移しても良い条件 エフェクト:遷移中の処理 です。エフェクトは書かないことの方が多いです。(状態のentryアクションの方に書いた方が良いことが多いですし、そもそも遷移は時間を持たないモデルなので。

2019-06-23 08:44:33
あきやま🍠 @akiyama924

@nemorine 一言で言えば「関心ごとの範囲の違い」です。 状態S1から状態S2に遷移する方法として複数種類のイベントが存在しても構いませんし、同様に同じトリガーであってもガード条件の違いによって遷移先が異なることがありますから別の用語が必要です。 単純な状態遷移図では紛らわしいけど3つ必要なのです。

2019-06-23 09:08:32
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

UML 2.5.1ではこんな記述になってる。 14.2.4.8 Transition The default textual notation for a Transition is defined by the following BNF expression: [<trigger> [‘,’ <trigger>]* [‘[‘ <guard>’]’] [‘/’ <behavior-expression>]]

2019-06-23 22:05:21
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

Eventの記述はこんな感じだった。 13.3 Events 13.3.1 Summary An Event is a something that may occur at a specific instant in time. One Event may have many occurrences, which may happen at different times.

2019-06-23 22:18:21
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

In this sense, an Event can be considered a classification of its occurrences, though Events are not actually Classifiers in UML.

2019-06-23 22:18:21
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

Of particular importance are Events that trigger a response within a Behavior. Such Events that may be explicitly modeled within UML include TimeEvents that occur at a specified time or after a duration,

2019-06-23 22:18:22
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

ChangeEvents that occur when a specified Boolean value becomes true and MessageEvents that occur on the receipt of a message, which is a communication from one Behavior to another requesting an Operation call or Signal reception.

2019-06-23 22:18:22
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

気になったのは、though Events are not actually Classifiers in UML. EventはUMLの分類子ではないってこと。 あとは、TimeEvent、ChangeEvent、MessageEventは用意されている感じ。

2019-06-23 22:18:23
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

おー 面白い ”UML2.0からは、UML1.XにあったEventというメタクラスが消滅している。かわり にTriggerというメタクラスが新たに導入された。” shayashi.jp/SMART-SE/uml/f…

2019-06-23 22:41:32
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

サイトによってトリガーとイベントの使い方が違っているのはUMLのバージョン1.Xと2.Xの違いなのでは、という仮説。

2019-06-23 22:46:20
ネモトノリユキ@ソフトウェアテスト技法練習帳 発売中!! @nemorine

ハレルの状態遷移を調べると、softestさんのサイトがTOPに表示され、そこにはユミのマリオチャートの話があり、それはニセコツアーでやった勉強会だったという話。グルグル回っている感あるなー。

2019-06-23 22:51:05