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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

7.4 Beispiele für OOD-<strong>Qualität</strong>smodelle 89<br />

7.4.1 Booch<br />

Booch (1994, S. 136ff.) gibt fünf wichtige Eigenschaften einer Abstraktion (d. h. einer<br />

Klasse) an. Lei<strong>der</strong> fehlen Messvorschriften für diese Eigenschaften, obwohl er sie als<br />

Metriken bezeichnet.<br />

Kopplung (coupling). Geringe Kopplung wird, wie beim strukturierten Entwurf,<br />

auch beim objektorientierten Entwurf angestrebt; die Module sind hier die Klassen.<br />

Es gibt zwei verschiedene Arten <strong>der</strong> Kopplung: durch Verwendung und durch Vererbung.<br />

Während die Kopplung durch Verwendung so gering wie möglich sein sollte,<br />

ist Vererbung an sich erwünscht. Die dadurch erzeugte Kopplung wird in Kauf<br />

genommen.<br />

Zusammenhalt (cohesion). Hoher Zusammenhalt ist ebenfalls erwünscht; es geht<br />

vor allem um den Zusammenhalt <strong>der</strong> Bestandteile (Attribute und Methoden) von<br />

Klassen.<br />

Angemessenheit (sufficiency). Eine Klasse ist angemessen, wenn sie genügend<br />

Eigenschaften einer Abstraktion umfasst, so dass eine sinnvolle und effiziente Verwendung<br />

<strong>der</strong> Komponente möglich ist. In <strong>der</strong> Regel wird dabei eine minimale<br />

Schnittstelle angestrebt, die dennoch sicherstellt, dass die Klasse im System verwendbar<br />

ist.<br />

Vollständigkeit (completeness). Eine Klasse ist vollständig, wenn sie alle relevanten<br />

Eigenschaften einer Abstraktion umfasst. Das bedeutet, dass eine allgemeine Schnittstelle<br />

erwünscht ist, welche die Wie<strong>der</strong>verwendung <strong>der</strong> Klasse in an<strong>der</strong>en Systemen<br />

erlaubt. Eine vollständige Schnittstelle ist angemessen, aber nicht minimal. Beim Klassenentwurf<br />

muss daher häufig ein Kompromiss zwischen Angemessenheit und Vollständigkeit<br />

eingegangen werden – zumal Booch davor warnt, Vollständigkeit zu<br />

übertreiben.<br />

Primitivität (primitiveness). Eine Methode einer Klasse ist primitiv, wenn sie nur mit<br />

direktem Zugriff auf die interne Repräsentation (die Attribute) effizient implementiert<br />

werden kann. Die Schnittstelle einer Klasse sollte möglichst nur aus primitiven<br />

Methoden bestehen. Eine Methode, die sich ausschließlich durch Aufruf primitiver<br />

Methoden realisieren lässt, sollte nur dann in die Klassenschnittstelle aufgenommen<br />

werden, wenn eine solche Implementierung nicht effizient genug ist. Ansonsten sollte<br />

sie in eine Service-Klasse ausgelagert werden. Dies trägt dazu bei, die Klassenschnittstelle<br />

schlank zu halten.<br />

7.4.2 Coad und Yourdon<br />

Coad und Yourdon (1991, Kap. 8) geben einige Kriterien an, die bei einer Entwurfsbewertung<br />

angewendet werden sollen. Ihrer Meinung nach werden Entwurfskriterien<br />

benötigt, um das Entwickeln eines schlechten Entwurfs zu verhin<strong>der</strong>n. Guter Entwurf<br />

bedeutet für sie eher, schlechte Eigenschaften zu vermeiden, als aus dem Stand einen<br />

perfekten Entwurf abzuliefern. Letzteres sei nämlich völlig unrealistisch.<br />

Kopplung (coupling). Wie Booch (1994) unterscheiden Coad und Yourdon zwei<br />

Arten <strong>der</strong> Kopplung: durch Interaktion (entspricht <strong>der</strong> Kopplung durch Verwendung)<br />

und durch Vererbung. Um eine geringe Interaktionskopplung zu erreichen,<br />

wird vorgeschlagen, die Anzahl <strong>der</strong> versendeten und empfangenen Nachrichten zu

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!