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)




2 comments: