30.10.2013 Aufrufe

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

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.

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

ausgewählte Szenarien erstellt, beschreiben also nur Ausschnitte aus <strong>der</strong> dynamischen<br />

Struktur. Für eine <strong>Bewertung</strong> wäre aber eine vollständige Beschreibung nötig.<br />

Daher werden alle dynamischen Informationen, die im UML-Metamodell vorgesehen<br />

sind, ausgeblendet.<br />

Weitere Einschränkungen von ODEM gegenüber dem UML-Metamodell sind:<br />

• Parametrisierte Klassen (Templates) werden nicht betrachtet, um das Modell überschaubarer<br />

zu gestalten (siehe dazu auch Abschnitt 5.4.4).<br />

• Ebenfalls aus Gründen <strong>der</strong> Überschaubarkeit wird die Möglichkeit, in Klassen weitere<br />

Klassen o<strong>der</strong> Interfaces einzuschachteln, nicht berücksichtigt. Diese Form <strong>der</strong><br />

Schachtelung sollte ohnehin nur selten verwendet werden, da sie sich negativ auf<br />

die Verständlichkeit auswirkt. Es gibt allerdings Fälle, wo sie sinnvoll ist: Beispielsweise<br />

kann eine Iterator-Klasse zur zugehörigen Container-Klasse lokal deklariert<br />

und damit <strong>der</strong> enge Zusammenhang deutlich gemacht werden.<br />

• Methoden (Implementierungen von Operationen) und damit auch Redefinitionen<br />

von Methoden gehören zum Feinentwurf und werden daher ausgeblendet. Die<br />

durch Methodenaufrufe bedingte Benutzung von Klassen kann dennoch berücksichtigt<br />

werden: Wenn eine Aufrufbeziehung einer Methode einer Klasse zu einer<br />

Operation einer an<strong>der</strong>en Klasse bestehen wird, kann diese Beziehung als Benutzungsbeziehung<br />

dargestellt werden.<br />

• Konstruktoren, d. h. Operationen mit Stereotyp «create» (OMG, 2000a) o<strong>der</strong><br />

«constructor» (Rumbaugh et al., 1998), werden nicht berücksichtigt, da sie im<br />

Gegensatz zu den normalen Operationen nicht vererbt werden. Die Konstruktoren<br />

tragen in <strong>der</strong> Regel wenig zur Komplexität einer Klasse bei. Daher ist es einfacher,<br />

sie bei <strong>der</strong> <strong>Bewertung</strong> auszublenden, als ihren Son<strong>der</strong>status im Modell zu berücksichtigen.<br />

• Die Abstraktheit von Operationen wird ignoriert. Die Abstraktheit einer Operation<br />

ist lediglich eine Aussage darüber, ob eine Implementierung, d. h. eine Methode,<br />

existiert o<strong>der</strong> nicht. Methoden werden aber in ODEM gar nicht betrachtet. Würde<br />

die Abstraktheit berücksichtigt, müsste die Redefinition von abstrakten Operationen<br />

durch nicht-abstrakte Operationen speziell modelliert werden.<br />

• Es wird nicht zwischen Konstanten und „normalen“ Attributen unterschieden, da<br />

<strong>der</strong> Unterschied relativ unbedeutend ist. Konstanten werden in UML durch Attribute<br />

mit dem Constraint {frozen} dargestellt; im UML-Metamodell hat die Klasse<br />

Attribute ein Attribut changeability, das bei Konstanten den Wert frozen hat.<br />

• Die Multiplizität von Attributen und Assoziationen wird nicht berücksichtigt, weil<br />

sie relativ unwichtig ist.<br />

• Datentypen (Instanzen von DataType im UML-Metamodell) stehen für die vordefinierten<br />

(primitiven) Datentypen <strong>der</strong> Implementierungssprache. Daher werden sie<br />

als Implementierungsdetail betrachtet und weggelassen. Sie tauchen nur als Typ<br />

eines Attributs o<strong>der</strong> Parameters auf.<br />

• Assoziationsklassen, eine Mischung aus Assoziation und Klasse zur Modellierung<br />

von Attributen von Beziehungen, werden weggelassen. Ebenso entfallen Subsysteme,<br />

eine Mischung aus Paket und Klasse.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!