I Präliminarien.- 1 Einleitung.- 1.1 Warum ist es so schwierig, Software zu machen?.- 1.2 Projekte, Projekte, Projekte.- 1.3 Was ist Software-Engineering?.- 1.4 Betriebliche Informationssysteme.- 1.5 Worum es in diesem Buch geht.- 1.6 Software-Philosophie ja, Dogmatismus und Bürokratie nein.- 1.7 Paradigmen der Softwareentwicklung.- 2 Eallbeispiel: Touristisches Buchungssystem TuBSy.- 3 Projektmodell.- 3.1 Projektbereiche und -beteiligte.- 3.2 Begriffe.- 3.3 Phasen und Ergebnisse.- 3.4 Ergebnisse und Methoden.- 3.5 Meilensteine und QS-Maßnahmen.- 3.6 Prototyp.- 3.7 Noch einmal: Phasenmodell.- 3.8 Objektorientierte Methodik.- II Systemspezifikation.- 4 Systemspezifikation.- 4.1 Zum Wesen der Spezifikation.- 4.2 Die Teile der Systemspezifikation.- 4.3 Die ideale Maschine.- 5 Datenmodell.- 5.1 Wozu ein Datenmodell?.- 5.2 Datentypen.- 5.2.1 Motivation.- 5.2.2 Variable und Konstante.- 5.2.3 Ada-Typenkonzept.- 5.2.4 Vordefinierte Datentypen.- 5.2.5 Datentypen und Operationen.- 5.2.6 Repräsentationen von Datentypen und Plausibilitätsprüfungen.- 5.3 Grundlagen relationaler Datenstrukturen.- 5.3.1 Relationen.- 5.3.2 Operationen auf Relationen.- 5.3.3 Normalformen.- 5.4 Objekt/Beziehungs-Datenmodell.- 5.4.1 Objekte.- 5.4.2 Autonome, erweiterte und Subobjekte.- 5.4.3 Beziehungen.- 5.4.4 Konsistenzbedingungen der Beziehungen.- 5.4.5 Attribute und Datentypen.- 5.4.6 Konsistenzbedingungen.- 5.4.7 Datensichten.- 6 Funktionenmodell.- 6.1 Geschäftsvorfälle.- 6.2 Datensichten der Sachbearbeiter.- 6.3 Zustandsmodell.- 6.4 Sachbearbeiter.- 6.5 Terminüberwachung.- 6.6 Die Transaktionslogik der idealen Datenbank.- 6.7 Spezifikation von Geschäftsvorfällen und Sachbearbeitern.- 6.8 Hinweise zum Vorgehen.- 7 Benutzerschnittstelle.- 7.1 Interaktionsdiagramme und virtuelle Tasten.- 7.2 Dialoge, Dialogtypen und Standard-Interaktionen.- 7.3 IAD-Zustände und Masken.- 7.4 IAD-Aktionen.- 8 Ideale Maschine.- 8.1 Konzept der idealen Maschine.- 8.2 Ideale Dialog-Benutzerschnittstelle.- 8.2.1 Virtuelles Terminal.- 8.2.2 Dialogsteuerung.- 8.2.3 IAD-Zustände und-Aktionen.- 8.2.4 Meldungsbehandlung.- 8.3 Idealer Anwendungskern.- 8.4 Ideale Datenbank.- 9 TuBSy-Systemspezifikation.- 9.1 Systemstruktur.- 9.2 Das TuBSy-Datenmodell.- 9.2.1 Objekt/Beziehungsbild.- 9.2.2 Attributlisten.- 9.2.3 Datentypen.- 9.3 Die TuBSy-Benutzerschnittstelle.- 9.3.1 Dialoge.- 9.3.2 Datensicht.- 9.3.3 Virtuelle Tasten.- 9.3.4 Dialogtypen.- 9.3.5 Masken.- 9.3.6 Aktionen.- 9.4 Die TuBSy-Sachbearbeiter.- 9.4.1 Zustandsmodell der Buchung.- III Systemkonstruktion.- 10 Modularisierung.- 10.1 Allgemeines zur Modularisierung.- 10.2 Datenabstraktion als Modularisierungsprinzip.- 10.3 Zum Begriff des Moduls.- 10.4 Standardarchitektur von Informationssystemen.- 10.4.1 Dialog.- 10.4.2 Dialogführung.- 10.4.3 Datenverwaltung.- 10.4.4 Batch.- 11 Prozeßorganisation.- 11.1 Was ist ein Prozeß?.- 11.2 Entwurfsziele der Prozeßorganisation.- 11.3 Abriß der Prozeßkonzepte.- 11.4 Was ist ein TP-Monitor?.- 11.4.1 Funktionalität eines TP-Monitors.- 11.4.2 Konversationelle vs. transaktionsorientierte Programmierung.- 11.4.3 Beispiele für TP-Monitore.- 11.5 Fallbeispiel: CICS.- 11.5.1 CICS: Architektur und Funktionen.- 11.5.2 Prozeßorganisation mit CICS.- 12 Datenbankentwurf.- 12.1 Die Tätigkeiten des DB-Entwurfs.- 12.2 Die Ziele des DB-Entwurfs.- 12.3 Fallbeispiele.- 12.3.1 Produktumsätze.- 12.3.2 Konten und Kontoposten.- 12.3.3 Stücklisten.- 12.4 Historienführung.- 13 Systemfehler.- 13.1 Was ist ein Systemfehler? Was sind seine Ursachen?.- 13.2 Die Systemfehlerphasen.- 13.3 Systemfehlerbehandlung.- 13.3.1 Systemfehler und Modulspezifikation.- 13.3.2 Systemfehlermechanismus.- 13.3.3 Exkurs.- 13.3.4 Trace.- 13.4 SF-Protokollmodul.- 13.5 Standard-Programmstruktur.- IV Modulprogrammierung.- 14 Modulspezifikation.- 14.1 Grundlegendes zu (Modul-) Spezifikationen.- 14.2 Form und Inhalt einer Modulspezifikation.- 14.3 Beispiel: Hotelvakanz.- 15 Modulkonstruktion.- 15.1 Realisierung von (Datenabstraktions-) Moduln.- 15.1.1 Ada.- 15.1.2 Cobol.- 15.1.3 PL/1.- 15.1.4 C.- 15.1.5 Spracherweiterungen.- 15.2 Strukturierte Programmierung.- 16 Modultest.- 16.1 Was verstehen wir unter Test?.- 16.2 Testfälle.- 16.3 Cl-überdeckungsmessung.- 16.4 Testsystem.- 16.5 Beispiel: Hotelvakanz.- V Systemintegration.- 17 Systemtest.- 17.1 Testdatenverwaltung.- 17.2 Funktionstest.- 17.3 Lasttest.- 17.4 Probebetrieb.- 17.5 Test der Datenübernahme.- 17.6 Abnahmetest.- 17.7 Systemtestsystem.- 17.8 Fehlerverfolgung.- VI Phasenübergreifende Aspekte.- 18 Werkzeuge.- 18.1 Anforderungen an eine Software-Entwicklungsumgebung.- 18.2 Entwicklungs- und Zielsystem.- 18.3 Die ideale Software-Entwicklungsumgebung.- 18.3.1 Meta-Werkzeuge.- 18.3.2 Methoden-neutrale Werkzeuge.- 18.3.3 Methoden-orientierte Werkzeuge.- 18.4 Reale Werkzeuge in der idealen Software-Entwicklungsumgebung.- 19 Qualitätssicherung.- 19.1 Qualitätssicherung durch Begutachtung.- 19.1.1 Review und Inspektion.- 19.1.2 Inspektion der Systemkonstruktion mittels Szenarios.- 19.1.3 QS in der Modulprogrammierung.- 19.1.4 QS in der Systemintegration.- 19.2 Formulare und Prüflisten.- 19.2.1 Formulare für QS-Dokumente.- 19.2.2 Prüfliste für Reviews von Modulspezifikationen.- 20 Projektmanagement.- 20.1 Führen.- 20.2 Planen, Kontrollieren und Verwalten.- 21 Historie.- Literatur.