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.
4.2 Klassifikationen des Entwurfs 29<br />
In <strong>der</strong> Praxis entstehen Architektur- und Komponentenentwurf eher parallel als<br />
sequentiell, da beim Komponentenentwurf häufig Fehler o<strong>der</strong> Schwächen im Architekturentwurf<br />
identifiziert werden; insbeson<strong>der</strong>e müssen häufig an<strong>der</strong>e Komponenten<br />
angepasst werden, mit denen die Komponente interagieren soll.<br />
4.2.3 Abstraktionsebenen<br />
Anhand des Abstraktionsgrads des Entwurfs kann zwischen logischem und physischem<br />
Entwurf unterscheiden werden.<br />
Logischer Entwurf<br />
Der logische Entwurf abstrahiert vom konkreten Kontext <strong>der</strong> geplanten Implementierung,<br />
z. B. <strong>der</strong> Plattform (Rechner, Betriebssystem, Netzwerke) und an<strong>der</strong>en Systemen,<br />
mit denen das System interagieren soll (z. B. Datenbank, Middleware). Auf<br />
diese Weise entsteht ein implementierungsneutraler Entwurf, <strong>der</strong> in dieser Form nicht<br />
direkt implementierbar ist.<br />
Physischer Entwurf<br />
Die Brücke vom logischen Entwurf zur Implementierung schlägt <strong>der</strong> physische Entwurf.<br />
Die im logischen Entwurf offen gelassenen Realisierungsentscheidungen werden<br />
auf <strong>der</strong> Basis von Anfor<strong>der</strong>ungen durch Kunden und Management, Kostenaspekten<br />
(z. B. Anschaffungs- und Betriebskosten, Einarbeitungszeit <strong>der</strong> Entwickler und<br />
Benutzer) und Effizienzüberlegungen (Laufzeit und Speicherbedarf) gefällt.<br />
Der Vorteil <strong>der</strong> Trennung zwischen logischem und physischem Entwurf ist, dass sich<br />
<strong>der</strong> Entwerfer zunächst keine Gedanken um Implementierungsprobleme und Effizienz<br />
machen muss, son<strong>der</strong>n sich auf die Aufteilung <strong>der</strong> Funktionalität auf Komponenten<br />
konzentrieren kann.<br />
4.2.4 Strukturen<br />
An object-oriented program’s run-time structure often bears little resemblance to its code<br />
structure. The code structure is frozen at compile-time, it consists of classes in fixed inheritance<br />
relationships. A program’s run-time structure consists of rapidly changing networks of<br />
communicating objects. In fact, the two structures are largely independent. Trying to un<strong>der</strong>stand<br />
one from the other is like trying to un<strong>der</strong>stand the dynamism of living ecosystems from<br />
the static taxonomy of plants and animals, and vice versa.<br />
(Gamma et al., 1995, S. 22)<br />
Beim objektorientierten Entwurf kann zwischen statischer und dynamischer Struktur<br />
unterschieden werden. Die statische Struktur beschreibt den Aufbau des Programms<br />
zur Übersetzungszeit, während die dynamische Struktur den Aufbau des Programms<br />
zur Laufzeit beschreibt.<br />
Statische Struktur<br />
Die statische Struktur besteht aus Klassen, Interfaces und Paketen sowie ihren Beziehungen<br />
untereinan<strong>der</strong>. Zu je<strong>der</strong> Klasse und zu jedem Interface werden Attribute und<br />
Operationen (ggf. auch Redefinitionen) angegeben. Zwischen Klassen und Interfaces<br />
können verschiedene Beziehungen bestehen: Es lassen sich Benutzungsbeziehung,