Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.

Similar presentations


Presentation on theme: "Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc."— Presentation transcript:

1 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

2 A Layered Technology Software Engineering tools methods process model
a “quality” focus Coming up: What is a process framework

3 What is a process framework
Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities Communication, Planning, Modeling, Construction, Deployment Coming up: Framework Activities

4 Framework Activities Communication Planning Modeling Construction
Analysis of requirements Design Construction Code generation Testing Deployment Work tasks, work products, milestone, QA checkpoints Coming up: Umbrella Activities

5 Umbrella Activities Software project management
Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management Coming up: The Process Model: Adaptability

6 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: the type of project characteristics of the project common sense judgment; concurrence of the project team Coming up: Text Question

7 Question Pick any one of the project types below and tell me which process activity would be emphasized or deemphasized and why Framework Activities Communication Planning Modeling Analysis of requirements Design Construction Code generation Testing Deployment Project Types: 1.Space Shuttle control system 2.Web-based calendar 3.Embedded controller in your refrigerator 4.Automatic “daily fortune” text-messager Coming up: The CMMI

8 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 process-related activities. PP - project planning REQM - Requirements Mgmt MA - Measurement and Analysis CM - Configuration Mgmt PPQA - Process and Product QA Capability and Maturity Model for Integration pages Project Planning Specific Goals - Establish estimates, project plan, obtain commitment to the plan, Specific Practice - Estimate the scope of the work, Define project lifecycle, etc… Coming up: The CMMI

9 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 Capability and Maturity Model for Integration Coming up: Process Assessment

10 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 successful software engineering. Many different assessment options are available: SCAMPI assessed for CMMI standards compliance SPICE --- assessed for ISO/IEC15504 compliance ISO 9001: assessed for ISO 9001 compliance Process Assessment is often used to “certify” a company as compliant (“Company X is ISO9001 certified “or “Company Y is CMM level 4”) SCAMPI - Standard CMMI Assessment Method for Process Improvements CBA IPI - CMM-based Appraisal for Internal Process Improvement ISO 9001: identify, implement, manage, and continually improve the effectiveness of the processes necessary for quality Coming up: Assessment and Improvement

11 Assessment and Improvement
Best use of assessment though is to improve your process! (Not just “get the certification”) Coming up: CMMI: What do you get?

12 CMMI: What do you get? 20% reduction in unit s/w costs - Lockheed Martin 15% decrease in defect find and fix cost - Lockheed Martin Costs dropped 48% from a baseline prior to CMM as the achieved CMMI-3 - DB Systems GambH Estimation accuracy improved 72% on average in three technical areas - Siemens Percentage of milestones met improved from approximately 50 percent to approximately 85 percent following organization focus on CMMI - General Motors Many many more at: Coming up: Personal Software Process (PSP)

13 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 Results are good, but hard to realize because people don’t like to be measured.. and there is a lot of training to make this work Defect Removal (From Watt’s Humphrey, The Personal Software Process) Coming up: Team Software Process (TSP)

14 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)

15 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: CMMI Case Study

16 CMMI Case Study Lets review the CMMI Case study…. if we have time
Coming up: The Waterfall Model

17 The Waterfall Model Do all process steps in the following order (this is generally thought of as the most basic model) Coming up: Different families of models

18 Different families of models
Prescriptive (ch 3) Agile (ch 4) Prescriptive Models 1970->Present Waterfall (1970) Evolutionary (1975) Incremental (1975) Spiral (1988) RAD (1991) Agile Models 2001->Present eXtreme Programming (1999) SCRUM (1990s) DSDM (1997) Crystal (2001) All dates are approximate based on publications Coming up: Different families of models

19 Different families of models
Prescriptive (ch 3) Agile (ch 4) Goal: Higher Quality Software Philosophy: Bring order to chaos Provide repeatability/consistency Provide ability to control Provide ability to coordinate teams Goal: Higher Quality Software Philosophy: Individuals and interaction over process and tools Working software over large documentation Customer collaboriation over contract negotiation Responding to change over following a plan Which is probably better for large teams? A. Prescriptive B. Agile C. Same Which is probably better for a web application? Which is probably better for Mars rover control system? Which is produces better software? End of presentation


Download ppt "Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc."

Similar presentations


Ads by Google