PART ONE The Product and the Process Chapter 2 The Process Software Engineering: A Layered...

11
RT ONE The Product and the Process Chapter 2 The Process Software Engineering: A Layered Te chnology a “quality” focus a “quality” focus process model process model methods methods tools tools A road map that helps you create a timely, high-quality result. Provide technical how- to’s for building software. Computer-Aided Software Engineering

Transcript of PART ONE The Product and the Process Chapter 2 The Process Software Engineering: A Layered...

Page 1: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE The Product and the Process

Chapter 2 The Process

Software Engineering: A Layered Technology

a “quality” focusa “quality” focus

process modelprocess model

methodsmethods

toolstools

A road map that helps you create a timely, high-quality result.

Provide technical how-to’s for building software.

Computer-Aided Software Engineering

Page 2: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The ProcessThe 3 generic phases of software engineering:

Definition

Development

Support

What ?

info to be processed function and performance system behavior interfaces design constrains validation criteria

How ?

data structure function and procedure implementation interfaces design translation and testing

Change (also called maintenance)

corrective maintenance: correct defects adaptive maintenance: accommodate changes to its external

environment perfective maintenance: extend the software beyond its original fu

nctional requirements preventive maintenance (software reengineering): make the

software being more easily corrected, adapted, and enhanced

Page 3: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Common process framework

Umbrella Activities Project tracking & control Formal technical reviews Quality assurance Configuration management Documentation Reusability management Measurement Risk management

Framework Activitieswork taskswork productsmilestones & deliverablesQA checkpoints

Framework Activitieswork taskswork productsmilestones & deliverablesQA checkpoints

Page 4: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

The Capability Maturity Model (CMM)—— by Software Engineering Institute (SEI) of Carnegie Mellon University (CMU)

Level 1Initial

Level 2Repeatable

Level 5OptimizingLevel 4

ManagedLevel 3Defined

Ad hoc and chaotic

Configuration management

Quality assurance

Subcontract management

Project tracking & oversight

Project planning

Requirements management

Peer reviewsIntergroup co

ordinationProduct engin

eeringIntegrated sof

tware management

Training program

Organization process definition

Organization process focus

Quality management

Quantitative process management

Process change management

Technology change management

Defect prevention

Key Process

Area

KPA Description Goals Commitments Abilities Activities Methods for monitoring implementation Methods for verifying implementation

能力成熟度模型能力成熟度模型 (CMM):(CMM):

软件过程改进指南软件过程改进指南The Capability Maturity Model

Guidelines for Improving the Software Process

SEI of CMU 编著

刘孟仁 等译

电子工业出版社 ( 2001 )

Page 5: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Software Process Models

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

statusquo

problemdefinition

technicaldevelopment

solutionintegration

A problem solving loop

Page 6: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Waterfall Model

Definition

Feasibility Study

Requirements Analysis

System Design

Program Design

Coding & Module Testing

Integration & System Testing

Definition

Development

Delivery & MaintenanceSupport

Real projects rarely follow the sequential flow.

Customers usually can’t state all requirements explicitly.

A working version will not be available

until late in the project time- span.

System Lifecycle

Page 7: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Prototyping Model

listento

customerbuild/revisemock-up

customertest-drivesmock-up

The prototype must be thrown away.

Page 8: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Rapid Application Development Model

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

team #1

team #2team #3

60 - 90 days

Reuse

Require sufficient human resources.

If a system cannot be properly modularized, RAD may not work.

RAD is not appropriate when technical risks are high.

Require commitment to the rapid-fire activities from both developers and customers.

Page 9: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Incremental Model

calendar time

analysis design code test

System/informationengineering

increment 1

delivery of1st increment

Core product

analysis design code testincrement 2 delivery of2nd increment

More features and functionality

analysis design code test

analysis design code test

increment 3

increment 4

delivery of3rd increment

delivery of4th increment

Makes a better use of resources.

Page 10: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Spiral Model

ReviewCommitment

Partition

Risk analy-sis Prototype 1

Simulations, models, benchmarksRequirements plan, life-cycle

planConcept of operation

Prototype 2

Risk analysis

Software requirements

Requirements validation

Develop-ment plan

Risk analysis

Prototype 3

Software product design

Design validation and verification

Integration and test

plan

Risk analysis

Operational prototype

Detailed design

Unit test

Code

Integration and test

Acceptance testImplementation

Plan next phasesDevelop, verify next-level product

Determine objectives, alternatives, constrains

Evaluate alternatives, identify, resolve risks

Cumulative costProgress through steps

Not yet widely used.

Page 11: PART ONE The Product and the Process Chapter 2 The Process  Software Engineering: A Layered Technology a “quality” focus process model methods tools.

PART ONE – The Process

Concurrent development model — especially good for client/server applications; defines a network of activities instead of linear sequence of events.

Still Other Process Models

Component-based model — the process to apply when reuse is a development objective.

Formal methods and clean-room software engineering — the process to apply when a formal mathematical specification is to be developed. Good at detecting ambiguity, incompleteness, and inconsistency.

Unified Modeling Language

Fourth Generation Techniques (4GT) — automatically generate source code based on high-level specifications. May become the dominant approach when coupled with component-based development.