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