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.

7.3 Entwurfsregeln 85<br />

Prinzip Beschreibung<br />

Benutze Abstraktion Abstraktion ist ein für den Menschen natürliches Verfahren, mit<br />

komplexen Sachverhalten umzugehen. Bei <strong>der</strong> Abstraktion werden<br />

irrelevante Details ausgeblendet. Um einen Sachverhalt zu verstehen,<br />

ist es dann nicht mehr notwendig, alle Details auf einmal im<br />

Gedächtnis zu haben. Es genügt, die an <strong>der</strong> aktuellen Aufgabenstellung<br />

beteiligten Abstraktionen zu beherrschen.<br />

Teile und herrsche Ein Problem wird in kleinere, möglichst unabhängige Teilprobleme<br />

zerlegt, die gelöst werden. Aus den Einzellösungen wird dann die<br />

Gesamtlösung zusammengesetzt. Das Verfahren lässt sich rekursiv<br />

anwenden, bis man zu einfach lösbaren Teilproblemen gelangt. Der<br />

Vorteil dieses Vorgehens besteht darin, dass zu einem Zeitpunkt nur<br />

ein Problem relativ geringer Komplexität gelöst werden muss.<br />

Strukturiere hierarchisch<br />

(Simon, 1962; Parnas,<br />

1972b)<br />

Der Mensch kann nur dann mit komplexen Systemen umgehen,<br />

wenn sie hierarchisch sind. Daher sind hierarchische Strukturen im<br />

Entwurf vorteilhaft.<br />

Modularisiere Das System wird – im Geiste des Teile-und-herrsche-Prinzips – in<br />

sinnvolle Subsysteme und Module zerlegt. Das Modul dient dabei<br />

als Behälter für Funktionen o<strong>der</strong> Zuständigkeiten des Systems.<br />

Trenne die Zuständigkeiten<br />

(separation of concerns)<br />

Trenne Verhalten und<br />

Implementierung<br />

(separation of policy and<br />

implementation; Rumbaugh<br />

et al., 1993)<br />

Kapsele Zusammengehöriges<br />

Trenne Schnittstelle und<br />

Implementierung<br />

Vermeide Abhängigkeiten<br />

von Details<br />

(Martin, 1996c)<br />

Das System wird anhand von Zuständigkeiten (häufig auch als Verantwortlichkeiten<br />

bezeichnet) in Komponenten aufgeteilt. Komponenten,<br />

die an <strong>der</strong> gleichen Aufgabe beteiligt sind, werden<br />

gruppiert und von denen abgegrenzt, die für an<strong>der</strong>e Aufgaben<br />

zuständig sind.<br />

Eine Komponente (o<strong>der</strong> eine Methode) soll entwe<strong>der</strong> für das Verhalten<br />

o<strong>der</strong> die Implementierung zuständig sein, nicht für beides.<br />

Eine Komponente für das Verhalten trifft Entscheidungen anhand<br />

des Kontextes, interpretiert Ergebnisse und koordiniert an<strong>der</strong>e<br />

Komponenten. Eine Komponente für die Implementierung dagegen<br />

führt einen Algorithmus auf vorliegenden Daten aus. Komponenten<br />

für die Implementierung sind in <strong>der</strong> Regel stabil, während sich die<br />

Komponenten für das Verhalten oft än<strong>der</strong>n, daher gibt es Sinn, sie<br />

zu trennen.<br />

Zusammengehörige Bestandteile einer Abstraktion werden zu<br />

einem Ganzen zusammengefasst und von an<strong>der</strong>en abgegrenzt. Die<br />

Implementierung wird hinter einer Schnittstelle verborgen. Bei <strong>der</strong><br />

objektorientierten Sichtweise wird die Kapselung durch die Definition<br />

von Klassen erreicht.<br />

Eine Komponente soll aus einer Schnittstelle und einer Implementierung<br />

bestehen. Die Schnittstelle soll nicht von <strong>der</strong> Implementierung<br />

abhängen, so dass <strong>der</strong> Verwen<strong>der</strong> nicht durch Än<strong>der</strong>ungen<br />

von Implementierungsdetails betroffen sein kann.<br />

Komponenten sollten nicht von Details (i. d. R. Implementierungsdetails)<br />

abhängig sein, son<strong>der</strong>n von abstrakten Schnittstellen. In <strong>der</strong><br />

Objektorientierung bedeutet das, dass die wesentlichen Abstraktionen<br />

in Form von Interfaces o<strong>der</strong> abstrakten Klassen formuliert sind.<br />

Tabelle 7-3: Taktische Prinzipien (Abschnitt 1 von 2)

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!