software engineering spring 2002-2003 (c) vasudeva varmaclass 03 - 1 of 32 cs3600: software...

32
Software Engineering Spring 2002-2003 (C) Vasude va Varma Class 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn from Pressman Vasudeva Varma [email protected] Spring 2002 International Institute of Information Technology, Hyderabad

Upload: nicholas-mcdowell

Post on 02-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 1 of 32

CS3600: Software Engineering:Process and Product*

*Most of the Content drawn from Pressman

Vasudeva [email protected] 2002

International Institute of Information Technology, Hyderabad

Page 2: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 2 of 32

Quick Review – Last week• Studied the definitions of SE• Discussed SDLC – Different phases• Discussed Fred Brooks’ work on SE

This week… We shall• Discuss Product and Process concepts• Look at various software Process models• Discuss CMM and PSP (Friday)

Page 3: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 3 of 32

What is Software Engineering?

• A modeling activity

• A problem-solving activity

• A knowledge acquisition activity

• A rationale-driven activity

Page 4: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 4 of 32

What Causes SW Projects to Fail?

• Unrealistic plans, based on optimistic estimates

• Ineffective tracking of performance

• Volatile requirements

• Risks

Page 5: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 5 of 32

But, Why do We Let it Happen?

• People tend to be risk averse when there is potential of loss

• People are unduly optimistic in their plans and forecasts

• People prefer to use intuitive judgment rather than quantitative models

Page 6: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 6 of 32

Controlling Human Nature

• Documenting the way work is performed • Provide guidance and quantifiable criteria

where possible• Record decisions and the data used to make

them• Analyze the results and improve the process

where possible• Learn - individually and organizationally

Page 7: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 7 of 32

Software Engineering Products and Processes

The software customer wants

quality software products at reasonable prices

The software producer wants

a well managed software production process

that consistently produces quality software

in a cost-effective manner

Some organizations have a defined and managed software engineering process

Page 8: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 8 of 32

The Software Process • The software product is created as part of the

Software Engineering Process

Definition:– the Software Process is a description of the

process which guides the software engineers as they work

Page 9: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 9 of 32

The Software Product Composed of programs, data and documents Delivers hardware computing potential Delivers information

Software Product Characteristics» developed or engineered,

not manufactured» doesn’t wear out» most is custom built

Page 10: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 10 of 32

The Software Process The set of activities which produce a software

product

The sequence of steps to develop and maintain software

Sets out the technical and management framework for applying methods, tools and people to the software task

Page 11: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 11 of 32

A Layered Technology

tools

methods

process

a quality focus

Software Engineering

Page 12: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 12 of 32

The Software Process ...

Software Engineering Layers Quality Focus - bedrock of SE Process

» defines a framework as a basis for management control of projects and context for technical methods

Methods

» technical ‘how to’ for building software Tools

» automated support for the process and the methods

Page 13: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 13 of 32

The Software Process ...

There is no ‘right’ or ‘wrong’ software process. The ‘wrong’ process reduces the quality or usefulness of the product

Software processes are complex and involve a large number of activities

Page 14: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 14 of 32

The Software Process ...Generic Phases (Pressman) Definition Phase focuses on ‘what’ Development Phase focuses on ‘how’ Maintenance Phase focuses on change

Page 15: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 15 of 32

The Software Process ...Has a common process framework containing: framework activities - for all software projects

work tasks project milestones software work products and deliverables quality assurance points

umbrella activities - occur throughout the process software quality assurance software configuration management software metrics or measurement

Page 16: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 16 of 32

A Common Process FrameworkCommon Process Framework

Framework Activities

Task sets

Tasks

Milestones, deliverables

SQA points

Umbrella activities

Page 17: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 17 of 32

Software Process Models ...

Evolutionary development Linear or waterfall model Prototyping (throw away) Rapid Application Development Incremental Process Spiral Model Concurrent Development Model Fourth Generation Techniques Extreme Programming

Page 18: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 18 of 32

SDLC - the reality

Overlapping phases Large, complex systems are usually broken into

subsystems and other smaller components Each subsystem may have its own mini-lifecycle. In reality there will be a continuous stream of

change requests.

Page 19: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 19 of 32

Process as Problem Solving

statusquo

problemdefinition

technicaldevelopment

solutionintegration

Page 20: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 20 of 32

Linear Models - Problems

• Change handling during the process

• Requires that all requirements are stated clearly at the beginning of the process

• Working version is delivered at the end of the process cycle; mistakes at earlier stages may be disastrous

• “Blocking States”

Page 21: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 21 of 32

Iterative Models - Prototyping

listento

customerbuild/revise

mock-up

customertest-drivesmock-up

Prototyping

Page 22: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 22 of 32

Prototyping - The Problems

• There is a “working version” of software before the requirements for the overall quality and maintainability are satisfied.

• Implementation compromises, made to create a quick “working version” often become a part of the final version.

Page 23: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 23 of 32

Iterative Models - RAD

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

Rapid Application Development (RAD)

Page 24: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 24 of 32

RAD - The Problems

• For large, but scalable projects, requires significant human resources

• Requires customers and developers willing to work in a rapid development environment

• If the requirements can not be modularized, this approach may not be suitable

• If fine-tuning is needed, this approach may not be suitable

Page 25: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 25 of 32

Evolutionary Models - The Incremental Model

analysis design code test

System/informationengineering

analysis design code test

analysis design code test

analysis design code test

increment 2

increment 3

increment 4

increment 1

delivery of1st increment

delivery of2nd increment

delivery of3rd increment

delivery of4th increment

calendar time

Page 26: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 26 of 32

Evolutionary Models - Spiral Model

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

Page 27: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 27 of 32

Spiral Model - The Lifecycle of SW Product

• Concept Development Projects

• New Product Development Projects

• Product Enhancement Projects

• Product Maintenance Projects

Page 28: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 28 of 32

Spiral Model - Characteristics

Advantages

• application in large systems and software

• used well as a risk reduction mechanism

Disadvantages

• controllability (demands high risk assessment and expertise)

• has not been applied as much (little history)

Page 29: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 29 of 32

Component Assembly Model

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

extract components if available

build components if available

construct nth

iteration of the system

identify candidate components

look up components in

library

put new components in

library

Page 30: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 30 of 32

Concurrent Model

none

Under development

Under development

Baselined

Done

Under revision

Awaiting changes

Analysis activity

Page 31: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 31 of 32

Still Other Process Models

• Formal methods—the process to apply when a mathematical specification is to be developed

• Cleanroom software engineering—emphasizes error detection before testing

• 4GT (fourth generation techniques) — automatic code generation

Page 32: Software Engineering Spring 2002-2003 (C) Vasudeva VarmaClass 03 - 1 of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn

Software Engineering Spring 2002-2003 (C) Vasudeva Varma Class 03 - 32 of 32

Product and Process - Keep Thinking!