SE SDLC Models 150309

Preview:

Citation preview

bharat_mybooks@rediffmail.com 1

Software Development Life Cycle

Models

by:Bharat V. Chawda

Computer Engineering Department,BBIT, VVNagar

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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.

bharat_mybooks@rediffmail.com 5

Waterfall Model: Figure

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 11

Prototyping Model: FigureRequirements

Gathering

Quick Design

Build

Prototype

Customer

Evaluation

Refine

Requirements

Design

Implement

Test

Maintain

Prototype Accepted

Iterative

Development

Prototype

Development

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 19

Incremental Model: Figure

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 29

Spiral Model: Figure

Objective

Setting

Identify &

Resolve RisksDevelop

Next Level of Product

Review &

Planning

bharat_mybooks@rediffmail.com 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)

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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

bharat_mybooks@rediffmail.com 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…!!!

bharat_mybooks@rediffmail.com

Recommended