トランジションに 2 つ以上のアクションを含めることはできますか?
例えば:
event[condition]/action1;action2
stateA -------------------------------------------> stateB
トランジションに 2 つ以上のアクションを含めることはできますか?
例えば:
event[condition]/action1;action2
stateA -------------------------------------------> stateB
はい。
ウィキペディアから:
UML では、状態遷移は任意の 2 つの状態を直接接続できます。これらの 2 つの状態は複合的である場合があり、遷移のメイン ソースおよびメイン ターゲットとして指定されます。図 7 は、単純な遷移の例を示し、その遷移における状態の役割を説明しています。UML 仕様では、状態遷移を行うには、次のアクションを次の順序で実行する必要があると規定しています ( OMG Unified Modeling Language (OMG UML)、インフラストラクチャ バージョン 2.2 のセクション 15.3.14 を参照)。
- 遷移に関連付けられたガード条件を評価し、ガードが TRUE と評価された場合にのみ、次の手順を実行します。
- ソース状態の構成を終了します。
- トランジションに関連付けられたアクションを実行します。
- ターゲット状態の構成を入力します。
UML仕様でこれを定義するための簡潔な言葉遣いを見つけることができませんでしたが、ウィキペディアの記事(よく参照されている)の図と詳細な言葉遣いは;
、例のようにセパレーターとして使用する必要があることを暗示しているようです.
ただし、直感的には、各アクションが実行された後にシステムの状態が変化すると予想されるため、(やはり直感的に)遷移ごとに複数のアクションの使用を最小限に抑えることをお勧めします。代わりに、中間状態を追加することを検討してください。