Forum: PC-Programmierung Wie modelliere ich dieses Beispiel mit einem Sequenzdiagramm?


von Tim R. (timyfreak)


Lesenswert?

Hallo,

ich will Folgendes mit einem Sequenzdiagramm der UML 2.0 modellieren. 
Für das Beispiel habe ich vereinfacht zwei Nachrichten (N1, N2 - es 
können in der Praxis mehr sein). Für einen gewissen Zeitraum können 
diese in beliebiger Reihenfolge und beliebig oft zwischen zwei 
Lebenslinien ausgetauscht werden.

Für eine beliebige Häufigkeit könnte ich das Loop-Fragment mit der 
Bedingung (1,*) nutzen.
Für die beliebige Reihenfolge wäre das Par-Fragment verfügbar. Dieses 
verlangt nach meinem Verständnis aber, dass jeder Operand genau einmal 
auftritt. Würde man also ein Par-Fragment mit jeweils einer Nachricht 
als Operanden erschaffen, so wären nur folgende Abläufe möglich: N1->N2 
oder N2->N1.

Wie modelliere ich aber einen rein zufälligen Ablauf? Z.B. 
N1->N1->N2->N1->N2->N2...?
Durch Fragment-Schachtelung (par->loop oder loop->par) erreiche das 
nicht - oder übersehe ich etwas?

von Sebastian L. (Gast)


Angehängte Dateien:

Lesenswert?

Wie sind denn die Empfänger bzw. Sender der Nachrichten n1 und n2?

Ob den Zufall modellieren sinnvoll ist oder eine Beschreibung reichen 
würde ist schon fraglich
aber ich würds so machen wie mein bild

von Tim R. (timyfreak)


Lesenswert?

Vielen Dank, an diese Variante hatte ich noch gar nicht gedacht. Das 
hilft mir wirklich weiter!

Ich habe ein Beispiel einer Profinet-Kommunikation zwischen einem IO 
Server und einem IO Controller bekommen. Für die ersten Nachrichten 
betrachte ich lediglich die FrameID. Die Verteilung scheint sehr 
zufällig:
N2->N3->N3->N5->N4->N3->N1->N3->N2->N3...

Natürlich klingt es nicht sinnvoll, den Zufall zu modellieren. Danach 
geht es aber mit einem bestimmten Verhalten weiter. Daher will ich das 
gesamte Szenario modellieren und durch das loop-opt-Konstrukt 
ausdrücken, dass nur Nachrichten mit diesen FrameIDs vorkommen dürfen.

von Tim R. (timyfreak)


Lesenswert?

Anscheinend ist das Problem dabei noch, dass der Ablauf nicht 
voranschreiten kann. Es fehlt noch eine Abbruchbedingung, die die 
Schleife beendet. Ansonsten würde die Sequenz ja immer im 
loop-opt-Konstrukt hängen bleiben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.