SOFTWARE ENGINEERING SOFTWARE PROCESS Saulius Ragaišis saulius.ragaisis@mif.vu.lt
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 2000 28% 23% 49% 1998 26% 28% 46% Succeded Failed 1996 27% 40% 33% Challenged 1994 16% 31% 53% Standish Group, Extreme CHAOS. The Standish Group International, Inc., 2001. (more than 30.000 projects)
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 CMM (Capability Maturity Model): 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)... 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 Maturity levels Process area 1 (PA1) Process area 2 (PA2) Process area n (PAn) Specific goals Generic goals Common features Specific practices Commitment to perform Ability to perform Activities performed Measurement and analysis Verifying implementation Generic practices
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 Capability levels Generic practices
CMMI Capability levels 0 - Incomplete 1 - Performed 2 - Managed 3 - Defined 4 - Quantitatively Managed 5 - Optimizing
Processes capability dependencies 5 5 4 4 3 3 2 2 1 1 0 Vald. p. Inžineriniai p. Org. p. 0 Vald. p. Inžineriniai p. Org. p. 5 5 4 4 3 3 2 2 1 1 0 Vald. p. Inžiner. p. Org. p. 0 Vald.p Inžin. 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 Specific goals Generic goals Expected components Specific practices Generic practices Informative components Typical work products Subpractices Amplifications Generic practice elaborations Notes, examples 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 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 Organizational Process Performance 4 Quantitative Project Management 4 Organizational Innovation and Deployment 5 Causal Analysis and Resolution 5 Target Profile 2 Target Profile 3 Target Profile 4 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 Initiate Process Improvement Perform Process Assessment Monitor Performance Analyze Results and Derive Action Plan Sustain Improvement Gain Confirm the Improvement Implement Improvement Actions
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 CMMI Process Process Area PA1.1 Specific Practice Outcome PA2-PA5 Generic Practice Achievement
CMMI - ISO/IEC 15504 mapping
Minimal general set of processes important for IT companies in Lithuania Category Group ID Process Primary life cycle processes Support Engineering processes ENG.1. Requirements elicitation Configuration management processes Quality assurance processes ENG.4. ENG.5. ENG.6. ENG.7. ENG.8. ENG.11. ENG.12. SUP.8 SUP.9 SUP.1. Software requirements analysis Software design Software construction Software integration Software testing Software installation Programinės įrangos priežiūra Configuration management Problem resolution Quality assurance Organizational Valdymo procesai MAN.3. Project o management
W. S. Humphrey: Process improvement methods
PSP process flow
PSP for graduates (1994) Cyclic process PSP3 Cyclic development Quality management process PSP2 Design review Code review PSP2.1 Design templates Planning process PSP1 Size estimating (PROBE) Test report PSP1.1 Time estimating (PROBE) Task planning Schedule plaaning Basic process PSP0 Current process Time recording Defect recording Defects types standard PSP0.1 Size measurement Coding standard Size standard (LOC) Process Improvement proposals
PSP for software engineers (2005) Team process TSP Teaming Risk management Project planning and monitoring Quality management and design PSP2 Code review Design review PSP2.1 Design templates Estimating and planning PSP1 Size estimating Testing report PSP1.1 Task planning Schedule planning Process discipline and measurement PSP0 Current process Basic measures PSP0.1 Coding standard Process improvement proposals Size measurement
TSPi: structure of cycles