1. Der Kontext: Softwaretechnik-Grundlagen --; 1.1 Softwarekrise und Softwaretechnik --; 1.2 Aktivitäten und Ergebnisse einzelner Phasen --; 1.3 Diskussion von Lebenszyklusmodellen --; 1.4 Zum Problem der Wartung --; 1.5 Zusammenfassung der Aktivitäten in Arbeitsbereiche --; 1.6 Eigenschaften von Programmsystemen --; 1.7 Die Modellierungsproblematik: Allgemeines --; 1.8 Allgemeine Begriffe der Softwaretechnik --; 1.9 Werkzeuge zur Softwareerstellung --; 1.10 Zum Stand der Softwaretechnik --; 1.11 Zusammenfassung --; Aufgaben zu Kapitel 1 --; 2. Das Problem: Modellieren auf Entwurfsebene --; 2.1 Zur Korrektheit von Programmsystemen --; 2.2 Die Festlegung der Entwurfsspezifikation --; 2.3 Das Architekturparadigma --; 2.4 Zur Bedeutung des Programmierens im Großen --; 2.5 Überblick über das folgende --; 2.6 Zum Einfluß des Softwareerstellungs-Paradigmas und der Programmiersprache --; 2.7 Zusammenfassung --; Aufgaben zu Kapitel 2 --; 3. Ein erstes Beispiel: Ohne Vorüberlegung --; 3.1 Die Aufgabenstellung --; 3.2 Eine erste Lösung --; 3.3 Charakterisierung der Lösung --; 3.4 Zusammenfassung --; Aufgaben zu Kapitel 3 --; 4. Die Notation: Ein einfaches Modulkonzept --; 4.1 Module als Bausteine der Architektur --; 4.2 Modularten und Funktionsmodule --; 4.3 Datenabstraktionsprinzip und Datenobjektmodule --; 4.4 Datentypmodule und sonstige Module --; 4.5 Beziehungen zwischen Modulen --; 4.6 Die lokale Benutzbarkeit --; 4.7 Die allgemeine Benutzbarkeit --; 4.8 Zur Darstellung von Architekturen --; 4.9 Konsistenzbedingungen für Architekturen --; 4.10 Zusammenfassung --; Aufgaben zu Kapitel 4 --; 5. Zur Vertiefung: Teilarchitekturüberlegungen und Modulkonzept-Erweiterungen --; 5.1 Datenabstraktion versus funktionale Abstraktion --; 5.2 Zusammenspiel zwischen funktionalen und Datenabstraktionsmodulen --; 5.3 Teilsysteme einer Gesamtarchitektur --; 5.4 Schichtenbildung durch mehrstufige Datenabstraktion --; 5.5 Mehrfache Datenabstraktion: Einträge und Kollektionen --; 5.6 Einige Teilarchitekturen für Einträge und Kollektionen --; 5.7 Generische Module und Teilsysteme --; 5.8 Objektorientierte Programmiersprachenkonstrukte --; 5.9 Objektorientierte Architekturmodellierung --; 5.10 Zusammenfassung --; Aufgaben zu Kapitel 5 --; 6. Vorbereitung für den Einsatz: Übertragung in Programmiersprachen --; 6.1 Probleme bei der Übertragung --; 6.2 Sprachen mit unabhängigen Programmeinheiten: Beispiele FORTRAN, C --; 6.3 Blockstrukturierte Sprachen ohne Module: Beispiel Pascal --; 6.4 Sprachen mit Modulen: Beispiel Ada --; 6.5 Zusammenfassung --; Aufgaben zu Kapitel 6 --; 7. Einübung durch Beispiele: Einige Softwarearchitekturen --; 7.1 Wiederaufgreifen des ersten Beispiels: Angabe der Architektur --; 7.2 Erweiterungen des Beispiels und zugehörige Architekturmodifikationen --; 7.3 Ein Transformationsproblem: rekursiver Abstiegscompiler --; 7.4 Die Grobarchitektur einer Softwareentwicklungs-Umgebung --; 7.5 Zusammenfassung --; Aufgaben zu Kapitel 7 --; 8. Allgemeine Hinweise: Strategien zur Adaptabilität und Wiederverwendbarkeit --; 8.1 Was haben die bisherigen Überlegungen gebracht? --; 8.2 Einige Strategien zur Erstellung wartungsfreundlicher Architekturen --; 8.3 Zusammenfassung --; Aufgaben zu Kapitel 8 --; 9. Noch nicht gelöst: Offene Probleme und Weiterführung --; 9.1 Modulkonzept-Ergänzungen und andere Architekturerstellungs- Paradigmen --; 9.2 Unterstützung des Erstellungs- und Wartungsprozesses auf Architekturebene --; 9.3 Programmieren im Großen und seine Verzahnung mit anderen Arbeitsbereichen --; 9.4 Zusammenfassung --; Aufgaben zu Kapitel 9 --; Stichwortverzeichnis.
Das Buch behandelt den zentralen Bereich "Entwurf" der Softwaretechnik, nämlich der Erstellung und Modifikation von Softwarearchitekturen, um so die Struktur eines Softwaresystems vor ihrer Detailrealisierung festzulegen. Die Softwarearchitektur enthält alle Grundlagen für Qualitätseigenschaften des später entstehenden Softwaresystems, insbesondere für Wartbarkeit. Auf dieser Betrachtungsebene finden ferner alle substantiellen Überlegungen zur Wiederverwendbarkeit statt. Hierzu werden geeignete Konzepte auf Architekturebene eingeführt, eine geeignete Architekturbeschreibungssprache vorgestellt, und es wird der methodische Umgang mit dieser Sprache geübt. Zur Übersicht werden graphische Architekturdiagramme für das Gesamtsystem zur Detailbeschreibung der Module textueller Beschreibungen verwendet. Die vorgestellten Konzepte bzw. Sprachen haben ihren Ursprung in Programmiersprachen. Trotzdem ist das Buch programmiersprachenunabhängig. Um dies zu zeigen, wird die Übertragung der Konzepte in FORTRAN, C und Pascal vorgeführt. Das Buch ist für den professionellen Software-Praktiker geschrieben. Es betont die softwaretechnische Bedeutung der objektbasierten Architekturmodellierung und ist sowohl kursbegleitend einsetzbar als auch zum Selbststudium geeignet.