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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
90 7 Entwurfsqualität<br />
minimieren und die Anzahl <strong>der</strong> Parameter einer Nachricht auf drei zu limitieren. Die<br />
Delegation von Nachrichten an an<strong>der</strong>e Objekte wird als Ursache für unnötige Interaktionskopplung<br />
angesehen.<br />
Die Vererbungskopplung soll hingegen hoch sein. Die Vererbung spiegelt vornehmlich<br />
Generalisierungs-/Spezialisierungsbeziehungen. Das Überschreiben von geerbten<br />
Attributen o<strong>der</strong> ein Erben ohne Erweiterung sind Indikatoren für eine geringe<br />
Vererbungskopplung, da keine wirkliche Spezialisierung vorliegt.<br />
Zusammenhalt (cohesion): Drei Ebenen des Zusammenhalts werden unterschieden:<br />
Methode, Klasse und Vererbungshierarchie. Methoden sollten nur genau eine<br />
Funktion haben. Klassen sollten nur Attribute und Methoden haben, die aufgrund<br />
<strong>der</strong> Verantwortlichkeiten <strong>der</strong> Klasse notwendig sind; und diese Attribute und Methoden<br />
sollen zusammenhängen. In <strong>der</strong> Vererbungshierarchie schließlich sollen nur<br />
„echte“ Spezialisierungen vorkommen.<br />
Wie<strong>der</strong>verwendung (reuse). Die Wie<strong>der</strong>verwendung vorhandener Artefakte (z. B.<br />
Klassen, Komponenten, Bibliotheken, <strong>Entwürfe</strong>) kann die Kosten senken und die<br />
<strong>Qualität</strong> erhöhen.<br />
Klarheit (clarity). Der Entwurf muss verständlich sein, um seine Verwendung und<br />
Wie<strong>der</strong>verwendung zu för<strong>der</strong>n. Als Maßnahmen werden die Verwendung eines einheitlichen<br />
Vokabulars, eines einheitlichen Stils (insbeson<strong>der</strong>e bei Schnittstellen) und<br />
die klare Zuordnung von Verantwortlichkeiten zu Klassen genannt.<br />
Einfachheit (simplicity). Methoden, Objekte und Klassen sollen so einfach wie möglich<br />
sein. Methoden sollten nur wenige Anweisungen umfassen. Objekte sollten so<br />
wenig wie möglich an<strong>der</strong>e Objekte kennen müssen, um ihren Zweck zu erfüllen.<br />
Klassen sollten möglichst wenig Attribute und eine kleine Schnittstelle haben sowie<br />
klare Verantwortlichkeiten besitzen.<br />
Größe (system size). Die Größe des Gesamtsystems sollte möglichst klein sein, um<br />
die Handhabbarkeit zu verbessern. Je größer das System wird, desto größer wird das<br />
Risiko, dass das Entwurfsteam den Entwurf nicht mit einem wohlstrukturierten, eleganten<br />
Ergebnis abschließen kann. Coad und Yourdon geben dafür eine Obergrenze<br />
von etwa hun<strong>der</strong>t Klassen an.<br />
Eleganz (elegance). Die Autoren geben zu, dass dieses Kriterium von allen am<br />
schlechtesten messbar ist. Weil <strong>der</strong> Begriff <strong>der</strong> Eleganz in <strong>der</strong> Praxis immer wie<strong>der</strong><br />
auftauche, müsse er aber von Bedeutung sein. Sie geben zwei Beispiele für Eleganz<br />
an: wie<strong>der</strong>kehrende Muster im Entwurf und Ähnlichkeit <strong>der</strong> Entwurfsstruktur zur<br />
Struktur <strong>der</strong> Realität.<br />
Zur Entwurfsbewertung schlagen Coad und Yourdon Reviews vor. Zum einen sollen<br />
sich diese an Szenarien orientieren, die mit den Klassen durchgespielt werden. Außerdem<br />
sollten kritische Erfolgsfaktoren wie Wie<strong>der</strong>verwendbarkeit, Effizienz und Implementierbarkeit<br />
geprüft werden.<br />
7.4.3 Cockburn<br />
Cockburn (1998) geht von <strong>der</strong> folgenden Annahme an: „Discussing the quality of an<br />
OO design is discussing the futures it naturally supports“. Es geht ihm also vor allem<br />
um Faktoren wie Än<strong>der</strong>barkeit und Erweiterbarkeit. Cockburn gibt ein <strong>Bewertung</strong>s-