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
1000 Zeilen | 15 Blatt Papier |
100 000 Zeilen | 15 cm hoher Stapel |
10 Millionen Zeilen | 15 m hoher Stapel |
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 |
mittlere Programmgröße | 50 Zeilen pro Tag | |
große Programmgröße | 10 - 20 Zeilen pro Tag | |
kritische Software | 1 - 2 Zeilen pro Tag |
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 |
3 Millionen Zeilen | => 300 Fehler | |
$ 3000 Millionen Kosten | => $ 1000 pro Zeile | |
15 000 Mannjahre |
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