next up previous contents
Next: 7.4 Probleme und Hindernisse Up: 7. Die Cleanroom-Methode Previous: 7.2 Ansätze

Unterabschnitte

7.3 Ergebnisse

Der hohe Aufwand zur Prüfung der einzelnen Verfeinerungsschritte zahlt sich tatsächlich insofern aus, daß die Restfehlerrate in ausgelieferten Produkten bei Cleanroom typischerweise erheblich niedriger liegt als mit anderen Vorgehensmodellen. Überraschend mag man hingegen die Tatsache empfinden, daß zugleich die Produktivität der Entwicklung anwächst, obwohl man sich doch eines mächtigen Werkzeugs nicht mehr bedient, nämlich des Computers zur Ausführung der Software zwecks Test.

Mittlerweile wird Cleanroom von einer ganzen Reihe von Organisationen eingesetzt und es gibt eine beträchtliche Zahl von Erfolgsmeldungen. Hier seien einige wenige davon willkürlich herausgegriffen:

7.3.1 Ericsson OS-32

OS-32 war ein Projekt mit 70 Mitarbeitern über 18 Monate und erzeugte ein Betriebssystem für Telefonvermittlungen in einem Umfang von 350.000 Zeilen. Mit Cleanroom wurde 70% Verbesserung der Produktivität in der Entwicklung und 100% Verbesserung der Produktivität beim Test gegenüber bisherigen Erfahrungen erzielt. Die Fehlerrate im Test betrug 1.0 Fehler pro tausend Zeilen Code (KLOC).

7.3.2 IBM Cobol SF

Die ,,Cobol Structuring Facility`` ist ein Programm zum automatischen Umwandeln von unstrukturiertem Cobol-Code (mit Goto) in strukturierten Cobol-Code. Es hat 85.000 Zeilen, eine Fehlerrate von 3.4 pro KLOC und ergab eine fünffach höhere Produktivität als üblich. Nach der Auslieferung traten noch sieben, allesamt geringfügige Fehler auf.

7.3.3 Ein kontrolliertes Experiment

In einem Experiment [SBB87] an der Universität von Maryland wurde 1982/1983 die gleiche Software insgesamt 15 mal von 15 dreiköpfigen Teams entwickelt. 10 Teams benutzten Cleanroom, 5 Teams herkömmliche Methoden (insbesondere Testen zur Fehlerfindung). Die Teams bestanden aus professionellen Softwareentwicklern mit im Mittel eineinhalb Jahren Berufserfahrung. Die Softwareprodukte hatten zwischen 800 und 2300 Zeilen Code, die Entwicklungszeit betrug sechs Wochen mit vier Meilensteinen (Grobentwurf, Feinentwurf, Code, Dokumentation). Hier die Ergebnisse:

1.
Die Cleanroom-Teams erfüllten im Mittel signifikant mehr Programmanforderungen als die anderen. Alle 10 Cleanroom-Teams hielten alle vier Meilensteine ein, während nur 2 der 5 anderen dies schafften. Cleanroom hatte also eine höhere Produktivität.
2.
Der Quellcode der Cleanroom-Teams hatte mehr Kommentare und meßbar geringere Kontrollflußkomplexität, ohne deshalb mehr Programmzeilen aufzuweisen. Er ist also besser verständlich und damit leichter wartbar.
3.
Vollständigkeit der Implementation und Prozentsatz erfolgreich absolvierter Testfälle bei den Cleanroom-Programmen korrelierten positiv mit dem Anteil von Prozeduraufrufen an den Anweisungen sowie mit dem Anteil an IF-Anweisungen; sie korrelierten negativ mit dem Anteil an WHILE-Anweisungen, dem Anteil an CASE-Anweisungen und der Häufigkeit, mit der eine Variable im Mittel im Programmtext auftritt (Variablen-Wiederverwendung). Das heißt, daß erfolgreiche Anwendung von Cleanroom positiv mit einer einfacheren Anwendung der Programmiersprache korreliert.
4.
Die Cleanroom-Programme absolvierten signifikant mehr Testfälle erfolgreich als die anderen.
5.
86 Prozent der Cleanroom-Entwickler sagten, sie vermißten die Befriedigung des Programmtestens. Dies hatte aber keine ersichtliche Auswirkung auf die Qualität ihrer Produkte.


next up previous contents
Next: 7.4 Probleme und Hindernisse Up: 7. Die Cleanroom-Methode Previous: 7.2 Ansätze
Lutz Prechelt
1999-04-13