CLEANROOM: AN UPDATED VIEW

31
CLEANROOM: AN UPDATED VIEW EE 599 Software V&V LCdr Rob Burch 6 May 98

description

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*. - PowerPoint PPT Presentation

Transcript of CLEANROOM: AN UPDATED VIEW

Page 1: CLEANROOM: AN UPDATED VIEW

CLEANROOM: AN UPDATED VIEW

EE 599 Software V&V

LCdr Rob Burch

6 May 98

Page 2: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 2

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*

Page 3: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 3

Cleanroom Goal: Prevent software defects by use of

rigorous precise methods

Page 4: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 4

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

Page 5: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 5

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

Page 6: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 6

ESSENTIALS - Amplified

• Cleanroom Incremental Development• Cleanroom Specification• Cleanroom Design and Verification• Cleanroom Reliability Testing

Page 7: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 7

IBM's Cleanroom Software Technology Center

IBM no longer provides Cleanroom SoftwareEngineering services.For more information on Cleanroom, please see our Cleanroom Software Engineering Web page or contactIBM by e-mail or phone:

[email protected]@us.ibm.com301-803-2763

IBM & Cleanroom

Page 8: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 8

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

Page 9: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 10

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

Page 10: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 12

Cleanroom - a timeline: updated

• 1996 Integrating Cleanroom with OO methods• 1997 Extensions to Cleanroom

– Booch

– Objectory

– Shlaer-Mellor

Page 11: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 13

SET - Cleanroom

• Process Definition• Precise Software Specification• Rigorous, Structured Development• Indepnedent Testing• Prodcut Certification• Quantitative Management

Page 12: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 15

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

Page 13: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 16

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

Page 14: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 17

Booch extensions to Cleanroom

Page 15: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 18

Booch extensions to Cleanroom

Booch Process Cleanroom Process1. Conceptualization

Executable Prototype Risk Assessment

1.1 Project Planning Software Development Plan:

Risk Analysis Plan

2.5 Increment Planning Increment Construction 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 theresults of Booch Risk Assessment.

Page 16: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 19

Booch extensions to Cleanroom

Booch Process Cleanroom Process2. Analysis2.1 Domain AnalysisDomain Model

2.2 Scenario PlanningSystem Context DescriptionScenariosRevised Risk AssessmentMicro Process Work Products

2. Specification2.1 Requirements AnalysisSoftware Requirements

2.3 Usage SpecificationUsage Specification

2.2 Function SpecificationFunction Specification

Cleanroom extension: Prepare a black box function specification for the system.

Page 17: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 20

Booch extensions to Cleanroom

Booch Process Cleanroom Process3. Design3.1 Architectural PlanningArchitecture DescriptionExecutable and Baselined ArchitectureMicro Process Work Products

2.4 Architecture SpecificationSoftware Architecture

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 boxspecification for each subsystem.

Page 18: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 21

Booch extensions to Cleanroom

Booch Process Cleanroom Process3.2 Tactical DesignDescription of Common Tactical PoliciesMicro Process Work Products

2.4 Architecture SpecificationSoftware Architecture

3.3 Release PlanningRelease PlanRevised Risk Assessment

2.5 Increment PlanningI ncrement Construction Plan

Cleanroom extension: Update the incremental development plan (that was created as anaction plan for the initial Booch Risk Assessment) as the Booch Release Plan andRevised Risk Assessment.

Test CriteriaMicro Process Work Products

4.1 Usage Modeling and Test PlanningUsage Model(s)Increment Test Plan

Cleanroom extension: Develop a plan for statistical usage testing.

Page 19: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 22

Booch extensions to Cleanroom

Booch Process Cleanroom Process4. Evolution4.1 Application of the MicroProcessExecutable ReleasesBehavioral PrototypesMicro Process Work ProductsSystem and User DocumentationQuality Assurance Results

4.2 Release Assessment and ChangeManagementMicro Process Work Products

3. Development3.1 Software ReengineeringReengineering PlanReengineered Software Specification

3.2 Increment DesignIncrement Design

3.3 Correctness VerificationIncrement Verification Report

4. Certification4.2 Statistical Testing and CertificationExecutable SystemStatistical Test CasesStatistical Testing ReportIncrement Certification Report

1. Management1.4 Engineering ChangeEngineering Change Log

Cleanroom extension:Certify the system using Cleanroom statistical certification.

Page 20: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 23

Booch extensions to Cleanroom

Booch Process Cleanroom Process5. Maintenance (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 RelationshipSpecifications

CRC Cards Module Diagrams Process Diagrams

Pseudocode Executable Software

Cleanroom extension: None.Rationale: None.

Page 21: CLEANROOM: AN UPDATED VIEW

Schlaer-Mellor extensions to Cleanroom

Page 22: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 25

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1. Analysis1.1 Partition the System into Domains1.1.1 Identify and Partition Domains of the Proposed SystemDomain Chart

1.1.2 Prepare Domain DescriptionDomain Description

1.1.3 Prepare Domain Bridge Descriptions and AssumptionsCross Domain Bridge DescriptionBridge Assumptions

1.1.4 Prepare Project MatrixProject Matrix

1.2 Analyze the Application Domain1.2.1 Build an Object Information ModelObject Information Model

2. Specification2.1 Requirements AnalysisSoftware Requirements

2.2 Function SpecificationFunction Specification

Cleanroom extension: Prepare a black box function specification for the system.

Page 23: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 26

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1.2.2 Build the Object State ModelObject State Model

2.3 Usage SpecificationUsage Specification

4.1 Usage Modeling and Test PlanningUsage Model(s)

Cleanroom extension: Develop an Object State Model for the system and analyze it as aMarkov Chain usage model.

Cleanroom extension: Use the object state models as Markov usage models in certificationtesting of reusable components.

Page 24: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 27

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1.2.3 Build the Process ModelProcess Model

2.4 Architecture SpecificationSoftware 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.

Page 25: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 28

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1.2.4 Derive Models from the ThreeFundamental Models1.2.4.1 Derive Peer Subsystem LevelModelsSubsystem Relationship ModelSubsystem Communication ModelSubsystem Access Model

2.4 Architecture SpecificationSoftware Architecture (clear box portion)

Cleanroom extension: Prepare a top-level clear box design for the system.

Cleanroom extension: Ensure referential transparency by preparing a black boxspecification for each subsystem.

Page 26: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 29

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process2.5 Increment PlanningIncrement Construction Plan

Cleanroom extension: Prepare an incremental development plan for subsystemdevelopment.

1.2.4.2 Derive Object Models thatDescribe Aspects of the SubsystemsObject Communication ModelEvent ListObject Access ModelState Process TableThread of Control Chart

3.2 Increment DesignIncrement Design

Cleanroom extension: Use the work products in SM 1.2.4.2 to prepare a state box andclear box for each subsystem.

Cleanroom extension: Ensure referential transparency in subsystem clear boxes, bydeveloping black box specifications for next-level subsystems (which may be atomicobjects).

Cleanroom extension: Continue the stepwise process of transaction specification (theblack box), state data definition (the state box), and procedural design (the clear box) foreach level of decomposition.

Page 27: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 30

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1.3 Confirm the Analysis1.3.1 Static Confirmation1.3.2 Dynamic Simulation1.4 External Specification1.4.1 Define System BoundarySystem Boundary Statement

1.5 Extract Requirements from theService DomainsService Domain Requirements

1.6 Analyze Service DomainsInformation Model,State ModelProcess ModelDerived Models

3.3 Correctness VerificationIncrement Verification Report

Cleanroom extension: Use black box stimulus information as an input to Shlaer-Mellor Service Domain Analysis.

Page 28: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 31

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process2. Design2.1 Specify the ArchitecturalDomainClass DiagramInheritance diagramDependency diagramClass structure chart

Cleanroom extension : Use the box structure hierarchy developed in the analysis phaseas the system architecture.

2.2 Build ArchitecturalComponentsMechanismsStructures

3. Implementation3.1 Translate the OOA ModelsPopulated task archetypesPopulated module archetypes

Cleanroom extension: Implement all clear boxes in the target language.

Page 29: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 32

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process4. Certification4.1 Usage Modeling and Test PlanningUsage Model(s)Increment Test Plan

4.2 Statistical Testing and CertificationExecutable SystemStatistical Test CasesStatistical Testing ReportIncrement Certification Report

Cleanroom extension: Certify the system using Cleanroom statistical certification.

Page 30: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 33

Schlaer-Mellor extensions to Cleanroom

Shlaer-Mellor Process Cleanroom Process1.3 Performance ImprovementPerformance Improvement Plan

Cleanroom extension: Review performance in each increment for lessons learned.

Page 31: CLEANROOM: AN UPDATED VIEW

04/19/23 Cleanroom - updated 34

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.