2. INTRODUCTION
• Developed by Dr. Harlan Mills (IBM) in 1981
• An incremental development model
• Small increments which reduces the complexity
of the system
• The Clean Room software engineering follows a
quality approach to software development
which follows a set of principles and practices
for gathering requirements, designing, coding,
testing, managing, etc. which not only improves
the quality of the product but also increases
productivity and reduces development cost.
3. Unlike the traditional approach where the
Quality Assurance is performed at the end of the
development process, in cleanroom
engineering, Quality Assurance is performed at
each and every phase of software development.
From the beginning till the completion, we focus
on preventing defects rather than removing
them.
It has a mathematical based approach to pursue
the software specifications and the
development process
4. CLEANROOM
DEVELOPMENT
PROCESS
FUNCTIONS
1. Specification team: Consists of requirement
analysis, function specification, usage
specification, incremental planning
2. Development team: Consists of software
reengineering, correctness verification,
incremental design etc.
3. Certification team: Final Process of each
increment consisting of usage modelling
and test planning, statistical testing and
certification process etc.
4. Documentation team
7. 1.
SPECIFICATION
• Functional Specification: formal document
used to describe a product's intended
capabilities, appearance, and interactions
with users in detail for software developers.
• Usage Specification: a set of use cases that
describe user interactions that the software
must provide to the user for perfect
interaction.
8. INCREMENTAL
DEVELOPMENT
PLANNING
• The complex system is divided into smaller
pieces and the development process is
planned in an incremental manner.
• Based on the mathematical principle of
referential transparency.
• the requirement for referential transparency
places constraints on the functional content
and order of design decomposition of a
software system. User functions are organized
for development into a sequence of verifiable
and executable software increments, each
providing additional function.
9. FORMAL
DESIGN
AND THE
BOX
APPROACH
• Box structure is a modelling approach that is
used in clean room engineering. It generally
uses three types of boxes i.e.
• 1. Black box –It identifies the behaviour of the
system.
• 2. State box –It identifies state data or
operations.
• 3. Clear box –It identifies the transition
function used by the state box.
• Make a formal design in accordance with the
specifications. Detailed paperwork and
mathematical requirements are frequently a
part of this design process.
10. TEST CASE
GENERATION
• Statistical Testing is a testing method whose
objective is to work out the undependable
software package products instead of
discovering errors. check cases are designed
for applied mathematics testing with a wholly
different objective than those of typical
testing.
• Testing is based on anticipated customer
usage. Test case are designed to rehearse
frequently used functions.
11. CERTIFICATION
AND MTTF
• “Mean time to Failure” which is measured in
terms of software specific units.
• For example, Number of transactions
processed successfully for a database product
or a banking system.
12. EXAMPLES
• ReactOS, an open source operating system
made from clean-room reverse-engineered
components of Windows, and Coherent
operating system, a clean room re-
implementation of version 7 Unix.
• Phoenix Technologies sold its clean-room
implementation of the IBM-compatible BIOS
to various PC clone manufacturers.
• The adoption of Cleanroom thus far is mostly
confined to small projects. Like other formal
methods , the questions about its ability to be
scaled up to large projects and the
mathematical training required have been
asked by many developers and project
managers.