Ursachen der Software-Probleme (1-2)


Komplexität von

Programm   > 100 000 Zeilen-Programme üblich
Daten   Experimente; Wettervorhersage
Problem   Wachsende Aufgaben; neue Hardware
Sprachen   Neue Sprachen; mehr Sprachelemente
Umgebung   Unterprogrammpakete; große Teams

Der Programmieraufwand, und auch die Schwierigkeit und Fehleranfälligkeit wachsen überproportional mit der Programmgröße

Veranschaulichung verschiedener Programmgrößen

1000 Zeilen   15 Blatt Papier
100 000 Zeilen   15 cm hoher Stapel
10 Millionen Zeilen   15 m hoher Stapel

Beispiele (verschiedene Programmiersprachen!)

MS-DOS 1.0   4 000 Zeilen
TeX 82   14 000 Zeilen
Handy   200 000 Zeilen
Hubble Bodensoftware   1 Millionen Zeilen
Modernes Auto   2 Millionen Zeilen
Luftraum-Überwachung   2 Millionen Zeilen
Space Shuttle, auch IIS   3 Millionen Zeilen
B-2 Stealth Bomber   4 Millionen Zeilen
Linux Kernel 2.6   6 Millionen Zeilen
Windows 95   10 Millionen Zeilen
Windows NT 4.0   16 Millionen Zeilen
Windows 2000   27 Millionen Zeilen
Windows XP   40 Millionen Zeilen
SAP/R3   80 Millionen Zeilen
SDI, auch NMD (Schätzung)   25 - 100 Millionen Zeilen


Programmieraufwand (kaum sprachabhängig)

mittlere Programmgröße   50 Zeilen pro Tag
große Programmgröße   10 - 20 Zeilen pro Tag
kritische Software   1 - 2 Zeilen pro Tag

Fehlerhäufigkeit

Normale Software   25 Fehler pro 1000 Zeilen
Wichtige Software   2 - 3 Fehler pro 1000 Zeilen
Medizinische Software   0.2 Fehler pro 1000 Zeilen
Space Shuttle Software   < 0.1 Fehler pro 1000 Zeilen

Beispiel

Space Shuttle Software

3 Millionen Zeilen   => 300 Fehler
$ 3000 Millionen Kosten   => $ 1000 pro Zeile
15 000 Mannjahre

Tests

Sehr zeitaufwendig, nie vollständig durchführbar

25 - 185 Stunden Testzeit für 1000 Zeilen

Keine Interpolation möglich (diskrete Werte)

Beweisen nur die Anwesenheit von Fehlern ist beweisbar, nie deren Abwesenheit

Fehlende Programmteile nicht testbar

Automatische Programmverifikation nicht für Anforderungen und Design, sondern nur für Algorithmus und für kleinere Programmteile mit sehr hohem Aufwand möglich


Ingolf Giese