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
204 B Fragebögen für QOOD Darstellung Die Bedingungen der Fragen werden durch Prädikate formalisiert. Die Prädikate können einen impliziten Parameter this verwenden, der den aktuellen Bewertungsgegenstand bezeichnet. Die Gewichte weniger wichtig, wichtig und sehr wichtig werden durch Sternchen visualisiert (* für weniger wichtig, ** für wichtig und *** für sehr wichtig). Ist eine Frage automatisch beantwortbar, wird in der letzten Spalte ein Häkchen gesetzt. Bei manche Fragen geht es um das Fehlen bestimmter Eigenschaften, z. B. dass keine zyklischen Abhängigkeiten vorhanden sind. Bei der Antwort soll – entgegen dem Sprachgebrauch – mit ja geantwortet werden, wenn die Aussage zutrifft und mit nein, wenn die Aussage nicht zutrifft. B.1 Knappheit Da Knappheit geringe Größe bedeutet, enthalten die Fragebögen verschiedene Fragen nach unnötigen und redundanten Entwurfsteilen. Klasse/Interface Bedingung Fragetext Antwortskala Gewicht auto. – Ist das Vorhandensein der Klasse notwendig? 0 = nein, 1 = ja *** this∈C Enthält die Klasse nur die nötigen Attribute? (z. B. keine nicht (mehr) verwendeten oder für die Verantwortlichkeiten der Klasse nicht relevanten) NOC(this) > 0 NOC(this) > 0 NOC(this) > 0 NOC(this) > 0 NEEC(this) > 0 this∈C ∧ this.isAbstract Enthält die Klasse nur die nötigen Operationen? (z. B. keine nicht (mehr) verwendeten oder für die Verantwortlichkeiten der Klasse nicht relevanten) Enthält die Klasse keine überflüssigen Operationen? (z. B. überladene Operationen oder andere „Komfort-Operationen“) Gibt es keine ähnlichen Operationen in anderen Klassen? Wird die Implementierung vermutlich keinen redundanten Code enthalten? 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja Benötigt jede Operationen alle ihre Parameter? 0 = nein, 1 = ja Fügt die Unterklasse neue Attribute oder Operationen hinzu? Hat die abstrakte Klasse mindestens eine Unterklasse? this∈I Wird das Interface realisiert oder von anderen Interfaces geerbt? Fragebogen B-1: Knappheit Klasse/Interface 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja ** ** * ** ** ** ✔ *** ✔ *** ✔
B.2 Strukturiertheit 205 Paket Bedingung Fragetext Antwortskala Gewicht auto. – Enthält das Paket mindestens eine Komponente? 0 = nein, 1 = ja *** ✔ – Ist das Vorhandensein des Paket notwendig? 0 = nein, 1 = ja *** Fragebogen B-2: Knappheit Paket System Bedingung Fragetext Antwortskala Gewicht auto. – Gibt es keine zwei oder mehr Klassen, welche die gleiche Aufgabe haben, also bis auf eine überflüssig sind? – Gibt es keine zwei oder mehr Pakete, welche die gleiche Aufgabe haben, also bis auf eines überflüssig sind? – Gibt keine zwei oder mehr Unterklassen einer Klasse, die ähnliche oder gleiche Eigenschaften haben, die in die Oberklasse verschoben werden sollten? Fragebogen B-3: Knappheit System B.2 Strukturiertheit Die Fragen beschäftigen sich mit der Pakethierarchie und der Vererbungshierarchie. Klasse/Interface 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja Bedingung Fragetext Antwortskala Gewicht auto. – Ist die Klasse in der Vererbungshierarchie höchstens 6 Stufen tief? 0 = nein, 1 = ja – Hat die Klasse höchstens 9 Unterklassen? 0 = nein, 1 = ja NAEC(this) = 1 Hat die Klasse nur eine Unterklasse, aber es gibt keinen Sinn, die beiden zu verschmelzen? – Hat die Klasse keine Unterklassen, die eigentlich Instanzen der Klasse sein sollten? Fragebogen B-4: Strukturiertheit Klasse/Interface 0 = nein, 1 = ja 0 = nein, 1 = ja *** *** *** ** ✔ ** ✔ * **
- Seite 163 und 164: 11.1 Werkzeuge aus anderen Arbeiten
- Seite 165 und 166: 11.2 Selbst realisierte Werkzeuge 1
- Seite 167 und 168: 11.2 Selbst realisierte Werkzeuge 1
- Seite 169 und 170: 11.3 Ausblick: Ein ideales Werkzeug
- Seite 171 und 172: Kapitel 12 Zusammenfassung und Ausb
- Seite 173 und 174: 12.2 Bewertung des Ansatzes 163 Die
- Seite 175 und 176: 12.3 Vergleich mit anderen Arbeiten
- Seite 177 und 178: 12.4 Ausblick 167 Entwerfen QOOD ka
- Seite 179 und 180: Literatur Abowd et al. (1996) Abowd
- Seite 181 und 182: Beyer et al. (2000) Beyer, D.; Lewe
- Seite 183 und 184: Cavano, McCall (1978) Cavano, J.; M
- Seite 185 und 186: Dißmann (1990) Dißmann, S.: Anfor
- Seite 187 und 188: Gursaran, Roy (2002) Gursaran; Roy,
- Seite 189 und 190: Koenig (1995) Koenig, A.: Patterns
- Seite 191 und 192: McCabe (1976) McCabe, T.: A Complex
- Seite 193 und 194: Rising (2000) Rising, L.: The Patte
- Seite 195 und 196: Wand (1989) Wand, Y.: A Proposal fo
- Seite 197 und 198: Akronyme Allgemeine Akronyme CMM Ca
- Seite 199 und 200: Anhang A Metriken für QOOD Dieser
- Seite 201 und 202: A.1 Knappheit 191 Ihre Verwaltung m
- Seite 203 und 204: A.3 Entkopplung 193 Neben der Tiefe
- Seite 205 und 206: A.3 Entkopplung 195 NEDC p (number
- Seite 207 und 208: A.5 Einheitlichkeit 197 Ein alterna
- Seite 209 und 210: A.9 Theoretische Validierung 199 A.
- Seite 211 und 212: A.9 Theoretische Validierung 201 Ax
- Seite 213: Anhang B Fragebögen für QOOD Dies
- Seite 217 und 218: B.3 Entkopplung 207 Klasse/Interfac
- Seite 219 und 220: B.4 Zusammenhalt 209 System Bedingu
- Seite 221 und 222: B.6 Dokumentierung 211 Klasse/Inter
- Seite 223 und 224: B.7 Verfolgbarkeit 213 System Bedin
- Seite 225 und 226: Anhang C Dokumente zum Softwareprak
- Seite 227 und 228: C.1 Aufgabenstellung 217 muss der P
- Seite 229 und 230: C.1 Aufgabenstellung 219 dann Ihr H
- Seite 231 und 232: C.2 Anforderungen 221 C.2.4 Fahrgas
- Seite 233 und 234: C.2 Anforderungen 223 alle weiteren
- Seite 235 und 236: C.3 Begriffslexikon 225 Endhalteste
204 B Fragebögen für QOOD<br />
Darstellung<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 />
Bei manche Fragen geht es um das Fehlen bestimmter Eigenschaften, z. B. dass keine<br />
zyklischen Abhängigkeiten vorhanden sind. Bei <strong>der</strong> Antwort soll – entgegen dem<br />
Sprachgebrauch – mit ja geantwortet werden, wenn die Aussage zutrifft und mit nein,<br />
wenn die Aussage nicht zutrifft.<br />
B.1 Knappheit<br />
Da Knappheit geringe Größe bedeutet, enthalten die Fragebögen verschiedene Fragen<br />
nach unnötigen und redundanten Entwurfsteilen.<br />
Klasse/Interface<br />
Bedingung Fragetext Antwortskala Gewicht auto.<br />
– Ist das Vorhandensein <strong>der</strong> Klasse notwendig? 0 = nein,<br />
1 = ja<br />
***<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(this)<br />
> 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 />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<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 />
Fragebogen B-1: Knappheit Klasse/Interface<br />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<br />
**<br />
**<br />
*<br />
**<br />
**<br />
** ✔<br />
*** ✔<br />
*** ✔