SDLC Methodologies and Advantages and Disadvantages

The Software Development Life Cycle (SDLC) is the software development world’s spellcheck — it can flag errors in software creation before they’re discovered (at a much higher cost) in successive stages. But it’s much more than that, of course: SDLC can also lay out a plan for getting everything right the first time.

The SDLC process involves several distinct stages, including planning, analysis, design, building, testing, deployment and maintenance. It has 6 methodologies .

  • Agile
  • Lean
  • Waterfall
  • Iterative
  • Spiral
  • Devops
  • V-shape

Agile

The Agile model has been around for about a decade. But lately, it has become a major driving force behind software development in many organizations. Some businesses value the Agile methodology so much that they are now applying it to other types of projects, including non-tech initiatives.

Work is typically broken into 2–4 week segments known as “sprints,” in which the responsible teams tackle the major needs of their customers and perform testing as they go. Agile tends to work well in small organizations, especially startups, where speed and flexibility is essential.

Advantages

  • Corrections of functional requirements are implemented into the development process to provide the competitiveness
  • Project is divided into shorten and transparent iterations
  • Fast release of first product version

Disadvantages

  • Difficulties with measuring the final cost because of permanent changes
  • The team should be highly professional and client-oriented
  • New requirements may conflict with the existing architecture

Lean

The Lean model for software development is inspired by lean manufacturing practices and principles. It is closely interconnected with agile. In contrast, the lean model is rooted in manufacturing best practices where excess waste and effort are seen as the largest risk to an organization. When it comes to software and projects, the lean SDLC methodology focuses on reducing waste in every phase, including scheduling, cost, and scope. This approach is most compelling for organizations with strict hardware requirements and other procurement needs. Lean, meanwhile, emphasizes the elimination of waste as a way to create more overall value for customers — which, in turn, helps to enhance satisfaction.

Advantages

  • Eliminates Waste if the project ongoing
  • Workers can get job satisfaction
  • Just in time

Disadvantages

  • Equipment Failure. Lean has very little room for error.
  • Delivery Inconsistencies. In correlation with equipment failure, lean manufacturing can lead to delivery inconsistencies.
  • Low Margin for Error.

Waterfall

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 this Waterfall model, typically, the outcome of one phase acts as the input for the next phase sequentially.

It has 6 sages.

  1. Requirement Gathering and analysis :- All possible requirements of the system to be developed are captured in this phase and documented in a requirement specification document.
  2. System Design :- It helps to defining the overall architecture of the system.
  3. Implementation :- Make the coding
  4. Integration and tesing :- testing of each unit. Post integration the entire system is tested for any faults and failures.
  5. Deployment of system :- the product is deployed in the customer environment or released into the market.
  6. Maintenance Maintenance is done to deliver these changes in the customer environment.

Advantages

  • Simple and easy to understand and use
  • Phases are processed and completed one at a time.
  • Clearly defined stages.

Disadvantages

  • No working software is produced until late during the life cycle.
  • High amounts of risk and uncertainty.
  • Not a good model for complex and object-oriented projects.

Iterative

The Iterative SDLC model does not need the full list of requirements before the project starts. The development process may start with the requirements to the functional part, which can be expanded later. The process is repetitive, allowing to make new versions of the product for every cycle. Every iteration (which last from two to six weeks) includes the development of a separate component of the system, and after that, this component is added to the functional developed earlier. Speaking with math terminology, the iterative model is a realization of the sequential approximation method; that means a gradual closeness to the planned final product shape.

Advantages

  • Some functions can be quickly developed at the beginning of the development lifecycle
  • Progress is easy measurable
  • Flexibility and readiness to the changes in the requirements

Disadvantages

  • The process is difficult to manage
  • Bad choice for the small projects
  • The risks may not be completely determined even at the final stage of the project

Spiral

The spiral model combines the idea of iterative development with the systematic, controlled aspects of the waterfall model. This Spiral model is a combination of iterative development process model and sequential linear development model i.e. the waterfall model with a very high emphasis on risk analysis. It allows incremental releases of the product or incremental refinement through each iteration around the spiral.

The spiral model has four phases. A software project repeatedly passes through these phases in iterations called Spirals.

  1. Identification

This phase starts with gathering the business requirements in the baseline spiral. In the subsequent spirals as the product matures, identification of system requirements, subsystem requirements and unit requirements are all done in this phase

2. Design

The Design phase starts with the conceptual design in the baseline spiral and involves architectural design, logical design of modules, physical product design and the final design in the subsequent spirals.

3. Construct or Build

The Construct phase refers to production of the actual software product at every spiral. In the baseline spiral, when the product is just thought of and the design is being developed a POC (Proof of Concept) is developed in this phase to get customer feedback.

4.Evaluation and Risk Analysis

Risk Analysis includes identifying, estimating and monitoring the technical feasibility and management risks, such as schedule slippage and cost overrun. After testing the build, at the end of first iteration, the customer evaluates the software and provides feedback.

Advantages

  • The development process is precisely documented yet scalable to the changes
  • The scalability allows to make changes and add new functionality even at the relatively late stages
  • The earlier working prototype is done — sooner users can point out the flaws

Disadvantages

  • Can be quite expensive
  • The risk control demands involvement of the highly-skilled professionals
  • Can be ineffective for the small projects

Devops

The DevOps methodology is the newcomer to the SDLC scene. it emerged from two trends: the application of Agile and Lean practices to operations work, and the general shift in business toward seeing the value of collaboration between development and operations staff at all stages of the SDLC process.

In a DevOps model, Developers and Operations teams work together closely and sometimes as one team to accelerate innovation and the deployment of higher-quality and more reliable software products and functionalities. Updates to products are small but frequent. Discipline, continuous feedback and process improvement, and automation of manual development processes are all hallmarks of the DevOps model.

Advantages

  • Cloud-based DevOps makes it easier to collaborate, putting all the tools in the cloud so they can be accessed by users anywhere.
  • DevOps as a Service means faster testing and deployment. Generally, using cloud services enables increased release frequency.
  • Using DevOps as a Service hides the complexities of data and information flow, which means DevOps team members can focus on their specific tools without having to understand the entire tool chain.

Disadvantages

  • Outsourcing a DevOps infrastructure requires a specific level of software development expertise, including an in-depth understanding of integration, infrastructure, and orchestrating workflow.
  • Cloning an enterprise infrastructure for test purposes is complex and can lead to unforeseen compatibility problems.
  • Security is always a concern.

V-Model

An evolution of the classic waterfall methodology, the v-model SDLC process steps are flipped upwards after the coding phase. The v-model has a very strict approach, with the next phase beginning only when the previous phase is complete.This lack of flexibility and higher-risk method isn’t recommended for small projects, but the v-model is easier to manage and control. For projects where requirements are static and clearly stated, and where early testing is desired, this approach can be a good choice.

Advantages

  • Every stage of V-shaped model has strict results so it’s easy to control
  • Testing and verification take place in the early stages
  • Good for the small projects, where requirements are static and clear

Disadvantages

  • Lack of the flexibility
  • Bad choice for the small projects
  • Relatively big risks

SDLC has several methodologies so when we choose the project we have choose correct methodologies which one is suitable for our projects.

--

--

--

Software Engineering undergraduate at University of Kelaniya https://www.kln.ac.lk/

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

gRPC — TL;DR

Top 15 DataCamp Python Courses

Your Ultimate Guide to Choose the Right CDN Video Streaming Solution in 2021

Swift Course: Basics & Basic Operators in Playground

BigData Programming: Why unlearning is so important while you learn new ways.

Java 學習記錄60 — final

ngrok command not found

Csr Bluesuite Windows 10

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Tharun varshanth

Tharun varshanth

Software Engineering undergraduate at University of Kelaniya https://www.kln.ac.lk/

More from Medium

Alternative crosswords

How to set up your faceted navigation in SEO | 2022?

80’s Model Horror Action: Malignant

How To Command A Room