2017-11-21 6 views
1

UMLステートマシン遷移(ガード)で複数の条件(ブール式が異なる)を処理するにはどうすればよいですか?Q:UMLステートマシン遷移で複数の条件を処理する方法

例:私はノートにdiscribed等に「記録された中」「でロギング」から遷移に(< 3を試行)唯一の条件よりも追加したいこの例で enter image description here

このUMLに対応するにはどうすればよいですか?

+0

EAのソリューションがほしいと思われますか?だからそれを言ってください:) – granier

+0

状態を複数の状態に分解します。状態はそれぞれ独自の遷移条件(例: "networkOK - > LoginPrompt")を持つか、または1つの複合条件として定義します。 –

+0

@granierだからこそ彼はEAでこの質問にタグを付けました。 –

答えて

1

多くの年であっただけで話さ(および必要なステップに焦点を当てる)

enter image description here

のようなブール条件を置きますGuardの上記これには任意のテキストを使用できます。 Cスタイルまたはプレーンテキストを書くことができます。私はここでOCLについては分かりませんが、それはとにかく学問的な目的のためです(私の意見)。

N.B.あなたの図は、NameではなくGuard(すなわち[Tries = 3])でなければならないTries = 3を示しています。

+0

私は、OCLが...(なぜ?多分、これらの人はCを知らない...) – granier

+0

@granierは、おそらく彼らは、Python、パスカル、COBOLまたはその代わりに使用するテキスト(何とか)FORTRANの正面から来るが、&&を使用していません知っているようにシンボルも –

+0

;)コボル:どうしてですか:) – granier

1

オプションのカップルがここにあります

  1. あなたのガード条件は、「[]」内の複数のチェックを組み合わせることができます - あなたはノートでやっていたくらい好きです。
  2. 同じ2つの状態の間に複数の遷移を持つことができ、それぞれに独自の状態があります。
  3. 州内には州を置くことができます。したがって、あなたの例では、3つの州は「通常の運用」のスーパーステートの中にあることができます。それを他の文書やノートでさらに定義することができます。

これらはすべて有効なUML構文です。ただし、何かが有効であってもエディタでサポートされているとは限りません。例えば、それは、シーケンス図の機能のほとんどは、編集者内で利用可能になる前に...

関連する問題