2016-07-10 23 views
2

In einem UML-Sequenzdiagramm - Wenn ein Flow anhalten sollte, wenn eine Bedingung in der Mitte erfüllt ist, wie wäre es am besten mit alternativen/optionalen Fragmenten dargestellt?break/stop Ausführung im UML-Sequenzdiagramm mitten im Inneren alt/opt

d. H. - Wenn die Stoppbedingung nicht erfüllt ist, wird der Fluss für mehrere weitere Schritte fortgesetzt. Sollte das alternative Fragment alle Schritte seit der stop-Bedingung abdecken, alle Schritte hinter ihm Teil des alternativen Fragments machen, oder gibt es eine Notation, um den Stopp innerhalb eines kleinen alternativen Fragments zu behandeln (nur auf die Bedingung beschränkt)?

Antwort

2

Es gibt drei Möglichkeiten für diese Situation. Jeder von ihnen illustriere ich mit einem Diagramm, das zeigt, wie das jeweilige kombinierte Fragment verwendet werden sollte. Das tatsächliche Verhalten wird durch Interaktionsreferenzen (normalFlow für einen Fluss, der normalerweise ausgeführt werden sollte, und breakFlow für jeden Fluss, der im Falle einer erforderlichen Unterbrechung passieren sollte) ausgeblendet.

Die erste Lösung ist am praktischsten - sie deckt genau Ihren Fall ab, Sie können auch die positive Version eines Unterbrechungsschutzes verwenden. Jede von ihnen gibt Ihnen jedoch eine gültige Möglichkeit.

  1. Pause kombinierte Fragment

Wenn ein Bruch kombiniertes Fragment erfüllt ist, und es ist guard Bedingung wahr ist nur dieses Fragment noch ausgeführt wird, und dann die Ausführung der Interaktion (flow) stoppt. Wenn die Bedingung nicht erfüllt ist, wird das kombinierte Fragment weggelassen und der normale Ablauf wird fortgesetzt. Dies ist genau der Fall, den Sie beschreiben. In diesem Fall würden Sie die Nachrichten, die bei einer Unterbrechungsbedingung nicht ausgeführt werden sollen, nach dem Bruchkombinationsfragment ablegen.

enter image description here

  1. Opt kombiniertes Fragment

Wenn ein Opt kombiniertes Fragment erfüllt ist es führt nur dann, wenn eine Wache Bedingung wahr ist. Der Rest eines Flusses wird unabhängig von der Bedingung fortgeführt. Wie bereits in einer anderen Antwort von Thomas Kilian beschrieben, können Sie einen Teil des Flusses setzen, der nur fortgesetzt wird, wenn die Abbruchbedingung nicht innerhalb des opt-kombinierten Fragments erfüllt ist. Das opt-Fragment sollte einen Schutz haben, der dem Zustand entgegengesetzt ist, bei dem der Fluss aufhören sollte. Sollten im Falle einer Unterbrechung zusätzliche Aktionen auftreten, sollten diese nach dem opt-Kombinationsfragment eingefügt werden.

enter image description here

  1. Alt kombiniertes Fragment

Wenn ein alt kombiniertes Fragment erfüllt ist es guard Bedingungen ausgewertet werden und nur die schließliche ein Fragment, das guard den Wert true wird ausgeführt. Es kann auch eine Situation geben, in der keiner der Wächter zu wahr auswertet und in diesem Fall kein Fragment ausgeführt wird. Welcher Fluss auch immer nach dem kombinierten Fragment ist, wird sowieso normal ausgeführt. In diesem Fall würden Sie vorzugsweise zwei Fragmente einlegen, eines mit dem korrekten Operationsschutz und das zweite mit einer Bedingung, die einen Bruch verursachen sollte. Setzen Sie einen normalen Fluss in das erste Fragment und was auch immer im Falle eines Bruches im zweiten Fragment passieren sollte.

enter image description here

1

Man könnte das Ganze mit Hilfe eines opt Fragment Verknüpfung:

enter image description here

Ein Argument beginnen könnte, dass diese syntaktisch falsch ist, aber es transportiert die Nachricht (ich glaube). Und das ist es, was zählt.

Aus meiner persönlichen Erfahrung: Verwenden Sie so wenige Fragmente wie möglich. Teilen Sie Ihre Szenarien vielmehr auf, um sich auf bestimmte wichtige Aspekte zu konzentrieren. Eine SD ist eine Momentaufnahme des Systems an einem Ort, an dem Sie einen Überblick über das Geschehen haben möchten und nicht eine detaillierte Roadmap mit jedem möglichen Katzen- und Hundeweg.

+0

Kommentar zum Aufteilen der SD ist hilfreich. Es würde es reiner machen, obwohl es in meinem Fall besser ist, eine Unterbrechung im Fluss zu haben. –

+0

Der wichtigste Teil meiner Antwort ist "es transportiert die Nachricht". Solange dies der Fall ist, sind Sie in Ihren Stilelementen ziemlich frei. –