Skip to main content
main-content

Inhaltsverzeichnis

Frontmatter

Vorwort

Vorwort

Zusammenfassung
Das Thema dieses Buches ist die Verantwortbarkeit des praktischen Einsatzes von Programmen. Die Grundthese lautet: Verantwortung muß einzelnen Menschen zugeordnet werden, und Voraussetzung der Wahrnehmung von Verantwortung ist die Einsicht in die zu verantwortenden Eigenschaften des technischen Systems.
Heinrich Rust

Umfeld und Grundbegriffe

Frontmatter

1. Zum Umfeld der Sicherheitstechnik

Zusammenfassung
Die Sicherheitstechnik ist keine selbstgenügsame Disziplin, die ihre Rechtfertigungen aus sich selbst bezieht. Sie muß ihre Leistungen an außerwissenschaftlichen Ansprüchen messen lassen. Um die Angemessenheit sicherheitstechnischer Begriffe und Methoden erörtern zu können, müssen daher sicherheitstechnische Grundbegriffe in einen gesellschaftlichen und kulturellen Kontext eingeordnet werden. Dies wird in den folgenden Abschnitten geschehen.
Heinrich Rust

2. Grundbegriffe

Zusammenfassung
In diesem Kapitel geht es um Zuverlässigkeitsfragen speziell bei Rechneranwendungen. Dabei wird das Interesse für die Zuverlässigkeit durch das Anliegen der Unfallsicherheit gerechtfertigt. Aus der Sicht der Verantwortung ist die Unfailsicherheit der grundlegendere Begriff, daher wird er bei der Suche nach überzeugenden Definitionen im Vordergrund stehen.
Heinrich Rust

Sicherung der Zuverlässigkeit

Frontmatter

3. Vermeidung von Spezifikationsfehlern

Zusammenfassung
In den folgenden Kapiteln geht es um Methoden zur Erhöhung der Unfallsicherheit von Programmen. Das vorstehende Kapitel hat verdeutlicht, daß gewöhnlich versucht wird, die Unfallsicherheit auf einen Korrektheitsbegriff, also die Übereinstimmung des Programms und einer Spezifikation zurückzuführen. Solche Versuche werden in den späteren Kapiteln untersucht. Zusätzlich muß die Adäquatheit der Spezifikation gesichert werden.
Heinrich Rust

4. Vermeidung von Entwurfs- und Implementierungsfehlern

Zusammenfassung
Auf die Festlegung der Spezifikation folgt im herkömmlichen Modell der Vorgehensweise der Entwicklung von Software die Erstellung eines Entwurfes. Ein Entwurf legt den groben Aufbau eines Programmsystems fest, ohne die Details festzuschreiben. Entwürfe können, da sie keine Programme sind, nicht durch Test auf Rechnern geprüft werden. Inspektionen sind ein Mittel, das für die Überprüfung der gewünschten Eigenschaften von Entwürfen vorgeschlagen wird.
Heinrich Rust

5. Beweise

Zusammenfassung
Mathematische Beweise haben das Flair besonderer Zuverlässigkeit. Das macht es nicht verwunderlich, daß zuweilen vorgeschlagen wird, die Korrektheit von Programmen mit Hilfe solcher Beweise zu Überprüfen. Drei idealisierte Einstellungen zu solchen Versuchen sollen unterschieden werden:
  • • Zuweilen wird die Benutzung mathematischer Methoden in der Korrektheitssicherung von Programmen propagiert, ohne daß eine explizite Rechtfertigung dafür angegeben würde; man bezieht sich nur implizit auf eine besondere Sicherheit mathematischer Aussagen. Häufig betont man bei dieser Einstellung formale Aspekte der Mathematik. Die Gültigkeit von Axiomen und Schlußregeln ist bei dieser Einstellung die eigentliche Basis der Rechtfertigung per Beweis.
  • • Zuweilen wird der Hauptwert mathematischer Methoden darin gesehen, daß sie eindeutige und einfache Begriffsbildungen voraussetzen. Bevor ein Programm bewiesen werden kann, muß es daher gründlich durchdacht und verstanden sein. Damit ist ein — gewöhnlich individueller — Verständnisprozeß die eigentliche Basis der Rechtfertigung per Beweis.
  • • Zuweilen wird die Rechtfertigung der Sicherheit mathematischer Beweise darin gesehen, daß Menschen sich ausführlich darüber unterhalten haben. Die besondere Sicherheit über die Ergebnisse in der Mathematik ist bei dieser Einstellung auf besonders gut funktionierende soziale Prozesse in der Gemeinschaft der Mathematiker/innen zurückzuführen. Bei dieser Einstellung ist ein Kommunikationsprozeß die eigentliche Basis für die Rechtfertigung per Beweis.
Heinrich Rust

6. Tests

Zusammenfassung
In der Testliteratur finden sich unterschiedliche Schwerpunkte bei Rechtfertigungen für die Konsequenzen, die aus gelungenen Testreihen gezogen werden. Zum Vergleich sollen diese Rechtfertigungen in fünf Klassen eingeteilt werden: Der erste Rechtfertigungstyp läßt sich besonders deutlich an einem naiven Verständnis der Rechtfertigung induktiven Wissens in der Physik illustrieren; weiter unten wird dies ausführlich geschehen. Die vier anderen Rechtfertigungstypen bilden ein Spektrum verschiedener Wertschätzungen von Tests. Die Extrempositionen dieses Spektrums werden selten explizit vertreten, daher sollen sie nicht ausführlich als besondere Typen analysiert werden; sie sollen hier jedoch, zur Markierung der Ausdehnung des Spektrums, kurz angeführt werden.
Heinrich Rust

7. Statistische Zuverlässigkeits-untersuchungen

Zusammenfassung
Tests als unvollkommene Beweise haben den Nachteil, daß es unklar ist, wann ein Programm als genügend getestet angesehen werden kann. Der Wert der vorgeschlagenen Testkriterien für diese Entscheidung ist, wie gesehen, letztendlich nicht gesichert. Eine andere Strategie ist die Bewertung der Software mit statistischen Begriffen; dies wird seit Anfang der 70er Jahre wird immer wieder vorgeschlagen. In diesem Kapitel wird zunächst kurz ein statischer, theoretischer Ansatz angesprochen, die Zuverlässigkeit von Software statistisch zu erfassen, dann wird ein dynamischer Ansatz beschrieben, an einigen Beispielen illustriert und bewertet.
Heinrich Rust

8. Redundanz

Zusammenfassung
Mit den bislang vorgestellten Methoden zur Verbesserung der Zuverlässigkeit von Software verfolgt man das Ziel, fehlerhafte Programmstellen zu erkennen und weitmöglichst zu korrigieren. Die Identifikation von Fehlern und ihre Korrektur ist dabei relativ kostspielig. Man hat deshalb Ansätze entwickelt, die es ersparen sollen, jeden Designfehler zu finden und zu korrigieren, indem man die Rechensysteme so konstruiert, daß das Auftreten mancher Fehler toleriert wird. Dies versucht man zum Beispiel mit Hilfe von Redundanztechniken. Die Grundidee ist die folgende: Damit Programmierfehler nicht zu Fehlfunktionen führen, stellt man mehrere Module her, die die gleiche Teilaufgabe erfüllen sollen. Wird festgestellt, daß eines der Module ein fehlerhaftes Ergebnis geliefert hat, so werden die Ergebnisse eines anderen Moduls benutzt. Wenn man davon ausgeht, daß die Module so konstruiert werden können, daß sie nicht alle bei den gleichen Eingabefällen versagen, dann läßt sich auf diese Weise eine Verbesserung der Zuverlässigkeit erreichen.
Heinrich Rust

Folgerungen

Frontmatter

9. Fazit

Zusammenfassung
In diesem Fazit sollen in einem zusammenfassenden Rückblick die einzelnen Ansätze zur Erhöhung der Unfallsicherheit noch einmal Revue passieren. Dabei wird speziell der Aspekt betrachtet, ob der Begriff der Verantwortung ein Licht auf die Leistungsfähigkeit der jeweiligen Methode werfen kann.
Heinrich Rust

Backmatter

Weitere Informationen