18
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

Embed Size (px)

Citation preview

Page 1: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

1

Chapter 2 A Generic View of Process

Chapter 2 A Generic View of Process

Software Engineering: A Practitioner’s Approach, 6th editionby Roger S. Pressman

Page 2: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

2

Chapter OverviewChapter Overview What? A software process - a series of predictable

steps that leads to a timely, high-quality product. Who? Managers, software engineers, and customers. Why? Provides stability, control, and organization to

an otherwise chaotic activity. Steps? A handful of activities are common to all

software processes, details vary. Work product? Programs, documents, and data. Correct process? Assessment, quality deliverable.

What? A software process - a series of predictable steps that leads to a timely, high-quality product.

Who? Managers, software engineers, and customers. Why? Provides stability, control, and organization to

an otherwise chaotic activity. Steps? A handful of activities are common to all

software processes, details vary. Work product? Programs, documents, and data. Correct process? Assessment, quality deliverable.

Page 3: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

3

Software EngineeringSoftware Engineering

Software Engineering: Software Engineering:

The establishment and use of sound The establishment and use of sound engineering principles in order to obtain engineering principles in order to obtain economically software that is reliable and economically software that is reliable and works efficiently on real machines.works efficiently on real machines.

Page 4: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

4

Software EngineeringSoftware Engineering

Software Engineering: Software Engineering:

(1)(1)The application of a systematic, The application of a systematic, disciplined, quantifiable approach to the disciplined, quantifiable approach to the development, operation, and development, operation, and maintenance of software; that is, the maintenance of software; that is, the application of engineering to software. application of engineering to software.

(2)(2)The study of approaches as in (1).The study of approaches as in (1).

- IEEE Standard 610.12-1990- IEEE Standard 610.12-1990

Page 5: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

5

A Layered TechnologyA Layered TechnologySoftware Engineering

a “quality” focusa “quality” focus

process modelprocess model

methodsmethods

toolstools

Page 6: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

6

A Process FrameworkA Process FrameworkProcess frameworkProcess framework

Umbrella activitiesUmbrella activities

framework activity #1framework activity #1

SE action #1.1SE action #1.1

Software process

tasksets

work taskswork productsQA pointsmilestones

SE action #1.2SE action #1.2

tasksets

work taskswork productsQA pointsmilestones

framework activity #2framework activity #2

SE action #2.1SE action #2.1

tasksets

work taskswork productsQA pointsmilestones

SE action #2.2SE action #2.2

tasksets

work taskswork productsQA pointsmilestones

Page 7: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

7

Umbrella Activities(管理活动)Umbrella Activities(管理活动)

What should we do to develop a software? Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management

What should we do to develop a software? Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management

Page 8: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

8

Framework Activities(技术活动)Framework Activities(技术活动)

Communication Planning Modeling

Analysis of requirements Design

Construction Code generation Testing

Deployment

Communication Planning Modeling

Analysis of requirements Design

Construction Code generation Testing

Deployment

Page 9: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

9

The Process Model: AdaptabilityThe 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

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

Page 10: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

10

The CMMI(The Capability Maturity Model Integration)

能力成熟度模型集成

The CMMI(The Capability Maturity Model Integration)

能力成熟度模型集成

CMMI represents a process meta-model in two different ways:

(1) as a continuous model;

(2) as a staged model;

CMMI Website

CMMI represents a process meta-model in two different ways:

(1) as a continuous model;

(2) as a staged model;

CMMI Website

Page 11: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

11

The CMMI(The Capability Maturity Model Integration)

The CMMI(The Capability Maturity Model Integration)

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.

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.

Page 12: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

12

Levels of CMMILevels of CMMI

Level 0: Incomplete, Level 1: Performed, Level 2: Managed, Level 3: Defined, Level 4: Quantitatively managed, Level 5: Optimized,

Level 0: Incomplete, Level 1: Performed, Level 2: Managed, Level 3: Defined, Level 4: Quantitatively managed, Level 5: Optimized,

Page 13: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

13

Personal Software Process (PSP)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

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

Page 14: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

14

Team Software Process (TSP)Team Software Process (TSP)

Each project is “launched” using a “script” that defines the tasks to be accomplished

Teams (of 2 to 20 engineers) are self-directed: Plan and track work, set goals, own processes and

plans Measurement is encouraged Measures are analyzed with the intent of

improving the team process (through coaching, motivation, …)

Each project is “launched” using a “script” that defines the tasks to be accomplished

Teams (of 2 to 20 engineers) are self-directed: Plan and track work, set goals, own processes and

plans Measurement is encouraged Measures are analyzed with the intent of

improving the team process (through coaching, motivation, …)

Page 15: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

15

Process PatternsProcess Patterns

Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors

A template is used to define a pattern Typical examples:

Customer communication (a process activity) Analysis (an action) Requirements gathering (a process task) Reviewing a work product (a process task) Design model (a work product)

Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors

A template is used to define a pattern Typical examples:

Customer communication (a process activity) Analysis (an action) Requirements gathering (a process task) Reviewing a work product (a process task) Design model (a work product)

Page 16: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

16

Process AssessmentProcess 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

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

Page 17: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

17

Assessment and ImprovementAssessment and Improvement

Software Process

Software Process Assessment

is examined by identifies capabilitiesand risk of

identifiesmodifications to

Software Process Improvement

Capability Determination

leads to leads to

motivates

Page 18: 1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman

18

The Primary Goal of Any Software Process: High Quality

The Primary Goal of Any Software Process: High Quality

Remember:Remember:

High quality High quality project timeliness project timeliness

Why?Why?

Less rework!Less rework!