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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

klasse im Metamodell beschrieben werden. Der ebenfalls hier definierte Objektfluß (Flow) ist andieser Stelle kein Gegenstand einer weiterführenden Diskussion.+sourceModelElement* name : Name+targetRelationship+sourceFlow+targetFlow* *Flow+generalizationGeneralization*discriminator : Name *+specialization+childGeneralizableElement11isRoot : Boolean+parentisLeaf : BooleanisAbstract : BooleanClassifierClassisActive : Boolean+type1*+specificationAttributeinitialValue : Expression+qualifier*{ordered}*AssociationEnd* isNavigable : Booleanordering : OrderingKindaggregation : AggregationKindtargetScope : ScopeKind+associationEndmultiplicity : Multiplicity0..1changeability : ChangeableKindvisibility : VisibilityKind{ordered}2..*+connection1AssociationAssociationClassAbbildung 45: Paket Relationships aus dem UML-Metamodell3.3.2.3.1 GeneralisierungIn der Literatur ist die Abgrenzung der Konzepte Generalisierung <strong>und</strong> Vererbung oft nicht eindeutigsondern von Überschneidungen geprägt. In der Regel betrachtet man die Generalisierung bzw. Spezialisierungaus einer konzeptuellen Perspektive heraus <strong>und</strong> definiert sie als is-a-Beziehung. Diesedrückt aus, daß jede Instanz <strong>eines</strong> Typ, der durch die is-a-Beziehung mit einem anderen Typen spezialisiertist, gleichzeitig eine Instanz des generelleren Typs ist. Man spricht auch von Subtyp <strong>und</strong> Supertyp89 . Diese Sicht entspricht dem Ersetzungsprinzip (substitution principle) von Liskov 90 .Die Vererbung ist ein implementierungsnäheres Konzept <strong>und</strong> beschreibt die inkrementelle Definitioneiner Subklasse durch die Vereinigung der Eigenschaften all ihrer Superklassen <strong>und</strong> die Definitionneuer Eigenschaften 91 . Somit ist die Vererbung eine <strong>Anwendung</strong> der Generalisierung, wobei aber dieSubklasse der Vererbung nicht zwingend mit einem Subtypen gleichzusetzen ist. Bei vielen Interpretationender Vererbung durch Modellierungs- oder Programmiersprachen ist es erlaubt, geerbte Signaturenoder Semantik über Redeklaration <strong>und</strong> Redefinition von Attributen <strong>und</strong> Operationen bzw.Methoden zu verändern. Damit ist für Instanzen einer Subklasse nicht mehr garantiert, daß sie überalldort zugewiesen oder übergeben werden können, wo ein Typ der Superklasse erwartet wird, dadurch die Redefinition einiger Eigenschaften unerwartete Seiteneffekte auftreten können. Es wirdweiterhin zwischen Einfachvererbung bei nur einer Superklasse <strong>und</strong> Mehrfachvererbung bei mehrerenSuperklassen, von denen eine Subklasse Eigenschaften erbt, unterschieden. Im folgenden werden dieBegriffe Generalisierung resp. Spezialisierung <strong>und</strong> Vererbung in ihrer Definition im Metamodell <strong>und</strong>der Interpretation durch die UML erläutert <strong>und</strong> deren Problematik insbesondere der Mehrfachverer-89 Eine Definition der Begriffe findet sich auch in [Fran96], S. 61.90 Vgl. dazu [Mart96], S. 2.91 Zur Definition der Vererbung s. auch [Fran96], S. 60.- 80 -

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!