Software Development Life Cycle (SDLC)

What is SDLC ?

  • The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes for creating high-quality software.
  • In other words SDLC is a methodology to follow while creating softwares in an efficient and organized manner instead of just working on creating softwares without guidelines which will eventually cause errors and delivery delays, which will increase the cost.
  • SDLC or the Software Development Life Cycle is a process that produces software with the highest quality and lowest cost in the shortest time possible.

SDLC Phases

  1. Requirement analysis

  2. Planning

  3. Software design such as architectural design

  4. Software development

  5. Testing

  6. Deployment

    SDLC PHASES


Stages and Best Practices

1. Requirement analysis ( Identify the Current Problems )

  • “What are the current problems?”
  • This stage of the SDLC means getting input from all stakeholders, including customers, salespeople, industry experts, and programmers. Learn the strengths and weaknesses of the current system with improvement as the goal.
  • “Stakeholder” (NOUN) : anyone, or any organization who will use, need, or benefits the software.

2. Planing

  • “What do we want?”

  • In this stage of the SDLC, the team determines the cost and resources required for implementing the analyzed requirements. It also details the risks involved and provides sub-plans for softening those risks.

In other words, the team should determine the feasibility of the project and how they can implement the project successfully with the lowest risk in mind.

3. Design

  • "How will we get what we want?”
  • This phase of the SDLC starts by turning the software specifications into a design plan called the Design Specification. All stakeholders then review this plan and offer feedback and suggestions. It’s crucial to have a plan for collecting and incorporating stakeholder input into this document. Failure at this stage will almost certainly result in cost overruns at best and the total collapse of the project at worst.

4. Development or Implementation

  • “Let’s create what we want.”
  • At this stage, the actual development starts. It’s important that every developer sticks to the agreed blueprint. Also, make sure you have proper guidelines in place about the code style and practices.
  • For example, define a nomenclature for files or define a variable naming style such as camelCase. This will help your team to produce organized and consistent code that is easier to understand but also to test during the next phase.

5. Testing

  • “Did we get what we want?”
  • In this stage, we test for defects and deficiencies. We fix those issues until the product meets the original specifications.
  • In short, we want to verify if the code meets the defined requirements or not.
  • If it doesn’t meet the defined requirements we go back to step 2.
  • The good software development model minimizes going back to step 2 a-lot or going back to fix errors without knowing where the error is easily.

6. Software Deployment

  • “Let’s start using what we got.”
  • At this stage, the goal is to deploy the software to the production environment so users can start using the product. However, many organizations choose to move the product through different deployment environments such as a testing or staging environment.
  • This allows any stakeholders to safely play with the product before releasing it to the market. Besides, this allows any final mistakes to be caught before releasing the product.

7. Software Maintenance ( Extra )

  • “Let’s get this closer to what we want.”
  • The plan almost never turns out perfect when it meets reality. Further, as conditions in the real world change, we need to update and advance the software to match.

Some SDLC models

  • Waterfall Model

    • This SDLC model is the oldest and most straightforward. With this methodology, we finish one phase and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into the next.
    • The biggest drawback of this model is that small details left incomplete can hold up the entire process.
  • Agile Model

    • The Agile SDLC model separates the product into cycles and delivers a working product very quickly. This methodology produces a succession of releases. Testing of each release feeds back info that’s incorporated into the next version.
    • The drawback of this model is that the heavy emphasis on customer interaction can lead the project in the wrong direction in some cases.
  • Iterative Model

    • This SDLC model emphasizes repetition. Developers create a version very quickly and for relatively little cost, then test and improve it through rapid and successive versions.
    • One big disadvantage here is that it can eat up resources fast if left unchecked.
  • V-Shaped Model

    • An extension of the waterfall model, this SDLC methodology tests at each stage of development.
    • As with waterfall, this process can run into roadblocks.
  • Big Bang Model

    • This high-risk SDLC model throws most of its resources at development.
    • Works best for small projects.
    • It lacks the thorough requirements definition stage of the other methods.
  • Spiral Model

    • The most flexible of the SDLC models, the spiral model is similar to the iterative model in its emphasis on repetition.
    • The spiral model goes through the planning, design, build and test phases over and over, with gradual improvements at each pass.

Resources