SW fehlerfrei?
Autsch. Das ist - positiv ausgedrückt - eine merkwürdige Interpretation des Halteproblems...
Zugegeben, etwas frei interpretiert, aber ich meine in Kombination mit dem Schluß, daß es die algorithmische Überprüfung ausschließt und man also auf die Manuelle rückgreifen mu0, durchaus zulässig. Ich will nicht darauf beharren (mein Studium liegt schon einige Zeit zurück, ha, ha), aber viel wichtiger ist mir folgende Feststellung:
Es darauf abzuwälzen, dass Software nicht fehlerfrei sein kann, ist aber absurd.
Das sehe ich etwas anders und halte das für eine sehr theoretische und damit in der Realität nicht zutreffende Aussage. Natürlich hast Du recht, eine auf dem Papier niedergeschreibene Software läßt sich von Menschenhand überprüfen, und nach dem Mehraugenprinzip auch fehlerfrei absichern, sofern sie einen gewissen Komplexitätsgrad (sprich das menschliche Vermögen) nicht überschreitet (Auch hier sei darauf hingewiesen, daß die Überprüfung von Menschenhand erfolgt).
Aber: Es gibt kaum Software, die ohne Hardware und ohne I/O (Input/Output) einen Sinn ergibt. Die Software muß nun also neben Ihrer eigenen Struktur, auch all die Fehlermöglichkeiten der Hardware, bzw. der an sie angeschlossenen Interfaces, Stimuli und Sensoren, bis hin zu den User-Eingaben berücksichtigen. Und das fehlerfrei abzusichen ist meines Erachtens kaum möglich, die Fehlermannigfaltigkeit ist einfach zu groß.
Ein relativ junges prominentes Beispiel hierfür ist der Absturz der französischen Linienmaschiene, ich glaube es war auf der Höhe von Brasilien. Da ist das Pitotrohr für die Druck/Geschwindigkeitsmessung eingefroren. Der Computer wurde also mit falschen Daten gefüttert, konnte diesen Fehler nicht erkennen und behandeln und hat ein bisl hohl gedreht. Ich bin mir sicher, daß die Software nicht nur von einem Codierer geschrieben, sondern noch von ettlichen weiteren Fachleuten und Gremien geprüft und freigegeben wurde. Aber es lassen sich halt einfach mal nicht alle Fehlerfälle abfangen, zumindest nur die Vorstellbaren, und selbst hierbei werden einem immer einige "durch die Lappen gehen".
Ein weiterer interessanter Vergleich ist meine ich das Schachspiel: Ein Spiel mit einer festgelegten Anzahl von Figuren und klar definierten Regeln. Es gibt nur "eine Unbekannte": Den Gegenspieler bzw. seinen nächsten Zug. Warum sollte also der Computer nicht in der Lage sein, jedes Spiel souverän für sich zu entscheiden? Die Mannigfaltigkeit an Spielzügen, die sich aus einer Aktion des Gegners ergeben ist immens, und treibt auch leistungsstarke Rechner an Ihre Grenzen. Und so ist es eben auch mit den möglichen Störungen, die in einer komplexen Maschine auftreten können bzw. die sich daraus ergebende Mannigfaltigkeit und sich daraus ergebenden Verläufen.
Man kann es nicht absichern, das sollte jedem klar sein. Darum sollte man z.B. auch keine Wahlcomputer einsetzen, denn die Folgen einer Manipulation oder eines Fehlers sind einfach mal zu gravierend, auch wenn die Wahrscheinlichkeit dafür recht gering ist.