[UML] Sequenz Diagramm: Innerer und rekursiver Methodenaufruf

T

Tersus

Gast
Hallo,

ich wüsste gerne, wie man in einem Sequenz Diagramm einen inneren Methodenaufruf und, darüber hinaus, einen rekursiven Methodenaufruf darstellt.

Beispiel:
Auf |:ClassB| wird die öffentliche Methode getWert() aufgerufen.
Innerhalb dieser Methode wird die private Methode berechneWert() aufgerufen. berechneWert() aber, ruft sich evtl. selbst noch einmal auf.

Ich weiß einfach nicht, wie ich das in UML darstellen soll. Sämtliche Tutorials zum besagten UML Diagramm sind extrem kurz uns kaum nachvollziehbar erklärt.

Kennt sich da jemand aus?
 
Gut, also nach längerer Suche im Internet habe ich die Lösung gefunden, die im Nachhinein sehr plausibel erscheint und mir gezeigt hat, dass ich den Sinn von Sequenzdiagrammen nicht 100% vollständig verstanden habe.

Dein Link hatte nicht direkt geholfen, aber vielen Dank dir für deine Teilnahme an der Lösungsfindung! :)

Eine rekursive Nachricht meint lediglich, dass eine Instanz etwas an sich selbst schickt, was wiederum etwas auslöst, dass wir darstellen wollen.
Beispiel:
Ruft |:ClassA| die öffentliche Methode getWert() von |:ClassB| auf und innerhalb von getWert() wird z.B. einmalig die private Methode berechne() von |:ClassB| aufgerufen, so können wir hier die nicht rekursive Selbstnachricht verwenden.

Würde innerhalb von berechne() eine weitere Methode, vllt. sogar von einer weiteren anderen Instanz, aufgerufen, hätten wir die rekursive Selbstnachricht nehmen müssen.

Nun zur Lösung meines Falls.
Ein rekursiver Selbstaufruf einer Methode wird im Sequenzdiagramm üblicherweise gar nicht dargestellt, weil es nur die Aufrufreihenfolge dem Betrachter verdeutlichen soll und keine innere Methodenlogik. Zusätzlich kann man ja außerdem jede rekursive Methode auch iterativ realisieren.

Will man dennoch unbedingt einen rekursiven Selbstaufruf einer Methoden darstellen, verwendet man in meinem Fall zuerst eine rekursive Nachricht mit berechne() und innerhalb dieser rekursiven Nachricht noch einmal eine rekursive Nachricht berechne(). Schaut komisch aus, ist aber soweit ich das begriffen habe, die alternative Lösung. Besser wäre, die Rekursion jedoch einfach wegzulassen.

Grüße
 
Hi,

Dein Link hatte nicht direkt geholfen

Eine rekursive Nachricht meint lediglich, dass eine Instanz etwas an sich selbst schickt, was wiederum etwas auslöst, dass wir darstellen wollen.

Und dann:

Nun zur Lösung meines Falls. [...] Will man dennoch unbedingt einen rekursiven Selbstaufruf einer Methoden darstellen, verwendet man in meinem Fall zuerst eine rekursive Nachricht

Muss ich nicht verstehen, oder?

VG,
Mad
 
Zurück
Oben