CLEANROOM: AN UPDATED VIEW

Download Report

Transcript CLEANROOM: AN UPDATED VIEW

CLEANROOM: AN UPDATED
VIEW
EE 599 Software V&V
LCdr Rob Burch
6 May 98
Presentation Goals
• Provide overview of Cleanroom, history and
activities
• Demonstrate applicability to generic OO
methodology
• Outline Cleanroom extensions to specific OO
methods - Booch / Schlaer - Mellor*
7/16/2015
Cleanroom - updated
2
Cleanroom Goal:
Prevent software defects by use of
rigorous precise methods
7/16/2015
Cleanroom - updated
3
Cleanroom is a SHIFT in practice from:
• craftsmanship  peer reviewed engineering
• sequential
 incremental development
• informal design  engineering specification and
design
• unit testing
 team correctness verification
• coverage testing  statistical usage testing
• unknown reliability  measured reliability
7/16/2015
Cleanroom - updated
4
ESSENTIALS
•
•
•
•
•
•
•
Manage Cleanroom Development
Understand the system environment
Write a cleanroom specification
Create an incremental development plan
Develop verifiable software designs
Verify correctness of designs
Carry out statistical quality certification
7/16/2015
Cleanroom - updated
5
ESSENTIALS - Amplified
•
•
•
•
Cleanroom Incremental Development
Cleanroom Specification
Cleanroom Design and Verification
Cleanroom Reliability Testing
7/16/2015
Cleanroom - updated
6
IBM & Cleanroom
IBM's Cleanroom Software Technology Center
IBM no longer provides Cleanroom Software
Engineering services.
For more information on Cleanroom, please see our Cleanroom Software Engineering Web page or contact
IBM by e-mail or phone:
[email protected]
[email protected]
301-803-2763
7/16/2015
Cleanroom - updated
7
Cleanroom - a timeline
•
•
•
•
•
•
1970s- 1980s: Origin of the Ideas
1987: Origin of the Name
1988: ARPA STARS focus on Cleanroom
1989: Research on Reuse and Reliability
1990: Research on Box Structures with Ada
1992: Prototyping of an evaluation Framework for
Reusable Components
• 1991-1992: Prototyping of Cleanroom Process
Guide
7/16/2015
Cleanroom - updated
8
Cleanroom - a timeline: continued
• 1992 - ongoing: Army Demonstration of
Cleanroom Technology
• 1993 - 1994: Prototyping of Tools
• 1993 - ongoing Air Force Demonstration of
Cleanroom Technology
• 1995 - Commercialization of Cleanroom
Certification
• 1995: Cleanroom and CMM Consistency Review
7/16/2015
Cleanroom - updated
10
Cleanroom - a timeline: updated
• 1996 Integrating Cleanroom with OO methods
• 1997 Extensions to Cleanroom
– Booch
– Objectory
– Shlaer-Mellor
7/16/2015
Cleanroom - updated
12
SET - Cleanroom
•
•
•
•
•
•
Process Definition
Precise Software Specification
Rigorous, Structured Development
Indepnedent Testing
Prodcut Certification
Quantitative Management
7/16/2015
Cleanroom - updated
13
Cleanroom & OO: Common
Characteristics
• Lifecycle: Cleanroom incremental development
and OO iterative development
• Usage: OO Use case and Cleanroom usage model
• State machine: Cleanroom state box and OO state
transition diagram
• Reuse: OO class and Cleanroom common service
7/16/2015
Cleanroom - updated
15
Cleanroom & OO: Key differences
• Cleanroom decomposition vs. OO composition
• Cleanroom formal methods vs. OO "cases" in
characterizing usage
• OO inheritance hierarchy vs. Cleanroom usage
hierarchy
• OO graphical vs. Cleanroom tabular
representation
• Tool support
7/16/2015
Cleanroom - updated
16
Booch extensions to
Cleanroom
7/16/2015
Cleanroom - updated
17
Booch extensions to Cleanroom
Booch Process
1. Conceptualization


Executable Prototype
Risk Assessment
Cleanroom Process
2.5 Increment Planning

Increment Construction Plan
1.1 Project Planning



Software Development Plan:
 Risk Analysis Plan
Vision of Project's Requirements
Micro Process Work Products
1.1 Project Planning

Software Development Plan:
 Project Mission Plan
Cleanroom extension: Prepare an initial incremental development plan to embody the
results of Booch Risk Assessment.
7/16/2015
Cleanroom - updated
18
Booch extensions to Cleanroom
Booch Process
Cleanroom Process
2. Analysis
2.1 Domain Analysis
2. Specification
2.1 Requirements Analysis
Domain Model
Software Requirements
2.2 Scenario Planning
2.3 Usage Specification
System Context Description
Scenarios
Revised Risk Assessment
Micro Process Work Products
Usage Specification
2.2 Function Specification
Function Specification
Cleanroom extension: Prepare a black box function specification for the system.
7/16/2015
Cleanroom - updated
19
Booch extensions to Cleanroom
Booch Process
3. Design
3.1 Architectural Planning
Cleanroom Process
2.4 Architecture Specification
Software Architecture
Architecture Description
Executable and Baselined Architecture
Micro Process Work Products
Cleanroom extension: Prepare a state box specification for the system.
Cleanroom extension: Examine the state box for transaction closure.
Cleanroom extension: Ensure referential transparency by preparing a black box
specification for each subsystem.
7/16/2015
Cleanroom - updated
20
Booch extensions to Cleanroom
Booch Process
Cleanroom Process
3.2 Tactical Design
2.4 Architecture Specification
Description of Common Tactical Policies
Micro Process Work Products
Software Architecture
3.3 Release Planning
2.5 Increment Planning
Release Plan
Revised Risk Assessment
I ncrement Construction Plan
Cleanroom extension: Update the incremental development plan (that was created as an
action plan for the initial Booch Risk Assessment) as the Booch Release Plan and
Revised Risk Assessment.
Test Criteria
Micro Process Work Products
4.1 Usage Modeling and Test Planning
Usage Model(s)
Increment Test Plan
Cleanroom extension: Develop a plan for statistical usage testing.
7/16/2015
Cleanroom - updated
21
Booch extensions to Cleanroom
Booch Process
Cleanroom Process
4. Evolution
4.1 Application of the Micro
Process
3. Development
3.1 Software Reengineering
Reengineering Plan
Reengineered Software Specification
Executable Releases
Behavioral Prototypes
Micro Process Work Products
System and User Documentation
Quality Assurance Results
3.2 Increment Design
Increment Design
3.3 Correctness Verification
4.2 Release Assessment and Change
Management
Micro Process Work Products
Increment Verification Report
4. Certification
4.2 Statistical Testing and Certification
Executable System
Statistical Test Cases
Statistical Testing Report
Increment Certification Report
1. Management
1.4 Engineering Change
Engineering Change Log
Cleanroom extension:Certify the system using Cleanroom statistical certification.
7/16/2015
Cleanroom - updated
22
Booch extensions to Cleanroom
Booch Process
5. Maintenance
Cleanroom Process
(Regarded as a new increment. All
activities apply.)
Micro Process Work Products:
 Data Dictionary
 Key Abstraction Roles and
Responsibilities Specifications
 Object Diagrams
 State Transition Diagrams
 Interaction Diagrams
 Key Abstraction Relationship
Specifications
 CRC Cards
 Module Diagrams
 Process Diagrams
 Pseudocode
 Executable Software
Cleanroom extension: None.
Rationale: None.
7/16/2015
Cleanroom - updated
23
Schlaer-Mellor
extensions to Cleanroom
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
1. Analysis
1.1 Partition the System into Domains
1.1.1 Identify and Partition Domains of the Proposed System
Domain Chart
1.1.2 Prepare Domain Description
Domain Description
1.1.3 Prepare Domain Bridge Descriptions and Assumptions
Cross Domain Bridge Description
Bridge Assumptions
1.1.4 Prepare Project Matrix
Project Matrix
1.2 Analyze the Application Domain
1.2.1 Build an Object Information Model
Object Information Model
2. Specification
2.1 Requirements Analysis
Software Requirements
2.2 Function Specification
Function Specification
Cleanroom extension: Prepare a black box function specification for the system.
7/16/2015
Cleanroom - updated
25
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
1.2.2 Build the Object State Model
2.3 Usage Specification
Object State Model
Usage Specification
4.1 Usage Modeling and Test Planning
Usage Model(s)
Cleanroom extension: Develop an Object State Model for the system and analyze it as a
Markov Chain usage model.
Cleanroom extension: Use the object state models as Markov usage models in certification
testing of reusable components.
7/16/2015
Cleanroom - updated
26
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
1.2.3 Build the Process Model
Process Model
2.4 Architecture Specification
Software Architecture (state box portion)
Cleanroom extension: Prepare a top-level state box specification for the system.
Cleanroom extension: Examine the state box for transaction closure.
7/16/2015
Cleanroom - updated
27
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
1.2.4 Derive Models from the Three
Fundamental Models
1.2.4.1 Derive Peer Subsystem Level
Models
2.4 Architecture Specification
Software Architecture (clear box portion)
Subsystem Relationship Model
Subsystem Communication Model
Subsystem Access Model
Cleanroom extension: Prepare a top-level clear box design for the system.
Cleanroom extension: Ensure referential transparency by preparing a black box
specification for each subsystem.
7/16/2015
Cleanroom - updated
28
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
2.5 Increment Planning
Increment Construction Plan
Cleanroom extension: Prepare an incremental development plan for subsystem
development.
1.2.4.2 Derive Object Models that
Describe Aspects of the Subsystems
3.2 Increment Design
Increment Design
Object Communication Model
Event List
Object Access Model
State Process Table
Thread of Control Chart
Cleanroom extension: Use the work products in SM 1.2.4.2 to prepare a state box and
clear box for each subsystem.
Cleanroom extension: Ensure referential transparency in subsystem clear boxes, by
developing black box specifications for next-level subsystems (which may be atomic
objects).
Cleanroom extension: Continue the stepwise process of transaction specification (the
black box), state data definition (the state box), and procedural design (the clear box) for
each level of decomposition.
7/16/2015
Cleanroom - updated
29
Schlaer-Mellor extensions to
Cleanroom
Shlaer-Mellor Process
Cleanroom Process
1.3 Confirm the Analysis
1.3.1 Static Confirmation
1.3.2 Dynamic Simulation
1.4 External Specification
1.4.1 Define System Boundary
System Boundary Statement
1.5 Extract Requirements from the
Service Domains
3.3 Correctness Verification
Increment Verification Report
Service Domain Requirements
1.6 Analyze Service Domains
Information Model,
State Model
Process Model
Derived Models
Cleanroom extension: Use black box stimulus information as an input to ShlaerMellor Service Domain Analysis.
7/16/2015
Cleanroom - updated
30
Schlaer-Mellor extensions to
Cleanroom
7/16/2015
Cleanroom - updated
31
Schlaer-Mellor extensions to
Cleanroom
7/16/2015
Cleanroom - updated
32
Schlaer-Mellor extensions to
Cleanroom
7/16/2015
Cleanroom - updated
33
Conclusion
• Cleanroom techniques are current
• Cleanroom strength is in addressing combination
of management and technical concerns.
• Cleanroom can be applied to OO Methods
• Most people who have studied the relationship
between Cleanroom and object-orientation regard
the two as complementary, each with strengths
that can enhance the practice of the other.
7/16/2015
Cleanroom - updated
34