35
[email protected] 1 Software Development Life Cycle Models by : Bharat V. Chawda Computer Engineering Department, BBIT, VVNagar

SE SDLC Models 150309

Embed Size (px)

Citation preview

[email protected] 1

Software Development Life Cycle

Models

by:Bharat V. Chawda

Computer Engineering Department,BBIT, VVNagar

[email protected] 2

Overview

Concept

Waterfall Model

Prototyping Model

Incremental Model

RAD Model

Spiral Model

(As per GTU Curriculum – Diploma in Computer/IT Engineering)

Based on Books:

1. Fundamentals of Software Engineering – by Rajib Mall

2. Software Engineering: A Practitioner’s Approach – by Roger Pressman

[email protected] 3

Concept SDLC Models

Software Development Life Cycle Models

Software Process Models

Def: “A descriptive & diagrammatic representationof a series of stages required to develop SW.”

Various Models

Waterfall Model

Prototyping Model

Incremental Model

RAD Model

Spiral Model

[email protected] 4

Waterfall Model: Concept

Concept

Linear Sequential Model, Classic Life Cycle M.

Systematic & Sequential approach to developSW

Begins at system level, and

Progresses through analysis, design, coding,testing, and support.

[email protected] 5

Waterfall Model: Figure

[email protected] 6

Waterfall Model: Phases (i) System/Information Engineering

Find system requirements; allocate subset 2 SW

System Engineering: Req. gathering at system level

Information Engineering: Req. gathering at business orbusiness area level

Analysis

Analyze software requirements

“What”: Data/Info domain, Functions, Behavior,Performance, and Interface

Requirements – both system & SW – are documentedand reviewed with customers

[email protected] 7

Waterfall Model: Phases (ii) Design

Translates requirements into SW representation

Focus: Data Structures, SW Architecture, InterfaceRepresentation, Procedural/Algorithmic Details

Representation: reviewed & assessed for quality:before coding begins

Design is documented

Coding/Code Generation

Design: translated: machine Readable form / Code

Detailed design Code generation: mechanistically /

automatically

[email protected] 8

Waterfall Model: Phases (iii) Testing

Testing is done to find out errors in developed SW

Can be unit testing or system testing

Logical Internals: Test all statements

Functional Externals: Uncover errors; Ensure thatdefined input will produce actual output

Support

Provides maintenance

Corrective, Adaptive, Perfective, Preventive

[email protected] 9

Waterfall: When? Ad-Disad?

When preferred?

Suitable for smaller projects with welldefined/understood user requirements

Advantage

Simple; Easy to use; Easy to manage: One phase at atime

Disadvantage

No adjusting scope

SW is produced at end

Not suitable for complex, long & on-going projects:requirements may change

[email protected] 10

Prototyping Model: Concept

Prototype

Toy implementation of the system

Has limited functional capabilities, lowreliability, inefficient performance

Need

To illustrate input data-formats, messages,reports and interactive dialogues to d customer

Also, it is almost impossible to get the perfectproduct in first attempt

[email protected] 11

Prototyping Model: FigureRequirements

Gathering

Quick Design

Build

Prototype

Customer

Evaluation

Refine

Requirements

Design

Implement

Test

Maintain

Prototype Accepted

Iterative

Development

Prototype

Development

[email protected] 12

Prototyping Model: Phases (i)

Prototype Development

Requirements are gathered; Quick design iscarried out; Prototype is built

Developed Prototype is submitted to customerfor evaluation

Based on customer feedback – requirementsare refined, prototype is modified

This cycle continues: till the customer approvesthe prototype

[email protected] 13

Prototyping Model: Phases (ii)

Iterative Development

Once customer approves prototype, actualsystem is built using iterative waterfall model

As working prototype is available, Analysisphase is almost redundant

Code for prototype is thrown away; System isbuilt from scratch

[email protected] 14

Prototyping: When? Ad?

When preferred?

User requirements are not complete

Technical issues are not clear

Advantage

Provides better understanding of the system beingdeveloped

Increases user involvement in product even beforeimplementation

Quicker user feedbacks

Defects can be detected much earlier : reduces timeand cost for the maintenance

[email protected] 15

Prototyping: Disadvantage?

Disadvantage

More complex, Requires extra efforts

Developer may reuse prototype, even though it isthrown away product

Customers can be confused between prototype andactual product

Final product is prototype dependent; So, requiresextra care

[email protected] 16

Incremental Model: Concept Successive Versions Model or Evolutionary Model

Combines elements of linear sequential (waterfall) model with the iterative philosophy of prototyping model.

SW requirements are broken down into:

Core Product

Increments

[email protected] 17

Incremental Model: Concept

Core Product:

Initially, simple working system is built.

Referred as core product (or first increment)

Fulfills basic requirements of the software

Increments/Versions:

Enhancements are made to the developed SW by adding features & functionalities

Each enhanced SW is called increment/version

This process is continued until desired SW is developed

[email protected] 18

Incremental Model: Example

Word Processing Software

Core Product: Basic editing and document production functions

Increment 2: Text Formatting Features

Increment 3: Spelling & Grammar Check

Increment 4: Page Layout Formatting Features

[email protected] 19

Incremental Model: Figure

[email protected] 20

Incremental: When Preferred?

When preferred?

For large products: When it is easier to find modulesfor incremental implementation

Sufficient staff is not available to imp system in one go

Customer prefers product in incremental form

Resources with required skill set are not available, or,to be used on contract basis for specific iterations

[email protected] 21

Incremental: Ad-Disad?

Advantage Working model available at very early stage

Quicker user feedbacks

Defects can be detected much earlier : reduces timeand cost for the maintenance

Testing & Debugging easy; Better management of risks

No need of large no. of resources in one go 2 dv SW

Disadvantage More complex, Requires extra efforts

Requires better planning

Not suitable for smaller products

Difficult to divide problem into several versions

[email protected] 22

RAD Model: Concept Rapid Application Development Model

Incremental SW Process Development mode –uses extremely short development cycle

Rapid development is achieved by: Component based construction

Fully functional system can be developed within very short time periods

[email protected] 23

RAD Model: Figure

Business

Modeling

Data

Modeling

Process

Modeling

Application

Generation

Testing &

Turnover

Component-1

Team #1

Business

Modeling

Data

Modeling

Process

Modeling

Application

Generation

Testing &

Turnover

Component-2

Team #2

Business

Modeling

Data

Modeling

Process

Modeling

Application

Generation

Testing &

Turnover

Component-N

Team #N

...

Integration App. Code / Software

[email protected] 24

RAD Model: Phases (i)

Business Modeling

Information flow among business functions is modeled

Information: What – drives business process; What –generated; Who – generates; Where – go; Who -process

Data Modeling

Information flow: refined into: a set of data objects

Attributes of data objects are identified

Relationships among data objects are identified

[email protected] 25

RAD Model: Phases (ii)

Process Modeling

Data objects : transformed into: business functions

Functions: operations add, update, del, retrieve

Application Generation

4G techniques and automated tools are used

Existing programs are reused, or, reusable componentsare created

Testing & Turnover

New components should be tested

Due to reusable components, overall testing time isreduced

[email protected] 26

RAD Model: When Preferred?

When preferred?

It is possible that system can be modularized, and,each module takes short development time

Sufficient resource persons are available

Sufficient budget is available; due to use of 4Gtechniques, cost is higher

[email protected] 27

RAD Model: Ad-Disad?

Advantage

Reduced development time

High reusability

High productivity

Disadvantage

Management is too complex

Not suitable for all system

Requires highly skilled developers/designers

Cost is high

[email protected] 28

Spiral Model: Concept

Diagrammatic representation appears as spiral with many loops

Each loop is referred as phase

No fixed number of loops; flexible; can vary from project to project

[email protected] 29

Spiral Model: Figure

Objective

Setting

Identify &

Resolve RisksDevelop

Next Level of Product

Review &

Planning

[email protected] 30

Spiral: Quadrants/Sectors (i)

Objective Setting

One or more features are identified

Determine objectives: Objectives are investigated,elaborated, and analyzed

Alternative solutions are found

Identify & Resolve Risks

Evaluate alternative solutions

Use prototype Select best possible solution

Risk is identified (assessed) and resolved (reduced)

[email protected] 31

Spiral: Quadrants/Sectors (ii)

Develop Next Level of Product

Develop next level of product and verify/validate it

Identified features are implemented

At end: next version of product is available

Review & Planning

Review results with customers

Plan the next iteration around the spiral

[email protected] 32

Spiral Model: Other Terms

Parallel Cycles

Can be used for simultaneous development

Radius of spiral

Represents cost incurred in the project so far

Angular Dimension

Represents progress made so far in current iteration

As a Meta Model

[email protected] 33

Spiral Model: When Preferred?

When preferred?

For technically challenging SW:

For projects: Prone to risks, or having many unknownrisks

For long term projects

Sufficient budget is available

Requirements are not clear

[email protected] 34

Spiral Model: Ad-Disad?

Advantage

Changing requirements can be accommodated

Modular development is possible: Versions/Increments

Quicker user feedbacks

Defects can be detected much earlier Reduced time

& cost for maintenance

Disadvantage

Very complex; Knowledgeable staff is required

Not suitable for small or low-risk projects

Spiral may become (go) infinite

35

Thank U…!!!

[email protected]