Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
Skip header Section
Cleanroom software engineering: technology and processJune 1999
Publisher:
  • Addison-Wesley Longman Publishing Co., Inc.
  • 75 Arlington Street, Suite 300 Boston, MA
  • United States
ISBN:978-0-201-85480-0
Published:01 June 1999
Pages:
390
Skip Bibliometrics Section
Reflects downloads up to 09 Nov 2024Bibliometrics
Skip Abstract Section
Abstract

Cleanroom software engineering is a process for developing and certifying high-reliability software. Combining theory-based engineering technologies in project management, incremental development, software specification and design, correctness verification, and statistical quality certification, the Cleanroom process answers today's call for more reliable software and provides methods for more cost-effective software development.Cleanroom originated with Harlan D. Mills, an IBM Fellow and a visionary in software engineering. Written by colleagues of Mills and some of the most experienced developers and practitioners of Cleanroom, Cleanroom Software Engineering provides a roadmap for software management, development, and testing as disciplined engineering practices. This book serves both as an introduction for those new to Cleanroom and as a reference guide for the growing practitioner community. Readers will discover a proven way to raise both quality and productivity in their software-intensive products, while reducing costs.Highlights Explains basic Cleanroom theory Introduces the sequence-based specification method Elaborates the full management, development, and certification process in a Cleanroom Reference Model (CRM) Shows how the Cleanroom process dovetails with the SEI's Capability Maturity Model for Software (CMM) Includes a large case study to illustrate how Cleanroom methods scale up to large projects.

Cited By

  1. Pi X, Shi J, Huang Y and Wei H Automated Mining and Checking of Formal Properties in Natural Language Requirements Knowledge Science, Engineering and Management, (75-87)
  2. ACM
    Aguiar A, Restivo A, Correia F, Ferreira H and Dias J Live software development Companion Proceedings of the 3rd International Conference on the Art, Science, and Engineering of Programming, (1-6)
  3. ACM
    Ahmed K, Newton M, Wen L and Sattar A Formalisation of the integration of behavior trees Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, (779-784)
  4. Snipes W, Augustine V, Nair A and Murphy-Hill E Towards recognizing and rewarding efficient developer work patterns Proceedings of the 2013 International Conference on Software Engineering, (1277-1280)
  5. Lin L, Poore J, Eschbach R, Hierons R and Robinson-Mallett C Augmenting sequence enumeration with string-rewriting for requirements analysis and behavioral specification Proceedings of the 16th international conference on Fundamental Approaches to Software Engineering, (179-193)
  6. ACM
    Linger R, Pleszkoch M, Prowell S, Sayre K and Ankrum T Computing legacy software behavior to understand functionality and security properties Proceedings of the Eighth Annual Cyber Security and Information Intelligence Research Workshop, (1-4)
  7. Lin L, Yang W and Lin J (2012). A layer-based method for rapid software development, Computers & Mathematics with Applications, 64:5, (1364-1375), Online publication date: 1-Sep-2012.
  8. ACM
    Linger R, Pleszkoch M, Prowell S and Sayre K Behavior computation for smart grid software analysis Proceedings of the Seventh Annual Workshop on Cyber Security and Information Intelligence Research, (1-1)
  9. Popovic M and Basicevic I (2010). Test case generation for the task tree type of architecture, Information and Software Technology, 52:6, (697-706), Online publication date: 1-Jun-2010.
  10. ACM
    van den Heuvel M, Bril R, van de Velde P and Lukkien J Towards verification-based development of in-vehicle safety critical software Proceedings of the 1st Workshop on Critical Automotive applications: Robustness & Safety, (35-38)
  11. ACM
    Linger R, Pleszkoch M, Sayre K and Daly T Computing the behavior of malware Proceedings of the Sixth Annual Workshop on Cyber Security and Information Intelligence Research, (1-2)
  12. Dalton G, Edge K, Mills R and Raines R (2010). Analysing security risks in computer and Radio Frequency Identification (RFID) networks using attack and protection trees, International Journal of Security and Networks, 5:2/3, (87-95), Online publication date: 1-Mar-2010.
  13. Lin L, Prowell S and Poore J (2010). An axiom system for sequence-based specification, Theoretical Computer Science, 411:2, (360-376), Online publication date: 1-Jan-2010.
  14. Ferrer G (2009). A formal language and analysis tool for black box specifications, Journal of Computing Sciences in Colleges, 24:5, (12-18), Online publication date: 1-May-2009.
  15. ACM
    Linger R, Prowell S and Sayre K Computing the behavior of malicious code with function extraction technology Proceedings of the 5th Annual Workshop on Cyber Security and Information Intelligence Research: Cyber Security and Information Intelligence Challenges and Strategies, (1-2)
  16. ACM
    Pleszkoch M, Linger R and Hevner A (2008). Introducing function extraction into software testing, ACM SIGMIS Database: the DATABASE for Advances in Information Systems, 39:3, (41-50), Online publication date: 31-Jul-2008.
  17. Robinson-Mallett C, Hierons R, Poore J and Bauer T Using partial models to support the testing of distributed systems Proceedings of the 11th IASTED International Conference on Software Engineering and Applications, (48-56)
  18. Carter J and Poore J Sequence-based specification of feedback control systems in Simulink® Proceedings of the 2007 conference of the center for advanced studies on Collaborative research, (332-345)
  19. Bauer T, Bohr F, Landmann D, Beletski T, Eschbach R and Poore J From Requirements to Statistical Testing of Embedded Systems Proceedings of the 4th International Workshop on Software Engineering for Automotive Systems
  20. Kondoh H and Futatsugi K (2018). To use or not to use the goto statement, Science of Computer Programming, 60:1, (82-116), Online publication date: 1-Mar-2006.
  21. Hopcroft P and Broadfoot G Combining the Box Structure Development Method and CSP Proceedings of the 19th IEEE international conference on Automated software engineering, (340-345)
  22. Yan J, Wang J and Chen H Automatic Generation of Markov Chain Usage Models from Real-Time Software UML Models Proceedings of the Quality Software, Fourth International Conference, (22-31)
  23. ACM
    Bowring J, Rehg J and Harrold M Active learning for automatic classification of software behavior Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, (195-205)
  24. ACM
    Bowring J, Rehg J and Harrold M (2004). Active learning for automatic classification of software behavior, ACM SIGSOFT Software Engineering Notes, 29:4, (195-205), Online publication date: 1-Jul-2004.
  25. Davis N, Humphrey W, Redwine Jr. S, Zibulski G and McGraw G (2004). Processes for Producing Secure Software, IEEE Security and Privacy, 2:3, (18-25), Online publication date: 1-May-2004.
  26. Ferrer G Teaching specification and verification of event-driven programs using cleanroom software engineering Proceedings of the 2nd annual conference on Mid-south college computing, (65-73)
  27. Prowell S and Poore J (2003). Foundations of Sequence-Based Software Specification, IEEE Transactions on Software Engineering, 29:5, (417-429), Online publication date: 1-May-2003.
  28. Smith S and Stoecklin S (2001). What we can learn from extreme programming, Journal of Computing Sciences in Colleges, 17:2, (144-151), Online publication date: 1-Dec-2001.
  29. Mead N, Linger R, McHugh J and Lipson H (2001). Managing Software Development for Survivable Systems, Annals of Software Engineering, 11:1, (45-78), Online publication date: 7-Nov-2001.
  30. Pretschner A, Lötzbeyer H and Philipps J Model Based Testing in Evolutionary Software Development Proceedings of the 12th International Workshop on Rapid System Prototyping
Contributors
  • Oak Ridge National Laboratory
  • The University of Tennessee, Knoxville
  • Oak Ridge National Laboratory
  • The University of Tennessee, Knoxville

Reviews

James Edward Tomayko

When I first saw this book, I said “Finally!” I have been teaching about Cleanroom software development conceptually in a management class and covering the techniques associated with Cleanroom in various technical courses since the publication of Mills, Dyer, and Linger's original paper on the subject in 1987 [1]. Its immediate appeal was the practical application of the function-based development model pioneered by Mills, Linger and B. I. Witt at IBM in the 1970s, and the emphasis on formal validation and statistical testing. These all seemed to be good practices worth emulating and, indeed, early Cleanroom projects had enviable quality records. The biggest problem during the next 12 years was finding useful material about Cleanroom in one place. There have been published examples and tutorials on box-structured specification, the use of Markov chains to derive statistically based tests, and the Cleanroom Reference Model and its relation to other software process definitions such as the Capability Maturity Model (CMM). These have largely been written by the prolific co-authors of this book. However, all these parts have not been assembled before, and by that alone, the authors have accomplished much. The book is divided into three parts: a technical introduction to the Cleanroom development method, a section on the Cleanroom Reference Model and its relation to the CMM, and a large case study. The technical introduction is generally superb. At the end of it, I felt as though I had had an easy-to-understand tour of all the concepts and how they were applied. At that point, I believed it would be most useful to skip over the process model and read the case study in order to further my absorption of the technical aspects of the method. However, the case study, though lengthy and complete, made it more difficult for me to accomplish this intention. It is based on satellite operations software, which is a familiar domain to me but is hardly comforting to business-oriented readers or to students. It is especially difficult to follow because of the excessive use of acronyms. On the second page of the case (p. 212), a short paragraph in the introduction to the system contains 16 acronyms in four sentences. The authors later include an acronym list (p. 223), but it should be closer to the front. Better yet, they could have found a case study in a more accessible field, where the acronyms are more likely to be familiar. The reference model section maps Cleanroom processes to the CMM. Many of the managerial and technical support documents are similar to those accompanying any well-run project, but there are additions to support usage modeling and statistical testing. Some sample pages of the documents unique to Cleanroom should have been reproduced. As it is, all we learn is the brief English description of their content. The most serious limitation of the book is that it ignores the critics of Cleanroom. The approach has been around long enough that the authors ought to be aware of the stir caused by the concepts of statistical testing and independent verification. The most severe criticism comes from Boris Beizer. He is mostly upset over the certification practices, charging that Cleanroom is firmly rooted in 1960s testing technology. He points out that while many other quality-centered practices, such as formal inspections, configuration control, and information hiding, have caught on and prospered, Cleanroom is still surrounded by a sparse user group. The authors cannot be unaware of this point of view, and it deserves a direct response in a book intended for practitioners who will need ammunition to defend their use of Cleanroom until the bugs disappear. Maybe Cleanroom needed this book in order to catch on. As an exposition of Cleanroom software engineering, it is useful both for those new to it, and those to whom it is somewhat familiar. The security system example used in the technical section is good. The big case study could have been in a more mainstream field, but it has rewards for the persistent. The reference model should keep the Software Engineering Process Group happy. It seems divorced from the technical practices, but is necessary for completeness. All in all, this book is a much-needed compilation, and I recommend it for those searching for a bug-adverse method.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Recommendations