software engineering - pradžiaragaisis/psi_inf2017/se-10-process.pdf•tickit, itil, cobit....

54
SOFTWARE ENGINEERING SOFTWARE PROCESS Saulius Ragaišis [email protected]

Upload: phungkien

Post on 25-May-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

SOFTWARE ENGINEERING

SOFTWARE PROCESS

Saulius Ragaišis

[email protected]

CSC2008 SE “Software Processes”

Learning Objectives:

• Explain the concept of a software life cycle and provide an example, illustrating its phases including the deliverables that are produced.

• Select, with justification the software development models and process elements most appropriate for the development and maintenance of a diverse range of software products.

• Explain the role of process maturity models.

• Compare the traditional waterfall model to the incremental model, the agile model, and other appropriate models.

• For each of various software project scenarios, describe the project’s place in the software life cycle, identify the particular tasks that should be performed next, and identify measurements appropriate to those tasks.

WHY SOFTWARE PROCESS?

Software crisis

Standish Group, Extreme CHAOS. The Standish Group International, Inc., 2001. (more than 30.000 projects)

16%

27%

26%

28%

31%

40%

28%

23%

53%

33%

46%

49%

1994

1996

1998

2000

Succeded

Failed

Challenged

Product quality vs. Process quality

Software Process modelingSEI (Software Engineering Institute)ESI (European Software Institute)

• ISO 9000

• CMM, CMMI

• BOOTSTRAP

• SPICE, ISO 15504-TR, ISO 15504 + ISO 12207

• TickIT, ITIL, COBIT

Benefits of maturity

CMM level

Duration(months)

Efforts(man

months)

Defects Mediancost($M)

Mincost($M)

Maxcost($M)

1 30 600 61 5,5 1,8 100+

2 18.5 143 12 1,3 0,96 1.7

3 15 80 7 0,728 0,518 0,933

Data of 1.300 projects;large projects (about 200.000 LOC). Costs are calculated taking 110.000 $ for person year.

Benefits of maturity (2)

Costs of maturityMedian amount of time to move from one CMM maturity level

to the next:

MAIN CONCEPTS

Main Concepts

• (Software) Process: the entirety of activities performed to develop and/or maintain software products and/or provide software services.

• Process Area: the set of activities that, when performed collectively, are important for making software process improvement, i.e. activities are grouped according to contribution to process capability.

• (Named) Process: the set of activities grouped according their goals in software life cycle.

Main Concepts (2)

• Process Capability: the range of expected results that can be achieved by following a process, i.e. ability (probability) to achieve the goals of the process.

• Capability Level: the measure in the discrete scale of the achievement of process capability (improvement). Capability levels as a rule apply to a named process’ capability.

• Process Maturity: the measure in which the process is managed, defined, quantitatively managed and optimizing.

• Maturity Level: Degree of process improvement across a predefined set of process areas in which all goals within the set are attained. Maturity levels apply to an organization’s overall maturity.

Process Capability dependence on Maturity Level

Main Concepts (3)

Software Process Model: definition of the essential elements for assessment of process maturity and/or capability and process improvement.

Staged Software Process Model: provides the means for assessment of the organization’s overall maturity and the predefined sequence of improvements. Result of the assessment is maturity level of the organization (it’s software process). Examples: SW-CMM, CMMI Staged.

Continuous Software Process Model: provides the means for assessment of individual named processes’ (process areas’) capability. Result of the assessment is processes capability profile. Examples: SPICE, ISO/IEC 15504, CMMI Continuous.

Comparison of models: Staged

• Provides a predefined sequence of improvements (suitable for ~80% of organizations)

• Measurable steps of process improvement are big

• Provides a single rating for the organization so enabling comparison of organizations (very suitable for marketing purposes)

Comparison of models: Continuous

• Allows you to select the order of improvement that best meets the organization’s business objectives

• Improvement of single process could measured

• Provides rating for each named process (very suitable for process improvement purposes but it is complicated to compare organizations)

SOFTWARE PROCESS MODELS

Software Process models

• SW-CMM (Capability Maturity Model for Software)

• SE-CMM (Systems Engineering Capability Maturity Model)

• SA-CMM (Software Acquisition Capability Maturity Model)

• IPD-CMM (Integrated Product Development Capability Maturity Model) ...

CMM (Capability Maturity Model):

CMMI (Capability Maturity Model Integration):• CMMI-DEV (CMMI for Development)

• CMMI-ACQ (CMMI for Acquisition)

• CMMI-SVC (CMMI for Services) Current version 1.3.

SPICE (Software Process Improvement and Capability dEtermination)

ISO/IEC 15504: Information technology - Process assessment (first version: Software process assessment)

CMMI Staged Representation

Common features

Maturity levels

Process area 1 (PA1) Process area 2 (PA2) Process area n (PAn)

Specific goals Generic goals

Specific practicesCommitment to

perform

Ability to

perform

Activities

performed

Verifying

implementation

Generic practices

Measurement

and analysis

CMMI Maturity levelsML1: Initial

0 process areas

ML2: Managed 7 process areas

ML3: Defined 11 process areas

ML4: Quantitatively Managed 2 process areas

ML5: Optimizing 2 process areas

CMMI-DEV PA of maturity level 2

• CM - Configuration Management

• MA - Measurement and Analysis

• PMC - Project Monitoring and Control

• PP - Project Planning

• PPQA - Process and Product Quality Assurance

• REQM - Requirements Management

• SAM - Supplier Agreement Management

CMMI-DEV PA of maturity level 3

• DAR - Decision Analysis and Resolution• IPM - Integrated Project Management• OPD - Organizational Process Definition• OPF - Organizational Process Focus• OT - Organizational Training• PI - Product Integration• RD - Requirements Development.• RSKM - Risk Management.• TS - Technical Solution.• VAL - Validation.• VER - Verification.

CMMI-DEV PA of other maturity levels

Maturity Level 4 - Quantitatively Managed

• OPP - Organizational Process Performance

• QPM - Quantitative Project Management

Maturity Level 5 - Optimizing

• CAR - Causal Analysis and Resolution

• OPM - Organizational Performance Management

CMMI Continuous representation

Process area 1 (PA1) Process area 2 (PA2) Process area n (PAn)

Specific goals Generic goals

Specific practices Generic practicesCapability levels

CMMI Capability levels

• 0 - Incomplete

• 1 - Performed

• 2 - Managed

• 3 - Defined

• 4 - Quantitatively Managed

• 5 - Optimizing

Processes’ capability dependencies

5

4

3

2

1

0

Inžineriniai p. Vald. p. Org. p.

5

4

3

2

1

0

Inžineriniai p. Vald. p. Org. p.

5

4

3

2

1

0

Inžiner. p. Vald. p.

Org. p.

5

4

3

2

1

0

Inžin. p. Vald.p Org. p.

Process areas by categories

Category Process Areas

Project Management • Project Planning• Project Monitoring and Control• Supplier Agreement Management• Integrated Project Management• Integrated Supplier Management• Integrated Teaming• Risk Management • Quantitative Project Management

Support • Configuration Management• Process and Product Quality Assurance• Measurement and Analysis • Causal Analysis and Resolution• Decision Analysis and Resolution• Organizational Environment for Integration

Process areas by categories (2)

Category Process Areas

Engineering • Requirements Management• Requirements Development• Technical Solution• Product Integration• Verification• Validation

Process Management • Organizational Process Focus• Organizational Process Definition• Organizational Training• Organizational Process Performance• Organizational Innovation and Deployment

CMMI PA description structureRequired components

Expected components

Informative components

Specific goals

Generic goals

Specific practices

Generic practices

Generic practice elaborations

Notes, examples

Subpractices

Typical work products

Amplifications

References

CMMI generic goals and practices

GG 1 Achieve Specific GoalsGP 1.1 Perform Specific Practices

GG 2 Institutionalize a Managed ProcessGP 2.1 Establish an Organizational PolicyGP 2.2 Plan the ProcessGP 2.3 Provide ResourcesGP 2.4 Assign ResponsibilityGP 2.5 Train PeopleGP 2.6 Manage ConfigurationsGP 2.7 Identify and Involve Relevant StakeholdersGP 2.8 Monitor and Control the ProcessGP 2.9 Objectively Evaluate AdherenceGP 2.10 Review Status with Higher Level Management

CMMI generic goals and practices (2)

GG 3 Institutionalize a Defined ProcessGP 3.1 Establish a Defined ProcessGP 3.2 Collect Improvement Information

GG 4 Institutionalize a Quantitatively Managed Process

GP 4.1 Establish Quantitative Objectives for the ProcessGP 4.2 Stabilize Subprocess Performance

GG 5 Institutionalize an Optimizing ProcessGP 5.1 Ensure Continuous Process ImprovementGP 5.2 Correct Root Causes of Problems

CMMI target profiles and equivalent stagingName ML CL1 CL2 CL3 CL4 CL5

Requirements Management 2

Measurement and Analysis 2

Project Monitoring and Control 2

Project Planning 2

Process and Product Quality Assurance 2

Supplier Agreement Management 2

Configuration Management 2

Target

Profile

2

Decision Analysis and Resolution 3

Product Integration 3

Requirements Development 3

Technical Solution 3

Validation 3

Verification 3

Organizational Process Definition 3

Organizational Process Focus 3

Integrated Project Management 3

Risk Management 3

Organizational Training 3

Target

Profile

3

Organizational Process Performance 4

Quantitative Project Management 4

Target

Profile 4

Organizational Innovation and Deployment 5

Causal Analysis and Resolution 5

Target

Profile 5

ISO/IEC 15504 structurePart 1: Concepts and vocabulary (2004)

Part 2: Performing an assessment (2003)

Part 3: Guidance on performing an assessment (2004)

Part 4: Guidance on use for process improvement and process capability determination (2004)

Part 5: An exemplar Process Assessment Model (2012)

Part 6: An exemplar system life cycle process assessment model (ISO/IEC TR 15504-6:2008)

Part 7: Assessment of organizational maturity (ISO/IEC TR 15504-7:2008)

Part 8: An exemplar process assessment model for IT service management (ISO/IEC TS 15504-8:2012)

Part 9: Target process profiles (ISO/IEC TS 15504-9:2011)

Part 10: Safety extension (ISO/IEC TS 15504-10:2011)

ISO/IEC 15504-2 defines

• Measurement framework for process capability.

• Requirements for

– performing an assessment;

–Process Reference Models;

–Process Assessment Models;

– verifying conformity of process assessment.

Models conformant ISO/IEC 15504-2

• Process Reference Models:

– ISO/IEC 12207. Systems and software engineering — Software life cycle processes;

– ISO/IEC 15288. Systems and software engineering — System life cycle processes.

• Process Assessment Models:

– ISO/IEC 15504-5: An exemplar Process Assessment Model;

– ISO/IEC 15504-6: An exemplar system life cycle process assessment model.

ISO/IEC 15504 Assessment Model

Process dimension consists of processes and each process is defined in terms of its purpose and outcomes.

Capability dimension:Level 0 : Incomplete processLevel 1 : Performed process

PA1.1 Process performance

Level 2 : Managed processPA2.1 Performance management, PA2.2 Work product management

Level 3 : Established processPA3.1 Process definition, PA3.2 Process deployment

ISO/IEC 15504 Assessment Model (2)

Level 4 : Predictable processPA4.1 Process measurement, PA4.2 Process control

Level 5 : Optimizing process PA5.1 Process innovation, PA5.2 Process optimization

The process attributes are defined by stating theachievements to be implemented.

The achievement of PA1.1 is measured in terms ofprocess outcomes.

SOFTWARE PROCESS ASSESSMENT

AND IMPROVEMENT

Purposes of process assessment

• Capability/maturity determination

• Process improvements

Traps of process improvement

• Lack of Management Commitment

• Unrealistic Management Expectations

• Time-Stingy Project Leaders

• Stalling on Action Plan Implementation

• Achieving a CMM Level Becomes the Primary Goal

Traps of process improvement (2)

• Inadequate Training is Provided

• Expecting Defined Procedures to Make People Interchangeable

• Failing to Scale Formal Processes to Project Size

• Process Improvement Becomes a Game

• Process Assessments are Ineffective

Approach to SPI

Examine Organization’s

Needs

Analyze Results

and Derive

Action Plan

Sustain

Improvement

Gain

Implement

Improvement

Actions

Confirm the

Improvement

Monitor

Performance

Initiate

Process

Improvement

Perform

Process

Assessment

What we have learned?

• Main concepts of Software Process

• Overview of process capability/maturity models

• Approaches to process improvement

QUESTIONS?

APPENDIX

CMMI rating elements

The rating elements in the CMMI are the specific and generic goals.

The rating of goals is performed on the basis of evidence recorded against each specific and generic practice.

Therefore, the specific and generic practices are "indicators" of process performance and process capability in the terms of ISO 15504.

CMMI - ISO/IEC 15504 mapping scheme

ISO/IEC 15504

Process

PA1.1

Process Area

PA2-PA5

Outcome

Achievement

CMMI

Generic Practice

Specific Practice

CMMI - ISO/IEC 15504 mapping

Minimal „general” set of processes important for IT companies in Lithuania

Category Group ID Process

Primary life cycle processes

Engineering processes ENG.1. Requirements elicitation

ENG.4. Software requirements analysis

ENG.5. Software design

ENG.6. Software construction

ENG.7. Software integration

ENG.8. Software testing

ENG.11. Software installation

ENG.12. Programinės įrangos priežiūra

Support Configuration management processes

SUP.8 Configuration management

SUP.9 Problem resolution

Quality assurance processes

SUP.1. Quality assurance

Organizational Valdymo procesai MAN.3. Project o management

W. S. Humphrey: Process improvement methods

PSP process flow

PSP for graduates (1994)

PSP1Size estimating (PROBE)

Test report

PSP0Current processTime recording

Defect recordingDefects types standard

PSP3Cyclic

development

PSP2Design reviewCode review

PSP2.1Design templates

PSP1.1Time estimating (PROBE)

Task planningSchedule plaaning

PSP0.1Size measurementCoding standard

Size standard (LOC)Process Improvement proposals

Basicprocess

Planningprocess

Qualitymanagement

process

Cyclicprocess

PSP for software engineers (2005)

PSP1

Size estimating

Testing report

PSP0

Current process

Basic measures

TSP

TeamingRisk management

Project planning and monitoring

PSP2

Code review

Design review

PSP2.1

Design templates

PSP1.1

Task planning

Schedule planning

PSP0.1Coding standard

Process improvement proposals

Size measurement

Process discipline and measurement

Estimating and

planning

Quality management

and design

Team process

TSPi: structure of cycles