== Inhaltsüberblick ==
1 Einführung
Die besonderen Merkmale der objektorientierten Softwareentwicklung, die Historie der UML und objektorientierter Methoden sowie die Unterschiede zu den alten Methoden werden in diesem Kapitel dargestellt.
2 Grundkonzepte der Objektorientierung
Hier finden Sie eine einfache Einführung in die Grundbegriffe und -konzepte der Objektorientierung.
3 Methodik: Analyse und Design
Anhand eines durchgängigen Beispiels werden aufeinander aufbauend die einzelnen Schritte der objektorientierten Analyse und des Designs erläutert. Die praktische Anwendung der einzelnen UML-Konzepte wird gezeigt. Zahlreiche Querverweise in das UML-Grundlagenkapitel erleichtern das Verständnis.
Analyse
Design
4 UML-Grundlagen (Notation und Semantik)
Die Notation und Semantik der einzelnen UML-Konzepte wird detailliert und kritisch erläutert, begleitet von zahlreichen Tipps und Tricks für die Praxis.
Anwendungsfalldiagramm
Klassendiagramm (Strukturelemente)
Klassendiagramm (Beziehungselemente)
Zusammenarbeitsdiagramm
Subsystem-, Paket- und Komponentendiagramm
Einsatz- und Verteilungsdiagramm
Aktivitätsdiagramm
Zustandsdiagramm
Kommunikationsdiagramm
Sequenzdiagramm
Zeitdiagramm
Zusicherungen
5 Anhang
Glossar
Übersetzungen
Literatur
Index
== Inhaltsverzeichnis ==
1 Einführung
1.1 Objektorientierte Softwareentwicklung
1.2 Die Historie
1.3 Die Unified Modeling Language
1.4 Vorgehen
1.5 Analyse und Design in der Praxis
1.6 Ganzheitliche Herangehensweise
1.7 Weiterführende Literatur
2 Grundkonzepte der Objektorientierung
2.1 Grundidee der Objektorientierung
2.2 Klassen, Objekte, Instanzen, Exemplare & Co.
2.3 Attribute, Operationen, Zusicherungen, Beziehungen
2.4 Objektidentität
2.5 Verantwortlichkeiten
2.6 Taxonomie und Vererbung
2.6.1 Strukturierung von Eigenschaften
2.6.2 Vererbung: Restriktionen und Probleme
2.7 Abstrakte Klassen
2.8 Assoziationen
2.9 Aggregationen
2.10 Nachrichtenaustausch
2.11 Sammlungen (collections)
2.12 Polymorphie
2.13 Persistenz
2.14 Klassifizierung von Klassen
2.14.1 Entitätsklasse <
>
2.14.2 Steuerungsklasse <>
2.14.3 Schnittstellenklasse <>
2.14.4 Schnittstellenobjekt <>
2.14.5 Typ <>
2.14.6 Primitive Klasse <>
2.14.7 Datentyp, Datenstruktur <>
2.14.8 Aufzählung <>
2.15 Entwurfsmuster
2.16 Komponenten
2.17 Weiterführende Literatur
3 Methodik
3.1 Analyse
3.1.1 Systemidee und Zielsetzung entwickeln
3.1.2 Interessenhalter identifizieren
3.1.3 Interessen der Interessenhalter identifizieren
3.1.4 Geschäftsanwendungsfälle identifizieren
3.1.5 Anwendungsfälle essenziell beschreiben
3.1.6 Materialsammlung und -studie
3.1.7 Systemanwendungsfälle identifizieren
3.1.8 Fachklassen identifizieren
3.1.9 Fachliches Glossar anlegen
3.1.10 Systemablaufmodelle entwickeln
3.1.11 Systemanwendungsfallmodell erstellen
3.1.12 Übrige Anforderungen und Regeln beschreiben
3.1.13 Systemschnittstelle beschreiben
3.1.14 Exploratives Schnittstellen-Prototyping
3.2 Design
3.2.1 Schichtenmodell definieren
3.2.2 Verteilungsmodell definieren
3.2.3 Fachliches Subsystemmodell definieren
3.2.4 Ablaufverantwortlichkeiten festlegen
3.2.5 Komponentenspezifische Klassenmodelle entwickeln
3.2.6 Komponentenschnittstellen entwickeln
3.2.7 Zustandsmodelle (weiter-) entwickeln
3.2.8 Objektfluss modellieren
3.2.9 Interaktionsmodelle entwickeln
3.2.10 Ablauforientierte Komponententests entwickeln
3.2.11 Klassentests entwickeln
3.2.12 Attribute definieren
3.2.13 Dialoge spezifizieren
3.2.14 Design-Diskurs
4 UML–Grundlagen
4.1 Einleitung
4.1.1 Diagramme im Überblick
4.2 Anwendungsfälle und Anforderungen
4.2.1 Anwendungsfalldiagramm
4.2.2 Systemkontextdiagramm
4.2.3 Realisierung von Anwendungsföllen
4.2.4 Spezialisierung von Anwendungsfällen
4.2.5 Enthältbeziehung, Erweiterungsbeziehung
4.2.6 Assoziation in Anwendungsfalldiagrammen
4.2.7 Anwendungsfall
4.2.8 Geschäftsanwendungsfall
4.2.9 Systemanwendungsfall
4.2.10 Sekundärer Anwendungsfall
4.2.11 Abstrakter Anwendungsfall
4.2.12 Anforderung, Feature & Co
4.2.13 Akteur
4.2.14 Anwendungsfallszenario
4.3 Klassendiagramm, Strukturelemente
4.3.1 Klasse
4.3.2 Parametrisierbare Klasse
4.3.3 Abstrakte Klasse
4.3.4 Aktive Klasse
4.3.5 Objekt
4.3.6 Attribut
4.3.7 Operation
4.3.8 Verantwortlichkeit
4.3.9 Enumeration
4.3.10 Schnittstellen
4.3.11 Eigenschaftswert
4.3.12 Stereotyp
4.3.13 Notiz
4.4 Beziehungselemente
4.4.1 Generalisierung, Spezialisierung
4.4.2 Assoziation
4.4.3 Gerichtete Assoziation
4.4.4 Attributierte Assoziation
4.4.5 Qualifizierte Assoziation
4.4.6 Mehrgliedrige Assoziation
4.4.7 Aggregation
4.4.8 Komposition
4.4.9 Abhängigkeitsbeziehung
4.5 Weitere Strukturdiagramme
4.5.1 Objektdiagramm
4.5.2 Zusammenarbeitsdiagramm
4.5.3 Komponentendiagramm
4.5.4 Subsystemdiagramm
4.5.5 Paketdiagramm
4.5.6 Kompositionstrukturdiagramm
4.5.7 Einsatz- und Verteilungsdiagramm
4.6 Aktivitätsdiagramm
4.6.1 Kontrollknoten
4.6.2 Objektknoten, Objektfluss und Parameter
4.6.3 Partitionen (Verantwortlichkeitsbereiche)
4.6.4 Signale und unterbrechbare Bereiche
4.6.5 Mengenverarbeitungsbereiche
4.7 Zustandsdiagramm
4.7.1 Zustand
4.7.2 Ereignis und Zustandsübergang
4.7.3 Unterzustand
4.7.4 Protokollautomat
4.8 Interaktionsdiagramme
4.8.1 Kommunikationsdiagramm
4.8.2 Sequenzdiagramm
4.8.3 Interaktionsübersicht
4.8.4 Zeitdiagramm
4.9 Zusicherungen
4.9.1 Object Constraint Language (OCL)
4.9.2 Beispiele
4.9.3 Vordefinierte OCL-Basistypen und -operationen
5 Anhang
5.1 Glossar
5.2 Übersetzungen
5.3 Literatur
5.4 Index