![Buchcover Objektorientiertes Design für C++ | Stefan Kuhlins | EAN 9783642592416 | ISBN 3-642-59241-4 | ISBN 978-3-642-59241-6](https://buch.isbn.de/cover/9783642592416.jpg)
×
Objektorientiertes Design für C++
Entwicklung eines CASE-Tools mit C++ -Codegenerierung
von Stefan KuhlinsInhaltsverzeichnis
- 1 Einleitung.
- 1.1 Einbettung und Motivation.
- 1.2 Design.
- 1.3 Codegenerierung.
- 1.4 Gliederung.
- 2 Die Mannheimer objektorientierte Analysemethode.
- 2.1 Das statische Modell.
- 2.2 Das dynamische Modell.
- 2.3 Das funktionale Modell.
- 3 Objektorientiertes Design für C++.
- 3.1 Bezeichner.
- 3.2 Datentypen.
- 3.3 Nachrichtenverbindungen.
- 3:4 Subjekte.
- 4 Klassen.
- 4.1 class oder struct.
- 4.2 Abstrakte Klassen.
- 4.3 Reihenfolge der Zugriffsrechte.
- 4.4 friend-Deklarationen.
- 4.5 Kanonische Form.
- 4.6 Spezielle Eigenschaften.
- 4.7 Eingebettete Typen.
- 4.8 Parametrisierte Klassen.
- 4.9 Header- und Implementationsdateien.
- 4.10 Leere Klassen.
- 4.11 Zusammenfassung.
- 5 Attribute.
- 5.1 Datentyp.
- 5.2 Bitfelder.
- 5.3 Initialisierung.
- 5.4 static.
- 5.5 const.
- 5.6 Klassenkonstanten.
- 5.7 mutable.
- 5.8 volatile.
- 5.9 Zugriffsrechte.
- 5.10 „Handle/body“-Implementation.
- 5.11 Abgeleitete Attribute.
- 5.12 Zusammenfassung.
- 6 Methoden.
- 6.1 Name.
- 6.2 Parameter.
- 6.3 Typ des Rückgabewerts.
- 6.4 Zugriffsrechte.
- 6.5 inline.
- 6.6 const.
- 6.7 volatile.
- 6.8 static.
- 6.9 virtual.
- 6.10 Überladene Funktionsnamen.
- 6.11 Ausnahmespezifikationen.
- 6.12 Implizite Methoden.
- 6.13 Operatoren.
- 6.14 „Member-Templates“.
- 6.15 Zusammenfassung.
- 7 Vererbungsbeziehungen.
- 7.1 Zugriffsspezifizierer für Basisklassen.
- 7.2 Virtuelle Basisklassen.
- 7.3 Virtuelle Elementfunktionen.
- 7.4 Überladen und verdecken.
- 7.5 Standardargumente.
- 7.6 Vermeidung doppelter Funktionsaufrufe bei virtuellen Basisklassen.
- 7.7 Auflüsung von Namenskonflikten bei Mehrfachvererbung.
- 7.8 Zusammenfassung.
- 8 Aggregations-, Objekt- und Benutztbeziehungen.
- 8.1 Individuelle versus standardisierte Programmierung von Beziehungen.
- 8.2 Beziehungen zu einem Objekt.
- 8.3 Beziehungen zu mehreren Objekten.
- 8.4Bidirektionale Beziehungen und referentielle Integrität.
- 8.5 Abgrenzung von Aggregations-, Objekt- und Benutztbeziehungen.
- 8.6 Praktische Schwierigkeiten.
- 8.7 Ansätze zur Wiederverwendung von Beziehungsfunktionalitä.
- 8.8 Implementation.
- 8.9 Zusammenfassung.
- 9 Grafische Notation.
- 9.1 Zugriffsrechte.
- 9.2 Klassen.
- 9.3 Attribute.
- 9.4 Methoden.
- 9.5 Vererbungsbeziehungen.
- 9.6 Aggregations-, Objekt- und Benutztbeziehungen.
- 9.7 Nachrichtenverbindungen.
- 9.8 Subjekte.
- 9.9 Anmerkungen.
- 9.10 Filter.
- 9.11 Zusammenfassung der Symbole.
- 9.12 Depotbeispiel.
- 10 Qualitätssicherung.
- 10.1 Klasseninvarianten, Vor- und Nachbedingungen.
- 10.2 Kritische Betrachtung.
- 10.3 Checksummenberechnung als Klasseninvariante.
- 10.4 Zusammenfassung.
- 11 Allgemeine Anforderungen an C++-Codegeneratoren.
- 11.1 Header-Dateien.
- 11.2 Reihenfolge der Klassenelemente.
- 11.3 Layout des generierten Programmcodes.
- 11.4 Kommentare.
- 11.5 Nachvollziehen des Programmablaufs.
- 11.6 Compilereinschränkungen.
- 11.7 Makefile.
- 12 Prototyp des MAOOM ? Tools.
- 12.1 Einbindung der Designskht in die Benutzerschnittstelle des MAOOAM? Tools.
- 12.2 Codegenerierung.
- 13 Geplante Erweiterungen.
- 13.1 „Reverse-Engineering“.
- 13.2 Wiederverwendung vo Klassen.
- 13.3 „Garbage-Collection“.
- 14 Zusammenfassung und Ausblick.