software engineering - vuragaisis/psi_inf2012/se-10-process.pdf · csc2008 se “software...
TRANSCRIPT
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 modeling SEI (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 Median cost ($M)
Min cost ($M)
Max cost ($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 maturity Median 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 levels ML1: 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 structure Required 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 Goals GP 1.1 Perform Specific Practices
GG 2 Institutionalize a Managed Process GP 2.1 Establish an Organizational Policy GP 2.2 Plan the Process GP 2.3 Provide Resources GP 2.4 Assign Responsibility GP 2.5 Train People GP 2.6 Manage Configurations GP 2.7 Identify and Involve Relevant Stakeholders GP 2.8 Monitor and Control the Process GP 2.9 Objectively Evaluate Adherence GP 2.10 Review Status with Higher Level Management
CMMI generic goals and practices (2)
GG 3 Institutionalize a Defined Process GP 3.1 Establish a Defined Process GP 3.2 Collect Improvement Information
GG 4 Institutionalize a Quantitatively Managed Process
GP 4.1 Establish Quantitative Objectives for the Process GP 4.2 Stabilize Subprocess Performance
GG 5 Institutionalize an Optimizing Process GP 5.1 Ensure Continuous Process Improvement GP 5.2 Correct Root Causes of Problems
CMMI target profiles and equivalent staging Name 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 structure Part 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 process Level 1 : Performed process PA1.1 Process performance
Level 2 : Managed process PA2.1 Performance management, PA2.2 Work product management
Level 3 : Established process PA3.1 Process definition, PA3.2 Process deployment
ISO/IEC 15504 Assessment Model (2)
Level 4 : Predictable process PA4.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 the achievements to be implemented.
The achievement of PA1.1 is measured in terms of process 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
iTSP: structure of cycles