Showing posts with label SDLC (Software Development Life Cycle). Show all posts
Showing posts with label SDLC (Software Development Life Cycle). Show all posts

Sunday, August 31, 2014

What is V-model- advantages, disadvantages and when to use it?

What is V-model- advantages, disadvantages and when to use it?

V- model means Verification and Validation model. Just like the waterfall model, the V-Shaped life cycle is a sequential path of execution of processes. Each phase must be completed before the next phase begins.  Testing of the product is planned in parallel with a corresponding phase of development.


The various phases of the V-model are as follows:

Requirements like BRS and SRS begin the life cycle model just like the waterfall model. But, in this model before development is started, a system test plan is created.  The test plan focuses on meeting the functionality specified in the requirements gathering.

The high-level design (HLD) phase focuses on system architecture and design. It provide overview of solution, platform, system, product and service/process. An integration test plan is created in this phase as well in order to test the pieces of the software systems ability to work together.

The low-level design (LLD) phase is where the actual software components are designed. It defines the actual logic for each and every component of the system. Class diagram with all the methods and relation between classes comes under LLD. Component tests are created in this phase as well.

The implementation phase is, again, where all coding takes place. Once coding is complete, the path of execution continues up the right side of the V where the test plans developed earlier are now put to use.

Coding: This is at the bottom of the V-Shape model. Module design is converted into code by developers.

Advantages of V-model:

    Simple and easy to use.
    Testing activities like planning, test designing happens well before coding. This saves a lot of time. Hence higher chance of success over the waterfall model.
    Proactive defect tracking – that is defects are found at early stage.
    Avoids the downward flow of the defects.
    Works well for small projects where requirements are easily understood.

Disadvantages of V-model:

    Very rigid and least flexible.
    Software is developed during the implementation phase, so no early prototypes of the software are produced.
    If any changes happen in midway, then the test documents along with requirement documents has to be updated.

When to use the V-model:

    The V-shaped model should be used for small to medium sized projects where requirements are clearly defined and fixed.
    The V-Shaped model should be chosen when ample technical resources are available with needed technical expertise.

High confidence of customer is required for choosing the V-Shaped model approach. Since, no prototypes are produced, there is a very high risk involved in meeting customer expectations.
*************
 System Requirements Specification (SyRS):

A System Requirements Specification (abbreviated SyRS when need to be distinct from a Software Requirements Specification SRS) is a structured collection of information that embodies the requirements of a system.

A business analyst, sometimes titled system analyst, is responsible for analyzing the business needs of their clients and stakeholders to help identify business problems and propose solutions. Within the systems development life cycle domain, the BA typically performs a liaison function between the business side of an enterprise and the information technology department or external service providers.

Software requirements specification

A software requirements specification (SRS) is a description of a software system to be developed, laying out functional and non-functional requirements. (Non-functional requirements impose constraints on the design or implementation such as performance engineering requirements, quality standards, or design constraints.) The specification may include a set of use cases that describe interactions the users will have with the software.




Saturday, August 30, 2014

SDLC, Software Development Life Cycle

SDLC, Software Development Life Cycle


SDLC Overview

SDLC, Software Development Life Cycle is a process used by software industry to design, develop and test high quality softwares. The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
  • SDLC is the acronym of Software Development Life Cycle.
  • It is also called as Software development process.
  • The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
  • ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software.
A typical Software Development life cycle consists of the following stages:
  • Stage 1: Planning and Requirement Analysis
  • Stage 2: Defining Requirements
  • Stage 3: Designing the product architecture
  • Stage 4: Building or Developing the Product
  • Stage 5: Testing the Product
  • Stage 6: Deployment in the Market and Maintenance


SDLC Models
There are various software development life cycle models defined and designed which are
followed during software development process. These models are also referred as "Software
Development Process M
odels". Each process model follows a Series of steps unique to its type,
in order to ensure success in process of software development. Following are the most
important and popular SDLC models followed in the industry:

Waterfall Model

Iterative Model

Spiral Model

V-Model

Big Bang Model The other related methodologies are Agile Model, RAD Model

Rapid Application : Development and Prototyping Models



Waterfall Model
The Waterfall Model was first Process Model to be introduced. It is also referred to as
a linear - sequential life cycle model. It is very simple to understand and use.
In a waterfall model, each phase must be completed before the next phase can begin and there
is no overlapping in the phases. Waterfall model is the earliest SDLC approach that was used for software development .
The waterfall Model illustrates the software development process in a linear sequential flow; hence it is also referred to as a linear - sequential life cycle model. This means that any phase in
the development process begins only if the previous phase is complete.
In waterfall model phases do not overlap. .
Waterfall Model design Waterfall approach was first SDLC Model to be used widely in
Software Engineering to ensure success of the project.
In "The Waterfall" approach, the whole process of software development is divided into separate
phases. In Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.

******************************************
Iterative model :





Advantages of Iterative model:

    In iterative model we can only create a high-level design of the application before we actually begin to build the product and define the design solution for the entire product. Later on we can design and built a skeleton version of that, and then evolved the design based on what had been built.
    In iterative model we are building and improving the product step by step. Hence we can track the defects at early stages. This avoids the downward flow of the defects.
    In iterative model we can get the reliable user feedback. When presenting sketches and blueprints of the product to users for their feedback, we are effectively asking them to imagine how the product will work.
    In iterative model less time is spent on documenting and more time is given for designing.

 Disadvantages of Iterative model:

    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

When to use iterative model:

    Requirements of the complete system are clearly defined and understood.
    When the project is big.
    Major requirements must be defined; however, some details can evolve with time.

*************************

Spiral Model :-





The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.

Planning Phase: Requirements are gathered during the planning phase. Requirements like ‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’ that is ‘System Requirement specifications’.

Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.  A prototype is produced at the end of the risk analysis phase. If any risk is found during the risk analysis then alternate solutions are suggested and implemented.

Engineering Phase: In this phase software is developed, along with testing at the end of the phase. Hence in this phase the development and testing is done.

Evaluation phase: This phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral.

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.

Disadvantages of Spiral model:

    Can be a costly model to use.
    Risk analysis requires highly specific expertise.
    Project’s success is highly dependent on the risk analysis phase.
    Doesn’t work well for smaller projects.

 When to use Spiral model:

    When costs and risk evaluation is important
    For medium to high-risk projects
    Long-term project commitment unwise because of potential changes to economic priorities
    Users are unsure of their needs
    Requirements are complex
    New product line
    Significant changes are expected (research and exploration)