2012-06-15 23 views
6

Kann jemand eine if-Anweisung in einem Sequenzdiagramm in DIA darstellen?Wie kann ich eine if-Anweisung in einem Sequenzdiagramm in DIA darstellen?

+0

Werfen Sie einen Blick auf [diese Frage] (http://stackoverflow.com/questions/2946650/describing-an-if-else-structure-in-a-uml-system-sequence-diagram) ... –

+1

Ich denke nicht, dass es für ein Sequenzdiagramm geeignet ist. Das Sequenzdiagramm sollte eine Sequenz beschreiben (wie der Name sagt). Meiner Meinung nach sollte es eine Sequenz aus einem Anwendungsfall sein. Wenn der Anwendungsfall Erweiterungen aufweist (diese stellen den Steuerungsfluss dar), erstellen Sie für jede Erweiterung ein Sequenzdiagramm. Lassen Sie den Programmierer dies mit Zustandsdiagrammen kombinieren und entscheiden Sie dann, ob eine if-Anweisung die richtige Art ist, den Fluss zu steuern. vielleicht ist ein Zustandsmuster oder ähnliches besser geeignet. diese Entscheidung sollte nicht in einem Sequenzdiagramm getroffen werden :) – davogotland

+1

Schauen Sie sich auch http://stackoverflow.com/questions/6000268/uml-sequence-diagram-how-to-show-alternate-course an. – sfinnie

Antwort

15

Basierend auf dem "alt" -Box in the IBM link given by @luistm dargestellt, konnte ich etwas ähnliches in Dia replizieren:

UML Sequence Diagram with "alternative combination fragment"

Die "alt" Box mit dem Objekt für große Pakete UML gezogen wurde. (Mit dem kleinen Paket können Sie die Größe nicht ändern.)

Die Bedingungsbeschriftungen sind nur Textobjekte (im oberen [statischen] Bereich der linken Symbolleiste zu finden, die mit T markiert sind).

Die gepunktete Linie ist nur ein Linienobjekt (aus demselben statischen Werkzeugleistenfenster), wobei die Pfeilspitze auf eine einfache Linie gesetzt ist und der Körper auf gepunktete Linien gesetzt ist (unten im linken Werkzeugfenster) 3 Pfeilsegmente).

Ich musste mit den Objekten-Menü-Elementen Send to Back, Bring to Front, Send Backwards und Bring Forwards spielen, um alles richtig aussehen zu lassen, ohne dass sich die Dinge gegenseitig behindern. Außerdem musste ich häufig den Refresh-Befehl im Menü Ansicht verwenden, um mich selbst zu überprüfen. oft würde die Zeichnung die Stapelreihenfolge und Überlappung durcheinander bringen, aber die Aktualisierung würde die Dinge wieder in Ordnung bringen.

Es sieht nicht genau wie die Diagramme auf dem IBM-Link (Etikett außerhalb der Hauptbox anstelle von innen, Box Grenze durch Rettungsleine, etc?), Aber ich denke, das ist das Beste, was wir mit Dia Lager UML tun können Objekte.

+0

Das war meine Lösung für. Danke für die Antwort. – luistm

+0

Gibt es einen speziellen Trick, um die Aktivierungsbox zu verkleinern? Das Ziehen der kleinen orangefarbenen Quadrate (was intuitiv scheint) funktioniert bei mir nicht. – teo

+1

@teo: Ja, die Größe der Aktivierungsbox ist etwas kontraintuitiv. Was Sie tun müssen, ist mit der rechten Maustaste auf das Aktivierungsfeld und wählen Sie entweder "Verbindungspunkte hinzufügen" oder "Verbindungspunkte vergrößern". – feuGene