Wie wird die If-Bedingung in einem Sequenzdiagramm angezeigt?


194

Ich habe mich gefragt, wie man eine " if" Aussage in einem Sequenzdiagramm darstellen kann.

if (somethingShouldBeDone) {
       // Do it
} else {
       // Do something else
}

Kann es überhaupt vertreten sein? Die Sache ist ... in meinem Code werden eine ganze Reihe von Bedingungen überprüft, um eine Vielzahl von Aktionen zu bestimmen. Wenn ich die Aktionen zeigen möchte, möchte ich ausdrücklich angeben, dass Aktionen durch bestimmte Ereignisse verursacht werden.

Wenn möglich, erstellen Sie eine Bilddarstellung einer Lösung.


1
Ich weiß, dass diese Frage alt ist und ich noch keine Suche durchgeführt habe, aber ich habe mich gefragt, ob das Anzeigen von Verzweigungen überhaupt eine gute Idee für Sequenzdiagramme ist. Ich habe immer gedacht, dass die Bedingungen für die Sequenz im Szenario explizit beschrieben wurden und daher während der Sequenz keine Verzweigung stattfand. Alternative Pfade wurden behandelt, indem eine Variante des Szenarios beschrieben wurde, die ein eigenes Sequenzdiagramm hatte. Es ist etwas subjektiv, also sollte ich es vielleicht auf Meta oder möglicherweise Software Engineering posten?
Kelly S. French

Antworten:


285

Wenn sonst Bedingung, auch Alternativen in UML-Begriffen genannt, können in der Tat in Sequenzdiagrammen dargestellt werden. Hier ist ein Link, über den Sie einige nützliche Ressourcen zum Thema http://www.ibm.com/developerworks/rational/library/3101.html finden

Verzweigung mit alt


Wird in Visio Altetwas anderes genannt? Ich kann es nicht finden
James Raitsev

13
Visio an sich ist kein UML-Modellierungswerkzeug. Wenn Sie UML 2.0 verwenden möchten, müssen Sie eine gute Visio-Schablone finden, die die 2.0-Spezifikationen vollständig implementiert. Es gibt mehrere kostenlose Schablonen im Internet, vielleicht möchten Sie einige davon ausprobieren :) Hier ist eine, die gut aussieht (aber nicht alle Funktionen ausprobiert hat) softwarestencils.com/uml
GETah

Gibt es außer Visio noch andere UML-Tools? Ist der Unternehmensarchitekt gut genug?
Venkat Madhav

1
@ VenkatMadhav kann ich nicht wirklich sagen. Ich habe es nie in vollem Umfang genutzt, aber nach der Lektüre, die ich bei Google gefunden habe, sollte es ziemlich gut sein
GETah

@ Venkat Ich persönlich bin ein Fan des visuellen Paradigmas. ( visual-paradigm.com )
Cody Umfrage

35

Wenn Sie einfügen

A.do() {
  if (condition1) {
   X.doSomething
  } else if (condition2) {
   Y.doSomethingElse
  } else {
   donotDoAnything
  }
}

auf https://www.zenuml.com . Es wird ein Diagramm für Sie erstellt.If / else-Sequenzdiagramm


@ Gholamali-Irani hast du die Chrome-Erweiterung ausprobiert?
Xiao Peng - ZenUML.com

Wenn es ist A.do(int condition)- Wenn ... sonst ... sonst, können nicht alle als Ergebnis eines Anrufs passieren. Der Ablauf hängt vom Bedingungsargument ab. Es wäre schön, wenn ZenUML das zeichnen könnte. Es wären drei Anrufe, die rechtzeitig bestellt würden.
Chef Gladiator

@ChefGladiator Ich bin mir nicht sicher, ob ich verstehe, was du meinst. Könnten Sie bitte hier einen Pseudocode hinzufügen? Oder Sie können mich auf die Website verweisen.
Xiao Peng - ZenUML.com

Klar, hier ist der Code: wandbox.org/permlink/PURdGJc8YxJmpUh7 - es sind drei Anrufe erforderlich, damit alle Bedingungen erfüllt sind. Die UML-Sequenz sollte drei Aufrufe anzeigen, nicht einen.
Chef Gladiator

Natürlich sind Aktivitätsdiagramme besser, um Algorithmus-Interna zu zeigen /
Chef Gladiator

2

Sehr einfach, mit Alt-Fragment

Nehmen wir ein Beispiel eines Sequenzdiagramms für einen Geldautomaten. Sagen wir hier, was Sie wollen

IF eingeführte Karte gültig ist dann prompt "PIN eingeben" .... ELSE prompt "Invalid Pin"

Dann ist hier das Sequenzdiagramm für das gleiche

Sequenzdiagramm des Geldautomaten

Hoffe das hilft!


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.