Software kann sterben. Jeder Absturz eines Programms ist ein kleiner Tod. Ein Fehler tritt auf, zieht weitere nach sich, Reparaturmechanismen greifen nicht, die Krise spitzt sich zu, zentrale Systeme sind betroffen - und am Ende steht ein schwarzer oder eingefrorener Bildschirm. Trifft es einen beim Surfen - halb so wild. Wenn das mühevoll bearbeitete Urlaubsfoto wieder in seinen Rohzustand zurückfällt, wird es schon ärgerlicher. Richtig schlimme Auswirkungen können dagegen Systemabstürze in Firmen haben. Wenn die Industrie wegen unzuverlässiger Software Zigtausende von Autos zurückrufen muss oder die Steuerung für den ICE ausfällt, dann wird das richtig teuer.

Um die Zuverlässigkeit von Software einschätzen zu können, wüsste man gern, wie lange es von einem Absturz bis zum nächsten dauert. Dieser Frage ist Uwe Jensen, Professor für angewandte Mathematik und Statistik an der Universität Hohenheim, nachgegangen. Dass Software immer wieder ausfallen wird, hält er für unumgänglich; schuld, sagt er, sei der Mensch, der Programmierfehler (Bugs) nicht vollständig vermeiden könne. Wie häufig diese aber zu Ausfällen führen, ist eines der wichtigsten Qualitätskriterien für Programme.

Statistiker haben sich schon seit den siebziger Jahren mit der Zuverlässigkeit von Programmen beschäftigt. Doch die meisten Modelle, mit denen sie abgeschätzt werden kann, beruhen auf einer Auswertung der Testphase des Programms. Das Problem: anders als in den Siebzigern "werden Programme heute nicht mehr bis zu Ende getestet, bevor sie an die Kunden gehen," erklärt Jensen. Dafür sei im heutigen Wettbewerb einfach nicht mehr die Zeit. Stattdessen gebe es laufend Updates und neue Versionen. Die Zuverlässigkeit mit den alten Modellen zu ermitteln, sei schwierig geworden.

Gesucht ist eine Methode, wie man aus der Kenntnis einiger wichtiger Eigenschaften der Software bereits eine Prognose für ihre Zuverlässigkeit abgeben kann. Jensen hat die Lösung in einer eher unerwarteten Ecke gefunden: in der Medizinischen Statistik. Dort arbeitet man mit der sogenannten Cox-Regression. Mit diesem Modell versucht man zum Beispiel abzuschätzen, wie groß die Chance eines Krebspatienten ist, einen bestimmten Zeitraum zu überleben, beispielsweise die kommenden fünf Jahre.

Dabei geht man von der Sterberate für den Durchschnittspatienten aus. Doch ein Krebspatient, der alt ist, hat eine niedrigere Chance, die nächsten fünf Jahre zu überstehen, als ein junger, kräftiger Patient. Die verschiedenen Faktoren - von Bluthochdruck über Alter bis Geschlecht - finden Eingang in Form von Kovariablen. Vereinfacht ausgedrückt bekommt ein junger Patient, der Bluthochdruck hat, einen Bonus für sein Alter und einen Malus für den Bluthochdruck. Doch möglicherweise hat ja das Alter einen viel stärkeren Effekt als der Bluthochdruck. Dafür müssen die Variablen gewichtet und oft genug selbst als Funktion dargestellt werden. Klingt kompliziert, aber die Statistiker haben etablierte Methoden, mit denen sie solche Aufgaben relativ problemlos bewältigen können.

Um die Absturzwahrscheinlichkeit eines Programms zu prognostizieren, kann man nun mit genau diesem Modell rechnen. Der Absturz tritt, wie der Tod, zu einem nicht vorhersehbaren Zeitpunkt ein. Doch wie hoch ist die Chance, dass er passiert? Hier geht es nicht um Blutdruck und Alter, sondern die Anzahl der Textzeilen oder die Programmiersprache, die als Kovariablen in das Modell eingehen. Jensen und seine Mitarbeiter haben noch weitere Kandidaten: Wie viel Zeit steht für die Entwicklung zur Verfügung? Und wie viele Programmierer sind beteiligt?