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

worte.projekt.de
von worte.projekt.de Mehr von diesem Publisher
30.10.2013 Aufrufe

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) *** * ✔ ** ** * ** ** ✔ * ✔ ** ✔ ** ✔ * ✔ ** ✔ * *** ***

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 />

** ✔

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!