1 Softwarearchitektur.- 1.1 Charakterisierung von Softwarearchitektur.- 1.1.1 Definitionen.- 1.1.2 Softwarearchitektur und Komplexität.- 1.1.3 Softwarearchitektur und Qualität.- 1.1.4 Softwarearchitektur und Projektorganisation.- 1.2 Architekturebenen.- 1.2.1 Architekturbasis.- 1.2.2 Makroarchitektur.- 1.2.3 Mikroarchitektur.- 1.2.4 Technische Architektur.- 1.3 Logische Softwareschichten.- 1.3.1 Schichten als Strukturierungsprinzip.- 1.3.2 Drei-Schichten-Architektur.- 1.3.3 Bewertung der Drei-Schichten-Architektur.- 1.4 Physikalische Verteilung.- 1.4.1 Charakterisierung verteilter Systeme.- 1.4.2 Schwer- und leichtgewichtige Klienten.- 1.4.3 Standardarchitekturen für verteilte Systeme.- 1.4.4 Makroarchitektur für das Beispielsystem.- 2 Konzepte für den Entwurf der Anwendungsschicht.- 2.1 Entwurfsziele.- 2.1.1 Verantwortlichkeit der Anwendungsschicht.- 2.1.2 Schnittstelle zur Präsentationsschicht.- 2.1.3 Schnittstelle zur Persistenzschicht.- 2.1.4 Anforderungen an die Architektur.- 2.2 Entwurfsfehler.- 2.3 Grundlegende Entwurfsmuster.- 2.3.1 Singleton.- 2.3.2 Fassade (Facade).- 2.3.3 Fabrikmethode (Factory Method).- 3 Implementierung der Anwendungsschicht.- 3.1 Beispielanwendung SamComm.- 3.1.1 Anwendungsfälle.- 3.1.2 Benutzungsoberfläche.- 3.1.3 Verwendete Persistenzschichten.- 3.2 Klassenentwurf und Architektur.- 3.3 Implementierungsaspekte.- 3.3.1 Fachliche Klassen.- 3.3.2 Anpassung an verschiedene Persistenzmechanismen.- 3.4 Verwendete Entwurfsmuster.- 4 Konzepte für den Entwurf der Persistenzschicht.- 4.1 Transformation eines Klassenmodells in ein Datenmodell.- 4.1.1 Transformationsschritte.- 4.1.2 Datenmodell des Beispielsystems.- 4.2 Entwurfsziele.- 4.2.1 Verantworthchkeiten der Persistenzschicht.- 4.2.2 Sperrkonzepte.- 4.2.3 Schnittstelle zur Anwendungsschicht.- 4.2.4 Anforderungen an die Architektur.- 4.3 Entwurfsfehler.- 4.4 Grundlegende Entwurfsmuster.- 4.4.1 Frameworks.- 4.4.2 Schablonenmethode (Template Method).- 4.4.3 Fabrikmethode (Factory Method).- 4.4.4 Fassade (Facade).- 4.4.5 Singleton.- 4.4.6 Proxy.- 5 Persistenz-Framework.- 5.1 Anwendungsentwicklung mit dem Persistenz-Framework.- 5.1.1 Framework-API.- 5.1.2 Anpassung der fachlichen Klassen.- 5.1.3 0/R-Mapping.- 5.1.4 Suchabfragen.- 5.2 Framework-Architektur.- 5.3 Framework-Implementierung.- 5.3.1 Persistent Interface.- 5.3.2 Verwaltung des Objekt-Lebenszyklus.- 5.3.3 Broker-Architektur.- 5.3.4 Erzeugen der Broker-Klassen.- 5.3.5 Generieren von Oids.- 5.3.6 Verwaltung von Datenbankverbindungen.- 5.3.7 Transaktionen.- 5.3.8 Beziehungen zwischen Objekten.- 5.4 Verwendete Entwurfsmuster.- 5.4.1 Schablonenmethoden (Template Method).- 5.4.2 Fabrikmethode (Factory Method).- 5.4.3 Fassade (Facade).- 5.4.4 Singleton.- 5.5 Implementierung des Beispielsystems.- 5.5.1 Anpassung der Entitätsklassen.- 5.5.2 Anpassung der Geschäftsprozess-Klassen.- 5.5.3 0/R-Mapping.- 5.6 Bewertung des Persistenz-Frameworks.- 6 Enterprise JavaBeans (EJB).- 6.1 J2EE-Architektur.- 6.2 Objekt-Persistenz mit EJB.- 6.3 Anwendungsentwicklung mit EJB.- 6.3.1 Session Beans.- 6.3.2 Entity Beans.- 6.3.3 Lebenszyklus von EJB.- 6.4 Fortgeschrittene Konzepte.- 6.4.1 Bean Managed Persistence.- 6.4.2 Transaktionen.- 6.4.3 Beziehungen.- 6.4.4 EJB Query Language (EJB-QL).- 6.5 EJB-Architektur.- 6.5.1 Struktur einer EJB-Anwendung.- 6.5.2 Möghchkeiten der Performanzsteigerung.- 6.6 Implementierung des Beispielsystems.- 6.6.1 Schnittstelle zur Anwendungsschicht.- 6.6.2 Session-Bean-Fassaden.- 6.6.3 Datenaustausch über Value Objects.- 6.6.4 Entity Beans.- 6.7 Verwendete Entwurfsmuster.- 6.7.1 Schablonenmethode (Template Method).- 6.7.2 Fabrikmethode (Factory Method).- 6.7.3 Fassade (Facade).- 6.7.4 Proxy Pattern.- 6.8 Bewertung von Enterprise JavaBeans.- 7 Konzepte für den Entwurf der Präsentationsschicht.- 7.1 Entwurfsziele.- 7.1.1 Verantworthchkeit der Präsentationsschicht.- 7.1.2 Ergonomie.- 7.1.3 Schnittstelle zur Anwendungsschicht.- 7.1.4 Anforderungen an die Architektur.- 7.2 Entwurfsfehler.- 7.3 Grundlegende Entwurfsmuster.- 7.3.1 Befehl (Command).- 7.3.2 Kompositum (Composite).- 7.3.3 Schablonenmethode (Template Method).- 7.3.4 Beobachter (Observer).- 7.3.5 Strategie (Strategy).- 7.3.6 Singleton.- 8 Weboberfläche mit JSP und Servlets.- 8.1 Weboberflächen.- 8.1.1 Systemarchitektur von Web-Applikationen.- 8.1.2 Verantwortlichkeit der Präsentationsschicht.- 8.2 JSP und Servlets.- 8.2.1 Sprachelemente in JavaServer Pages.- 8.2.2 Übergabe von Daten zwischen JSP.- 8.2.3 Wiederverwendbare Module.- 8.3 Model-2-Architektur.- 8.3.1 Architekturkonzept.- 8.3.2 Implementierung der Model-2-Architektur.- 8.4 Implementierung des Beispielsystems.- 8.4.1 View-Komponenten.- 8.4.2 Controller-Komponenten.- 8.4.3 Abläufe.- 8.5 Verwendete Entwurfsmuster.- 8.5.1 Befehl (Command).- 8.5.2 Model View Controller (MVC).- 8.6 Bewertung des Architektur.- 9 Fensteroberfläche mit Swing.- 9.1 Fensteroberflächen.- 9.1.1 Verantwortlichkeiten der Präsentationsschicht.- 9.2 Entwicklung von Fensteroberflächen mit Swing.- 9.2.1 Präsentationskomponenten.- 9.2.2 Ereignisbehandlung.- 9.3 Architektur des GUI-Frameworks.- 9.3.1 View-Komponenten.- 9.3.2 Klassen zur Kontrollflusssteuerung.- 9.4 Implementierung des Beispielsystems.- 9.4.1 Die View-Komponenten.- 9.4.2 Die Controller-Komponenten.- 9.4.3 Abläufe.- 9.5 Anwendung der Entwurfsmuster.- 9.5.1 Schablonenmethode (Template Method).- 9.5.2 Befehl (Command).- 9.5.3 Beobachter (Observer).- 9.5.4 Kompositum (Composite).- 9.5.5 Singleton.- 9.5.6 Strategie (Strategy).- 9.6 Bewertung des GUI-Frameworks.- Abkürzungen.- Literatur.