Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement...

55
Plan project Integrate & test system Analyze requirements Design Maintain Test units Implement Software Engineering Roadmap: Chapter 1 Focus Identify corpor- ate practices - assess capability - specify standards - e.g. CMM level Developmen t phases from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Transcript of Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement...

Page 1: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Plan project

Integrate & test system

Analyze requirements

Design

Maintain

Test unitsImplement

Software Engineering Roadmap: Chapter 1 Focus

Identify corpor-ate practices- assess capability- specify standards- e.g. CMM level

Development phases

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 2: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

next chapter: Plan development process

Plan configuration management- how to manage documents & code- document: SCMP

Plan quality assurance - how to ensure quality- document: SQAP

Integrate & test system

Analyze requirements

Design

Maintain

Test unitsImplement

Software Engineering Roadmap:

Chapter 1 Focus

Identify corpor-ate practices- assess capability- specify standards- e.g. CMM level

Development phases

Plan verification & validation - verify the product satisfies requirements- validate each phase by showing it succeeded document: SVVP

Plan project

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 3: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

• Stand-alone– residing on a single computer – not connected to other software or hardware– e.g., word processor

• Embedded– part of unique application involving hardware– e.g., automobile controller

• Realtime– functions must execute within small time limit

• typically microseconds– e.g., radar software

• Network– consist of parts interacting across a network – e.g., Web-based video game

Some Application Types

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 4: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Typical Project Roadmap

1. Understand nature & scope of proposed product

2. Select the development process, and create a plan-- section 4 and chapter 2

4. Design and build the product -- chapters 5, 6, and 7

6. Deliver and maintain the product -- chapter 10

3. Gather requirements -- chapters 3 and 4

5. Test the product -- chapters 8 and 9

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 5: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

3. Expectations for process, project, product and people

Page 6: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Five Key Expectations (Humphrey)

Influencedby people

Used forprocess development

Part oftheproject

Aspectof the product

3. Keep all work visible

5. Measure quality

4. A. Design onlyagainst requirements

B. Programonly against designsC. Test only against

requirements and designs

1. Predetermine quantitative quality goals

2. Accumulate data for subsequent use

Page 7: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

The Waterfall Model

Requirementsanalysis

Design

Implementation

Integration

Produces … specification (text)

... diagrams & text

... code & comments

... entire code

Test... test report, including defect descriptions

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 8: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

More Detailed Waterfall Version

Design

Implementation& unit testing

Integration

System testing

Conceptanalysis

Analysis

MaintenanceAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 9: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

completetargeted

requirements

Step n:Analyzerequirements

Step n+3: Test

Step n+2: Implement

Step n+1: Design

Product:classmodels +

Product: requirementsspecifications

Product: code + Product: test results +

Spiral Development

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 10: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Iteration No.

Incremental Development

Analyzerequirements

Test whole

Implement

Design

Test units

Integrate

1 2 3 867 868

Update SRS3

Update SDD2

Update source code

Update Test documentation

Update SPMP1

1 Software Project Mangement Plan (chapter 2); 2 Software Design Document (chapter 5); 3 Software Requirements Specification (chapter 3);

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 11: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

The Unified Software Development Process: Classification of Iterations

• Inception iterations: preliminary interaction with stakeholders– primarily customer– users– financial backers etc.

• Elaboration iterations : finalization of what’s wanted and needed; set architecture baseline

• Construction iterations : results in initial operational capability

• Transition iterations : completes product release Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 12: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Requirements

Analysis

USDP vs. Standard Terminology 2 of 2

Design

Implementation

Test

Requirements analysis

Implementation

USDP Terminology

Classical Terminology

Integration

Design

Test

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 13: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Elaboration

Unified Process Matrix

Inception Construction Transition

Requirements

Analysis

Jacobson et al: USDP

Prelim.iterations

Iter.#1

Iter.#n

Iter.#n+1

Iter.#m

Iter.#m+1

Iter.#k

….. …..

Design

Implemen-tation

Test

..

Amount of effort expendedon the requirements phaseduring the first Constructioniteration

Page 14: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

The Six USDP Models (Views of the Application)

Use-casemodel

Analysismodel

Designmodel

Deploymentmodel

Implementationmodel

Testmodel

Graphics reproduced with permission from Corel.

Page 15: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Identify the Process You Will Use

1. Decide which of waterfall, spiral, and incremental processes is appropriate.Usually a spiral for a semester project. Combining parts is OK e.g. start with spiral, end with

incremental2. Decide how many iterations.

Usually two for a semester project (there are many artifacts to coordinate at the end of each iteration).

Three provides lots of practice -- but this is a challenge; make the first increment as minor as possible

Three promotes the collection and use of metric data -- use metric data collected from each iteration on next.

3. Rough out a weekly schedule. Coordinate with course assignments. (The next chapter discusses scheduling.)

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 16: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

5. Documentation

Page 17: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Undocumented Code

int a( int i, char c ){

if( c== “m” )if( i< 1000 )

return 0;else

if( i< 10000 ) return 500;

elsereturn 1200;

elsereturn 1300;

}

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 18: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Somewhat Documented Code

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

int tax( int anEarning, char aStatus )

{

if( aStatus == ‘m’ )

if( anEarning < 1000 )

return 0; // no tax for married, < $1000

else

if( anEarning < 10000 )

return 500; // married, $1000-$10000

else

return 1200; // married, >=$10000

// If not “married”, apply single tax rate of $1300 regardless

else

return 1300;

}

Page 19: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Documented Code/**

* This method implements requirement 4.3:

* “State tax effective 9/1/98 -12/31/99”

* @author Eric J. Braude

* @version 2.3.4 (8/6/98)

* @param anEarning: earnings 9/1/98 thru 12/31/99

* @param aStatus: ‘m’ signifies “married” (anything

* else designates unmarried)

*/

int tax( int anEarning, char aStatus )

{

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 20: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Project Documentation

SCMPsoftware configuration management plan

SPMPsoftware project management planProject status

Configuration

SQAPsoftware quality assurance plan Quality assurance

SVVPsoftware validation & verification plan Verification & validation

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 21: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Project Documentation

SRSsoftware requirements specifications

STDsoftware test documention

SCMPsoftware configuration management plan

SDDsoftware design document

SPMPsoftware project management plan

Source Code

Project status

Configuration

Testing

Requirements

Design

Code

User’s manualOperation

SQAPsoftware quality assurance planQuality assurance

SVVPsoftware validation & verification planVerification & validation

Customer-orientedDeveloper-orientedArchitectureDetailed design

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 22: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

1. Document the way documents & code are accessed– otherwise, chaos results – “Software Configuration Management Plan*” -- section tbd

2. Specify who will do what, and when they will do it– “Software Project Management Plan*” -- chapter 2

3. Document what is to be implemented – for yourself, your customer, and your team – “Software Requirements Specification*” -- chapters 3 and 4

4. Document the design of the application– i.e., prior to programming– “Software Design Document*” -- chapters 5 and 6

5. Write and document code– the “code base” -- chapter 7

6. Document the tests you perform– so that they can be re-run, extended etc.– “Software Test Documentation*” -- chapters 8 and 9

Identify Your Documentation Needs

* the IEEE standard,which can be used toorganize this documentation

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 23: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

6. Quality

Page 24: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

QAInvolvement

3. Plan4. Design and build5. Deliver & main-tain the product

1. Specify how to manageproject documents 2. Identify process

QA

1. QA Developsand/or reviews configurationmanagementplans, standards ...

3. QA developsand/or reviews provision for QA activities

2. QA reviews process forconformance toorganizational policy

5. QA reviews,inspects & tests

4. QA reviews,inspects & tests

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 25: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Principle of Inspection

AUTHORS CAN USUALLY

REPAIR DEFECTS

THAT THEY RECOGNIZE

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 26: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

OVERVIEW

CAUSAL

ANALYSIS

4. REWORK

5. FOLLOW-UPInspection Process & Example Times

Non-nominalprocess

6. IMPROVE PROCESS

2. PREPARATION

3. INSPECTION

Nominal process 1. PLANNING

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 27: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Time/Costs per 100 LoC*-- one company’s estimates

Planning 1 hr (1 person)

[ Overview 1 hr (3-5) ]

Preparation 1 hr (2-4 people)

Inspection meeting 1 hr (3-5 people)

Rework 1 hr (1 person)

[ Analysis 1 hr (3-5) ]

Total: approx. 7 - 21 person-hours

* lines of non-commented codeAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 28: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Hours Per Defect: One estimate

… at inspection … at integration

time time

Hours to ..

.. detect 0.7 to 2 0.2 to 10

.. repair 0.3 to 1.2 9+

Total 1.0 to 3.2 9.2 to 19+

If defect found ...

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 29: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Prepare For & Conduct Inspections

1. Build inspections into the project schedule– plan to inspect all phases, starting with requirements– allow for preparation (time consuming!) & meeting time

2. Prepare for collection of inspection data– include # defects per work unit (e.g., KLOC), time spent– develop forms: include description, severity and type– decide who, where, how to store and use the metric data

• default: appoint a single person to be responsible• failure to decide usually results in discarding the data

3. Assign roles to participants– Three adequate (author; moderator/recorder; reader)– Two far better than none (author; inspector)

4. Ensure every participant prepares – bring defects pre-entered on forms to inspection meeting

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 30: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

IEEE 730-1989 Software Quality Assurance Plans

Table of Contents

1. Purpose2. Referenced documents3. Management 3.1 Organization 3.2 Tasks 3.3 Responsibilities4. Documentation 4.1 Purpose 4.2 Minimum documen- tation requirements 4.3 Other5. Standards, practices, conventions and metrics 5.1 Purpose 5.2 Content

Page 31: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

IEEE 730-1989 Software Quality Assurance Plans Table of Contents

1. Purpose2. Referenced documents3. Management 3.1 Organization 3.2 Tasks 3.3 Responsibilities4. Documentation 4.1 Purpose 4.2 Minimum documen- tation requirements 4.3 Other5. Standards, practices, conventions and metrics 5.1 Purpose 5.2 Content

6. Reviews and audits 6.1 Purpose 6.2 Minimum requirements 6.2.1 Software requirements review 6.2.2 Preliminary design review 6.2.3 Critical design review 6.2.4 SVVP review 6.2.5 Functional audit 6.2.6 Physical audit 6.2.7 In-process audits 6.2.8 Managerial review 6.2.9 SCMP review 6.2.10 Post mortem review 6.3 Other7. - 15. -- see next chapter

Page 32: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Verification:are we building the thing right?

Validation:are we building the right thing?

Meaning of “V&V” (Boehm)

Graphics reproduced with permission from Corel.

Page 33: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

IEEE 1012-1986 Software Verification & validation Plans Table of Contents (Reaffirmed 1992)

1. Purpose2. Referenced documents3. Definitions4. V&V overview 4.1 Organization 4.2 Master schedule 4.3 Resource summary 4.4 Responsibilities 4.5 Tools, techniques & methodologies5. Lifecycle V&V 5.1 Management of V&V 5.2 Concept phase V&V 5.3 Requirements phase V&V 5.4 Design phase V&V 5.5 Implementation phase V&V

Page 34: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

IEEE 1012-1986 Software Verification & validation Plans Table of Contents (Reaffirmed 1992)

1. Purpose2. Referenced documents3. Definitions4. V&V overview 4.1 Organization 4.2 Master schedule 4.3 Resource summary 4.4 Responsibilities 4.5 Tools, techniques & methodologies5. Lifecycle V&V 5.1 Management of V&V 5.2 Concept phase V&V 5.3 Requirements phase V&V 5.4 Design phase V&V 5.5 Implementation phase V&V

5.3 Test phase V&V 5.4 Installation & checkout phase V&V 5.5 Operation & maintenance phase V&V6. Software V&V reporting 6.1 Required reports 6.2 Optional reports 7. V&V administrative procedures 7.1 Anomaly reporting & resolution 7.2 Task iteration policy 7.3 Deviation policy 7.4 Standards, practices & conventions

Page 35: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Produce a Quality Product

1. Quantify your quality goalsminimum: number of defects per KLOC

team: # defective requirements; # classes missing from design;

# defects in testing; # defects found in operation.

personal: apply # defects to code, compile, unit test separately

2. Build inspections and reviews into the schedule(see scheduling, next chapter)

follow the inspection procedure (see figure 1.27 on page ??)

3. Document your quality goals and proceduresuse a documentation standard to avoid missing issues

SQAP (see case study for example); If time allows: SVVP

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 36: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

7. Documentation management

Page 37: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Example of Hyperlinked Documentation Set

(with Dynamic Content shown)

SRSsoftware requirements specifications

STPsoftware test plan

SCMPsoftware configuration management plan

SDDsoftware design document

SPMPsoftware project management plan

Source Code

References to all other documents

Projectstatus*

Configuration*

Testresults*

Direction of hyperlink

*Dynamic component

Updates*

Updates*Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 38: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Configuration Management Requirements

• Procedure to identify CI's

• Locking – to prevent more than one person working on a

CI at one time

• Authorization to check out – optional

• Check-in procedure– authorization process

– involves testing etc.

• Historical record of prior groupings of consistent CI’s

Graphics reproduced with permission from Corel.Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 39: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

IEEE 828-1990 SCMP Table of Contents 3.2 Configuration control

3.2.1 Requesting changes 3.2.2 Evaluating changes 3.2.3 Approving or dis-

approving changes 3.2.4 Implementing

changes 3.3 Configuration status accounting 3.4 Configuration audits & reviews 3.5 Interface control 3.6 Subcontractor / vendor control4. SCM schedules5. SCM resources6. SCM plan maintenance

1. Introduction2. SCM management 2.1 Organization 2.2 SCM responsibilities 2.3 Applicable policies, directives & procedures3. SCM activities 3.1 Configuration identification 3.1.1 Identifying configu- ration items 3.1.2 Naming configu- ration items 3.1.3 Acquiring configu- ration itemsAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 40: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Plan Configuration Management

1. Roughly sketch out your SCMPDetermine procedures for making changes

Omit tool references unless already identified one

See the case study for an example

2. Specify what you need from a CM toolFor class use, maybe only locking and backup

3. Evaluate affordable tools against your needs and budgetCommercial tools are in wide use

For class use, try free document storage web sites; try simple method of checking out e.g. renaming

5. Finalize your SCMPAdapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 41: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

8. Introduction to capability assessment

Page 42: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

The PSP Evolution (Humphrey)

(Adapted from [Hu1] )

PSP0Current personal process

Basic measurements

PSP0.1Coding standards

Process improvement proposalSize measurement

PSP1Size estimation

Test report

PSP1.1Task planning

Schedule planning

PSP2Code reviews

Design reviews

PSP2.1Design templates

PSP3Cyclic development

Additionalcapability at the same level

Skills addedto prior stage

100’s of lines

1000’s of lines

Page 43: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

TSP Objectives 1 (Humphrey)

• Build self-directed teams– 3-20 engineers– establish own goals – establish own process and plans– track work

• Show managers how to manage teams– coach– motivate– sustain peak performance

Graphics reproduced with permission from Corel.

Page 44: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

TSP Objectives 2 (Humphrey)

• Accelerate CMM improvement

– make CMM 5 “normal”

• “Provide improvement guidelines to

high-maturity organizations”

• “Facilitate university teaching of

industrial-grade teams”

Page 45: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

The Capability Maturity Model(CMM)

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 46: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

1. Initial (Software Engineering Institute)

Process: undefined, ad hoc

Result: outcome depends on individuals

Lacking: any reasonable process

Page 47: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

2. Repeatable (Software Engineering Institute)

1. INITIAL Process undefined, ad hoc, depends on individuals

Processtracks documents, cost, schedule, functionality (after fact)

Resultrepeatable only on similar projects

Lacking: complete process

Page 48: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

3. Defined (Software Engineering Institute)

2. REPEATABLE Basic project management totrack cost & schedule, repeatable on similar projects

Processdocumented, standardized, tailorable

Resultconsistency

Lacking: predictable outcomes

Page 49: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

4. Managed (Software Engineering Institute)

3. DEFINED Consistent: Documented, standardized, tailorable

Processdetailed measurement; control

Resultprocess and products with quantified quality predictability

Lacking mechanism for process improvement

Page 50: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

5 Optimized (Software Engineering Institute)

4. MANAGED Predictable: process & products measured

ProcessContinual process improvement

through quantitative feedback; Extensible scopeInnovative ideas and technologies

Graphics reproduced with permission from Corel.

Page 51: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Level Focus Key Process Area PSP TSP

Requirements management X

Software project planning X X

Software project tracking X X

Software quality assurance X

Software configurationmanagement

X2. Repeatable

Projectmanagement

Software subcontract managementGet permission

Relating PSP, TSP & CMM (Humphrey)

Page 52: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

CMM Level Focus Key Process Area PSP TSPDefect prevention X X

Technology change management X X5. OptimizingContinuousprocessimprovement Process change management X X

Quantitative process management X X

4. ManagedProduct &processquality Software quality management X X

Organization process focus X X

Organization process definition X X

Training programIntegrated software management X X

Software product engineering X X

Inter-group coordination X

3. Defined

Engineeringprocess

Peer reviews X X

Requirements management X

Software project planning X X

Software project tracking X X

Software quality assurance X

Software configurationmanagement

X2. Repeatable

Projectmanagement

Software subcontract managementGet permission

Relating PSP, TSP &

CMM (Humphrey)

Page 53: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

9. Summary

Page 54: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

• Software engineering an extensive challenge

• Major process models: waterfall; spiral; incremental

• Capability frameworks: CMM; TSP; PSP

• Quality is the professional difference– metrics to define

– inspection throughout

– rigorous testing

– include continuous self-improvement process

• Documentation: SCMP, SVVP, SQAP, SPMP, SRS, SDD, STP, Code, User’s manual

Summary

Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

Page 55: Plan project Integrate & test system Analyze requirements Design Maintain Test unitsImplement Software Engineering Roadmap: Chapter 1 Focus Identify corpor-

Case Study: SCMP