| INHALTSVERZEICHNIS | öffnen |
Inhaltsverzeichnis 1 Einleitung 11 1.1 Objektorientierte Programmierung. 11 1.2 Strukturierung vs. Objektorientierung. 15 2 Grundlagen 17 2.1 Das Objektmodell. 17 2.1.1 Abstraktion. 18 2.1.2 Hierarchie. 19 2.1.3 Kapselung. 20 2.1.4 Modularität. 22 2.2 Unified Modeling Language (UML).23 2.3 Klassen und Objekte. 24 2.3.1 Die Theorie. 24 2.3.2 Das erste Beispiel. 26 2.4 Klassen unter die Lupe genommen. 28 2.4.1 Attribute, Operationen, Zusicherungen. 28 2.4.2 Kapselung. 30 2.4.3 Befreundete Klassen und Funktionen. 33 2.4.4 Trennung zwischen Schnittstelle und Implementierung. 36 2.4.5 Das erste Beispiel erweitert. 39 2.5 Objekte genauer betrachtet. 42 2.5.1 Lebensdauer. 44 2.5.2 Identität. 51 2.5.3 Initialisierung. 57 2.5.4 Zustand. 65 2.5.5 Verhalten. 67 2.5.6 Verantwortlichkeit. 70 2.5.7 Persistenz. 72 2.6 Klassenbeziehungen. 73 2.6.1 Assoziation. 74 2.6.2 Aggregation. 79 2.6.3 Vererbung. 86 2.7 Typisierung. 101 2.7.1 Grundlagen. 101 2.7.2 Strenge und schwache Typisierung. 104 2.7.3 Typumwandlungen. 106 2.7.4Überladen von Operatoren. 108 2.7.5 Beispiel. 116 2.8 Polymorphie. 122 2.8.1 Statische Polymorphie. 122 2.8.2 Dynamische Polymorphie. 126 2.8.3 Abstrakte Klassen. 131 2.8.4 Noch mehr Polymorphie. 132 2.8.5 Typinformationen zur Laufzeit. 134 2.9 Objektbeziehungen. 137 2.9.1 Kommunikation zwischen Objekten. 138 3 Software-Entwicklung 143 3.1 Grundlagen der Software-Entwicklung. 143 3.2 Analyse. 146 3.2.1 Systemidee. 147 3.2.2 Anwendungsfälle. 147 3.2.3 Anforderungen. 150 3.2.4 Klassenmodelle. 152 3.3 Design. 153 3.3.1 Anwendungsarchitektur. 155 3.3.2 Verfeinerte Klassenmodelle. 156 3.3.3 Entwurfsmuster. 163 3.4 Implementierung. 168 3.5 Test. 180 3.5.1 Klassentests. 181 3.5.2 Objektorientierte Regressionstests. 183 4 Klassenbibliotheken 185 4.1 Die C++-Standardbibliothek. 186 4.1.1 Aufbau der Standard Template Library. 186 4.1.2 Templates. 187 4.1.3 Container. 188 4.1.4 Iteratoren. 194 4.1.5 Algorithmen. 197 4.2 Die Microsoft Foundation Classes (MFC).201 4.2.1 Aufbau der MFC. 201 4.2.2 Erstellen einer Windows-Anwendung. 203 4.2.3 Beispiel Terminkalender. 208 4.2.4 Grafische Ausgabe. 213 4.2.5 Dialogfeld-Programmierung. 218 5 Eine technische Beispielanwendung 225 5.1 Analyse. 226 5.1.1 Systemidee. 226 5.1.2 Anwendungsfälle. 227 5.1.3 Anforderungen. 228 5.1.4 Klassen und Mechanismen finden. 229 5.1.5 Benutzerschnittstellen. 234 5.2 Design. 238 5.2.1 Architektur festlegen. 238 5.2.2 Klassenmodelle verfeinern. 239 5.3 Implementierung. 248 5.4 Test. 260 Literaturverzeichnis. 265 Index. 267
[weiter lesen] |
|
|
|
|
| REGISTER | öffnen |
Index 1:1-Assoziation, 76 1:N-Assoziation, 74 3-Schichten-Architektur, 156 A Abbildungsmodus, 216 abgeleitetes Objekt, 93 abstrakte Klasse, 131 abstrakter Datentyp, 101, 131 Abstraktion, 18, 24 Ada, 105 Adapter, 164 Aggregation, 79, 138 Aggregatobjekt, 80 Akteur, 148 aktives Objekt, 72 Aktivitätsdiagramm, 23 Allokation, 46 Analyse, 144, 146 Anforderungsanalyse, 150 Anwendungsarchitektur, 155 Anwendungsfall, 148 Anwendungsfall-Analyse, 147 Anwendungsfalldiagramm, 23, 148 Anzeigeelement, 218 API, 202 application framework, 202 application programming interface, 202 Assoziation, 74 assoziativer Container, 189 Attribut, 26, 28 Attributbeschreibung, 29 Attributtyp, 29 auto, 47 B Basisklasse, 87 Basisklassenkonstruktor, 93 Bedienelement, 218 Befehls-Muster, 165 befreundete Klassen, 33 benutzerdefinierter Dialog, 220 Benutzerschnittstelle, 234 Beobachter-Muster, 165 Bestandteils-Hierarchie, 20 Bestandteilsbeziehung, 29 Besucher-Muster, 165 Bild, 34 Black-Box-Test, 180 Brücke, 164 C C, 13 C++, 13 CASE tools, 14 cast, 136 casting, 107 class, 26 Container, 186, 188 controls, 218 Copy-Konstruktor, 64 D Datenbanksystem, 73 Datenflussdiagramm, 16 Datentyp, 101 Deklaration, 45 delete, 46 Deque, 190 Design, 144, 154 device context, 213 Dialog-Prototyp, 235 Dialogfeld, 218 Dialogfeld-Editor, 220 dictionary, 193 differentielles Programmieren, 97 downcasting, 136 dynamische Polymorphie, 126 E E/R-Diagramm, 16 edit box, 218 Eiffel, 105 Eigenschaft, 26 Einsatzdiagramm, 23 einstelliger Operator, 109 Elementfunktion, 67 Entwicklungswerkzeuge, 14 Entwurf, 154 Entwurfsmuster, 163 Erbauer-Muster, 163 Ergonomie, 235 Erweiterung, 97 extern, 47 F Fachklasse, 155 frühes Binden, 130 Framework, 98 framework, 156 friend, 36 Funktionen, 101 Funktionswert, 54 G Gültigkeitsbereich, 46 garbage collection, 60 Geheimnisprinzip, 21 Generalisierungs-Hierarchie, 20 Gerätekontext, 213 Getränkeautomat, 43 Gleichheit, 52 globales Objekt, 47 grafische Benutzerschnittstelle, 156 GUI, 156 H Hauptrahmenfenster, 208 Header-Datei, 37 heap, 46 Hierarchie, 19 I Identität, 42, 51 Implementierung, 21, 37, 144, 168 Initialisierung, 57, 84, 93 Initialisierungsliste, 85, 93 instance, 24 Instanz, 24 Instanzbeziehung, 25 Integrationstest, 180 Iterator, 187, 194 J JAVA, 13 K Kalibrierung, 231 Kapselung, 21, 30 Kardinalität, 75 Klasse, 24 Klassenassistent, 211 Klassenbeschreibung, 30 Klassenbibliotheken, 185 Klassendiagramm, 23 Klassentest, 181 Kohärenzprinzip, 71 Kollaborationsdiagramm, 23, 140 Kombination, 97 Komponente, 155 Komponentendiagramm, 23 Komponentenkonstruktor, 93 Komposition, 80 Kompositum-Muster, 164 Konsistenz, 22 Konstruktor, 58 L Lebensdauer, 44 LIFO-Prinzip, 30 Link, 137 Listen, 191 lokales Objekt, 47 M M:N-Assoziation, 74 Map, 193 Mehrfachvererbung, 95 Memberfunktion, 26 Membervariable, 26 message map, 207 Messgröße, 232 Methode, 27, 67 MFC, 201 Microsoft Foundation Classes, 201 modaler Dialog, 218 Modifikation, 97 Modul, 155 Modularität, 22 Module, 22 Multimap, 193 Multiplizität, 75 Multiset, 192 MVC-Muster, 205 N Nachricht, 67, 138 Nachrichtenzuordnungstabelle, 207 new, 46 O Oberklasse, 87 Objekt, 24 Objekt-Klassen-Beziehung, 25 Objekt: Lebensdauer, 42 Objektdiagramm, 138 Objektmodell, 17 Operation, 28, 67, 139 Operationen, 101 operator, 109 Operatorsymbol, 109 P passives Objekt, 72 Perl, 105 Persistenz, 72 Pflichtenheft, 150 Phasen, 145 Pixel, 34 Polymorphie, 122 pop, 30 private, 32 protected, 91, 94 Prototyp, 169 Prototyp-Muster, 163
[weiter lesen] |
|
|
|