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.

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!