6
Cleanroom Software Engineering Getting it right the first time

Cleanroom Software Engineering Getting it right the first time

Embed Size (px)

Citation preview

Page 1: Cleanroom Software Engineering Getting it right the first time

Cleanroom Software Engineering

Getting it right the first time

Page 2: Cleanroom Software Engineering Getting it right the first time

A Spectrum of Methods

Less Formal

More Formal

Cleanroom

OCL and Z

Traditional Models:Waterfall, Spiral, Incremental

Agile Methods:FDD and SCRUM

Page 3: Cleanroom Software Engineering Getting it right the first time

Characteristics of Formal Methods

Well-defined specification language Typically based on set-theoretical concepts

Emphasis on verification Of program correctness Of completeness of description Of refinements to different abstractions

Testing/Debugging De-emphasized Process idea borrowed from manufacturing—

worth the cost to ensure process delivers acceptable products rather than remove defects to achieve quality

Page 4: Cleanroom Software Engineering Getting it right the first time

Why Use Cleanroom Process?

ClaimsVerification and testing are synergistic

Reasoning faults are “easier to find” than debugging faults

Testing based on usage scenarios focuses on “important” errors

Not all faults are of equal significance Bottom Line: software developed under the

cleanroom process has fewer errors

Page 5: Cleanroom Software Engineering Getting it right the first time

The Cleanroom Approach

Based on the Incremental Process Model with the twist that formal verification is applied to engineering models and the code.

Subprocesses System Engineering, Requirements Gathering, Test Planning,

Box Structure Specification, Formal Design, Correctness Verification, Code Generation, Code Inspection and Verification, Statistical Usage Testing, Certification

Page 6: Cleanroom Software Engineering Getting it right the first time

Additional Points of Emphasis

Why the cleanroom process is not widely used (pg 797) Stereotyped perception, departure from standard

practice, and process maturity How cleanroom differs from OO development

(pg 800) Statistical QC, mathematical verification, usage-

driven testing. Functional Specification Types (pg 801)

Black Box (concerned only with I/O) State Box (similar to a UML class diagram) Clear Box (procedural design, e.g., pseudocode)