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.
5.5 Formale Definition von Metriken 57<br />
D(p) = |A(p) + I(p) - 1| / 2<br />
D'(p) = |A(p) + I(p) - 1| = 2<br />
D(p)<br />
Fazit. Martins Metriken konzentrieren sich auf Elemente des Architekturentwurfs,<br />
weshalb sie mit ODEM leicht formalisiert werden können. Es gibt ein paar Lücken<br />
und Unklarheiten in den ursprünglichen natürlichsprachlichen Definitionen, die bei<br />
<strong>der</strong> Formalisierung durch sinngemäße Ergänzungen überwunden werden können.<br />
Fallstudie 2: Chidamber und Kemerers Metrikensuite<br />
Chidamber und Kemerer waren 1991 eine <strong>der</strong> ersten, die eine Suite von objektorientierten<br />
Metriken publiziert haben. Wohl auch deshalb hat die Suite eine hohe Popularität.<br />
Hier wird die zweite Version von 1994 zur Formalisierung verwendet.<br />
Weighted Methods per Class (WMC). WMC ist die Summe <strong>der</strong> Komplexitäten <strong>der</strong><br />
Methoden einer Klasse. Je geringer WMC, desto besser. Die Definition <strong>der</strong> Komplexität<br />
ist absichtlich offen gelassen. WMC wird meistens mit einer Standardkomplexität<br />
von 1 verwendet (auch von den Autoren selbst; vgl. Chidamber, Kemerer, 1998). Lei<strong>der</strong><br />
haben die Autoren erst später genauere Aussagen darüber gemacht, welche<br />
Methoden gezählt werden sollen (Chidamber, Kemerer, 1995). Die Hauptinterpretation<br />
vom WMC in <strong>der</strong> Literatur ist es, nur lokal definierte Methoden zu zählen (einschließlich<br />
Redefinitionen). Da ODEM nur Operationen und keine Methoden betrachtet,<br />
kommen Redefinitionen allerdings nicht vor. Es werden sowohl Klassen- als auch<br />
Instanzmethoden gezählt.<br />
WMC(c) = |{o∈O: has(c,o)}|<br />
Depth of Inheritance Tree (DIT). DIT ist die maximale Länge aller Vererbungspfade<br />
von <strong>der</strong> Klasse zu den Wurzelklassen <strong>der</strong> Vererbungshierarchie. Je geringer DIT, desto<br />
besser. Hier wird eine rekursive Definition angegeben:<br />
DIT(c) = if ∃d∈C∪I: extends(c,d) then 1+maxd∈C: extends(c,d) {DIT(d)} else 0<br />
Number of Children (NOC). NOC ist die Anzahl <strong>der</strong> direkten Unterklassen einer<br />
Klasse. Ein hoher Wert deutet sowohl auf bessere Wie<strong>der</strong>verwendung als auch auf<br />
den Missbrauch von Vererbung und höheren Testaufwand hin, so dass es keine klare<br />
Aussage gibt, welche Werte besser sind.<br />
NOC(c) = |{d∈C∪I: extends(d,c)}|<br />
Coupling between Object Classes (CBO). CBO ist die Anzahl <strong>der</strong> Klassen, an die<br />
eine Klasse gekoppelt ist. Eine Klasse A ist an eine Klasse B gekoppelt, wenn eine<br />
Methode von A eine Methode o<strong>der</strong> ein Attribut von B verwendet. Je geringer CBO,<br />
desto besser. Diese Metrik benötigt genaue Information über die Methoden, es wird<br />
also ein sehr detaillierter Entwurf o<strong>der</strong> <strong>der</strong> Code <strong>der</strong> Klasse für die Messung vorausgesetzt.<br />
Derart detaillierte Information ist in ODEM aber nicht vorhanden, weshalb<br />
diese Metrik nicht formalisiert werden kann.<br />
Response for a Class (RFC). Die Größe <strong>der</strong> Response-Menge einer Klasse, d. h. die<br />
Anzahl <strong>der</strong> Methoden einer Klasse plus die Anzahl <strong>der</strong> Methoden an<strong>der</strong>er Klassen,<br />
die von den Methoden <strong>der</strong> Klasse benutzt werden (jede Methode zählt nur einmal). Je<br />
geringer RFC, desto besser. Auch diese Metrik benötigt genaue Informationen über<br />
die Methoden, weshalb das gleiche Problem bei <strong>der</strong> Formalisierung auftritt wie bei