Transparency Masters for Software Engineering: A Practitioner`s

advertisement

Software Engineering: A Practitioner’s Approach,

7/e

Chapter 2

Prescriptive Process Models

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: Prescriptive Models 1

Last time: Different families of models

Prescriptive

Goal : Higher Quality Software

Philosophy :

• Bring order to chaos

• Provide repeatability/consistency

• Provide ability to control

• Provide ability to coordinate teams

Agile

Goal : Higher Quality Software

Philosophy :

• Individuals and interaction over process and tools

• Working software over large documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

2

Last time

We discussed how prescriptive models seems to have lost their popularity, while agile models have been gaining in popularity

What are some possible reasons for this?

Prescriptive Models

 Prescriptive process models advocate an orderly approach to software engineering

That leads to a few questions …

If prescriptive process models strive for structure and order, are they inappropriate for a software world that thrives on change?

Yet, if we reject traditional process models (and the order they imply) and replace them with something less structured, do we make it impossible to achieve coordination and coherence in software work?

Coming up: The Waterfall Model 4

The Waterfall Model

Com m unic a t ion proje c t init ia t ion re quire m e nt ga t he ring

Planning es timating sc heduling track ing

Mode ling analysis design

Use when:

Requirements are stable and well-understood, very short timeline (maintenance fixes)

Const r uc t ion code t est

De ploy m e nt de liv e ry s upport f e e dba c k

Coming up: The V-Model 5

Why was the waterfall model designed?

Invented in 1970

It is frequently true that time spent at the beginning of the product lifecycle cuts down on the work in later stages

 How much time does maintenance consume?

 The biggest lesson learned is that waterfall models

Generally don’t work

Because it’s unrealistic to not have change

The V-Model

Same as Waterfall, diagram used to emphasize types of testing are linked to different phases in the model

Requirements are stable and wellunderstood

Coming up: The Incremental Model 7

The V model

 Focuses on verification and validation

The Incremental Model

increment # n

C o m m u n i c a t i o n

P l a n n i n g increment # 2

C o m m u n i c a t i o n

P l a n n i n g

M o d e l i n g a n a l y s i s d e s i g n

C o n s t r u c t i o n c o d e t e s t

D e p l o y m e n t

d e l i v e r y

f e e d b a c k deliv ery of

2nd increment increment # 1

C o m m u n i c a t i o n

P l a n n i n g

M o d e l i n g a n a l y s i s d e s i g n

C o n s t r u c t i o n c o d e t e s t

D e p l o y m e n t

d e l i v e r y

f e e d b a c k deliv ery of

1st increment

M o d e l i n g a n a l y s i s d e s i g n

C o n s t r u c t i o n c o d e t e s t

D e p l o y m e n t

d e l i v e r y

f e e d b a c k deliv ery of n t h increment project calendar t ime

Coming up: The Incremental Model 9

The Incremental Model

Requires: Operational product that provides some value to users at each increment.

Advantages

-Helps users get software faster

-Provides ability for the team to evaluate and replan

-May complete an initial functionality to get buyin or funding for later increments

Disadvantages

-May not be good for very risky systems

-Full working systems may require long increments

Coming up: The RAD Model 10

Com m unicat ion

The RAD Model

Team # n

M o d e lin g bus ines s m odeling dat a m odeling proc es s m odeling

Team # 2

Mo d el i ng b u si n e ss m o d e l i n g d a t a m o d e l i n g p ro ce ss m o d e l i n g

C o n s t r u c t io n c om ponent reus e aut om at ic c ode

generat ion t es t ing

Planning

Team # 1

Mode ling business modeling dat a modeling process modeling

Co nst r uct i o n co m p o n e n t re u se a u t o m a t i c co d e

g e n e ra t i o n t e st i n g

Const r uct ion component reuse aut omat ic code

generat ion t est ing

De ploym e nt int egrat ion deliv ery f eedback

6 0 - 9 0 days

Coming up: The RAD Model 11

The RAD Model

RAD = Rapid Application Development

Requires : very well understood requirements.

Very fast cycles (60-90 days) to create a lot of functionality

Emphasizes use of existing components/ automatic code generation

Challenges :

- Large staff needed to form RAD teams

- Must have modularizable based software

- Developers and Customers must be willing to make quick decisions

- Time-consuming overall system tuning is difficult

Coming up: Evolutionary Models: Prototyping 12

Evolutionary Models: Prototyping

Used when partial system can be delivered, then evolved into full system plan

Com m unicat ion communication

Prototyping is a tool that can be used during any process design

Used when customer only has a vague idea of what they want

Deployment

Deployment

De live r y delivery & feedback

Const r uct ion

Plan to either throw-away or evolve into real product -there will be pressure at the end to evolve into the real product

Coming up: Evolutionary Models: The Spiral 13

Evolutionary Models: The Spiral

Complete highest risk items first planning estimation scheduling risk analysis communication

Used to mitigate risk on riskintensive projects start modeling analysis design

Every spiral revises cost/budget/sche dule/etc… deployment delivery

feedback construction code test

14 Coming up: Still Other Process Models

Still Other Process Models

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

Formal methods —emphasizes the mathematical specification of requirements

AOSD —provides a process and methodological approach for defining, specifying, designing, and constructing aspects

Unified Process —a “use-case driven, architecturecentric, iterative and incremental” software process closely aligned with the Unified Modeling Language

(UML)

Coming up: The Unified Process (UP) 15

Can you guess which company uses the spiral model?

The Unified Process

 What is it?

 Phases: inception, elaboration, construction, transition

The phases are divided up into time-boxes (iterations)

Each of these iterations results in some deliverable increment

UP Phases

UP Phases

Incept ion Elaborat ion Const ruct ion Transit ion

Workflows

Requirements

Analysis

Design

Implementation

Test

Support

Iterations #1 #2 #n-1 #n

Product ion

Coming up: UP Work Products 20

Incept ion phase

Vision document

Init ial use-case model

Init ial project glossary

Init ial business case

Init ial risk assessment .

Project plan,

phases and it erat ions.

Business model,

if necessary .

One or more prot ot y pes

I n c e p t i o n

UP Work Products

Elaborat ion phase

Use-case model

Supplement ary requirement s

including non-f unct ional

Analy sis model

Sof t ware archit ect ure

Descript ion.

Execut able archit ect ural

prot ot y pe.

Preliminary design model

Rev ised risk list

Project plan including

it erat ion plan

adapt ed workf lows

milest ones

t echnical work product s

Preliminary user manual

Const ruct ion phase

Design model

Sof t ware component s

Int egrat ed sof t ware

increment

Test plan and procedure

Test cases

Support document at ion

user manuals

inst allat ion manuals

descript ion of current

increment

Transit ion phase

Deliv ered sof t ware increment

Bet a t est report s

General user f eedback

Coming up: Pick a model 21

Pick a model

 Developing software to automatically drive racecars through a track without crashing. This has never been attempted before under software control. The requirements are stable.

 Waterfall, Incremental, Spiral,

RAD?

Coming up: Pick a model 22

Pick a model

Developing software to track the financial bailout. The software requirements are very clear. You need to create a system to perform 3 distinct tasks:

Display where the money went

Display the amount of money left and how it’s allocated

Allow people to request funds from a particular subset of the money

All functions will interface with each other and the same underlying database.

Waterfall, Incremental, Spiral, RAD?

23 Coming up: Pick a model

Pick a model

 Just checking if you were awake

Coming up: Prescriptive Software Models 25

Prescriptive Software Models

Variations of these models are VERY commonly used today

If you think about it, they are focused in different areas, but have many similarities (all do the basic structure -- communication, planning, construction, testing, deployment, maintenance)

You will almost definitely do some version of these processes when you graduate

If you had never been to CS421, and never learned them, and then started your own company, you would STILL do your own version of these processes… they make sense!

26 End of presentation

Download