Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited. Coming up: A Layered Technology 1 A Layered Technology Software Engineering tools methods process model a “quality” focus Coming up: A Process Framework 2 A Process Framework Process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities Coming up: Framework Activities 3 Framework Activities Communication Planning Modeling Construction Coming up: Umbrella Activities Analysis of requirements Design Code generation Testing Deployment 4 Umbrella Activities Coming up: The Process Model: Adaptability Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management 5 The Process Model: Adaptability the framework activities will always be applied on every project ... BUT the tasks (and degree of rigor) for each activity will vary based on: Coming up: The CMMI the type of project characteristics of the project common sense judgment; concurrence of the project team 6 The CMMI The CMMI defines each process area in terms of “specific goals” and the “specific practices” required to achieve these goals. Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective. Specific practices refine a goal into a set of processrelated activities. PP - project planning REQM - Requirements Mgmt MA - Measurement and Analysis CM - Configuration Mgmt PPQA - Process and Product QA Coming up: The CMMI 7 The CMMI Level 0 - Incomplete - process area is either not performed or does not achieve all specified goals. Level 1 - Performed - All specific CMMI defined goals of the process area have been satisfied Level 2 - Managed - All work conforms to an organizationally defined policy; all people doing the work have access to adequate resources to get the job done; work tasks are monitored, controlled and reviewed, evaluated for adherence to the process description Level 3 - Defined - process is tailored according to organization’s tailoring guidelines. Work products, measurements, etc… are contributed to the organizational process assets Level 4 - Quantitatively managed - Process area uses quantitative measurement to control and improve the process area. Quantitative objectives for quality and performance are established and used. Level 5 - Optimized - Process area adapted and optimized to meet changing customer’s needs and continually improve the process area Coming up: Process Patterns 8 Process Assessment The process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering. Many different assessment options are available: SCAMPI CBA IPI SPICE ISO 9001:2000 Coming up: Assessment and Improvement 9 Assessment and Improvement Software Process is examined by identifies modifications to identifies capabilities and risk of Software Process Assessment Software Process Improvement leads to leads to Capability Determination motivates Coming up: Personal Software Process (PSP) 10 Personal Software Process (PSP) Recommends five framework activities: Planning High-level design High-level design review Development Postmortem stresses the need for each software engineer to identify errors early and as important, to understand the types of errors Defect Removal (From Watt’s Humphrey, The Personal Software Process) Coming up: Team Software Process (TSP) 11 Team Software Process (TSP) Each project is “launched” using a “script” that defines the tasks to be accomplished Teams are self-directed Measurement is encouraged Measures are analyzed with the intent of improving the team process Coming up: Team Software Process (TSP) 12 Team Software Process (TSP) Launch Script Review project objectives with management and agree on and document team goals Establish team roles Define the team’s development process Make a quality plan and set quality targets Plan for needed support facilities Produce an overall development strategy Make a development plan for the entire project Make detailed plans for each developer in the next stage Rebalance the workload to minimize overall schedule Assess project risks and assign tracking responsibility to each Coming up: The Primary Goal of Any Software Process: High Quality 13 The Primary Goal of Any Software Process: High Quality Remember: High quality = project timeliness Why? Less rework! Coming up: CMMI Case Study 14 CMMI Case Study Lets review the CMMI Case study…. Coming up: CMMI Case Study 15