Tuesday, June 21, 2016

System Development Life Cycle MODELS  

Different types of SDLC models prevalent in the industry.

  • Waterfall

  • Incremental

  • Spiral

  • RAD

  • V model 


    Waterfall Model


     
     
    The waterfall model is a sequential software development model in which development is seen as flowing steadily downwards (like a waterfall). To follow the waterfall model, one proceeds from one phase to the next in a purely sequential manner.

    Thus the waterfall model maintains that one should move to a phase only when its preceding phase is completed and perfected. Simple, Phases of development in the waterfall model are discrete, and there is no jumping back and forth or overlap between them.

    Usage

    The Waterfall model is widely used, including by such large software development houses as those employed by the U.S. Department of Defense and NASA.

    Advantages of the waterfall model:

    1. Fixed Requirement.
    2. Emphasis on documentation
    3. Structured approach, liner so easy to understand
    4. If there is no rework then the model builds a high quality product.

    Disadvantages of the waterfall model:

    1. Long duration so requirements may change, acceptability of the product reduces.
    2. If clients change their requirements after designing is finished, that will affect the overall budget of the project.
    3. Testing is postponed to the later stage till coding is completed. So issues will be uncovered later.
    4. Real projects rarely flow in the sequential flow.
    5. No adaptability/flexibility in the project.
    6. Working model is not seen till later stages.  

    Incremental Model

     


    100 requirements and 60 core requirements in first phase.
    20 in next phase
    20 in next phase
    20 in last phase

    The incremental model combines elements of the linear sequential model with the iterative philosophy of prototyping. The incremental model applies linear sequences in a staggered fashion as calendar time progresses. Each linear sequence produces a deliverable “increment” of the software. More realistic approach.

    For example , word-processing software developed using the incremental paradigm might deliver basic file management, editing, and document production functions in the first increment; more sophisticated editing and document production capabilities in the second increment; spelling and grammar checking in the third increment; and advanced page layout capability in the fourth increment.

    When an incremental model is used, the first increment is often a core product.

    That is, basic requirements are addressed, but many supplementary features (some known, others unknown) remain undelivered.

    Incremental development is the process of establishing requirements, designing, building and testing a system done as a series of smaller developments.

    Advantages
    1. More realistic approach to development of large scale systems and software.
    2. Each increment is fully tested before beginning the next.
    Drawbacks
    1. Total planned testing effort would be more than that for waterfall model.  


    Spiral Model

     It came into existence for mission critical projects, where the risk factor was to be evaluated. Used in Mission Critical System such as guided missile systems.

    Risk Analysis

    Critical Software

    Risk

    Trigger Event

    Monitor

    Manage

    Engineering

    Design

    Develop

    Integration and Testing

    While drawing the life cycle, draw it segment by segment.

    The spiral model, originally proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model.

    It provides the potential for rapid development of incremental versions of the software. Using the spiral model, software is developed in a series of incremental releases. During early iterations, the incremental release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced.

    The spiral model is intended for large, expensive, risky and complicated projects. For larger, more critical projects, each task region contains more work tasks that are defined to achieve a higher level of formality.

    Spiral model that contains six task regions:

    Planning—tasks required to define resources, timelines, and other project related information.

    Risk analysis—tasks required to assess both technical and management risks.

    Engineering—tasks required to design, develop, integrate and test.

    Customer evaluation—tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.

    Advantages:

    1. Best for development of Critical applications.
    2. Software build is robust in nature.
    3. Can cope with the changes in the requirements.

    Drawbacks:

    1. Time increases.
    2. Cost increases, as a new phase is added in the life cycle.

      RAD Model


    Rapid application development (RAD), follows the water fall model itself. Each of the phase of the waterfall model is mapped with the automation tool. RAD is designed to take advantage of powerful development software like CASE (Computer Aided Software Engineering) tools, prototyping tools and code generators (MS Visual Studio, MS Front Page) it is described as a process through which the development cycle of an application is expedited. Rapid Application Development thus enables quality products to be developed in a very short span.

    Phase                                                               Tool

    1. Project Management                                  Project Console

    2. Requirements Gathering                            Requisite Pro

    3. Design and Development                          Rational Rose

    4. Test Management                                      QTP, QC, WR

    Advantages.

    1. Product is operational very soon.
    2. Emphasizes on extremely short development life cycle.
    3. Requirements are well understood.
    4. Creates a fully functional system in a very short span.
    5. Component based construction.

    Disadvantages

    1. High cost to buy the licenses of the RAD tools

    Some of these tools costs 10 cr. Client is not going to buy these expensive tools right. 
     

    V MODEL


    What was the need of V model?

    In earlier SDLC models defects were discovered very late in the life cycle. Necessity is the mother of invention. Right!!!

    What it is?

    Implements the waterfall model. Testing is done very early in the Life cycle. V model emphasis on early discovery of defects, and eventually brings down the cost.

    Requirements 1 <-------------------------------------------> 2 Acceptance Test cases
    High Level Design 3 <------------------------------> 4 System Test cases
          Low Level Design 5 <-----------------------> 6 Integration Test cases
                  Unit Level Design 7 <----------> 8 Unit Test cases
                                                      9 Code

    The ‘V’ can also stand for the terms Verification and Validation.

    Advantages:


    1. The errors of the particular phases are identified in that particular phase only. So stops the propagation of defect to another phase. Prevents defect multiplication.

    2. Optimization of the test resources i.e. the testers.

    3. Relative reduction on cost compared to the other SDLC models.

    4. Starting early means the duration of the life cycle is reduced.

    5. Testing activities like test designing start at the beginning of the project well before coding and therefore saves a huge amount of the project time.

    Verification and Validation model à V and V model à V model

    Some computer illiterates also call it as V shaped model




No comments:

Post a Comment

MS VISUAL STUDIO CODEDUI TEST FRAMEWORK AND TEST EXECUTION

MS VISUAL STUDIO CODEDUI TEST FRAMEWORK AND TEST EXECUTION  1.0 Pre-Requisites for the execution 1.1 Software Requirements ...