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

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

130 9 Quantifizierung des <strong>Qualität</strong>smodells<br />

Interface verdeutlicht (vgl. Abbildung 9-5). Da Knappheit geringe Größe bedeutet,<br />

enthält <strong>der</strong> Fragebogen Fragen nach unnötigen und redundanten Entwurfsteilen.<br />

Die Bedingungen <strong>der</strong> Fragen werden durch Prädikate formalisiert. Die Prädikate können<br />

einen impliziten Parameter this verwenden, <strong>der</strong> den aktuellen <strong>Bewertung</strong>sgegenstand<br />

bezeichnet. Die Gewichte weniger wichtig, wichtig und sehr wichtig werden<br />

durch Sternchen visualisiert (* für weniger wichtig, ** für wichtig und *** für sehr<br />

wichtig). Ist eine Frage automatisch beantwortbar, wird in <strong>der</strong> letzten Spalte ein Häkchen<br />

gesetzt.<br />

Bedingung Fragetext Antwortskala Gewicht auto.<br />

– Ist das Vorhandensein <strong>der</strong> Klasse notwendig? 0 = nein,<br />

1 = ja<br />

this∈C Enthält die Klasse nur die nötigen Attribute?<br />

(z. B. keine nicht (mehr) verwendeten o<strong>der</strong> für die<br />

Verantwortlichkeiten <strong>der</strong> Klasse nicht relevanten)<br />

NOC(this)<br />

> 0<br />

NOC(this)<br />

> 0<br />

NOC(this)<br />

> 0<br />

NOC(this)<br />

> 0<br />

NEEC<br />

(this) > 0<br />

this∈C ∧<br />

this.isAbstract<br />

Enthält die Klasse nur die nötigen Operationen?<br />

(z. B. keine nicht (mehr) verwendeten o<strong>der</strong> für die<br />

Verantwortlichkeiten <strong>der</strong> Klasse nicht relevanten)<br />

Enthält die Klasse keine überflüssigen Operationen?<br />

(z. B. überladene Operationen o<strong>der</strong> an<strong>der</strong>e<br />

„Komfort-Operationen“)<br />

Gibt es keine ähnlichen Operationen in an<strong>der</strong>en<br />

Klassen? Wird die Implementierung vermutlich<br />

keinen redundanten Code enthalten?<br />

9.4.4 Auswertung<br />

0 = nein,<br />

1 = ja<br />

0 = nein,<br />

1 = ja<br />

0 = nein,<br />

1 = ja<br />

0 = nein,<br />

1 = ja (Aussage<br />

trifft zu)<br />

Benötigt jede Operationen alle ihre Parameter? 0 = nein,<br />

1 = ja<br />

Fügt die Unterklasse neue Attribute o<strong>der</strong> Operationen<br />

hinzu?<br />

Hat die abstrakte Klasse mindestens eine Unterklasse?<br />

this∈I Wird das Interface realisiert o<strong>der</strong> von an<strong>der</strong>en<br />

Interfaces geerbt?<br />

0 = nein,<br />

1 = ja<br />

0 = nein,<br />

1 = ja<br />

0 = nein,<br />

1 = ja<br />

Bei den Fragebögen lässt sich aus den Antworten ein <strong>Bewertung</strong>svorschlag generieren.<br />

Das Verfahren dazu ähnelt dem zur Berechnung eines <strong>Bewertung</strong>svorschlags aus<br />

objektiven Metriken. Eine Normierung ist hier allerdings nicht erfor<strong>der</strong>lich, weil die<br />

Fragen so formuliert sind, dass eine Antwort mit ja (o<strong>der</strong> eine hohe Zustimmung)<br />

positiv für die <strong>Qualität</strong> ist, und weil <strong>der</strong> Wertebereich für die Antwort bereits [0;1] ist.<br />

Ausgewertet werden nur anwendbare Fragen, d. h. Fragen, <strong>der</strong>en Bedingung erfüllt<br />

ist. Nicht anwendbare Fragen wirken sich somit nicht auf den <strong>Bewertung</strong>svorschlag<br />

aus. Zur Auswertung wird die Antwort auf jede anwendbare Frage mit dem Gewicht<br />

multipliziert und das Resultat für alle Fragen aufsummiert. Dann wird durch Summe<br />

***<br />

**<br />

**<br />

*<br />

**<br />

**<br />

** ✔<br />

*** ✔<br />

*** ✔<br />

Abbildung 9-5: Fragebogen für Kriterium Knappheit, Ebene Klasse/Interface

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!