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.
200 A Metriken für QOOD<br />
sich mit den Details <strong>der</strong> Programme beschäftigen. Die meisten üblichen (und sinnvollen!)<br />
Metriken (z. B. McCabes zyklomatische Komplexität) sind aber nicht sensitiv<br />
gegenüber einer Permutation von Anweisungen, weshalb dieses Axiom eher fragwürdig<br />
ist.<br />
∃ P, Q: Q = π(P) ∧ m(P) ≠ m(Q) (π permutiert die Anweisungen von P)<br />
Axiom W8. Werden nur Bezeichner umbenannt, darf sich die Komplexität nicht<br />
än<strong>der</strong>n. Da hier nur strukturelle Komplexität, nicht psychologische Komplexität<br />
betrachtet wird, gibt diese For<strong>der</strong>ung Sinn.<br />
∀ P, Q: Q = ρ(P) ⇒ m(P) = m(Q) (ρ benennt Bezeichner in P um)<br />
Axiom W9. Es kann Fälle geben, bei denen die Komplexität einer Kombination<br />
zweier Programme echt größer ist als die Summe <strong>der</strong> Komplexitäten <strong>der</strong> beiden Programme<br />
(durch zusätzliche Interaktion <strong>der</strong> Teile). Hier wird verlangt, dass es mindestens<br />
einen solchen Fall geben muss.<br />
∃ P, Q: m(P) + m(Q) < m(P;Q)<br />
Diskussion<br />
Diese Axiome bedeuten zum Teil sehr starke Einschränkungen (Shepperd, Ince, 1993).<br />
Die von Weyuker betrachteten Beispiele wie Lines of Code o<strong>der</strong> McCabes zyklomatische<br />
Komplexität erfüllen höchstens sieben <strong>der</strong> neun Axiome, scheinen aber trotzdem<br />
nützliche Komplexitätsmetriken zu sein. Daher scheint es fragwürdig, ob eine Komplexitätsmetrik<br />
wirklich alle neun Axiome erfüllen muss. An<strong>der</strong>erseits sind die Axiome<br />
von Weyuker trotz ihrer Restriktivität nur notwendige Bedingungen für Komplexitätsmetriken,<br />
keine hinreichenden. Beispielsweise geben Cherniavsky und Smith<br />
(1991) eine Metrik an, für die alle Axiome gelten, die aber keine sinnvolle Komplexitätsmetrik<br />
ist.<br />
Chidamber und Kemerer (1994) haben für ihre objektorientierten Entwurfsmetriken<br />
untersucht, welche Axiome von Weyuker gelten. Dabei stellten sie fest, dass die Axiome<br />
W7 und W9 für keine <strong>der</strong> Metriken gelten. Daraus folgern sie, dass diese Axiome<br />
vermutlich für objektorientierte Metriken allgemein nicht anwendbar sind. Für<br />
Axiom W7 ist <strong>der</strong> Grund offensichtlich: Überträgt man die Axiome von Programmen<br />
auf <strong>Entwürfe</strong> in UML, gibt es keine sinnvolle Interpretation für eine Permutation von<br />
Entwurfselementen, da hier im Gegensatz zu Programmen keine Reihenfolge <strong>der</strong> Elemente<br />
vorhanden ist. Bei Axiom W9 ist es wohl so, dass bei <strong>der</strong> Kombination <strong>objektorientierter</strong><br />
<strong>Entwürfe</strong> keine Effekte auftreten, die zu einer höheren Komplexität als<br />
<strong>der</strong> Summe <strong>der</strong> Teile führen. Gursaran und Roy (2002) kommen für W9 zu dem<br />
Ergebnis, dass das Axiom zumindest für Vererbungsmetriken grundsätzlich nicht<br />
anwendbar ist. Daher werden die Axiome W7 und W9 nicht weiter betrachtet.<br />
Untersuchung <strong>der</strong> Metriken<br />
Die Metriken für Knappheit, Strukturiertheit und Entkopplung sind Komplexitätsmetriken.<br />
Daher wird untersucht, welche <strong>der</strong> Axiome für die Metriken gelten. Das wird<br />
hier am Beispiel <strong>der</strong> Metrik NAC (Number of Attributes of a Class) demonstriert.<br />
Axiom W1. Das Axiom gilt. Man wähle eine Klasse P mit einem Attribut und eine<br />
Klasse Q mit zwei Attributen. Dann gilt NAC(P) ≠ NAC(Q).