Cleanroom Software Engineering

Softwareentwicklungsprozess

Der Cleanroom Software Engineering Process (zu Deutsch Reinraum-Softwareentwicklungs-Prozess) ist ein Softwareentwicklungsprozess, mit dem Software mit einem zertifizierbaren Maß an Zuverlässigkeit erstellt werden soll. Der Reinraumprozess wurde ursprünglich von Harlan Mills und mehreren seiner Kollegen entwickelt, darunter Alan Hevner von IBM.[1] Der Schwerpunkt des Reinraumprozesses liegt eher auf der Fehlervermeidung als auf der Fehlerbeseitigung. Der Name „Reinraum“ wurde gewählt, um an die in der Elektronikindustrie verwendeten Reinräume zu erinnern, um die Einführung von Defekten bei der Herstellung von Halbleitern zu verhindern. Das Reinraumverfahren wurde erstmals Mitte bis Ende der 1980er Jahre eingesetzt. Demonstrationsprojekte innerhalb des Militärs begannen Anfang der neunziger Jahre.[2] Jüngste Arbeiten zum Reinraumprozess haben die Verschmelzung von Reinräumen mit den automatisierten Verifizierungsfunktionen untersucht, die durch in CSP ausgedrückte Spezifikationen bereitgestellt werden.[3]

Grundprinzipien

Bearbeiten

Die Grundprinzipien des Reinraumprozesses sind

Softwareentwicklung basierend auf formale Methoden
Die Unterstützung durch Softwaretools, die auf einigen mathematischen Formalismen basieren, einschließlich Model Checking, Processkalkül, sowie Petri-Netze. Die Box-Struktur-Methode[4] kann ein solches Mittel zum Spezifizieren und Entwerfen eines Softwareprodukts sein.[5] Die Überprüfung, ob das Design die Spezifikation korrekt implementiert, erfolgt durch Teamüberprüfung, häufig mit Unterstützung von Softwaretools.
Inkrementelle Implementierung unter statistische Qualitätskontrolle
Die Reinraumentwicklung verwendet einen iterativen Ansatz, bei dem das Produkt in Schritten entwickelt wird, um die implementierte Funktionalität schrittweise zu Erhöhen. Die Qualität jedes Inkrements wird anhand vorab festgelegter Standards gemessen, um sicherzustellen, dass der Entwicklungsprozess akzeptabel verläuft. Wenn die Qualitätsstandards nicht eingehalten werden, werden die Tests für das aktuelle Inkrement abgebrochen und die Entwurfsphase wieder aufgenommen.
Statistisch fundierte Tests
Softwaretests im Reinraumprozess werden als statistisches Experiment durchgeführt. Basierend auf der formalen Spezifikation wird eine repräsentative Teilmenge von Software-Eingabe- / Ausgabe-Trajektorien ausgewählt und getestet. Diese Stichprobe wird dann statistisch analysiert, um eine Schätzung der Zuverlässigkeit der Software und ein Maß an Vertrauen in diese Schätzung zu erhalten.

Literatur

Bearbeiten
  • Allan M. Stavely: Toward zero-defect programming. Addison-Wesley, Reading, Mass. 1999, ISBN 0-201-38595-3.
  • Stacy J. Prowell: Cleanroom software engineering : technology and process. Addison-Wesley, Reading, Mass. 1999, ISBN 0-201-85480-5.
  • J. H. Poore, Carmen J. Trammell: Cleanroom software engineering : a reader. Blackwell, Oxford, UK 1996, ISBN 1-85554-654-X.

Einzelnachweise

Bearbeiten
  1. H. D. Mills, M. Dyer, R. C. Linger: Cleanroom Software Engineering. In: IEEE Software. Band 4, Nr. 5, September 1987, ISSN 1937-4194, S. 19–25, doi:10.1109/MS.1987.231413 (ieee.org [abgerufen am 20. März 2021]).
  2. John Foreman: Cleanroom Software Engineering Reference. In: Software Technology Roadmap. Software Engineering Institute (SEI), abgerufen am 27. April 2006.
  3. Guy H. Broadfoot and P. J. Hopcroft: Introducing formal methods into industry using Cleanroom and CSP. In: Dedicated Systems e-Magazine. 2005.
  4. Combining the Box Structure Development Method and CSP for Software Development, auf sciencedirect.com
  5. R. Linger: Cleanroom Process Model. In: IEEE Software. 11. Jahrgang, Nr. 2, April 1994, S. 50–58, doi:10.1109/52.268956.