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.

110 8 Das allgemeine <strong>Qualität</strong>smodell<br />

• Methode-Attribut: Eine Methode greift (lesend o<strong>der</strong> schreibend) auf ein Attribut<br />

zu. Durch den Zugriff ergibt sich implizit eine Kopplung zwischen den Klassen,<br />

welche die Methode bzw. das Attribut enthalten.<br />

• Operation-Klasse: Eine Operation besitzt einen Parameter o<strong>der</strong> eine Rückgabe von<br />

einem Klassentyp. Dadurch ergibt sich wie<strong>der</strong>um eine implizite Kopplung zwischen<br />

<strong>der</strong> Klasse mit <strong>der</strong> Operation und <strong>der</strong> Klasse des Parameters bzw. <strong>der</strong> Rückgabe.<br />

• Klasse-Klasse (Vererbung): Eine Klasse erbt von einer an<strong>der</strong>en Klasse. Faktisch<br />

werden sämtliche Kopplungen <strong>der</strong> Oberklasse ebenfalls geerbt. Durch Redefinition<br />

einer Methode könnten zwar Kopplungen durch Methodenaufruf o<strong>der</strong> Attributzugriff<br />

wegfallen, dies ist allerdings in <strong>der</strong> Praxis eher unwahrscheinlich.<br />

• Klasse-Klasse (Assoziation): Es gibt eine (gerichtete) Assoziation <strong>der</strong> Klasse mit <strong>der</strong><br />

an<strong>der</strong>en Klasse.<br />

• Paket-Paket: Die explizite o<strong>der</strong> implizite Kopplung von Klassen überträgt sich als<br />

implizite Kopplung auf die Pakete, in denen die Klassen liegen.<br />

Diskussion<br />

Angestrebt wird eine hohe Entkopplung <strong>der</strong> Komponenten. Das bedeutet zum einen<br />

eine möglichst geringe Anzahl von Verbindungen zwischen Komponenten, zum<br />

an<strong>der</strong>en bei den vorhandenen Verbindungen eine möglichst schwache Kopplungsart.<br />

Entkopplung erhöht die Wahrscheinlichkeit, dass Än<strong>der</strong>ungen sich nur lokal auf eine<br />

Komponente auswirken und nicht auf an<strong>der</strong>e Komponenten ausstrahlen (Welleneffekt).<br />

Außerdem ist die Wahrscheinlichkeit gering, dass Fehler in an<strong>der</strong>en Komponenten<br />

Folgefehler in <strong>der</strong> Komponente selbst verursachen. Schließlich ergibt sich auch<br />

eine bessere Verständlichkeit, da zum Verständnis einer Komponente weniger an<strong>der</strong>e<br />

Komponenten verstanden werden müssen.<br />

Dass sich hohe Entkopplung positiv auf die Wartbarkeit auswirkt, zeigen empirische<br />

Untersuchungen von Yin und Winchester (1978), Troy und Zweben (1981) sowie von<br />

Rombach (1990) für den strukturierten Entwurf und von Binkley und Schach (1996)<br />

für den objektorientierten Entwurf. Die genannten Untersuchungen haben auch<br />

gezeigt, dass Entkopplungsmetriken die stärksten Indikatoren für die Wartbarkeit<br />

sind.<br />

8.3.4 Zusammenhalt<br />

Definition<br />

Zusammenhalt (cohesion; vgl. Stevens et al., 1974) ist ein Maß für die Stärke <strong>der</strong><br />

(semantischen) Zusammengehörigkeit von Bestandteilen einer Komponente. Alles,<br />

was zusammengehört, sollte sich in einer Komponente befinden, aber nicht mehr. In<br />

<strong>der</strong> Objektorientierung lassen sich zwei Ebenen des Zusammenhalts unterscheiden:<br />

die Zusammengehörigkeit von Attributen und Operationen in einer Klasse und die<br />

Zusammengehörigkeit von Klassen in einem Paket.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!