SDLC Models Advantages and Disadvantages

About This Presentation
Title:

SDLC Models Advantages and Disadvantages

Description:

Introductory –

Number of Views:149
Slides: 44
Provided by: inam12
Tags:

less

Transcript and Presenter's Notes

Title: SDLC Models Advantages and Disadvantages


1
Software development methodologies
  • Presented by
  • Farida anwar
  • Bsit-7th morning
  • Subject itproject management
  • University of okara

2
Methodologies
  • Waterfall
  • Prototype model
  • Incremental
  • Iterative
  • V-Model
  • Spiral
  • Scrum
  • Cleanroom
  • RAD
  • DSDM
  • RUP
  • XP
  • Agile
  • Lean
  • Dual Vee Model
  • TDD
  • FDD

3
Waterfall
  • Sequential design process
  • Progress is seen as flowing steadily downwards
    (like a waterfall) through SDLC

4
Advantages and of the Waterfall Model
  • Suitable for simple or smaller projects
  • Requirements are well understood
  • Easy to understand
  • Easy to manage
  • Clear milestones
  • Disadvantages
  • High amounts of risk and uncertainty.
  • Not a good model for complex and
    object-oriented projects.
  • Poor model for long and ongoing projects.
  • Does not allow scope changes
  • Does not allow for requirement changes
  • Unable to easily handle unexpected risks

5
Prototyping
  • Creating prototypes of software applications i.e.
    Incomplete versions of the software program being
    developed
  • A prototype typically simulates only a few
    aspects of, and may be completely different from,
    the final product.

6
Advantages of Prototype model
  • Users are actively involved in the development
  • Reduced time and costs
  • Improved and increased user involvement
  • Errors can be detected much earlier.
  • Quicker user feedback is available leading to
    better solutions.
  • Disadvantages
  • Incomplete application may cause application not
    to be used as the full system was designed
    incomplete or inadequate problem analysis.
  • Leads to implementing and then repairing way of
    building systems.
  • Expense of implementing prototyping
  • Prototyping is usually done at the cost of the
    developer
  • It is a slow process.

7
Incremental Build Model
  • The model is designed, implemented and tested
    incrementally (a little more is added each time).
  • Finished when satisfies all the requirements.
  • Combines the elements of the waterfall model with
    the iterative philosophy of prototyping.

8
Advantages of Incremental model
  • Generates working software quickly and early
    during the software life cycle.
  • This model is more flexible less costly to
    change scope and requirements.
  • It is easier to test and debug during a smaller
    iteration.
  • In this model customer can respond to each built.
  • Lowers initial delivery cost.
  • Easier to manage risk because risky pieces are
    identified and handled during itd iteration.
  • Disadvantages
  • Needs good planning and design.
  • Needs a clear and complete definition of the
    whole system before it can be broken down and
    built incrementally.
  • Total cost is higher than waterfall.

9
Iterative and Incremental Development
  • Iterative and incremental development is any
    combination of both iterative design or iterative
    method and incremental build model for
    development.

10
Incremental vs. Iterative
11
A Bit Different Understanding
12
Effort in Iterative Development
13
Spiral Model
  • Combining elements of design and
    prototyping-in-stages
  • Combines the features of the prototyping and the
    waterfall model
  • The spiral model is intended for large, expensive
    and complicated projects
  • Advantages of top-down and bottom-up concepts

14
Advantages of Spiral model
  • High amount of risk analysis hence, avoidance of
    Risk is enhanced
  • Good for large and mission-critical projects.
  • Strong approval and documentation control.
  • Additional Functionality can be added at a later
    date.
  • Software is produced early in the software life
    cycle.
  • There is always a space for customer feedback. 
  • Disadvantages of Spiral model
  • Can be a costly model to use.
  • Risk analysis requires highly specific expertise.
  • Doesnt work well for smaller projects.
  • For its smooth operation spiral model protocol
    needs to be followed strictly
  • It is not suitable for low risk projects.

15
Background
  • Top-down
  • deductive reasoning
  • analysis or decomposition
  • Descartes
  • G gt 1
  • Bottom-up
  • inductive reasoning
  • synthesis
  • Bacon
  • 1 gt G

16
RAD
  • Minimal planning and fast prototyping.
  • Developing instead of planning
  • The lack of pre-planning generally allows
    software to be written much faster, and makes it
    easier to change requirements.

17
Advantages of the RAD model
Reduced development time. Flexible and
adaptable to changes Increases reusability of
components Quick initial reviews
occur Encourages customer feedback With less
people, productivity can be increased in short
time Each phase in RAD delivers highest
priority functionality to client Disadvantages of
RAD model Requires highly skilled
developers/designers. It can't be used for
smaller projects When technical risk is high,
it is not suitable Not all application is
compatible with RAD High dependency on modeling
skills
18
Cleanroom
  • The cleanroom process embeds software development
    and testing within a statistical quality control
    framework.
  • Mathematically-based software development
    processes are employed to create software that is
    correct by design, and statistical usage testing
    processes are employed to provide inferences
    about software reliability.
  • This systematic process of assessing and
    controlling software quality during development
    permits certification of software fitness for use
    at delivery.

19
Agile
  • Group of software development methods
  • Based on iterative and incremental development
  • Most important phrases
  • Self-organizing, cross-functional teams
  • Adaptive planning,
  • Evolutionary development and delivery,
  • A time-boxed iterative approach,
  • Rapid and flexible response to change.
  • A conceptual framework
  • The agile manifesto in 2001.

20
Advantages of Agile
  • Agile methodology has an adaptive approach which
    is able to respond to the changing requirements
    of the clients
  • Direct communication and constant feedback from
    customer representative leave no space for any
    guesswork in the system
  • Disadvantages
  • This methodology focuses on working software
    rather than documentation, hence it may result in
    a lack of documentation
  • The software development project can get

21
Scrum
  • Scrum is an iterative and incremental agile
    software development framework
  • A flexible, holistic product development strategy
  • Development team works as an atomic unit
  • Opposing to sequential approach

22
Advantages of Scrum
  • Saves time as well as money as regular sprint
    is held to review the task.
  • Involves the customer and stakeholders at each
    phase.
  • It also works best for all fast-moving product
    developments.
  • Scrum takes feedback from product owner and
    stakeholders.
  • The individual effort of each and every team
    member is transparent and appreciated.
  • Disadvantages of Scrum
  • The framework can be successful only with
    experienced team members.
  • This methodology works best with small teams
    than a large team of developers.
  • Adopting this methodology for a large team can be
    challenging.
  • The project is likely to suffer if any of the
    members leaves the project in the middle.

23
Lean (Kanban)
  • A translation of lean manufacturing principles
    and practices
  • Toyota production system,
  • Today part of agile community.

24
Lean Principles
  • Eliminate waste
  • Amplify learning
  • Decide as late as possible
  • Deliver as fast as possible
  • Empower the team
  • Build integrity in
  • See the whole

25
Extreme Programming (XP)
  • Improve software quality and responsiveness to
    changing customer requirements
  • A type of agile software development
  • Frequent "releases" in short development cycles
  • Introduce checkpoints where new customer
    requirements can be adopted.

26
XP Concepts (examples only)
  • Pair programming
  • Planning game
  • Test-driven development
  • Continuous integration

27
Advantages
  • Extreme programming methodologies emphasis on
    customer involvement.
  • This model helps to establish rational plans and
    schedules and to get the developers personally
    committed to their schedules which are surely a
    big advantage in the XP model.
  • This model is consistent with most modern
    development methods so, developers are able to
    produce quality software.
  • save costs and time required for project
    realization.
  • Disadvantages
  • This methodology is only as effective as the
    people involved, Agile does not solve this issue.
  • This kind of software development model requires
    meetings at frequent intervals at enormous
    expense to customers.
  • It requires too much development changes which
    are really very difficult to adopt every time for
    the software developer.
  • In this methodology, it tends to impossible to be
    known exact estimates of work effort needed to
    provide a quote, because at the starting of the
    project nobody aware about the entire scope and
    requirements of the project.

28
DSDM
  • An agile project delivery framework, primarily
  • DSDM fixes cost, quality and time at the outset
    and uses the Moscow prioritization of scope
  • Pareto principle
  • M - MUST describes a requirement that must be
    satisfied in the final solution for the solution
    to be considered a success.
  • S - should represents a high-priority item that
    should be included in the solution if it is
    possible. This is often a critical requirement
    but one which can be satisfied in other ways if
    strictly necessary.
  • C - could describes a requirement which is
    considered desirable but not necessary. This will
    be included if time and resources permit.
  • W - would represents a requirement that
    stakeholders have agreed will not be implemented
    in a given release, but may be considered for the
    future.

29
Advantages of DSDM
  • Users are highly involved in the development of
    the system so, they are more likely to get a grip
    on the software development project.
  • In this model, basic functionality is delivered
    quickly, with more functionality being delivered
    at frequent intervals.
  • This method provides an easy access by developers
    to end-users.
  • In this kind of development, approach projects
    are delivered on time and within a specific
    budget.
  • Disadvantages
  • The first thing is DSDM is costly to implement,
    as it requires users and developers both to be
    trained to employ it effectively. It may not be
    suitable for small organizations or one-time
    projects
  • It is a relatively new model, therefore, it is
    not very common to understand.

30
Test-driven development (TDD)
  • Relies on the repetition of a very short
    development cycle first the developer writes an
    (initially failing) automated test case that
    defines a desired improvement or new function,
    then produces the minimum amount of code to pass
    that test, and finally refactors the new code to
    acceptable standards.
  • Test-first programming concept of extreme
    programming in the beginning
  • Today standalone methodology

31
TDD ADVANTAGES
  • .Writing tests first require you to really
    consider what you want from the code
  • Short feedback loop
  • Creates a detailed specification
  • Reduced time in rework
  • Less time spent in the debugger and when it is
    required you usually get closer to problem
    quickly.
  • TDD Disadvantages
  • It takes a lot of time and effort which creates a
    sense of slow development.
  • TDD focuses on simplest design for current sprint
    and doesnt tackle for future major refactoring.
  • Its hard to test the interface because of
    continuous changes.
  • THINGS TO AVOID WHILE WRITING TEST CASES

32
Rational Unified Process (RUP)
  • An iterative software development process
    framework created by the rational software
    corporation (IBM)
  • Not a concrete prescriptive process, but an
    adaptable framework, intended to be tailored by
    the development organizations
  • Expected to select elements of the process that
    are appropriate

33
Advantages of RUP MODEL
  • Get high risk and high value first.
  • Constant user feedback and engagement.
  • Early cohesive core architecture.
  • Test early, often, and realistically.
  • Apply use cases where needed.
  • Do some visual modeling with UML.
  • Manage requirements.
  • Manage change requests and configuration.
  • Disadvantages of RUP
  • RUP is not considered particularly agile
    However, recent studies have shown that by
    adopting the right essential artifacts RUP is
    agile.
  • It fails to provide any clear implementation
    guidelines.
  • RUP leaves the tailoring to the user entirely.

34
Feature-driven development (FDD)
  • Iterative and incremental development process.
  • An agile method
  • Driven from a client-valued functionality
    (feature) perspective
  • Mostly part of other methodologies

35
Advantages of FDD Methodology
  • FDD Helps to move larger size projects and obtain
    repeatable success.
  • The simple five processes help to bring work done
    in a short time and easiest manner.
  • This type of model is built on set standards for
    software development industry, so it helps easy
    development and industry recognized best
    practices.
  • Disadvantages
  • Not an ideal methodology for smaller projects so,
    it is not good for an individual software
    developer.
  • High dependency on the main developer means the
    person should be fully equipped for an act as
    coordinator, lead designer, and mentor.
  • No written documentation provided to clients in
    this methodology so, they are not able to get a
    proof for their own software.

36
V-model
  • The v-model is an extension of the waterfall
    model.
  • Show the relationships between development phases
    and test phases
  • Time and project completeness vs. Level of
    abstraction

37
Advantages of V-model
  • Easy to use
  • Simple to use
  • Time saving, quick
  • Works well for small projects where
    requirements are easily understood
  • Covers all functional areas.
  • Disadvantages of V-Model
  • Very rigid
  • Least flexible
  • Software is developed during the implementation
    phase, so no early prototypes of the software are
    produced
  • Risky

38
Dual Vee Model
  • Describes a model of complex development
  • For example
  • Hardware
  • Platform
  • Application software
  • Development of a system's architecture is the
    big V
  • Components/entities developments are the small
    v-s
  • It shows interactions and sequences of developing
    a complex system and a system of systems.

39
Shouldnt forget
40
Waterfall
  • Details

41
Waterfall 1
  • Jump to next phase only if the prior one is
    completed
  • Pros
  • Detailed early analysis cause huge advantages at
    later phases
  • If a bug found earlier, it is much cheaper (and
    more effective) to fix than bugs found in a later
    phase
  • Requirement should be set before design starts
  • Points to importance of documentation (minimized
    broken leg issue)
  • Disciplined and well-structured approach
  • Effective for stable software projects
  • Easy to plan from project management point of view

42
Waterfall 2
  • CONs
  • Changes are expensive
  • Client does not explicitly know what he or she
    wants
  • Client does not explicitly know what is possible
    to have
  • Need to finish every phase fully
  • Long projects, difficult to keep the plan
  • Designers may not know in advance how complex a
    features implementation
  • Measure twice, cut once

43
  • Questions????
Write a Comment
User Comments (0)
About PowerShow.com