Roboter als Programmierer

Fehler in Software sind vorprogrammiert

Starke Sprüche nicht nur für Software-Experten. Denn jeder PC-Einsteiger weiß aus leidvoller Erfahrung mit Word, Windows und anderen Programmen, wie es um die Fehlerfreiheit von Software bestellt ist: Jedes Programm enthält Fehler, sie sind unvermeidbar. Dafür, dass moderne Software so anfällig für Fehler ist, gibt es mehrere Gründe. Zum einen müssen die Programme heute immer mehr Anforderungen genügen, gleichzeitig steigen die Qualitätsanforderungen der Nutzer. Zum anderen wird technisches und fachliches Wissen in der Programmentwicklung weitgehend vermengt. Heutige Software-Entwickler müssen nicht nur technisches Wissen über die Architektur der Software besitzen, sondern auch über inhaltliche, fachliche Kompetenz verfügen, etwa im Banken- und Versicherungswesen. Dabei stoßen sie naturgemäß schnell an ihre Grenzen. Ändert sich die Software-Architektur selbst, müssen zudem viele, wenn nicht alle Anwendungen geändert und erneut getestet werden.

Beweise: Im Fairpay-Projekt wird versucht, die Korrektheit von Programmen mathematisch zu beweisen (Quelle: Fairpay).
Beweise: Im Fairpay-Projekt wird versucht, die Korrektheit von Programmen mathematisch zu beweisen (Quelle: Fairpay).

Gestandene Informatiker sind bei Ankündigungen von fehlerfreier Software erst recht skeptisch. Denn sie wissen: Methoden, die stets zu fehlerfreier Software führen, kann es aus rein mathematischen Gründen nicht geben. Prof. Klaus Jantke vom Deutschen Forschungszentrum für Künstliche Intelligenz, der sich im Rahmen des vom Bundesministerium für Wirtschaft und Technologie geförderten Fairpay-Projektes mit zuverlässigen Zahlungssystemen beschäftigt, bemüht sich zwar, Software mit mathematisch beweisbaren Sicherheitseigenschaften zu erstellen. Er gibt aber zu Bedenken: "Zwar ist es theoretisch tatsächlich möglich, aus hinreichend präzisen Spezifikationen automatisch korrekte Programme zu generieren. Andererseits gibt es hinreichend viele sinnvolle Spezifikationen, für die gilt, dass es keine berechenbare Methode gibt, automatisch korrekte Programme zu generieren. Das geht nachweislich nicht."