Vorwort

Der Gegensatz von Struktur und Verhalten ist in der IT (bei den Digitalisierungsbemühungen) allgegenwärtig. Denken wir nur Programme und Datenbanken. Oder an Geschäftsprozesse vs. Datenbanken. Für "Struktur" in diesem Sinne wurden vor Jahrzehnten ausgefeilte Datenbanktechniken entwickelt, die derzeit mit NoSQL-Datenbanken eine an die Anforderungen des Internetzeitalters angepasste Form gefunden haben. Für "Verhalten" in diesem Sinne wurden die Programmiersprachen entwickelt, die schon immer erlaubten, Verarbeitungsvorgänge zu erfassen (dafür wurden sie geschaffen) und die es heute erlauben, die Dynamik ganzer Geschäftsprozesse in Programmen darzustellen.

Struktur und Verhalten

In den Ansätzen vor der Objektorientierung war die Aufteilung recht klar und einfach. Die Strukturen waren informationelle Strukturen und wurden per Datenmodellierung bewältigt. Die "Dynamik" (Verhalten, Abläufe, Geschäftsprozesse) wurde per Systemanalyse in Modelle umgesetzt, die Geschäftsprozesse wurden nicht oder getrennt betrachtet.

Mit der objektorientierten Theorie wurde dies etwas anders. Es werden zwar "structure" und "behavior" (wie die US-amerikanische Literatur es nennt) immer noch getrennt, mit der Einbindung von Methoden bei den Klassen sind diese aber auch gleich mit wichtigen Aspekten von Dynamik ausgestattet. Im Basiselement Klasse werden also Struktur (durch Daten in Attributen, usw.) und Verhalten (durch Programme in Methoden, usw.) integriert erfasst.

Statische und dynamische Aspekte des Anwendungs-
bereichs

Leider ist die Darstellung der objektorientierten Theorie in der Literaur sehr oft programmzentriert. Das Hauptgewicht liegt z.B. auf der Beschreibung der Klassenmerkmale, die für das Programm von Bedeutung sind. Die inhaltlichen Strukturaspekte des Anwendungsbereichs kommen zu kurz.

Das ist einer der Gründe für die Erstellung dieses Textes. Hier steht die semantische Struktur des Anwendungsbereichs, ihre Abbildung in objektorientierte Strukuren, im Vordergrund. Ein weiterer Grund war der Wunsch, eine verständliche Form der Darstellung der objektorientierten Theorie zu erhalten.

Motivation

 

Inhaltsverzeichnis der Printversion

Vorwort, Inhalt, Abkürzungen. 1

1 Einleitung.. 5

1.1 Objektorientierung als solche. 5

1.2 Die UML.. 6

1.3 Verwendete Datentypen. 8

1.4 Formatierung und Schreibweise. 9

2 Objekte und Objektklassen. 10

2.1 Einführung. 10

2.2 Instantiierung. 17

2.3 Objektklassen. 18

2.4 Darstellung. 18

2.4.1 Klassen. 18

2.4.2 Instanzen bzw. Objekte. 21

2.5 Sichtbarkeit 22

2.6 Kapselung. 24

2.7 Beispiele. 24

2.7.1 Hochschule. 25

2.7.2 Angestellte eines Unternehmens. 26

2.8 Vertiefung. 28

2.8.1 Klassenbildung und Objektfindung. 28

2.8.2 Identität und Gleichheit 29

2.8.3 Komplexe Objekte. 30

2.8.4 Eine ganz besondere Klasse - Classifier. 30

2.9 Java-HS1. 32

2.9.1 Klasse HP. 34

2.9.2 Klasse Stud. 36

2.9.3 Programmlauf. 37

2.10 Java-HS2. 38

2.10.1 Klasse HP. 39

2.10.2 Klasse Stud. 42

2.10.3 Beispielhafter Programmlauf 42

2.11 Java-HS5. 44

2.11.1 Klasse HP. 44

2.11.2 Klasse Stud. 46

2.11.3 Beispielhafter Programmlauf 47

2.12 Java-HS3. 47

2.12.1 Klasse HP. 48

2.12.2 Klasse Stud. 51

2.12.3 Programmlauf. 52

2.13 Java-HS8. 52

2.13.1 Klasse Stud. 53

2.13.2 Klasse HP. 54

2.13.3 Programmlauf. 55

3 Assoziationen. 57

3.1 Definition. 57

3.2 Grafische Darstellung. 58

3.3 Hintergrund. 60

3.4 Wertigkeiten. 60

3.5 Beispiele. 61

3.6 Rollen. 67

3.7 N-stellige Assoziationen. 69

3.8 Klassendiagramme. 71

3.9 Navigierbarkeit 78

3.10 Objektdiagramme. 80

3.11 Assoziationen in Java. 81

3.12 Java-HS4. 83

3.12.1 Klasse HP. 83

3.12.2 Klasse Noten. 84

3.12.3 Klasse Stud. 85

3.12.4 Programmlauf. 86

4 Assoziationsklassen. 87

4.1 Einführung. 87

4.2 Grafische Darstellung. 89

4.3 Beispiele. 90

5 Aggregation und Komposition. 99

5.1 Definition. 99

5.2 Einführende Beispiele mit grafischer Notation. 100

6 Generalisierung / Spezialisierung.. 103

6.1 Definition. 103

6.2 Grafische Darstellung. 104

6.3 Beispiel Hochschule und grafische Varianten. 105

6.4 Überlappung und Überdeckung. 108

6.5 Mehrere Ebenen. 111

6.6 Vererbung. 114

6.7 Abstrakte Klassen. 115

6.8 Java - Vererbung. 116

6.9 Java-HS7. 117

6.9.1 Klasse Fahrzeuge. 118

6.9.2 Klasse PKW... 119

6.9.3 Klasse LKW... 119

6.9.4 Klasse Van. 120

6.9.5 Klasse HP. 121

7 Zusammenwirken durch Nachrichtenverkehr. 127

7.1 Einführung. 127

7.2 Kollaborationen. 129

7.2.1 Definition. 129

7.2.2 Grafische Darstellung. 130

7.2.3 Beispiele. 130

7.3 Rollen. 131

7.4 Lebenslinien. 131

7.5 Nachrichten. 133

7.5.1 Definition. 133

7.5.2 Synchron und Asynchron. 134

7.5.3 Sequenznummern. 134

7.5.4 Grafische Darstellung. 135

7.6 Kommunikationsdiagramme. 136

7.6.1 Definition. 136

7.6.2 Grafische Darstellung. 137

7.7 Beispiel Rechnungsdruck. 137

8 Schlussbemerkung.. 141

9 Literatur. 143

 

Abkürzungsverzeichnis


IKS

Informations- und Kommunikationssysteme

IT

Informationstechnologie/n

KI

Künstliche Intelligenz

OCL

Object Constraint Language

OID

Objektidentifizierer

UML

Unified Modeling Language

vs.

versus (gegen, kontra)