Wie alles sich zum Ganzen webt,
Eins in dem andern wirkt und lebt!
Faust.
Johann Wolfgang von Goethe , ,,Faust``.
Der Tragödie erster Teil.
Dieser Schritt ist eigentlich eine Erweiterung des letzten Schrittes. Hier wird genau festgelegt, wie alles zusammenwirkt, um ein Gesamtsystem zu bilden. Es wird spezifiziert, welche Objekte und Klassen welche anderen Objekte und Klassen benutzen. Darüberhinaus wird die statische und dynamische Semantik der Operationen aller Objekte bestimmt. Wir erinnern uns unseres Index-Beispiels, wo es z.B. zeitliche Beschränkungen bezüglich der Hintereinanderausführung der Operationen des Rotationsobjektes gab.
Es gibt hier zwei wichtige Aktivitäten. Einerseits ist es gut, wenn man gemeinsame ,,Muster`` in den verschiedenen Klassen und Objekten erkennt. Dann kann man den Entwurf nämlich meist verallgemeinern und vereinfachen. In Ada kann das zum Beispiel dazu führen, bestimmte Datenstrukturen als generische Einheiten zu realisieren, damit sie an mehreren Stellen verwendet werden können. Es kann aber auch sinnvoll sein, schon vorhandene wiederverwendbare Software in das Projekt zu integrieren. Dies ist jedenfalls ein Teil des Entwurfsprozesses der viel Kreativität von den Software-Ingenieuren verlangt. Fortschritte, die hier erzielt werden, können die Qualität des Endproduktes sprunghaft ansteigen lassen. Andererseits wird hier über die Sichtbarkeitsaspekte des Systems entschieden, d.h., es wird festgelegt, welche Klassen und Objekte welche anderen Klassen und Objekte sehen können, und umgekehrt, welche Klassen und Objekte, welche anderen nicht sehen können sollen. Diese Entscheidungen bilden die Grundlage für eine vernünftige Einteilung in Module.
Klarerweise können diese Entscheidungen auf den vorigen Punkt zurückführen, d.h., es kann möglich sein, daß die hier getroffenen Festlegungen dazu führen, daß die Operationen der Objekte und deren Semantik neu überdacht werden müssen.
Zum Abschluß muß explizit festgehalten werden, daß in diesem Schritt die Objekte und Klassen noch immer von außen betrachtet werden. Es wäre auch noch zu früh, sich Gedanken über die Darstellung der Objekte und Klassen zu machen, bevor man sich klar darüber ist, wie die Klassen und Objekte im Gesamtsystem verwendet werden.
Johann Blieberger