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
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Anhang A<br />
Metriken für QOOD<br />
Dieser Anhang stellt die objektiven Metriken für QOOD (Übersicht siehe Tabelle 9-1)<br />
im Detail vor und begründet ihre Auswahl. Die Metriken werden geordnet nach den<br />
Entwurfskriterien des Faktors Wartbarkeit (siehe Abbildung 8-1) präsentiert. Innerhalb<br />
eines Kriteriums sind sie nach Ebenen sortiert, wobei mit <strong>der</strong> untersten Ebene<br />
(Klassen/Interfaces) begonnen wird. Wenn für eine Ebene o<strong>der</strong> ein Kriterium keine<br />
objektive Metrik verfügbar ist, wird eine Begründung dafür angegeben. Im Anschluss<br />
an die Präsentation <strong>der</strong> Metriken wird gezeigt, wie die Metriken theoretisch validiert<br />
werden können (siehe Abschnitt A.9).<br />
A.1 Knappheit<br />
Knappheit bedeutet eine möglichst geringe Zahl an Modellelementen. Daher zählt die<br />
Quantifizierung zunächst diese Modellelemente. Briand und Wüst (1999) haben festgestellt,<br />
dass solche einfachen Größenmetriken die besten Indikatoren für den späteren<br />
Implementierungsaufwand des Entwurfs darstellen. Je niedriger die Werte <strong>der</strong><br />
Zählmetriken sind, um so besser ist die Knappheit (negative Korrelation).<br />
Klasse/Interface<br />
Metriken für Eigenschaften. Bei den Klassen zählt man Attribute und Operationen.<br />
Da geerbte Eigenschaften in <strong>der</strong> Klasse vorhanden sind und damit ihre Größe mitbestimmen,<br />
zählen sie mit. Eine solche Vorgehensweise wird auch von den Untersuchungen<br />
von Beyer et al. (2000) gestützt, denen zufolge Größen-, Kopplungs- und<br />
Zusammenhaltsmetriken bei <strong>der</strong> Berücksichtigung geerbter Eigenschaften besser<br />
interpretierbare Werte liefern.<br />
NAC (number of attributes of a class)<br />
NAC(c) = |{a∈A: has*(c,a)}|<br />
Bei Interfaces ist gemäß <strong>der</strong> Definition im UML-Metamodell NAC immer 0, weil<br />
Interfaces keine Attribute haben dürfen.<br />
189