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.

A.9 Theoretische Validierung 199<br />

A.9 Theoretische Validierung<br />

Bevor die objektiven Metriken angewendet werden, sollten sie theoretisch validiert<br />

sein. Die Metriken zu Knappheit, Strukturiertheit und Entkopplung in QOOD lassen<br />

sich als Komplexitätsmetriken auffassen, weshalb sich das Axiomensystem von Weyuker<br />

(1988) für Komplexitätsmetriken auf sie anwenden lässt. Zusätzlich gibt es noch<br />

ein Axiomensystem vom Briand et al. (1999) für Kopplungsmetriken, die spezifisch<br />

für die Metriken <strong>der</strong> Entkopplung betrachtet werden können.<br />

12.5.1 Komplexitätsmetriken<br />

Weyuker (1988) hat eine Liste von neun Axiomen publiziert, die für Komplexitätsmetriken,<br />

die Programme auf syntaktischer Basis bewerten, gelten sollten. Sei m eine<br />

Komplexitätsmetrik und P, Q, R seien Programme. Dann muss gelten:<br />

Axiom W1. Es muss Programme geben, die unterschiedliche Komplexität besitzen.<br />

Damit sollen Metriken ausgeschlossen werden, die allen Programmen die gleiche<br />

Komplexität zuweisen.<br />

∃ P, Q: m(P) ≠ m(Q)<br />

Axiom W2. Die Anzahl <strong>der</strong> Programme, welche die gleiche Komplexität besitzen,<br />

muss endlich sein. Damit wird eine feinere Unterscheidung in Komplexitätsklassen<br />

gefor<strong>der</strong>t als bei Axiom W1.<br />

∀ c ≥ 0: |{P | m(P) = c}| < ∞<br />

Axiom W3. Es muss Programme geben, welche die gleiche Komplexität besitzen.<br />

Damit soll (als Gegenpol zu Axiom W2) eine zu feine Klassifikation (z. B. eine Gödelisierung)<br />

ausgeschlossen werden.<br />

∃ P, Q: P ≠ Q ∧ m(P) = m(Q)<br />

Axiom W4. Es muss funktional äquivalente Programme geben, die unterschiedliche<br />

Komplexität besitzen. Damit soll sichergestellt werden, dass die Komplexität <strong>der</strong><br />

Implementierung und nicht die <strong>der</strong> implementierten Funktion gemessen wird.<br />

∃ P, Q: P ≡ Q ∧ m(P) ≠ m(Q) (≡ist die funktionale Äquivalenz)<br />

Axiom W5. Werden zwei Programme kombiniert, muss die Komplexität des Ganzen<br />

mindestens so groß sein wie die seiner Teile.<br />

∀ P, Q: m(P) ≤ m(P;Q) ∧ m(Q) ≤ m(P;Q) (; kombiniert zwei Programme)<br />

Axiom W6. Wird ein Programm mit zwei verschiedenen Programmen gleicher Komplexität<br />

kombiniert, können die Komplexitäten <strong>der</strong> Resultate unterschiedlich sein.<br />

Das Axiom soll sicherstellen, dass es mindestens einen solchen Fall je Kombinationsreihenfolge<br />

gibt.<br />

a) ∃ P, Q, R: m(P) = m(Q) ∧ m(P;R) ≠ m(Q;R)<br />

b) ∃ P, Q, R: m(P) = m(Q) ∧ m(R;P) ≠ m(R;Q)<br />

Axiom W7. Werden die Anweisungen eines Programms permutiert, kann sich die<br />

Komplexität än<strong>der</strong>n (sie muss aber nicht). Daher wird gefor<strong>der</strong>t, dass es eine Permutation<br />

eines Programms geben muss, die eine an<strong>der</strong>e Komplexität hat als das Programm<br />

selbst. Damit wird aber von allen Komplexitätsmetriken verlangt, dass sie

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!