Diese Entwurfsmethode legt Wert darauf, daß der Entwurfsprozeß ein schrittweiser, sich wiederholender Prozeß ist. Man könnte sagen, daß sie der Grundstein für den objekt-orientierten Entwurf ist.
Für jene, die in strukturierter Programmierung ausgebildet worden sind, ist die objekt-orientierte Entwurfsmethode sicherlich ein schrecklich unzusammenhängender, amorpher Prozeß. Das ist auch wahr. Aber man muß auch sehen, daß man Kreativität nicht durch die Definition von bestimmten Schritten, denen man zu folgen hat, erzeugen kann. Es ist allerdings so, daß mit gewonnener Erfahrung ähnliche Probleme leichter zu lösen sind. Jeder, der selbst ein Haus gebaut hat, sagt nicht ohne Grund, daß man eigentlich zweimal bauen müsse.
Es gibt Untersuchungen von Software-Entwicklungsprozessen (vgl. [Cur89]), wo die Arbeit von Software-Entwurfsspezialisten auf Videobändern aufgenommen und analysiert wurde. Die Folgerungen aus dieser Untersuchung sind, daß
,,der Software-Entwurf eine Ansammlung sich überschneidender, sich wiederholender, schwach geordneter Prozesse ist, die opportunistisch verwendet werden ... Top-Down-Entwurf ist ein Spezialfall, der dann verwendet wird, wenn es eine passende Entwurfsmethode gibt oder das Problem klein genug ist ...Gute Leute arbeiten auf mehreren Abstraktionsebenen gleichzeitig``([Cur89]).
Da die meisten Software-Projekte einzigartig sind, gibt es für die Entwickler meist keine Grundlage, auf die sie sich stützen können. Unter solchen Umständen ist es günstig, einen Entwurf zu versuchen, ein paar Schritte zurückzumachen und das bisherige Ergebnis zu analysieren. Danach kehrt man zurück und verbessert den Entwurf basierend auf den gerade gewonnenen Erkenntnissen. Dieser Prozeß wird solange wiederholt, bis man von der Korrektheit und der Vollständigkeit des gesamten Entwurfs überzeugt ist. Das ist, was man kurz als ,,round-trip gestalt design`` bezeichnet.
Objekt-orientierter Entwurf ist total unabhängig von herkömmlichen ,,Wasserfall-Methoden``(vgl. Abbildung 18.16),
Abbildung: Die herkömmliche ,,Wasserfall-Methode``zur Beschreibung einer Software-Entwicklung
um den Lebenszyklus von Software-Systemen zu beschreiben.
Viel eher kann der objekt-orientierte Entwurf als evulativer Prozeß (vgl. Abb. 18.17)
Abbildung 18.17: Die objekt-orientierte Methode zur Beschreibung einer Software-Entwicklung
betrachtet werden, er rechtfertigt eigentlich den Begriff ,,Entwicklung``mehr als das Wasserfall-Modell.
Objekt-orientierter Entwurf ist kein Prozeß, der mit der Festlegung der geforderten Funktionalität beginnt, mit genauen Vorlagen zur Implementation endet und dazwischen ein Wunder benötigt. Erfahrungsgemäß besteht objekt-orientierter Entwurf aus den folgenden Punkten (vgl. [Boo91]):
Allerdings ist das ein schrittweiser Prozeß: die Tatsache, daß neue Klassen und Objekte gebraucht werden, führt normalerweise dazu, daß die Semantik von Klassen und Objekten und die Beziehungen zwischen ihnen genauer festgelegt werden. Und er ist ein sich wiederholender Prozeß: die Implementierung von Klassen und Objekten führt oft dazu, daß neue Klassen und Objekte eingeführt werden, die den Entwurf vereinfachen oder verallgemeinern.
In den nächsten Unterkapiteln werden wir die vier oben genannten Punkte näher erläutern.
Johann Blieberger