[Zurück] [Index] [Weiter]     Kuhlins: Objektorientiertes Design für C++


1.4   Gliederung

Grundlage des objektorientierten Designs sind die Ergebnisse der vorher durchgeführten objektorientierten Analyse. In Kapitel 2 werden deshalb die einzelnen MAOOAM-Konstrukte und ihre grafische Notation nach Schader und Rundshagen (1996) kurz vorgestellt, wobei der Schwerpunkt auf dem statischen Analysemodell für den Problembereich liegt. Außerdem wird eine einfache Depotverwaltung einer Bank modelliert (siehe Abschnitt 2.1.10), die im gesamten Text zur Illustration dienen.

Die Kapitel 3 bis 8 enthalten das objektorientierte Design für C++. Dort werden für die aus der Analyse bekannten Konstrukte diejenigen zusätzlichen Informationen zusammengestellt, die für die Umsetzung in C++ notwendig sind. Außerdem werden mögliche Implementationen und Programmiertechniken in C++ aufgezeigt, die als Vorlage zur Codegenerierung dienen. Ergänzend werden Hinweise zur Gestaltung der Benutzungsoberfläche der Designkomponente des MAOOAM*TOOLS gegeben. Die Zusammenfassungen am Ende der jeweiligen Kapitel geben einen Überblick über den Stand des Tools und bilden eine Art Pflichtenheft für die weitere Implementation.

In Kapitel 3 werden zunächst Bezeichner und Datentypen untersucht, auf die in den folgenden Kapiteln zurückgegriffen wird. Außerdem wird auf Nachrichtenverbindungen und Subjekte eingegangen. Klassen sind Gegenstand des Kapitels 4. Attribute folgen in Kapitel 5 und Methoden in Kapitel 6. Vererbungsbeziehungen werden in Kapitel 7 untersucht, und das Kapitel 8 beschäftigt sich mit Aggregations-, Objekt- und Benutztbeziehungen.

Für MAOOAM existiert eine grafische Analysenotation. Diese Notation wird in Kapitel 9 erweitert, damit sich auch die zur Codegenerierung benötigten Designinformationen grafisch darstellen und bearbeiten lassen. Dabei ist das Ziel die Entwicklung einer grafischen Designnotation für codegenerierende CASE-Tools, die gegenüber C++-Programmcode mehr Übersicht und effektivere Bearbeitungsmöglichkeiten bietet.

Zur Qualitätssicherung werden von einigen gängigen Analyse- bzw. Designmethoden Zusicherungen in Form von Klasseninvarianten, Vor- und Nachbedingungen eingesetzt. Im Gegensatz zu anderen Programmiersprachen unterstützt C++ dieses Konzept nicht. In Kapitel 10 wird gezeigt, wie sich Zusicherungen mit C++-Sprachmitteln simulieren lassen, so daß der Codegenerator die fehlende Sprachunterstützung kompensieren kann.

In Kapitel 11 werden allgemeine Anforderungen an C++-Codegeneratoren formuliert. Dazu zählen u. a. das Einbinden von Header-Dateien, das Anordnen der Klassenelemente und die Gestaltung des Layouts des Programmcodes.

Die prototypische Implementation der erarbeiteten theoretischen Konzepte und ihre Integration in das MAOOAM*TOOL werden in Kapitel 12 vorgestellt. Mit Hilfe von Abbildungen, die den jeweiligen Bildschirminhalt während einer Testsitzung zeigen, wird ein erster Eindruck des Prototyps vermittelt.

Für die Zukunft geplante Erweiterungen werden in Kapitel 13 aufgezeigt. Dazu zählen das "Reverse-Engineering" von C++-Programmcode, die Wiederverwendung von Klassen und das Simulieren einer "Garbage-Collection" für C++.

Kapitel 14 faßt die Ergebnisse der Arbeit zusammen und enthält einen Ausblick auf mögliche Weiterentwicklungen des MAOOAM*TOOLS.

Im Anhang befindet sich der komplette C++-Programmcode für das Depotbeispiel.