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.1 Ein Beispiel 77<br />

WMC DIT NOC CBO RFC LCOM<br />

Klasse<br />

A B C A B C A B C A B C A B C A B C<br />

Movie 2 2 2 0 0 0 0 0 0 1 0 1 2 2 3 0 0 0<br />

Rental 2 1 1 0 0 0 0 0 0 2 2 2 2 2 2 1 0 0<br />

Customer 1 1 1 0 0 0 0 0 0 2 1 1 4 2 2 0 0 0<br />

Price - - 1 - - 0 - - 3 - - 1 - - 1 - - 0<br />

RegularPrice - - 1 - - 1 - - 0 - - 0 - - 1 - - 0<br />

NewReleasePrice - - 1 - - 1 - - 0 - - 0 - - 1 - - 0<br />

ChildrensPrice - - 1 - - 1 - - 0 - - 0 - - 1 - - 0<br />

Durchschnitt 1,7 1,3 1,1 0 0 0,4 0 0 0,4 1,3 1,0 0,7 2,7 2,0 1,5 0,3 0 0<br />

Tabelle 7-1: Messwerte <strong>der</strong> Chidamber/Kemerer-Metriken<br />

Da die Metriken Komplexitätsmaße sind, bedeutet ein geringerer Wert eine bessere<br />

<strong>Bewertung</strong>. DIT und NOC zeigen deutlich, dass hier sehr wenig mit Vererbung gearbeitet<br />

wird. Das gilt allerdings fast immer für solche kleinen Beispiele. WMC, CBO<br />

und RFC spiegeln die Verbesserung von A nach B am besten wie<strong>der</strong>, LCOM teilweise.<br />

Der Preis <strong>der</strong> Flexibilisierung in C wird durch die Zunahme bei CBO und RFC für<br />

Movie deutlich.<br />

Betrachtet man die Durchschnitte <strong>der</strong> Metriken über die drei <strong>Entwürfe</strong>, zeigt sich bei<br />

WMC, CBO und RFC ein Trend zugunsten von Entwurf C, <strong>der</strong> aber auch durch die<br />

deutlich höhere Anzahl von Klassen im Vergleich zu A und B bedingt ist. Bei DIT und<br />

NOC jedoch verläuft <strong>der</strong> Trend zu Ungunsten von Entwurf C.<br />

Schlussfolgerungen<br />

Die Än<strong>der</strong>ungen von Entwurf A nach B und von B nach C dienen <strong>der</strong> Entkopplung<br />

und damit <strong>der</strong> Än<strong>der</strong>barkeit. Bei Entwurf C nimmt die Zahl <strong>der</strong> Klassen aber stark zu<br />

und verschlechtert so die durch die Entkopplung verbesserte Verständlichkeit wie<strong>der</strong>.<br />

Es wird Flexibilität eingebaut, die aber nur dann wirklich sinnvoll ist, wenn sich die<br />

Preiscodes tatsächlich än<strong>der</strong>n werden. Die Güte des Entwurfs hängt also auch vom<br />

Kontext <strong>der</strong> Software ab. Mit Hilfe <strong>der</strong> erhobenen Metriken lassen sich bei C nur<br />

Nachteile, aber keine Vorteile feststellen (außer bei einer fragwürdigen Durchschnittsbildung).<br />

Das zeigt auch, dass sich nicht alle <strong>Qualität</strong>sattribute gleich gut quantifizieren<br />

lassen. Eine vollständig automatisierte Entwurfsbewertung dürfte damit schwierig,<br />

wenn nicht gar unmöglich sein.<br />

Das Beispiel verdeutlicht, dass es Grundsätze gibt, die fast immer sinnvoll sind, z. B.<br />

Entkopplung sowie Kapselung von Details und von sich wahrscheinlich än<strong>der</strong>nden<br />

Entwurfsentscheidungen. Diese Grundsätze sollten immer beachtet werden, wenn<br />

dabei nur geringe Mehrkosten entstehen. Flexibilität, insbeson<strong>der</strong>e durch Entwurfsmuster,<br />

ist oft teuer und sollte daher nur eingebaut werden, wenn sie benötigt wird.<br />

Häufig muss dazu auch <strong>der</strong> vorhandene Entwurf geän<strong>der</strong>t werden: Beispielsweise<br />

kann das State-Muster auf Entwurf A nicht ohne vorhergehende Än<strong>der</strong>ungen angewendet<br />

werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!