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.

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:

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!