Cleanroom Software Engineering

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

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

  • 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 (englisch).
  3. Guy H. Broadfoot and P. J. Hopcroft: Introducing formal methods into industry using Cleanroom and CSP. In: Dedicated Systems e-Magazine. 2005 (englisch).
  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 (englisch).

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.