Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt

Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt Bewertung der Qualität objektorientierter Entwürfe - Worte-Projekt

worte.projekt.de
von worte.projekt.de Mehr von diesem Publisher
30.10.2013 Aufrufe

44 5 Ein Referenzmodell für den objektorientierten Entwurf Abbildung 5-1: UML-Metamodell: Modellelemente (Ausschnitt) Die gemeinsame Oberklasse aller Modellelemente ist die Klasse ModelElement (vgl. Abbildung 5-1). NameSpace (Namensraum), eine Unterklasse von ModelElement, enthält eine beliebige Anzahl von Modellelementen und dient zur hierarchischen Strukturierung. Die Sichtbarkeit eines Modellelements innerhalb eines Namensraums wird durch die Assoziationsklasse ElementOwnership modelliert. Package (Paket) und Model (Modell) sind Unterklassen von NameSpace. Ein Modell ist ein spezielles Paket, das alles enthält, was zu einem UML-Modell gehört. In einem UML-Modell kann es daher immer nur eine Instanz von Model geben. Die Klasse Classifier (Klassifizierer) ist eine Unterklasse der abstrakten Klasse GeneralizableElement (generalisierbares Element), wodurch ausgedrückt wird, dass ein Klassifizierer Eigenschaften von anderen Klassifizierern erben kann. Class, Interface und DataType sind Unterklassen von Classifier. Klassifizierer können Features (Eigenschaften) enthalten; das ist hier durch eine Komposition modelliert. Attribute und Operation sind Unterklassen von Feature. Beziehungen zwischen Modellelementen wie z. B. Klassen und Interfaces werden ebenfalls als Klassen modelliert (siehe Abbildung 5-2). Die Klassen Association (Assoziation), Generalization (Generalisierung), Usage (Benutzung) und Abstraction (Abstraktion) sind Unterklassen der Klasse Relationship, die wiederum eine Unterklasse von ModelElement ist. Assoziationen werden mit Hilfe der zusätzlichen Klasse AssociationEnd modelliert, weil eine Assoziation mehr als zwei Modellelemente verbinden kann. Die übrigen Beziehungen verbinden genau zwei Modellelemente.

5.2 Umfang 45 Abbildung 5-2: UML-Metamodell: Beziehungen (Ausschnitt) 5.2 Umfang Abbildung 5-3 zeigt die konzeptionelle Struktur von ODEM. ODEM beruht auf dem UML-Metamodell. Für die Verwendung in ODEM wird das UML-Metamodell auf den tatsächlichen Bedarf reduziert. Zusätzlich werden nützliche, aus den Bestandteilen des UML-Metamodells abgeleitete Modellelemente eingeführt. Diese dienen vor allem dazu, als Abstraktionsschicht die Komplexität des UML-Metamodells nach außen zu verbergen. Außerdem sind sie praktisch bei der Definition von Metriken. Plattform zur Definition von Metriken Zusätzliche Modellelemente (Abstraktionsschicht) U M L - M e t a m o d e l l Abbildung 5-3: Konzeptionelle Struktur von ODEM 5.2.1 Einschränkungen ODEM schränkt das UML-Metamodell in bestimmten Bereichen ein, indem Elemente und Attribute von Elementen weggelassen werden. Dahinter stecken Überlegungen über die typische Verfügbarkeit bestimmter Entwurfsinformationen. Bei einer Darstellung des Entwurfs in UML sind häufig nur Klassen- und Paketdiagramme vorhanden und relativ vollständig. Diese beschreiben allerdings nur die statische Struktur des Entwurfs. Für die dynamische Struktur des Entwurfs werden vor allem Informationen über die Aufrufbeziehungen zwischen Methoden benötigt. Diese finden sich in den Sequenzund Zustandsdiagrammen. Typischerweise werden diese Diagramme aber nur für

44 5 Ein Referenzmodell für den objektorientierten Entwurf<br />

Abbildung 5-1: UML-Metamodell: Modellelemente (Ausschnitt)<br />

Die gemeinsame Oberklasse aller Modellelemente ist die Klasse ModelElement (vgl.<br />

Abbildung 5-1). NameSpace (Namensraum), eine Unterklasse von ModelElement, enthält<br />

eine beliebige Anzahl von Modellelementen und dient zur hierarchischen Strukturierung.<br />

Die Sichtbarkeit eines Modellelements innerhalb eines Namensraums wird<br />

durch die Assoziationsklasse ElementOwnership modelliert. Package (Paket) und Model<br />

(Modell) sind Unterklassen von NameSpace. Ein Modell ist ein spezielles Paket, das<br />

alles enthält, was zu einem UML-Modell gehört. In einem UML-Modell kann es daher<br />

immer nur eine Instanz von Model geben.<br />

Die Klasse Classifier (Klassifizierer) ist eine Unterklasse <strong>der</strong> abstrakten Klasse GeneralizableElement<br />

(generalisierbares Element), wodurch ausgedrückt wird, dass ein Klassifizierer<br />

Eigenschaften von an<strong>der</strong>en Klassifizierern erben kann. Class, Interface und<br />

DataType sind Unterklassen von Classifier. Klassifizierer können Features (Eigenschaften)<br />

enthalten; das ist hier durch eine Komposition modelliert. Attribute und Operation<br />

sind Unterklassen von Feature.<br />

Beziehungen zwischen Modellelementen wie z. B. Klassen und Interfaces werden<br />

ebenfalls als Klassen modelliert (siehe Abbildung 5-2). Die Klassen Association (Assoziation),<br />

Generalization (Generalisierung), Usage (Benutzung) und Abstraction (Abstraktion)<br />

sind Unterklassen <strong>der</strong> Klasse Relationship, die wie<strong>der</strong>um eine Unterklasse<br />

von ModelElement ist. Assoziationen werden mit Hilfe <strong>der</strong> zusätzlichen Klasse AssociationEnd<br />

modelliert, weil eine Assoziation mehr als zwei Modellelemente verbinden<br />

kann. Die übrigen Beziehungen verbinden genau zwei Modellelemente.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!