Upload
bharat-chawda
View
156
Download
1
Embed Size (px)
Citation preview
Software Development Life Cycle
Models
by:Bharat V. Chawda
Computer Engineering Department,BBIT, VVNagar
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
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
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.
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
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
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
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
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
Prototyping Model: FigureRequirements
Gathering
Quick Design
Build
Prototype
Customer
Evaluation
Refine
Requirements
Design
Implement
Test
Maintain
Prototype Accepted
Iterative
Development
Prototype
Development
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Spiral Model: Figure
Objective
Setting
Identify &
Resolve RisksDevelop
Next Level of Product
Review &
Planning
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)
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
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
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
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