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.

192 A Metriken für QOOD<br />

NCS (number of classes in the system)<br />

NCS(S) = |C|<br />

NIS (number of interfaces in the system)<br />

NIS(S) = |I|<br />

NPS (number of packages in the system)<br />

NPS(S) = |P| - 1 (da S in P enthalten ist, ist 1 abzuziehen)<br />

Jede Eigenschaft, ob vererbt o<strong>der</strong> nicht, wird bei den Metriken NAS und NOS grundsätzlich<br />

nur einmal gezählt. Deshalb kann man hier nur nach Sichtbarkeitsbereich<br />

und nach Zugehörigkeit zu Klasse o<strong>der</strong> Objekt verfeinern (analog zu NAC und<br />

NOC). NCS, NIS und NPS können nach Sichtbarkeitsbereich verfeinert werden (analog<br />

zu NCP, NIP und NPP). Bei <strong>der</strong> Metrik NCS kann man auch nach abstrakten und<br />

konkreten Klassen verfeinern (analog zu NCP); diese Verfeinerung ist mit <strong>der</strong> nach<br />

Sichtbarkeitsbereich kombinierbar.<br />

A.2 Strukturiertheit<br />

Die Messung <strong>der</strong> Strukturiertheit konzentriert sich hier auf die Form <strong>der</strong> hierarchischen<br />

Strukturen, d. h. <strong>der</strong> Vererbungshierarchie <strong>der</strong> Klassen/Interfaces und <strong>der</strong><br />

Schachtelungshierarchie <strong>der</strong> Pakete. Die reine Anzahl an Bestandteilen <strong>der</strong> Hierarchien<br />

wird bei <strong>der</strong> Knappheit betrachtet, die Verknüpfung <strong>der</strong> Bestandteile untereinan<strong>der</strong><br />

bei <strong>der</strong> Entkopplung.<br />

Als weitere Hierarchie könnte noch die Aggregationsstruktur betrachtet werden.<br />

Genero et al. (2000) schlagen entsprechende Metriken vor. Da es aber noch keine praktischen<br />

Erfahrungen mit diesen Metriken gibt, werden sie hier nicht berücksichtigt.<br />

Klasse/Interface: Vererbung<br />

Zur Strukturiertheit tragen übersichtliche Baumstrukturen bei <strong>der</strong> Vererbung bei. Für<br />

Klassen kann die Tiefe in <strong>der</strong> Vererbungshierarchie (nach Chidamber und Kemerer,<br />

1994, die Länge des längsten Pfads zur Wurzel <strong>der</strong> Hierarchie) bestimmt werden. Je<br />

größer die Messwerte werden, desto schlechter wird die Strukturiertheit. 1<br />

Die Definition von DITC (wie auch nachher von DNHP) ist rekursiv, weil sie sich aufgrund<br />

<strong>der</strong> rekursiven Struktur <strong>der</strong> Hierarchie so am leichtesten ausdrücken lässt.<br />

DITC (depth of inheritance tree of a class)<br />

DITC(c) = 0 für Wurzelklassen, d. h. Klassen ohne Oberklasse (NEEC l (c) = 0), sonst<br />

DITC(c) = 1+max d∈C∪I: extends(c,d) {DITC(d)}<br />

1. Der Zusammenhang zwischen DITC und <strong>der</strong> Strukturiertheit ist eigentlich intuitiv klar. Empirische<br />

Untersuchungen kamen interessanterweise aber zu unterschiedlichen Resultaten. So ergab sich in<br />

einer Untersuchung, dass ein System mit Vererbung leichter zu warten ist als ein funktional gleiches<br />

ohne Vererbung (Cartwright, 1998), in einer an<strong>der</strong>en war es umgekehrt (Daly et al., 1996). Dabei<br />

können aber auch grundsätzliche Schwierigkeiten <strong>der</strong> Experimentteilnehmer mit Vererbung die<br />

Ursache gewesen sein. El Eman und Melo (2001) geben eine Übersicht über die wi<strong>der</strong>sprüchlichen<br />

Ergebnisse <strong>der</strong> Experimente in diesem Bereich. In ihrer Untersuchung kommen sie zu dem Schluss,<br />

dass DITC ein guter Indikator für die Fehleranfälligkeit einer Klasse ist (aufgrund geringer Verständlichkeit).

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!