2017-10-23 17 views
0

アクティビティの最終ノードが2つの異なる結果を表すことができるかどうかをお尋ねします。アクティビティ図最終ノードのエラー

例えば、buy premium account私は2つの結果を得ることができます:十分なクレジットがある場合、購入したプレミアムアカウントELSEでアクティビティを終了します。ユーザーに十分なクレジットがないというエラーページが表示されます。

この場合、同じ最終ノードを使用できますか?

+0

アクティビティ最終ノードが_フロー_の終わりであるとすると、そのノードでマージする2つのフローを持つことは間違っています。最終ノードには1つの「入力」しかありません。しかし、決定ノードの最後のノード(最終的にエンドユーザーに何かを表示する2つのアクティビティが続く)の前に決定が行われるという点が重要です。最後のノードは、そのフローがそこで終わるところの_say_です。 –

+0

最後のノードでは、フローが終了し、技術的にはメインフローか代替フローかは関係ありません。 – MacakM

+0

はい、すべてのアクティビティを停止しますが、それ以外は何も実行しません。技術的に誰もが複数の入力を持つノードを理解するでしょうが、(IMO)は複数の終了ノードを持つ目的を打ち破っています(関数内に複数の終了点があるかもしれません)... –

答えて

1

はいあなたがイメージtwo actions and a final node

詳細についてfigure 15.44 UML仕様のコメントを見るようなもので行うことができます。「図15.44では、ActivityFinalNodeに到達するには、2つの方法が存在し、それは排他的な結果である 『または』図15.43の例のような「競合」状態ではなく、2つのアクティビティファイナルノードを使用します。この例では、2つの受信エッジを持つものと同じセマンティクスを使用しています。

これは、FinalNodesに2つの着信エッジがあり、その結果、FinalNodeに到達する最初のフローが他のフローと同じアクティビティを終了し、出力アクティビティパラメータに特別なものがあることを説明しています。

+0

2つの制御フローを最終ノードに移動できますか?マージノードは必要ではありませんか? – MacakM

+0

私にとっては、1つのフローだけが1つのフローにしか追従できないからではありません。これは、同期なしで並列フローをマージする場合とは異なります。 – granier

関連する問題