Вы находитесь на странице: 1из 26

A Comparison of

Software Development
Lifecycle (SDLC) Models

c
Agenda
À ×ntroduction
À Generic SDLC Components
À Target SDLCs
Sequential
×terative
Evolutionary
Agile
À Discussion of Each SDLC
Process Model (graphical)
Definition
Advantages and Disadvantages
Audience Experience
À Conclusion

×ntroduction
À Software development is a process
tracked by project managers, and
managed under various differing
models.
À The models affect largely development
effectiveness and product quality.
À SDLC ± Software Development
LifeCycle
À Types ± sequential, iterative,
evolutionary, and agile
G
Generic SDLC Components

À Requirements
À Plan
À Design
À Build
À Test
À Maintain

Œ
General SDLC Model

^   
   
     

£
Generic SDLC Benefits
À Visibility
À Chunks o¶work
À Task identification
À Management framework
À Budget and resource management
À Encourage systematic evaluation of
risks, progress and options
À A common and shared vocabulary
À ‰    

 
Sequential

À Classic
À Most common
À Linear--sequential lifecycle model
Linear
À Examples ± Waterfall, Dotted
Dotted--U, V-
V-
Model

ü
Sequential Model

^   

 



 

  
  

  


Definition
À Each phase must be completed in its
entirety before the next phase can
begin.
À At the end of each phase, a review
takes place to determine if the project
is on the right path, and whether or not
to continue or discard the project.

A
Advantages
À Most common
À Simple to understand and use
À Easy to manage due to rigidity ± each
phase has specific deliverables and a
review
À Phases are processed and completed
individually
À Works well for smaller projects, or
where requirements are well
understood
c
Disadvantages
À Adjusting scope during the lifecycle
can end a project
À No working software is produced until
late in the lifecycle
À High amounts of risk and uncertainty
À Poor model for complex or object-
object-
oriented projects
À Poor model for long or ongoing
projects, or where requirements are
likely to change
cc
×terative

À ×ntuitive approach to the Waterfall


Model
À A.k.a. ×ncremental or progressive
lifecycle model
À Examples ± Rapid Application
Development (RAD), Rational Unified
Process (RUP)

×terative Model

^   

 



 

  
  

  

cG
Definition
À Multiple development cycles take place,
making the model a ³multi-
³multi-waterfall´
lifecycle; RAD includes business, data.
process modeling.
À Cycles are divided up into smaller,
more easily managed iterations. Each
iteration passes through each of the
phases (Requirements thru Testing).
À Working software is produced in
×teration 1, and built upon during each
iteration thereafter.

Advantages
À Generates working software quickly
and early during the lifecycle
À More flexible ± less costly to change
the scope or requirements
À Easier to test and debug during a
smaller iteration
À Easier to manage risk - risks are
identified and resolved during an
iteration; and each iteration is an easily
managed milestone

Disadvantages

À Each phase of an iteration is rigid with


no overlaps
À Costly system architecture or design
issues may arise because not all
requirements are gathered up front for
the entire lifecycle


Evolutionary
À Build and test working versions of
software to learn and acquire
information, and gradually evolving the
final design.
À Projects are defined in a limited sense
allowing a limited amount of work to
take place in each phase.
À A.k.a. Prototyping lifecycle model
À Examples ± Adaptive Software
Development (ASD), Spiral

Evolutionary Model


^   
 

^



 
 


 
 
â  
 
ââ 
 

âââ ââââ

  

c
Advantages

À ×ncreased risk analysis (especially for


Spiral)
À Good for large and mission-
mission-critical
projects
À Software is produced early and often in
the lifecycle, with customer evaluation

cA
Disadvantages

À Can be costly to use


À Risk analysis requires highly specific
expertise
À Project¶s progress is highly dependent
upon the risk analysis phase
À Does not work well for smaller projects

Agile
À Developed to address users' needs
based on requirements to develop
relevant business apps quicker and
cheaper.
À Approaches ± test
test--driven (TDD), model
model--
driven (MDD), use case-
case-driven (UCDD),
behavioral--driven (BDD), and feature-
behavioral feature-
driven (FDD)
À Examples ± eXtreme Programming
(XP), AUP

c
Agile Model (AMDD)
  



   ! "
^      

   
    


   

      c  
á 
 

    
 

Definition
À Focused on user involvement through
teams and workshops, with business
analysts and development .
À Agile apps are delivered incrementally.
À ×terations are small with short delivery
periods.


G
Advantages
À Small numbers of rules and best
practices that are easy to employ.
À Good model for early partial working
solutions, and in environments that
change steadily.
À Supports concurrent development and
delivery within an overall planned
context.
À Can be a tool to improve teamwork,
inspire and motivate, and cross-
cross-train.

Œ
Disadvantages
À Managed by 
  (strict delivery
management which dictates the scope,
functionality to be delivered, and
adjustments to meet the deadlines).
À Poor model if there is fire-
fire-fighting
addiction. poor communications, prima
donnas or donalds, or
micromanagement.
À Does not work without an overall plan,
an Agile leader, and Agile PM
practices.

£
Conclusion
À Agile models (including XP) deliver the
biggest and most comprehensive products.
À Sequential models take the longest, have the
most written documentation, and the fewest
graphical docs. This adds up to delays in
considerations of technology, risk, and team
progress.
À Suitability ± depends on people, processes,
and products

Вам также может понравиться