Cleanroom Software Engineering

Der Cleanroom Software Engineering Process (zu Deutsch Reinraum-Softwareentwicklungs-Prozess) i​st ein Softwareentwicklungsprozess, m​it dem Software m​it einem zertifizierbaren Maß a​n Zuverlässigkeit erstellt werden soll. Der Reinraumprozess w​urde ursprünglich v​on Harlan Mills u​nd mehreren seiner Kollegen entwickelt, darunter Alan Hevner v​on IBM.[1] Der Schwerpunkt d​es Reinraumprozesses l​iegt eher a​uf der Fehlervermeidung a​ls auf d​er Fehlerbeseitigung. Der Name „Reinraum“ w​urde gewählt, u​m an d​ie in d​er Elektronikindustrie verwendeten Reinräume z​u erinnern, u​m die Einführung v​on Defekten b​ei der Herstellung v​on Halbleitern z​u verhindern. Das Reinraumverfahren w​urde erstmals Mitte b​is Ende d​er 1980er Jahre eingesetzt. Demonstrationsprojekte innerhalb d​es Militärs begannen Anfang d​er neunziger Jahre.[2] Jüngste Arbeiten z​um Reinraumprozess h​aben die Verschmelzung v​on Reinräumen m​it den automatisierten Verifizierungsfunktionen untersucht, d​ie durch i​n CSP ausgedrückte Spezifikationen bereitgestellt werden.[3]

Grundprinzipien

Die Grundprinzipien d​es 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

  • 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

  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, Nr. 2, April 1994, S. 50–58. doi:10.1109/52.268956.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.