§15§Das Werk erörtert konzeptionelle Grundlagen, konstruktive Maßnahmen sowie Nachweismöglichkeiten der Software-Zuverlässigkeit. Anhand von Tabellen und Checklisten kann der Benutzer die Betriebsbewährtheit besser analysieren. §03§1 Einleitung.- 2 Übersicht und Leitfaden.- 2.1 Motivation.- 2.2 Geschichtliche Entwicklung programmtechnischer Stilrichtungen.- 2.3 Software-Zuverlässigkeit und andere Software-Qualitätsmerkmale.- 2.4 Software-Lebenszyklus.- 2.5 Schritte auf dem Weg zu zuverlässiger Software.- 2.6 Zielsetzung und Zielgruppe des Buchs.- 2.7 Hinweise zum Gebrauch des Buchs.- 2.8 Abgrenzung des Buchs.- 3 Konzeptionelle Grundlagen der Software-Zuverlässigkeit.- 3.1 Einführung.- 3.2 Grundsätze der Zuverlässigkeitsbeschreibung bei physikalischen Fehlern.- 3.3 Statistisch-phänomenologische Behandlung von inhärenten Fehlern auf der Basis des Anforderungsprofils.- 3.4 Die Versagensrate und abgeleitete Kenngrößen bei Software.- 3.5 Teilsystem- und Gesamtsystem-Zuverlässigkeit.- 4 Konstruktive Maßnahmen zur Erreichung zuverlässiger Software.- 4.1 Prinzipien der Phasen Anforderungsspezifikation, Entwurf (Design) und Codierung.- 4.2 Regeln für den Software-Entwurf.- 4.3 Regeln für die Codierung (Programmerstel §03§lung).- 4.4 Programmpflege.- 5 Nachweis der Software-Zuverlässigkeit.- 5.1 Einführung.- 5.2 Rechtsfragen bei Verträgen über Software.- 5.3 Informelle Nachweisverfahren.- 5.4 Statische Analysen.- 5.5 Programmkorrektheitsbeweis.- 5.6 Tests.- 5.7 Einsatz der Software und Betriebsbewährtheit.- 5.8 Quantitativer Nachweis der Zuverlässigkeit.- 6 Schlußbetrachtung. §03§Kohäsion.- 4.1.5.2 Zufällige Kohäsion/Klassenbildung.- 4.1.6 Prinzip der 'heilen' Welt.- 4.1.7 Prinzip der 'Magischen Sieben'.- 4.2 Regeln für den Software-Entwurf.- 4.2.1 Änderungsfreundlichkeit.- 4.2.2 Grundsätze des Entwurfs.- 4.2.3 Einzelheiten des Programmentwurfs.- 4.3 Regeln für die Codierung (Programmerstellung).- 4.3.1 Grundsätze.- 4.3.2 Allgemeine Gesichtspunkte.- 4.3.3 Datenspezifische Gesichtspunkte.- 4.3.4 Arithmetische Berechnungen.- 4.3.5 Echtzeitaspekte.- 4.3.6 Modularisierung, Gliederung in Bausteine.- 4.3.7 Online-Zwischenprüfungen.- 4.3.8 Code-Aufschreibung.- 4.3.9 Kontrollflußspezifische Regeln.- 4.3.10 Sprachspezifische Regeln.- 4.3.11 Prüfen auf Verletzung der Codierungsregeln.- 4.3.12 Implementierungsspezifische Rahmenbedingungen.- 4.4 Programmpflege.- 5 Nachweis der Software-Zuverlässigkeit.- 5.1 Einführung.- 5.2 Rechtsfragen bei Verträgen über Software.- 5.3 Informelle Nachweisverfahren.- 5.3.1 Inspektion.- 5.3.2 Review (Durchsicht).- 5.3.3 Walkthrough (Du §03§rchgang).- 5.3.4 Schreibtischprüfung.- 5.3.5 Zusammenfassung.- 5.4 Statische Analysen.- 5.4.1 Einleitung.- 5.4.2 Eigenschaften der Statischen Analyse.- 5.4.3 Werkzeuge zur Unterstützung der Analyse.- 5.4.4 Auswahlgesichtspunkte für Analyseverfahren und Analysatoren.- 5.4.5 Analyseergebnisse.- 5.5 Programmkorrektheitsbeweis.- 5.5.1 Einleitung.- 5.5.2 Begriffsbildung.- 5.5.3 Zusammenfassung.- 5.6 Tests.- 5.6.1 Methoden.- 5.6.1.1 Funktionale (Black-Box-) Tests.- 5.6.1.2 Strukturelle ( White-Box-) Tests.- 5.6.1.3 Nichtinkrementelles Testen.- 5.6.1.4 Inkrementelles Testen.- 5.6.1.5 Akzeptanz- und Abbruchkriterien.- 5.6.2 Planung und Organisation.- 5.6.2.1 Unterteilung der Software in unabhängige Teilpakete.- 5.6.2.2 Erstellen einer Testspezifikation.- 5.6.2.3 Festlegen des Ablaufs.- 5.6.3 Durchführung.- 5.6.3.1 Begleitende Dokumentation.- 5.6.3.2 Auswerten und Bewerten der Testergebnisse.- 5.6.4 Testwerkzeug