coming up: a layered technology 1 software engineering: a practitioner’s approach, 6/e chapter 2...

13
Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, Software Engineering: A Practitioner’s Approach, 6/e 6/e Chapter 2 Chapter 2 Process: A Generic View 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.

Upload: henry-wade

Post on 22-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: A Layered Technology 1

Software Engineering: A Practitioner’s Software Engineering: A Practitioner’s Approach, 6/eApproach, 6/e

Chapter 2Chapter 2Process: A Generic ViewProcess: A Generic View

copyright © 1996, 2001, 2005

R.S. Pressman & Associates, Inc.

For University Use OnlyMay 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.

Page 2: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: What is a process framework 2

A Layered A Layered TechnologyTechnology

Software Engineering

a “quality” focusa “quality” focus

process modelprocess model

methodsmethods

toolstools

Page 3: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: Framework Activities 3

What is a process What is a process frameworkframework

Process frameworkProcess frameworkFramework activitiesFramework activities

work taskswork taskswork productswork productsmilestones & deliverablesmilestones & deliverablesQA checkpointsQA checkpoints

Umbrella ActivitiesUmbrella Activities

Page 4: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: Umbrella Activities 4

Framework ActivitiesFramework Activities

CommunicationCommunication PlanningPlanning ModelingModeling

Analysis of requirementsAnalysis of requirements DesignDesign

ConstructionConstruction Code generationCode generation TestingTesting

DeploymentDeployment

Page 5: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: The Process Model:Adaptability 5

Umbrella ActivitiesUmbrella Activities Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and

production Reusability management Measurement Risk management

Page 6: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: Text Question 6

The Process Model:The Process Model:AdaptabilityAdaptability

The framework activities will The framework activities will alwaysalways be be applied on applied on everyevery project ... BUT project ... BUT

The tasks (and degree of rigor) for each The tasks (and degree of rigor) for each activity will vary based on:activity will vary based on: the type of project the type of project characteristics of the projectcharacteristics of the project common sense judgment; concurrence of the common sense judgment; concurrence of the

project teamproject team

Page 7: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

QuestionQuestion

Pick any one of the project types below and tell Pick any one of the project types below and tell me which process activity would be emphasized me which process activity would be emphasized or deemphasized and whyor deemphasized and why

Coming up: The CMMI 7

Project Types:Project Types:- 1.Space Shuttle control system1.Space Shuttle control system- 2.Web-based calendar2.Web-based calendar- 3.Embedded controller in your 3.Embedded controller in your refrigeratorrefrigerator- 4.Automatic “daily fortune” text-4.Automatic “daily fortune” text-messagermessager

Framework ActivitiesFramework Activities CommunicationCommunication PlanningPlanning ModelingModeling

Analysis of requirementsAnalysis of requirements DesignDesign

ConstructionConstruction Code generationCode generation TestingTesting

DeploymentDeployment

Page 8: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: The CMMI 8

The CMMIThe CMMI The CMMI defines each process area in terms of The CMMI defines each process area in terms of

“specific goals” and the “specific practices” “specific goals” and the “specific practices” required to achieve these goals.required to achieve these goals.

Specific goalsSpecific goals establish the characteristics that establish the characteristics that must exist if the activities implied by a process must exist if the activities implied by a process area are to be effective. area are to be effective.

Specific practicesSpecific practices refine a goal into a set of refine a goal into a set of process-related activities.process-related activities.

PP - project planningREQM - Requirements MgmtMA - Measurement and AnalysisCM - Configuration MgmtPPQA - Process and Product QA

Page 9: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: Process Assessment 9

The CMMIThe CMMI Level 0 - IncompleteLevel 0 - Incomplete - process area is either not performed or - process area is either not performed or

does not achieve all specified goals.does not achieve all specified goals. Level 1 - PerformedLevel 1 - Performed - All specific CMMI defined goals of the - All specific CMMI defined goals of the

process area have been satisfiedprocess area have been satisfied Level 2 - ManagedLevel 2 - Managed - All work conforms to an organizationally - All work conforms to an organizationally

defined policy; all people doing the work have access to adequate defined policy; all people doing the work have access to adequate resources to get the job done; work tasks are monitored, resources to get the job done; work tasks are monitored, controlled and reviewed, evaluated for adherence to the process controlled and reviewed, evaluated for adherence to the process descriptiondescription

Level 3 - DefinedLevel 3 - Defined - process is tailored according to organization’s - process is tailored according to organization’s tailoring guidelines. Work products, measurements, etc… are tailoring guidelines. Work products, measurements, etc… are contributed to the organizational process assetscontributed to the organizational process assets

Level 4 - Quantitatively managedLevel 4 - Quantitatively managed - Process area uses quantitative - Process area uses quantitative measurement to control and improve the process area. measurement to control and improve the process area. Quantitative objectives for quality and performance are Quantitative objectives for quality and performance are established and used.established and used.

Level 5 - OptimizedLevel 5 - Optimized - Process area adapted and optimized to meet - Process area adapted and optimized to meet changing customer’s needs and continually improve the process changing customer’s needs and continually improve the process areaarea

Page 10: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Coming up: Assessment and Improvement 10

Process AssessmentProcess Assessment

The process should be assessed to ensure that it The process should be assessed to ensure that it meets a set of basic process criteria that have been meets a set of basic process criteria that have been shown to be essential for successful software shown to be essential for successful software engineeringengineering.

Many different assessment options are available: Many different assessment options are available: SCAMPI --- assessed for CMMI standards complianceSCAMPI --- assessed for CMMI standards compliance SPICE --- assessed for ISO/IEC15504 complianceSPICE --- assessed for ISO/IEC15504 compliance ISO 9001:2000 --- assessed for ISO 9001 complianceISO 9001:2000 --- assessed for ISO 9001 compliance

Process Assessment is often used to “certify” a Process Assessment is often used to “certify” a company as compliant (“Company X is ISO9001 company as compliant (“Company X is ISO9001 certified “or “Company Y is CMM level 4”)certified “or “Company Y is CMM level 4”)

Page 11: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

The Waterfall ModelThe Waterfall Model

Do all process steps in the following order (this is Do all process steps in the following order (this is generally thought of as the most basic model)generally thought of as the most basic model)

Coming up: Different families of models 17

CommunicationPlanning

ModelingConstruction

Deploymentanalysisdesign code

test

project initiationrequirement gathering estimating

schedulingtracking

deliverysupportfeedback

Page 12: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Different families of modelsDifferent families of models

18

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

Page 13: Coming up: A Layered Technology 1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s

Different families of modelsDifferent families of models

19

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