Kapitel 7: Handlungsprozesse
Aufgabe 7.2: Fehleranfällige Gestaltung
Das Betriebssystem eines Prozessrechners verfügt über einen Kommandointerpreter. Systemkommandos und Programmaufrufe beginnen immer mit einem Semikolon, gefolgt von dem Programm- oder Kommandonamen, gefolgt von eventuellen Parametern. So ruft das Kommando ;TF das Transferprogramm auf, mit dem eine Platte kopiert werden kann. Das Transferprogramm führt einen eigenen Dialog mit dem Benutzer, in dem es Kommandos entgegennimmt. Beispielsweise wird das Kommando CD zum Kopieren einer Platte (Copy Disk) benutzt. Nach diesem Kommando fordert das Programm zur Angabe der Quelle, des Ziels und zur Bestätigung auf:
;TF
TF: CD
FROM: FIX
TO: D0
COPY DISK FROM FIX TO D0 (Y/N)? Y
Nach diesem Dialog wird die Festplatte (FIX) auf die Wechselplatte (D0) gesichert.
Das Betriebssystem bietet verschiedene Kommandos an, darunter auch ein Kommando ;CD zum Löschen des aktuellen Verzeichnisses. Dieses Kommando hat eine Sicherheitsabfrage zur Folge:
;CD
CLEAR DIRECTORY (Y/N)? Y
Wenn dieser Dialog in der Root-Ebene ausgeführtwird, ist danach die gesamte Festplatte gelöscht.
- WelcheFehler können durch diese Kommando-und Dialogstruktur leicht auftreten?
- Beschreiben Sie den wahrscheinlichen Fehlerablauf.
- Wie ließen sich diese Fehler vermeiden?
Lösung
Bei dieser Konfiguration besteht die Gefahr, dass ein Unterlassensfehler dazu führt, dass statt ;TF und anschließend CD direkt ;CD eingegeben wird. Ein solches Vorauseilen ist besonders wahrscheinlich, wenn das Backup die letzte Arbeitshandlung am Freitagnachmittag ist, um die Arbeit der Woche zu sichern. Zwar erfolgt dann noch eine Sicherheitsabfrage. Da aber auch beim korrekten Backup-Ablauf eine solche Abfrage erfolgt, ist hier die Gefahr eines Gewohnheitsfehlers groß, sodass die Abfrage routinemäßig bejaht wird. Damit ist die Festplatte gelöscht und mit ihr die Arbeit der letzten Woche.
Das Dümmste, was man jetzt tun kann, ist zu versuchen, wenigstens den Stand der vorigen Woche wiederherzustellen. Denn in dieser angespannten Situation ist ein weiterer Gewohnheitsfehler wahrscheinlich: Das intakte Backup der letzten Woche wird eingelegt und dann korrekt das Transferprogramm aufgerufen. Statt des nun erforderlichen FROM: D0 und TO: FIX für die Wiederherstellung wird aber aus Gewohnheit der übliche Ablauf FROM: FIX und TO: D0 für die Sicherung eingegeben, so dass nun auch die Sicherungskopie der letzten Woche mit der leeren Festplatte überschrieben ist. Im konkreten Fall ist unmittelbar anschließend eine Schreibtischtür eingetreten worden.
Der die Katastrophe einleitende Fehler lässt sich vermeiden, indem die Kommandos so gestaltet werden, dass sich nicht durch Verkürzen einer Kommandofolge wieder ein legales Kommando erzeugen lässt. Der zweite Gewohnheitsfehler kann dadurch vermieden werden, dass es getrennte Kommandos für das Sichern und für das Wiederherstellen der Festplatte gibt statt lediglich vertauschter Parameter innerhalb eines allgemeinen Transferkommandos. Die Verstärkung der Schreibtischtüren ist hingegen nicht zu empfehlen, weil dadurch eher schlimmere Folgen wie Knochenbrüche hervorgerufen werden.