SDLC Methods and Their Pros and Cons

Neminda Prabhashwara
9 min readNov 20, 2020

--

We will discus about SDLC methods and advantages and disadvantages of each method

What is SDLC?

The Software Development Life Cycle

SDLC stands for Software Development Life Cycle and is also referred to as the Application. It is a systematic process for building software that ensures the quality and correctness of the software built. SDLC process aims to produce high-quality software that meets customer expectations.

SDLC is a phase driven process and each phase has its own goal. At the end of each phase it delivers the outcome(s) to the next phase(s). Following are those such phases.

  1. Requirement gathering and analysis
  2. Feasibility study
  3. Design
  4. Implementation
  5. Testing
  6. Deployment
  7. Maintenance

SDLC Models

SDCL model is a conceptual framework which streamlines the above process describing all activities in a software development project from planning to maintenance. This process is associated with several models, each including a variety of tasks and activities. The development team select the best suitable model.

Waterfall model

Waterfall is a cascade SDLC model, in which development process looks like the flow, moving step by step through the phases. This SDLC model includes gradual execution of every stage completely. This process is strictly documented and predefined with features expected to every phase of this software development life cycle model.

The Waterfall model

Advantages of Waterfall method

  • Simple to use and understand
  • Every phase has a defined result and process review then the management is easy
  • Development stages go one by one
  • Perfect for the small or mid-sized projects where requirements are clear and not equivocal
  • Easy to determine the key points in the development cycle
  • Easy to classify and prioritise tasks

Disadvantages of Waterfall method

  • The software is ready only after the last stage is over
  • High risks and uncertainty
  • Not the best choice for complex and object-oriented projects
  • Inappropriate for the long-term projects
  • The progress of the stage is hard to measure while it is still in the development
  • Integration is done at the very end, which does not give the option of identifying the problem in advance

Use cases

This method is adapted when,

  • the requirements are precisely documented
  • the product definition is stable
  • the technologies stack is predefined which makes it not dynamic
  • no ambiguous requirements
  • the project is short

V-shaped model

V-shaped SDLC model is an expansion of classic waterfall model and it’s based on associated test stage for the every development stage. Testing is implemented in parallel to the development phase. This is a very strict model and the next stage is started only after the previous phase. This is also called “Validation and verification” model. Every stage has the current process control, to make sure that the conversion to the next stage is possible.

The V-shaped model

Advantages of V-shaped method

  • 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 of V-shaped method

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

Use cases

This method is adapted

  • for the projects where an accurate product testing is required
  • for the small and mid-sized projects, where requirements are strictly predefined
  • when the engineers of the required qualification, especially testers, are within easy reach.

Prototype model

A prototype is developed in the requirement phase and evaluated by end users. Based on user feedback, developers alter the prototype to satisfy user requirements. It is used to visualise some component of the software to limit the gap of misunderstanding the customer requirements by the development team.

The Prototype model

There are four types of prototyping

  1. Rapid Throwaway Prototyping: In this method, a developed prototype need not necessarily be a part of the ultimately accepted prototype. Customer feedback helps in preventing unnecessary design faults and hence, the final prototype developed is of better quality.
  2. Evolutionary Prototyping: In this method, the prototype developed initially is incrementally refined on the basis of customer feedback till it finally gets accepted.
  3. Incremental Prototyping: In this type of incremental Prototyping, the final expected product is broken into different small pieces of prototypes and being developed individually. In the end, when all individual pieces are properly developed, then the different prototypes are collectively merged into a single final product in their predefined order.
  4. Extreme Prototyping: This method is mainly used for web development. It is consists of three sequential independent phases:
  • a. In this phase a basic prototype with all the existing static pages are presented in the HTML format.
  • b. In the 2nd phase, Functional screens are made with a simulate data process using a prototype services layer.
  • c. This is the final step where all the services are implemented and associated with the final prototype.

Advantages of Prototype method

  • The customers get to see the partial product early in the life cycle. This ensures a greater level of customer satisfaction and comfort
  • New requirements can be easily accommodated as there is scope for refinement
  • Missing functionalities can be easily figured out
  • Errors can be detected much earlier thereby saving a lot of effort and cost, besides enhancing the quality of the software
  • The developed prototype can be reused by the developer for more complicated projects in the future
  • Flexibility in design

Disadvantages of Prototype method

  • Costly w.r.t time as well as money
  • There may be too much variation in requirements each time the prototype is evaluated by the customer
  • Poor Documentation due to continuously changing customer requirements
  • It is very difficult for developers to accommodate all the changes demanded by the customer
  • There is uncertainty in determining the number of iterations that would be required before the prototype is finally accepted by the customer
  • After seeing an early prototype, the customers sometimes demand the actual product to be delivered soon
  • Developers in a hurry to build prototypes may end up with sub-optimal solutions
  • The customer might lose interest in the product if he/she is not satisfied with the initial prototype

Use cases

This method is adapted when,

  • the requirements of the product are not clearly understood or are unstable
  • requirements are changing quickly
  • developing user interfaces, high technology software-intensive systems, and systems with complex algorithms and interfaces

Iterative model

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 a mathematical aspect, the iterative model is a realisation of the sequential approximation method; that means a gradual closeness to the planned final product shape.

The Iterative model

Advantages of Iterative method

  • Some functions can be quickly developed at the beginning of the development life cycle
  • The paralleled development can be applied
  • The progress is easy measurable
  • The shorter iteration is — the easier testing and debugging stages are
  • It is easier to control the risks as high-risk tasks are completed first
  • Problems and risks defined within one iteration can be prevented in the next sprints
  • Flexibility and readiness to the changes in the requirements

Disadvantages of Iterative method

  • Iterative model requires more resources than the waterfall model
  • Constant management is required
  • Issues with architecture or design may occur because not all the requirements are foreseen during the short planning stage
  • Bad choice for the small projects
  • The process is difficult to manage
  • The risks may not be completely determined even at the final stage of the project
  • Risks analysis requires involvement of the highly-qualified specialists

Use cases

This method is adapted when,

  • the requirements to the final product are strictly predefined
  • applying to the large-scale projects
  • the main task is predefined, but the details may advance with the time

Spiral model

Spiral model is an SDLC model, which combines architecture and prototyping by stages. It is a combination of the Iterative and Waterfall SDLC models with the significant accent on the risk analysis. The plan is introduced basing on the statistic data, received during the previous projects even from the personal developer’s experience. It adds 4th generation programming languages, rapid application development prototyping and risk analysis to the waterfall model. The system requirements are designed and a preliminary system design is created. An initial prototype is designed and tested. Based on the evaluation of test results, a second prototype is created. Subsequent prototypes are constructed to ensure customer satisfaction. The system is created based on the final prototype. The final system is evaluated and tested.

The Spiral model

Advantages of Spiral method

  • Life cycle is divided into small parts, and if the risk concentration is higher, the phase can be finished earlier to address the treats
  • 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 of Spiral method

  • Can be quite expensive
  • The risk control demands involvement of the highly-skilled professionals
  • Can be ineffective for the small projects
  • Big number of the intermediate stages requires excessive documentation

Use cases

This method is adapted when,

  • customer isn’t sure about the requirements
  • major edits are expected during the development cycle
  • the projects with mid or high-level risk, where it is important to prevent these risks
  • the new product that should be released in a few stages needs to have enough of clients feedback

Agile model

It is used for time-critical applications in organisations employing disciplined methods. In the Agile model, the requirements are decomposed into many small parts that can be incrementally developed. The Agile model adopts Iterative development. Each incremental part is developed over an iteration. Each iteration is intended to be small and easily manageable and that can be completed within a couple of weeks only. At a time one iteration is planned, developed and deployed to the customers. Long-term plans are not made.

The Agile model

Advantages of Agile method

  • Working through Pair programming produce well written compact programs which has fewer errors as compared to programmers working alone.
  • It reduces total development time of the whole project.
  • Customer representative get the idea of updated software products after each iteration. So, it is easy for him to change any requirement if needed.

Disadvantages of Agile method

  • Due to lack of formal documents, it creates confusion and important decisions taken during different phases can be misinterpreted at any time by different team members.
  • Due to absence of proper documentation, when the project completes and the developers are assigned to another project, maintenance of the developed project can become a problem.

Use cases

This model is adapted when,

  • the customer engagement is highly required since lack of information
  • a functional application is required in a very short period of time

--

--

Neminda Prabhashwara

Software engineering undergraduate, University of Kelaniya Sri Lanka