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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

86 7 Entwurfsqualität<br />

Prinzip Beschreibung<br />

Sorge für schmale<br />

Schnittstellen<br />

(Martin, 1996d)<br />

Sorge für lose Kopplung<br />

(Stevens et al., 1974)<br />

Sorge für hohen<br />

Zusammenhalt<br />

(Stevens et al., 1974)<br />

Module sollen offen und<br />

geschlossen sein<br />

(Open-Closed-Principle,<br />

Meyer, 1997, S. 57;<br />

Martin, 1996a)<br />

Sorge bei Redefinition für<br />

den Erhalt <strong>der</strong> Semantik<br />

(Liskov Substitution Principle,<br />

Liskov, 1988;<br />

Martin, 1996b)<br />

Minimiere die Anzahl <strong>der</strong><br />

Objekte, mit denen ein<br />

Objekt interagiert<br />

(Law of Demeter, Lieberherr<br />

et al., 1988, 1989)<br />

In <strong>der</strong> Basisklasse sollen nur die für die eigentliche Abstraktion<br />

benötigten Methoden definiert sein. An<strong>der</strong>e Aspekte sollten durch<br />

separate Schnittstellen (z. B. durch Interfaces) definiert werden, die<br />

bei Bedarf von Subklassen zur Schnittstelle hinzugefügt werden<br />

können.<br />

Kopplung ist ein Maß für die Stärke <strong>der</strong> Verbindung (und damit <strong>der</strong><br />

Abhängigkeit) von Komponenten untereinan<strong>der</strong>. Angestrebt wird<br />

eine möglichst lose Kopplung von Komponenten. Damit steigt die<br />

Wahrscheinlichkeit, dass Än<strong>der</strong>ungen sich nur lokal auf eine Komponente<br />

auswirken und dadurch nicht auf an<strong>der</strong>e Komponenten<br />

ausstrahlen.<br />

Zusammenhalt (Kohäsion) ist ein Maß für die Stärke <strong>der</strong> Zusammengehörigkeit<br />

von Bestandteilen einer Komponente. Angestrebt<br />

wird ein möglichst hoher Zusammenhalt <strong>der</strong> Bestandteile. Damit<br />

steigt die Wahrscheinlichkeit, dass bei einer Än<strong>der</strong>ung in <strong>der</strong> Regel<br />

nur eine Komponente betroffen ist, da alle Aspekte einer Abstraktion<br />

an einem Ort zusammengefasst sind.<br />

Geschlossen bedeutet: Das Modul kann gefahrlos verwendet werden,<br />

da seine Schnittstelle stabil ist, d. h. sich nicht mehr än<strong>der</strong>t.<br />

Offen dagegen bedeutet: Das Modul kann problemlos erweitert<br />

werden. Das scheint zunächst wi<strong>der</strong>sprüchlich zu sein, ist aber realisierbar:<br />

Eine abstrakte Oberklasse (o<strong>der</strong> ein Interface) realisiert eine<br />

stabile (geschlossene) Schnittstelle. Konkrete (offene) Unterklassen<br />

implementieren sie (und können sie bei Bedarf erweitern).<br />

Jede Unterklasse U einer Klasse K muss für die durch K gegebene<br />

Schnittstelle dieselbe Semantik anbieten. Nur dann kann man bei<br />

<strong>der</strong> Verwendung <strong>der</strong> Schnittstelle einer Klasse sichergehen, dass<br />

sich das Programm gleich verhält, wenn an Stelle einer Instanz von<br />

K eine Instanz von U verwendet wird.<br />

In den Methoden einer Klasse dürfen nur Methoden <strong>der</strong> Klasse<br />

selbst, <strong>der</strong> Argumentobjekte o<strong>der</strong> <strong>der</strong> Attributwerte <strong>der</strong> Klasse aufrufen<br />

werden. Dahinter steht die Überlegung, dass sich die meisten<br />

Abhängigkeiten zwischen Klassen durch Methodenaufrufe manifestieren,<br />

eine Beschränkung also zu weniger Abhängigkeiten führt.<br />

Tabelle 7-3: Taktische Prinzipien (Abschnitt 2 von 2)<br />

Lei<strong>der</strong> gibt es für die meisten dieser Prinzipien wenig empirische Untersuchungen<br />

über ihre Wirksamkeit und ihre Relevanz. Sie stellen eher eine Art Tradition im Software<br />

Engineering dar, die durch überwiegend positive Erfahrungen aufrechterhalten<br />

wird. Obwohl <strong>der</strong> empirische Nachweis <strong>der</strong> Brauchbarkeit fehlt, werden in vielen<br />

wissenschaftlichen Arbeiten diese Prinzipien herangezogen, um aus ihnen Entwurfsziele<br />

zu extrahieren. Aus diesen werden dann <strong>Qualität</strong>sattribute abgeleitet, die zur<br />

Entwurfsbewertung verwendet werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!