cs223: software engineering lecture 4: software development models

27
CS223: Software Engineering Lecture 4: Software Development Models

Upload: alicia-ford

Post on 17-Jan-2018

224 views

Category:

Documents


0 download

DESCRIPTION

Objective After the end of the class students should be able to o State desired properties of software processes o Explain different software development model  Waterfall model  Prototype model o Use a development model in practice

TRANSCRIPT

Page 1: CS223: Software Engineering Lecture 4: Software Development Models

CS223: Software EngineeringLecture 4: Software Development

Models

Page 2: CS223: Software Engineering Lecture 4: Software Development Models

Recap

• Software process

• Need of software process

• ETVX model

• Roles and responsibilities

Page 3: CS223: Software Engineering Lecture 4: Software Development Models

Objective

• After the end of the class students should be able to

o State desired properties of software processes

o Explain different software development model

Waterfall model

Prototype model

o Use a development model in practice

Page 4: CS223: Software Engineering Lecture 4: Software Development Models

Desired Process Properties

• Provide high quality and productivity (Q & P)

• Support testability as testing is the most expensive task

o Testing can consume 30 to 50% of total development effort

• Support maintainability

o Maintenance can be more expensive than development;

o Over life up to 80% of total cost

• Remove defects early

o As cost of removing defects increases with latency

Page 5: CS223: Software Engineering Lecture 4: Software Development Models

High Q&P: Early Defect Removal…

• Cost of a defect increases with latency

• Fixing a defect in operation can cost a 100 times the cost of fixing

it in requirements itself

• For high Q&P, the process must support early defect removal

• That is why there is a V in ETVX, and quality control tasks in the

software process

Page 6: CS223: Software Engineering Lecture 4: Software Development Models

Early Defect Removal…

Page 7: CS223: Software Engineering Lecture 4: Software Development Models

Desired Properties…

• Predictability and repeatability

o Process should repeat its performance when used on

different projects

Outcome of using a process should be predictable

o Past performance can be used to predict future performance

o Without predictability, cannot estimate, or say anything about

quality or productivity

Page 8: CS223: Software Engineering Lecture 4: Software Development Models

Predictability…

• Predictable process is said to be under statistical control

o Repeatedly using the process produces similar results

o Results – properties of interest like quality, productivity, …

• To consistently develop software with high Q&P

o Process must be in control

Page 9: CS223: Software Engineering Lecture 4: Software Development Models

Predictability…Expected value of the property

Allowable error bound

Page 10: CS223: Software Engineering Lecture 4: Software Development Models

Support Change

• Software changes for various reasons

• Requirements change is a key reason

• Requirement changes cannot be wished away or treated as

“bad”

• They must be accommodated in the process for software

development

Page 11: CS223: Software Engineering Lecture 4: Software Development Models

Software Project

• Project

o To build a software system within cost

o Schedule and with high quality which satisfies the customer

• Project goals – high Q and high P

• Suitable process needed to reach goals

• For a project

o The process to be followed is specified during planning

Page 12: CS223: Software Engineering Lecture 4: Software Development Models

Projects Process

• If a project chooses a model

o It will generally tailor it to suit the project

• This produces the spec for the projects process

• This process can then be followed in the project

• Process is what is actually executed

• Process specification is plan about what should be executed

• Process model is a generic process specification

• Many models have been proposed for the development process

Page 13: CS223: Software Engineering Lecture 4: Software Development Models

Development Process

• A set of phases and each phase being a sequence of steps

• Sequence of steps for a phase - methodologies for that phase.

• Why have phases

o To employ divide and conquer

o Each phase handles a different part of the problem

o Helps in continuous validation

Page 14: CS223: Software Engineering Lecture 4: Software Development Models

Development Process

• Commonly has these activities:

o Requirements analysis, architecture,

o Design, coding,

o Testing, delivery

• Different models perform them in different manner

Page 15: CS223: Software Engineering Lecture 4: Software Development Models

Generic software process models

• The waterfall model

o Separate and distinct phases of specification and development.

• Evolutionary development

o Specification, development and validation are interleaved.

• Component-based software engineering

o The system is assembled from existing components.

Page 16: CS223: Software Engineering Lecture 4: Software Development Models

Waterfall Model

• Linear sequence of stages/ phases

• Requirements – HLD – DD – Code – Test – Deploy

• A phase starts only when the previous has completed

o No feedback

• The phases partition the project

o Each addressing a separate concern

Page 17: CS223: Software Engineering Lecture 4: Software Development Models

Flow

of W

ater

fall

Mod

el

Page 18: CS223: Software Engineering Lecture 4: Software Development Models

Properties of Waterfall Model

• Linear ordering implies each phase should have some output

• The output must be validated/certified

• Outputs of earlier phases: work products

• Common outputs of a waterfall:

o SRS, project plan, design docs, test plan and reports, final

code, supporting docs

Page 19: CS223: Software Engineering Lecture 4: Software Development Models

Waterfall Advantages

• Conceptually simple

o Cleanly divides the problem into distinct phases

o Phases can be performed independently

• Natural approach for problem solving

• Easy to administer in a contractual setup

• Each phase is a milestone

Page 20: CS223: Software Engineering Lecture 4: Software Development Models

Waterfall disadvantages

• Assumes that requirements can be specified and frozen early

• May fix hardware and other technologies too early

• Follows the “big bang” approach

o All or nothing delivery

o Too risky

• Requirement bloating

• Very document oriented

o Requiring docs at the end of each phase

Page 21: CS223: Software Engineering Lecture 4: Software Development Models

Waterfall Usage

• Has been used widely

• Well suited for projects where

o Requirements can be understood easily

o Technology decisions are easy

• For familiar type of projects it still may be the most optimum

Page 22: CS223: Software Engineering Lecture 4: Software Development Models

Prototyping

• It addresses the requirement specification limitation of waterfall

• Do not finalize requirements only by discussions

• A prototype is built to understand the requirements

• Helps reduce the requirements risk

• A small waterfall model replaces the requirements stage

Page 23: CS223: Software Engineering Lecture 4: Software Development Models

Prototyping: Typical flow

Page 24: CS223: Software Engineering Lecture 4: Software Development Models

Developing A Prototype

• Starts with initial requirements

• Only key features which need better understanding are

included in prototype

• No point in including those features that are well understood

• Feedback from users taken to improve the understanding of the

requirements

Page 25: CS223: Software Engineering Lecture 4: Software Development Models

How to minimize the cost?

• Build only features needing clarification

• “Quick and dirty”

o Quality not important, scripting etc. can be used

• Things like exception handling, recovery, standards are omitted

• Cost can be a few % of the total

• Learning in prototype building will help in

o Building the software

o Besides improved requirements

Page 26: CS223: Software Engineering Lecture 4: Software Development Models

Pros and Cons of Prototyping

• Advantages:

o Requirement will be more stable

o Requirement frozen later

o Experience helps in the main development

• Disadvantages:

oPotential hit on cost and schedule

• Applicability:

oWhen requirements are hard to elicit

o Confidence in requirements is low

Requirements are not well understood

Page 27: CS223: Software Engineering Lecture 4: Software Development Models

Thank youNext Lecture: Process Models