Você está na página 1de 51

Software development life cycle

Software deveploment Lifecycle Model


Definition.
The Software Development Life Cycle is a step-by-step process
involved in the development of a software product. It is also
denoted as Software Development process. The whole process is
generally classified into a set of steps and a specific operation will
be carried out in each of the steps. . The basic classification of the
whole process is as follows :
 Requirements specification
 Design
 Programming
 Integration
 Delivery
 Maintenance
Software Lifecycle Review

Requirements engineering

design
Maintenance
programming

integration

delivery
Different Life Cycle Models
 Water fall model
 Spiral model
 code and fix model
 Incremental model
 concurrent model
 prototype model
 v model
 iterative model
The Waterfall Model
• One of the first model to be proposed is the
waterfall model.
• Introduced by Royce 1970.
• The waterfalls model, sometimes called the
classic life cycle
• A sequential approach to software development
• It cascades from one stage to the next only
previous stage is complete.
Waterfall Model

Requirements
engineering

Design
Product

Programming
Process

Iteration Integration

Maintenance Process

Delivery
Product Product
Input Output
Requirements
engineering

Design

Product
Programming

Process
Integration

Iteration Process

Delivery
Maintenance Product Product
Input Output
Requirements
engineering

Design

Product
Programming Maintenance

Process
Integration

Iteration

Delivery
Maintenance Product Product
Input Output
Requirements
engineering

Product Product
Input Output

Main points:
1.Identify the real needs of the client
2.Uses rapid prototyping
3.Requirements specification is commonly used
As a contract between client and developer
Design

Product Product
input Output

Main points:
1. The design specification is created in multiple stages .
2. The design specification states how the software will implement the
necessary functionality
Design

Preliminary Interim Critical

Main points:
1. The design specification is created in multiple stages .
2. The design specification states how the software will implement the
necessary functionality
Design

What the software must do

How the software will do it

Main points:
1. The design specification is created in multiple stages .
2. The design specification states how the software will implement the
necessary functionality
Programming

Product Product
input Output

Main points:
1. The manage complexity, software is decomposed into modules
2. Proper management is critical to coordinate development of modules
Programming

Main points:
1. The manage complexity, software is decomposed into modules
2. Proper management is critical to coordinate development of modules
Main points:
1. The manage complexity, software is decomposed into modules
2. Proper management is critical to coordinate development of modules
Integration

Product Product
input Output

Main points:
1. Testing is crucial to integration
Delivery

Product Product
input Output

Main Points:
1. Acceptance testing is used to determine that the delivery
product meets the specified requirements.
2. Upon acceptance ,the software is installed and used
Main Points:
1. Acceptance testing is used to determine that the delivery product
meets the specified requirements.
2. Upon acceptance ,the software is installed and used
Advantage of Waterfall
 Easy to understand, easy to use
 Provides structure to inexperienced staff
 Sets requirements stability
 Works well when quality is more important than cost
 After every stage of software coding, testing is done
to check the correct running of the code
Disadvantage of Waterfall
 All requirements must be known upfront
 Time consuming
 Difficulty responding to changes
 Never backward .
 Little opportunity for customer to preview the system
 Difficult and expensive to make changes to documents
Spiral model
• In 1988 Boehm developed the spiral model as an
iterative model which includes risk analysis
and risk management.
• Process is represented as a spiral rather than as a
sequence of activities with backtracking
• Each loop in the spiral represents a phase in the
process.
• Risks are explicitly assessed and resolved
throughout the process
Spiral Model
1.objective

2.Alternatives

3.constraints
Determine
Objectives Risk
Alternatives 1.
constrains 2.
3.
4.
5.
Determine
Objectives Evaluate alternatives,
Alternatives Identify, resolve risks
constrains

Risk
1.
2.
3.
4.
5.
Cumulative Cost

Determine Progress
Objectives Through
Alternatives steps
Evaluate alternatives,
constrains
Identify, resolve risks

Commitment prototype1
Review
Partition

Develop, verify
Plan next phases
Next-level product
prototype2

prototype1
Evaluate alternatives,
Identify, resolve risks

Operational
prototype
prototype3
prototype2

prototype1

Develop, verify
Next-level product
Build
Build
Start Prototype
Prototype
of Round 2

Project
Project
Start
Start

Lifecycle Concept
ConceptofofOperation
LifecycleModeling
Modeling Operation
Process Activity
Activity
Process
Advantage of Spiral Model
• Additional Functionality can be added at a later date.
• Users see the system early because of rapid
prototyping tool.
• Early and frequent feedback from users
• Good project visibility.
• Avoidance of Risk is enhanced
Disadvantage of Spiral Model

• Time spent for evaluating risks too large for small or


low-risk projects

• The model is complex

• Spiral may continue indefinitely


Code and fix model
Incremental development
• Development and delivery is broken down into
increments

• Each increment delivers part of the required


functionality

• Requirements are prioritised and the highest priority


requirements are included in early increments
Incremental Model
Advantages
• more flexible.
• easier to test and debug.
• Easier to manage risk.
• Each iteration is an easily managed .

Disadvantages
 Each phase of an iteration is rigid and do not
overlap each other.
Prototyping Model
• Start with what is known about requirements.
• Do a quick design.
• Build the prototype by focusing on what will
be seen by the user.
• Use the prototype to show the user and help
refining requirements.
Prototyping Model
Qu ic k p la n

Co m m u n ic a t io n

Mo d e l i n g
Qu ic k d e s ig n

De p lo ym e n t
De liv e ry
& Fe e d b a c k Co n s t ru c t io n
of
p ro t o t y p e
Advantages of Prototype model

 Strong Dialogue between users and


developers .
Missing functionality can be identified easily .
Confusing or difficult functions can be
identified .
 flexible designs
 Reduced time and costs
 Improved and increased user involvement
Disadvantages of Prototype model

Client may be unknowledgeable

Difficult to know how long project will last

Developer misunderstanding of user objectives

User confusion of prototype and finished system


The V-Shaped Model
• V-Model evolved from waterfall Model.
• Each phase must be completed before the next phase begins.
• Instead of moving down in a linear way, the process steps are bent
upwards after the coding phase, to form the typical V shape.
• Testing is emphasized in this model more than in the waterfall
model.
•V stands for Verification - during development and Validation
during testing .Left side is Verification and Right side is Validation -
both development process and testing process are mapped.
Advantage
 It is a fast method
verification and validation will be done side by side.
The errors occurred in any phase will be corrected in
that phase itself

Disadvantage
requires more people to work
It needs lot of resources and money.
The concurrent development model -called concurrent
engineering.

All activity exist concurrently ,but reside in different


State –awaiting changes, under development, none &
Done

 multiply software development activities are done


simultaneously
The Concurrent Development Model

none

Under
development

Awaiting
Under review
changes

Under Revision Baseline

Done
Advantages
• Increased throughput
• Immediate feedback from testing
• More appropriate program structure
Disadvantage
• It requires discipline to avoid adding too many
new features too late in the project
Iterative model
iterative enhancement is to develop a software system
incrementally, allowing the developer to take advantage of
what was being learned during the development of earlier,
incremental, deliverable versions of the system.
The iteration involves the redesign.
Advantage:
 Easy to test ,the customer is tightly involved ,the
change cost is low .
Disadvantage
 More time spent in review and analysis.
Iterative model
THANK YOU

Você também pode gostar