12.07.2015 Aufrufe

Entwicklung und Anwendung eines Bezugsrahmens zur ...

Entwicklung und Anwendung eines Bezugsrahmens zur ...

Entwicklung und Anwendung eines Bezugsrahmens zur ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

wird in diesem Fall anhand des Parametertyps die Methode aus Parent1 ausgeführt. Somit ist einObjekt vom Typ Child1 mit einem Objekt vom Typ Parent2 verb<strong>und</strong>en <strong>und</strong> die Teilmengenbeziehungnicht mehr gültig. Zu einem Laufzeitfehler führt dann der Aufruf:c1.c2.someMethod();Da im Vorfeld die Methode setAssociation der Klasse Parent1 statt die der Klasse Child1 aufgerufenwurde, enthält c2 zum Zeitpunkt des Aufrufs keine Referenz auf ein Objekt, so daß das Programman dieser Stelle mit einem Laufzeitfehler terminiert.Eine zusätzliche Problematik ergibt sich bei der Umsetzung der Teilmengenbeziehung unter der Prämisseder Einhaltung gr<strong>und</strong>legender Design-Prinzipien <strong>zur</strong> Wiederverwendbarkeit bei statischen Programmiersprachenwie C++. Diesen fehlt die Möglichkeit Typen bei Parameterübergaben währendder Laufzeit zu identifizieren <strong>und</strong> das dem Typ entsprechende Verhalten zu garantieren 96 . Im Beispielvon Abbildung 47 kann zwar eine Instanz von Parent1 eine Instanz von Parent2 referenzieren, allerdingskennt sie Child2 nicht, so daß eine Instanz von Child1 dieses nicht auch automatisch dessenTyp entsprechend referenzieren kann 97 . Statt entgegen des Prinzips der Wiederverwendbarkeit expliziteTypangaben <strong>zur</strong> Realisierung des Sachverhalts zu nutzen, kann die Verwendung speziellerEntwurfsmuster eine günstigere Lösung liefern, wobei an dieser Stelle auf eine weiterführende Diskussionverzichtet <strong>und</strong> stattdessen auf [Mart97] verwiesen wird, wo einige dieser Lösungen präsentiertwerden.Hinsichtlich der oben beschriebenen Semantik der Assoziation ergeben sich folgende zu überprüfendeAspekte bzgl. der Möglichkeiten der Modellierung von Assoziationen mit einem Modellierungswerkzeug:1) Umsetzung von binären Assoziationen im Quellcode2) Unterstützung sowohl binärer als auch n-ärer Assoziationen3) Modellierung von Assoziationsklassen4) Generalisierung von AssoziationenZu 1) existieren verschiedene Strategien der Realisierung insbesondere der Navigation über eineAssoziation im Konzept einer Programmiersprache. Die gängigste Methode ist das Einfügen vonAttributen in einer Klasse vom Typ der Klasse, zu der hin im Rahmen der Assoziationsdeklarationnavigiert werden kann.ExampleClass11ExampleAssociation1ExampleClass2class ExampleClass1{private ExampleClass2 linkExampleAssociation;}Abbildung 50: 1:1-Assoziation <strong>und</strong> Umsetzung in JavaAbbildung 50 zeigt beispielhaft eine von ExampleClass1 nach ExampleClass2 navigierbare AssoziationExampleAssociation <strong>und</strong> die entsprechende Umsetzung in der Klassendefinition von Exam-96 S. dazu [Mart97], S.3.97 Das Beispiel in Abbildung 48 würde mit einer statisch typisierten Sprache ähnlich umgesetzt werden, allerdingswürde ein Fehler in diesem Falle nicht erst <strong>zur</strong> Laufzeit auftreten.- 86 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!