Klausurinfo KonzMod Frage

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Klausurinfo KonzMod Frage
Hallo,
ich hätte da mal ne Frage bzgl. der Klausurbeispielfragen (VL_14 auf Studon) auf Folie 30.
Die Frage lautet, wie man das vorgegebene Seqenzdiagramm mit kombinierten Fragmenten erweitern muss, damit nur die Traces A → B, A → A, B → B, B → A gültig sind und keine anderen.

Das vorgegebene Sequenzdiagramm:

:X :Y
| |
| |
|<-------A------ |
| |
| |
| ------B------->|
| |
| |

Wäre nett, wenn mir jemand helfen könnte, wie man auf eine Lösung hier kommt.
Danke


Hallo,

hast du dir den die verfügbaren Fragmente schon angesehen und eine Idee welche eventuell in Frage kämen?
Was brauchst du den um A->A oder B->B möglich zu machen? Hast du schon eine Idee, wie man es schaffen könnte A oder B mehrfach ausführen zu lassen?

Gruß
tenma


Ja sicher,
loop Fragmente mit Bezeichnung (2,2) in einem alt Fragment würden A → A und B → B zulassen, aber den Rest nicht.
A → B und B → A geht mittels eines par Fragments mit zwei Operanden (je eine Nachricht in einem Operanden).

Jetzt stoße ich aber auf das Problem, beide Varianten irgendwie zusammenzuführen, vor allem wenn ich nur zwei Nachrichten zur Verfügung hab.


Ah, jetzt hab ich dann doch nochmal die Fragmente genauer angeschaut und man kann ja ein alt-Fragment mit A und B als Operand in ein loop(2)-Fragment stecken.
Damit dürften die Traces doch alle und nur diese erfüllt sein oder irre ich mich?


edit (Parallelitätsproblem :))

Ja würde außen ein Loop(2,2) machen und innen ein Alt. (1. Teil A, 2. Teil B). sollte so passen.

Gruß
tenma


Hallo,

ich habe mir gerade die selbe Aufgabe angeschaut und habe noch eine Frage zu eurer Lösung:
Wenn ihr hier alt (1. Feld A, 2. Feld B ) verwendet, dann ist doch der Trace A->B oder auch B->A nicht mehr gegeben.

Oder gib es eine Möglichkeit, dass bei alt beide Felder ausgeführt werden?
Und wenn es so eine Möglichkeit gibt, wäre dann durch das Loop(2,2) nicht auch A->B->A->B erlaubt?

Hoffentlich kann mir schnell einer helfen…
LG Katrin


Der Alt-Block zwingt eine Alternative zu wählen, diese kann bei jedem Schleifendurchlauf aber eine andere sein. Damit sind A->A,A->B,B->A und B->B gültig und auch nur diese, da du ja mindestens und maximal (sprich: genau) 2 Schleifendurchläufe brauchst.

Nein, ein alt-Fragment heißt, es wird maximal ein Teil ausgeführt (Alternative).


Daran, dass beim zweiten Schleifendurchlauf eine andere Variante gewählt werden kann als beim Ersten, habe ich nicht gedacht. :blush:
Jetzt verstehe ich es auch :slight_smile:

Danke für die Erklärung! :smiley: