Cleanroom Software Engineering

Slides:



Advertisements
Similar presentations
SOFTWARE TESTING. Software Testing Principles Types of software tests Test planning Test Development Test Execution and Reporting Test tools and Methods.
Advertisements

Cleanroom Software Engineering CIS 376 Bruce R. Maxim UM-Dearborn.
Cleanroom Software Engineering A unique approach to software development.
CLEANROOM SOFTWARE ENGINEERING
©Ian Sommerville 2000Software Engineering. Chapter 22Slide 1 Chapter 22 Verification and Validation.
Lecture 12 Reengineering Computer-aided Software Engineering Cleanroom Software Engineering.
Cleanroom Engineering and the B-Method: A Comparison Drew Connelly.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Testing and Quality Assurance
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Cleanroom Method CS 415, Software Engineering II Mark Ardis, Rose-Hulman Institute March 20, 2003.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Verification and Validation
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
1 Systems Validation & Verification, Quality and Standards (CSE4431) Dr Sita Ramakrishnan School CSSE Monash University.
Andy Moyer. Cleanroom Software Engineering  What is it?  Goals  Properties of Cleanroom  Cleanroom Technologies  Case Studies  Critiques.
By: David Golke.  Introduction  Architecture Specification ◦ Requirements Analysis ◦ Function Specification ◦ Usage Specification ◦ Increment Planning.
System Testing Unit & Integration Testing Objective: to make sure that the program code implements the design correctly. System Testing Objective: to ensure.
Casey Ehlers April 28 th, Outline of Presentation 1. Background and History of Cleanroom 2. Who Uses Cleanroom Software Development? 3. Basics of.
Cleanroom Software Engineering Crystal Donald. Origins Developed by Dr. Harlan Mills in 1987 Developed by Dr. Harlan Mills in 1987 Name derived from hardware.
SE 501 Software Development Processes Dr. Basit Qureshi College of Computer Science and Information Systems Prince Sultan University Lecture for Week 14.
Software Integration and Documenting
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
Achieving Better Reliability With Software Reliability Engineering Russel D’Souza Russel D’Souza.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
CLEANROOM SOFTWARE ENGINEERING.
Verification and Validation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
Software Testing and Quality Assurance Software Quality Assurance 1.
CLEAN ROOM SOFTWARE ENGINEERING CSC-532
Cleanroom Software Engineering Getting it right the first time.
Verification and Validation
The Cleanroom Approach to Quality Software Development
Anton Krbaťa Ján Budáč  Verification: "Are we building the product right ?„  Validation: "Are we building the right product ?"
Verification and Validation Assuring that a software system meets a user's needs.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Software Engineering, 8th edition Chapter 22 1 Courtesy: ©Ian Somerville 2006 April 27 th, 2009 Lecture # 19 Verification and Validation.
Verification and Validation Assuring that a software system meets a user's needs.
Software testing techniques Software testing techniques Statistical Testing Presentation on the seminar Kaunas University of Technology.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Formal Methods in SE Software Verification Using Formal Methods By: Qaisar Javaid, Assistant Professor Formal Methods1.
Software Engineering 2 -Prakash Shrestha.
Slide 6.1 CHAPTER 6 TESTING. Slide 6.2 Overview l Quality issues l Nonexecution-based testing l Execution-based testing l What should be tested? l Testing.
CSC 480 Software Engineering Test Planning. Test Cases and Test Plans A test case is an explicit set of instructions designed to detect a particular class.
Software Quality Assurance and Testing Fazal Rehman Shamil.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
Functional Verification I Prepared by Stephen M. Thebaut, Ph.D. University of Florida Software Testing and Verification Lecture Notes 21.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
COMP 6710 Course NotesSlide 4-0 Auburn University Computer Science and Software Engineering Course Notes Set 4: Cleanroom Software Engineering Computer.
Software Testing & Verification
Software Metrics and Reliability
Software Engineering (CSI 321)
CSC 480 Software Engineering
Statistical Testing Jonas Abromaitis IFM-0/2.
Verification and Validation
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Lecture 09:Software Testing
Functional Verification I
Prepared by Stephen M. Thebaut, Ph.D. University of Florida
Chapter 28 Formal Modeling and Verification
Functional Verification I
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Cleanroom Software Engineering
Presentation transcript:

Cleanroom Software Engineering Software Testing and Verification Lecture 25 Prepared by Stephen M. Thebaut, Ph.D. University of Florida

Required Reading and Additional Reference Linger, Cleanroom Software Engineering for Zero-Defect Software, Proceedings, 15th Int. Conf. on Soft. Eng. (1993), IEEE Computer Society Press, pp. 2-13. Additional relevant reference: Linger, Trammell, Cleanroom Software Engineering Reference Model. CMU/SEI-96-TR-022, Software Engineering Institute, 1996.

Cleanroom SE Philosophy Cleanroom Software Engineering is a software development philosophy. First introduced in the ‘80s within IBM by Harlan Mills. Based on the notion that defects in software should be avoided rather than detected and repaired. Software development should not be viewed as a trial-and-error undertaking.

Cleanroom SE Philosophy (cont’d) “In traditional software development, errors were regarded as inevitable. Programmers were urged to get software into execution quickly, and techniques for error removal were widely encouraged. The sooner the software could be written, the sooner debugging could begin.”

Cleanroom SE Philosophy (cont’d) “Today, debugging is understood to be the most error-prone process in software development, leading to ‘right in the small, wrong in the large’ programs...”

Characteristics Team-oriented… “The functional specification is created by the development team, or by a separate specification team for large projects, and the usage specification is created by the certification team.” Object-based box structure specification and design Stepwise refinement

Characteristics (cont’d) Uses function-theoretic correctness verification – components are not executed or developer-tested! “Team correctness verification takes the place of unit testing and debugging, and software enters system testing directly, with no execution by the development team...no private debugging (is) permitted.”

Characteristics (cont’d) Statistical usage testing (of integrated increments) is undertaken for quality certification (‘‘statistical quality control’’). “The certification (test) team is responsible for...certifying the quality of software with respect to its specification. Certification is carried out by statistical usage testing that produces objective assessments of product quality.”

Characteristics (cont’d) Incremental development… “Management planning and control...is based on developing and certifying a pipeline of software increments that accumulate to the final product.” Structured programming

Impact on Development Cycle “Experienced...teams...can achieve substantially reduced product development cycles. The precision of Cleanroom development eliminates rework and results in dramatically reduced time for certification testing compared to traditional methods. And Cleanroom teams are not hostage to error correction following product release.”

Box Structure Specification and Design Incorporates black box (external behavior), state box (retained data), and clear box (processing) forms. “Transition Functions:” Black box: (S, SH -> R) State box: (S, OS) -> (R, NS) Clear box: (S, OS) -> (R, NS) by procedure (intended function) Intended functions are refined into control structures (programs)

Verification Development teams employ mental proofs of correctness in team reviews… “Every correctness condition of every control structure is verified – every team member must agree that each condition is correct.”

Quality Certification Based on statistical quality control in manufacturing Process (statistical usage testing): sample population of user executions based on expected frequency (stratified random sampling): operational profile measure quality by determining if executions are correct extrapolate to the population of possible executions (statistical inference) if quality is inadequate, identify and correct flaws in development process (cont’d)

Quality Certification (cont’d) Alternate distributions can be defined for low-probability, high-consequence functions. Errors tend to be found in failure-rate order on average (coverage testing is not biased to find errors in any particular rate order).

Cleanroom Software Engineering Software Testing and Verification Lecture 25 Prepared by Stephen M. Thebaut, Ph.D. University of Florida