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
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.