UMLシーケンス図に条件を含める方法


12

UMLシーケンス図を作成して、システムのさまざまな部分のアクションと相互作用のシーケンスを表示するのが好きです(アクターと呼ばれると思います)。

ただし、if then elseここにステートメントを含める必要があります。私は何か間違ったことをしますか?UMLシーケンス図で条件付きifステートメントを使用できますか?どうやって?

回答:


18

多くのタイプのUMLダイアグラムのように、ガードを使用して条件を示すことができます。ガードは、遷移を上書きできるブール式です。

次に例を示します。 ここに画像の説明を入力してください

「[pastDueBalance = 0]」条件に注意してください。

また、より複雑な条件付きロジックに結合フラグメントを使用することもできます。詳細については、この素敵なmsdnの記事参照してください。


4

私が知っている4つの可能性があります(力を増して):

  1. 最も簡単なのは、単純な副作用のないブール式であるguardsを使用することです。
  2. 複合フラグメント(例えば54ページを参照してください)、あなたは一緒にメッセージのグループセットは、シーケンス図(代替、オプション、ループ)に条件付きフローを表示することができます
  3. より強力なオブジェクト制約言語(OCL)は、さらに定量化(すべて存在する)でき、完全な(DesignBy-)コントラクト言語(完全な1次論理とほぼ同じ表現力)を提供します。
  4. 最も強力な方法は、使用して制約を表明することにあるUMLアクション言語をから実行可能なUML(xUML) UMLアクションセマンティクスに準拠していること。

私の選択は、あなたがやりたいことに対してまだ十分に表現できる最も強力でないものです。たとえば、4のアクションには副作用があり、OCLよりもはるかに脆弱になります。


2

シーケンス図は説明に最適ですが、アクティビティ図を確認してください。

内部詳細(詳細ルールを含む)を表示する場合、アクティビティ図を使用します。単純なアクティビティ図は、アクティビティとルールのシーケンスに焦点を当てており、アクターの責任を示すのは貧弱ですが、それでも、スイムレーンを使用して個々のアクターの責任を強調できます。各レーンには、俳優が担当するアクティビティが含まれます。

これらのリンクでは、スイムレーンを含むアクティビティ図について説明しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.