Polymorphismus in UML-Sequenzdiagrammen

Polymorphismus (oder Polymorphie) ist ein wichtiges Konzept in objektorientierten Sprachen. Der verlinkte Wikipedia-Artikel beschreibt eine Sicht auf Polymorphismus, meine Sicht (und Definition) ist folgende: „Polymorphismus tritt auf, wenn verwandte Objekte auf dieselbe Nachricht unterschiedlich reagieren“. Hingegen die Beschreibung von Wikipedia (Stand 19.02.2011): „Eine Methode ist polymorph, wenn sie in verschiedenen Klassen die gleiche Signatur hat, jedoch erneut implementiert ist.“. Wikipedia definiert Polymorphismus auf der statischen Klassenebene, meine Definition findet auf der dynamischen Instanzenebene statt. Trotz dieser Unterschiede drücken die Definitionen dasselbe aus, sind also isomorph.

Am Beispiel „mehrere Aufträge eines Kunden sollen mit einem OrderChecker validiert werden“ wird im Folgenden die Darstellung von Polymorphismus in UML gezeigt.

Order-Typen

Will man Polymorphismus in UML (z.B. in Sequenzdiagrammen) darstellen, so muss man sich zunächst über die Absichten klarwerden. Meist ist eine exakte Darstellung gar nicht nötig, es genügt, eine Validierungsnachricht an die abstrakten Aufträge zu senden.

Nachricht an Auftrag

Sind die Reaktionen der unterschiedlichen Auftraginstanzen doch von Interesse, so stellt UML dafür „Found Messages“ zur Verfügung.

Konkrete Verarbeitung der Nachricht

Mit diesen Mitteln von UML ist eine Darstellung von Polymorphismus problemlos möglich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.