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.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.