Cleanroom Software Engineering: CIS 376 Bruce R. Maxim UM-Dearborn
Cleanroom Software Engineering: CIS 376 Bruce R. Maxim UM-Dearborn
Cleanroom Software Engineering: CIS 376 Bruce R. Maxim UM-Dearborn
CIS 376
Bruce R. Maxim
UM-Dearborn
Where did it come from?
Develop
operational Design Test
profile statistical integrated
tests system
Cleanroom Strategy - part 1
• Increment planning.
– The project plan is built around the incremental strategy.
• Requirements gathering.
– Customer requirements are elicited and refined for each
increment using traditional methods.
• Box structure specification.
– Box structures isolate and separate the definition of
behavior, data, and procedures at each level of
refinement.
Cleanroom Strategy - part 2
• Formal design.
– Specifications (black-boxes) are iteratively refined to
become architectural designs (state-boxes) and
component-level designs (clear boxes).
• Correctness verification.
– Correctness questions are asked and answered, formal
mathematical verification is used as required.
Cleanroom Strategy - part 3
• Code generation, inspection, verification.
– Box structures are translated into program language;
inspections are used to ensure conformance of code and
boxes, as well as syntactic correctness of code;
followed by correctness verification of the code.
• Statistical test planning.
– A suite of test cases is created to match the probability
distribution of the projected product usage pattern.
Cleanroom Strategy - part 4
• Statistical use testing.
– A statistical sample of all possible test cases is used
rather than exhaustive testing.
• Certification.
– Once verification, inspection, and usage testing are
complete and all defects removed, the increment is
certified as ready for integration.
Increment Planning - Purpose
• Developing the right systems the first time,
requires customer involvement and feedback
throughout the development process
• Facilitates the customer’s clarification of system
requirements
• Requires management control of resources and
technical control of complexity
• Product quality requires process measurement and
control throughout the SW development cycle
Increment Planning - Benefits
• Concurrent engineering by scheduling parallel development
and certification
• Stepwise integration through testing cumulative increments
• Continuous quality feedback from statistical process control
• Continuous customer feedback from actual use
• Risk management by treating high-risk elements in early
increments
• Change management by systematic accommodation of
changes
Black Box
• Specifies a set of transition rules that describe the behavior
of system components as responses to specific stimuli,
makes use of inheritance in a manner similar to classes
• Specifies system function by mapping all possible stimulus
histories to all possible responses
S* R
stimulus history responses
State Box
• Generalization of a state machine, encapsulates the data
and operations similar to an object, the inputs (stimuli) and
outputs (responses) are represented, data that must be
retained between transitions is encapsulated
• The state is the encapsulation of the stimulus history
• State variables are invented to save any stimuli that need to
retained
SxTRxT
stimuli X state data responses X state data
Clear Box
• Contains the procedural design of the state box, in a
manner similar to structured programming
• Specifies both data flow and control flow
SxTRxT
stimuli X state data responses X state data
.9 22 29 44 66
.95 45 59 90 135