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.
7.4 Beispiele für OOD-<strong>Qualität</strong>smodelle 91<br />
schema für objektorientierte <strong>Entwürfe</strong> an, das aus den folgenden sechs Kriterien<br />
besteht.<br />
Verbundenheit <strong>der</strong> Daten (data connectedness). Reicht das von einer Klasse ausgehende<br />
Beziehungsnetzwerk aus, um ihr die Ausführung <strong>der</strong> von ihr verlangten<br />
Dienste zu erlauben? O<strong>der</strong> an<strong>der</strong>s ausgedrückt: Verfügt die Klasse über die nötigen<br />
„Kontakte“, um ihre Aufgabe zu erfüllen?<br />
Hier könnte m. E. noch zusätzlich geprüft werden, ob es überflüssige Kontakte gibt,<br />
die für die Erfüllung <strong>der</strong> Aufgabe nicht notwendig sind.<br />
Abstraktion (abstraction). Entspricht <strong>der</strong> Name <strong>der</strong> Klasse <strong>der</strong> durch sie dargestellten<br />
Abstraktion? Hat <strong>der</strong> Name eine entsprechende Bedeutung in <strong>der</strong> Sprache <strong>der</strong><br />
Experten des Anwendungsgebiets? Dieser Test ist, wie Cockburn zugibt, subjektiv,<br />
aber seiner Ansicht nach dennoch effektiv.<br />
Verteilung <strong>der</strong> Verantwortlichkeiten (responsibility alignment). Passen <strong>der</strong> Name<br />
<strong>der</strong> Klasse sowie die Attribute und Methoden zu ihrer Hauptverantwortlichkeit? Dies<br />
ist eine Frage, die mit zunehmen<strong>der</strong> Evolution des Entwurfs an Bedeutung gewinnt,<br />
da Klassen dazu neigen, sich im Laufe <strong>der</strong> Zeit immer weiter aufzublähen (d. h. um<br />
Funktionalität erweitert zu werden), wobei sie sich häufig von <strong>der</strong> ursprünglichen<br />
Intention des Entwerfers entfernen.<br />
Datenvariationen (data variations). Kann das System mit allen Varianten von Daten<br />
zurechtkommen, mit denen es im Laufe seiner Ausführung konfrontiert werden<br />
kann? Lei<strong>der</strong> wird dieser Punkt nicht genauer ausgeführt. Man kann die Aussage<br />
aber so interpretieren, dass sichergestellt sein sollte, dass das System sowohl von den<br />
anfallenden Mengen als auch von <strong>der</strong> Strukturierung <strong>der</strong> Daten auf alle möglichen<br />
Fälle vorbereitet sein soll.<br />
Evolution (evolution). Welche Än<strong>der</strong>ungen in den Abläufen des Anwendungsbereichs,<br />
<strong>der</strong> Technologie, <strong>der</strong> angebotenen Dienste etc. sind wahrscheinlich, und wie<br />
lassen sich die daraus resultierenden neuen Anfor<strong>der</strong>ungen und Än<strong>der</strong>ungen im Entwurf<br />
umsetzen? Wie viele Entwurfskomponenten müssen dazu geän<strong>der</strong>t werden?<br />
Kommunikationsmuster (communication patterns). Entstehen außergewöhnliche<br />
Kommunikationsmuster zwischen Objekten während <strong>der</strong> Laufzeit des Systems? Als<br />
Beispiel für verdächtige Muster nennt Cockburn Zyklen. An<strong>der</strong>e Muster werden<br />
nicht genannt, hier ist wohl vor allem die Erfahrung des Prüfers gefragt.<br />
Erfahrene Entwerfer richten nach Cockburn ihr Augenmerk vor allem auf die Prüfung<br />
<strong>der</strong> Abstraktionen und <strong>der</strong> Verteilung <strong>der</strong> Verantwortlichkeiten. Cockburn<br />
äußert die Vermutung, dass – sofern über die zukünftigen Verän<strong>der</strong>ungen nichts<br />
Genaues bekannt ist – das Bestehen <strong>der</strong> beiden Prüfungen ein Indikator für die<br />
Robustheit des Entwurfs ist.<br />
7.4.4 Kafura<br />
Kafura (1998, S.389ff.) gibt in einer Einführung in C++ eine Art Checkliste zur Evaluation<br />
des Entwurfs einer einzelnen Klasse an. Die Checkliste umfasst fünf verschiedene<br />
Kriterien, jeweils mit einer Reihe von Unterkriterien: