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
206 B Fragebögen für QOOD Paket Bedingung Fragetext Antwortskala Gewicht auto. DNHP(this) > 0 System Ist das Paket höchstens 6 Stufen tief eingeschachtelt? – Ist das Paket weder leer noch enthält es nur sehr wenige (ein oder zwei) Elemente? B.3 Entkopplung 0 = nein, 1 = ja 0 = nein, 1 = ja – Enthält das Paket höchstens 30 Elemente? 0 = nein, 1 = ja – Enthält das Paket höchstens 9 Pakete? 0 = nein, 1 = ja Fragebogen B-5: Strukturiertheit Paket ** ✔ *** ✔ ** ✔ ** ✔ Bedingung Fragetext Antwortskala Gewicht auto. – Ist die Schachtelungshierarchie der Pakete höchstens 6 Stufen tief? – Sind die Abstraktionen hoch in der Vererbungshierarchie stabil (d. h. sie werden sich wahrscheinlich nicht ändern)? – Sind alle Vererbungshierarchien höchstens 6 Stufen tief? – Umfasst jede Vererbungshierarchie höchstens 50 Klassen? a Fragebogen B-6: Strukturiertheit System a. Quelle des Schwellenwerts: Mayrand et al. (1996) 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja ** ✔ Um die Entkopplung zu verbessern, wird allgemein eine hohe Kapselung empfohlen, da dadurch die Abhängigkeiten zwischen den Entwurfseinheiten reduziert werden können. Beispielsweise sollten Attribute grundsätzlich nicht öffentlich sichtbar sein. Die öffentliche Schnittstelle einer Klasse, die demzufolge nur aus Operationen bestehen sollte, sollte so klein wie möglich sein. Kopplung zu abstrakten Klassen und Interfaces ist der Kopplung zu konkreten Klassen vorzuziehen, da sich Abstraktes weniger häufig ändert als Konkretes. *** ** ✔ ** ✔
B.3 Entkopplung 207 Klasse/Interface Bedingung Fragetext Antwortskala Gewicht auto. – Sind alle Entwurfsentscheidungen so weit wie möglich verborgen? ¬isAbstract(this) NEEC(this) > 1 Sind von der konkreten Klasse mehr als 9 andere Klassen abhängig? 0 = nein, 1 = ja 0 = nein, 1 = ja Ist das Erben von mehreren Klassen hier nötig? 0 = nein, 1 = ja – Sind alle Assoziationen mit anderen Klassen nötig? – Sind mehrfache Assoziationen mit derselben Klasse unnötig? (nötig, wenn sie unterschiedliche Bedeutung besitzen oder unterschiedliche Multiplizitäten) – Gibt es nur nötige Benutzungsbeziehungen? (Kriterium z. B. Law of Demeter, Lieberherr et al., 1988, 1989) – Realisiert die Klasse kein Interface, das bereits von einer Oberklasse realisiert wird? 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja – Gibt es keine Abhängigkeit zu konkreten Klassen? 0 = nein, 1 = ja – Gibt es keine Abhängigkeit zu einer direkten oder indirekten Unterklasse? – Gibt es keine Assoziation mit einer anderen Klasse, welche die betrachtete Klasse enthält (durch Aggregation oder Komposition)? – Gibt es keine Assoziation der Klasse zu einer anderen Klasse A, wobei beide Klassen von einer Klasse B aggregiert/komponiert werden? – Gibt es keine zyklischen Abhängigkeiten mit anderen Klassen? – Ist bei einer bidirektionalen Assoziation die Navigierbarkeit in beide Richtungen nötig? – Liegt bei einer bidirektionalen 1:1-Assoziation eine echte Assoziation vor? (Kriterien: Verbindung ist in eine oder beide Richtungen optional oder kann sich ändern, es handelt sich um zwei umfangreiche Klassen oder sie besitzen eine unterschiedliche Semantik) – Handelt es sich bei einer Aggregation um eine echte Aggregation? (Kriterien: Teil-Ganzes-Beziehung, aber der Teil kann mehrere Besitzer gleichzeitig haben oder den Besitzer wechseln) 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja 0 = nein, 1 = ja Fragebogen B-7: Entkopplung Klasse/Interface (Abschnitt 1 von 2) *** * ✔ ** ** * ** ** ✔ * ✔ ** ✔ ** ✔ * ✔ ** ✔ * *** ***
- 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 und 214: Anhang B Fragebögen für QOOD Dies
- Seite 215: B.2 Strukturiertheit 205 Paket Bedi
- 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
206 B Fragebögen für QOOD<br />
Paket<br />
Bedingung Fragetext Antwortskala Gewicht auto.<br />
DNHP(this)<br />
> 0<br />
System<br />
Ist das Paket höchstens 6 Stufen tief eingeschachtelt?<br />
– Ist das Paket we<strong>der</strong> leer noch enthält es nur sehr<br />
wenige (ein o<strong>der</strong> zwei) Elemente?<br />
B.3 Entkopplung<br />
0 = nein,<br />
1 = ja<br />
0 = nein,<br />
1 = ja<br />
– Enthält das Paket höchstens 30 Elemente? 0 = nein,<br />
1 = ja<br />
– Enthält das Paket höchstens 9 Pakete? 0 = nein,<br />
1 = ja<br />
Fragebogen B-5: Strukturiertheit Paket<br />
** ✔<br />
*** ✔<br />
** ✔<br />
** ✔<br />
Bedingung Fragetext Antwortskala Gewicht auto.<br />
– Ist die Schachtelungshierarchie <strong>der</strong> Pakete höchstens<br />
6 Stufen tief?<br />
– Sind die Abstraktionen hoch in <strong>der</strong> Vererbungshierarchie<br />
stabil (d. h. sie werden sich wahrscheinlich<br />
nicht än<strong>der</strong>n)?<br />
– Sind alle Vererbungshierarchien höchstens 6 Stufen<br />
tief?<br />
– Umfasst jede Vererbungshierarchie höchstens 50<br />
Klassen? a<br />
Fragebogen B-6: Strukturiertheit System<br />
a. Quelle des Schwellenwerts: Mayrand et al. (1996)<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 />
** ✔<br />
Um die Entkopplung zu verbessern, wird allgemein eine hohe Kapselung empfohlen,<br />
da dadurch die Abhängigkeiten zwischen den Entwurfseinheiten reduziert werden<br />
können. Beispielsweise sollten Attribute grundsätzlich nicht öffentlich sichtbar sein.<br />
Die öffentliche Schnittstelle einer Klasse, die demzufolge nur aus Operationen bestehen<br />
sollte, sollte so klein wie möglich sein. Kopplung zu abstrakten Klassen und<br />
Interfaces ist <strong>der</strong> Kopplung zu konkreten Klassen vorzuziehen, da sich Abstraktes<br />
weniger häufig än<strong>der</strong>t als Konkretes.<br />
***<br />
** ✔<br />
** ✔