Software Development Life Cycle methods

Hansa Sandamal
7 min readNov 20, 2020

--

SDLC or the Software Development Life Cycle is a process that produces software that meets or exceeds customer expectations with the highest quality and lowest cost in the shortest time possible. SDLC is splitting of software development work into distinct phases containing activities with the intent of better planning and management. The SDLC process involves several distinct stages, including planning, analysis, design, building, testing, deployment and maintenance.

SDLC phases

What’s the best SDLC methodology? Here are six methodologies, or models, to consider.

Software development lifecycle methodologies

  • Waterfall Model
  • V-Shaped Model
  • Prototyping Model
  • Spiral Method (SDM)
  • Iterative and Incremental Method
  • Agile development

Waterfall Model

Waterfall model is widely considered the oldest of the structured SDLC methodologies. Waterfall model is a linear sequential flow. Each stage relies on information from the previous stage and has its own project plan. In which progress is seen as flowing steadily downwards like a waterfall through the phases of software implementation. This model is suitable for projects which not focus on changing the requirements, for example, projects initiated from a request for proposals (RFPs), the customer has a very clear documented requirements

Waterfall Model Phases

Advantages and Disadvantages

Advantages

  • Easy to explain to the users.
  • Structures approach.
  • Stages and activities are well defined.
  • Helps to plan and schedule the project.
  • Verification at each stage ensures early detection of errors/misunderstanding.
  • Each phase has specific deliverables.

Disadvantages

  • Assumes that the requirements of a system can be frozen.
  • Very difficult to go back to any stage after it finished.
  • A little flexibility and adjusting scope is difficult and expensive.
  • Costly and required more time, in addition to the detailed plan.

V-Shaped Model

V-model is mostly known as the validation and verification software development process model, and It is one of the most know software development methodology. It is an extension of the waterfall model, Instead of moving down in a linear way, the process steps are bent upwards after the implementation and coding phase, to form the typical V shape. The major difference between the V-shaped model and waterfall model is the early test planning in the V-shaped model. The usage of V-Model can fall under the projects which not focus on changing the requirements.

The V-Model

Advantages and Disadvantages

Advantages

  • Simple and easy to use
  • Each phase has specific deliverables.
  • Higher chance of success over the waterfall model due to the development of test plans early on during the life cycle.
  • Works well for where requirements are easily understood.
  • V-Model Improves the quality and reliability of the software.
  • It reduces the amount of re-work because of the early detection of defects and issues.
  • It provides better management for project risks.
  • Verification and validation of the product in the early stages of product development ensures better quality.
  • The V-Model concept can be combined with other models, for example, the iterative and agile models.

Disadvantages

  • Very inflexible.
  • Adjusting scope is difficult and expensive.
  • The software is developed during the implementation phase, so no early prototypes of the software are produced.
  • The model doesn’t provide a clear path for problems found during testing phases.
  • Moreover, It is costly and required more time, in addition to a detailed plan

Prototyping Model

This process can be used with any software developing life cycle model. It refers to the activity of creating prototypes of software applications, for example, incomplete versions of the software program being developed. It is an activity that can occur in software development and It used to visualize some component of the software to limit the gap of misunderstanding the customer requirements by the development team. When the final prototype is developed, the requirement is considered to be frozen.

Software prototyping has many variants. However, all of the methods are in some way based on two major forms of prototyping: throwaway prototyping and evolutionary prototyping.

Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a part of the finally delivered software

Evolutionary prototyping: prototypes that evolve into the final system through an iterative incorporation of user feedback.

Incremental prototyping: The final product is built as separate prototypes. In the end, the separate prototypes are merged in an overall design.

Extreme prototyping: used in web applications mainly. Basically, it breaks down web development into three phases, each one based on the preceding one. The first phase is a static prototype that consists mainly of HTML pages. In the second phase, the screens are programmed and fully functional using a simulated services layer. In the third phase, the services are implemented.

Advantages and Disadvantages

Advantages

  • Reduced time and costs, but this can be a disadvantage if the developer loses time in developing the prototypes.
  • Improved and increased user involvement.

Disadvantages

  • Insufficient analysis. User confusion of prototype and finished system.
  • Developer misunderstanding of user objectives.
  • Excessive development time of the prototype.
  • It is costly to implement the prototypes

Spiral Method (SDM)

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. It is used in the large applications and systems which built-in small phases or segments.

Spiral Method (SDM)

Advantages and Disadvantages

Advantages

  • Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed because important issues are discovered earlier.
  • Early involvement of developers.
  • Manages risks and develops the system into phases.

Disadvantages

  • High cost and time to reach the final product.
  • Needs special skills to evaluate the risks and assumptions.
  • Highly customized limiting re-usability.

Iterative and Incremental Model

Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. It is developed to overcome the weaknesses of the waterfall model. It can consist of mini waterfalls or mini V-Shaped model.

Iterative and Incremental Model

Advantages and Disadvantages

Advantages

  • Produces business value early in the development lifecycle.
  • Better use of scarce resources through proper increment definition.
  • Can accommodate some change requests between increments.
  • More focused on customer value than the linear approaches.
  • We can detect project issues and changes earlier.

Disadvantages

  • Requires heavy documentation.
  • Follows a defined set of processes.
  • Defines increments based on function and feature dependencies.
  • Requires more customer involvement than the linear approaches.
  • Partitioning the functions and features might be problematic.
  • Integration between the iterations can be an issue if it is not considered during the development and project planning.

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. It can be used with any type of the project, but it needs more engagement from the customer and to be interactive.

Advantages and Disadvantages

Advantages

  • Decrease the time required to avail some system features.
  • Face to face communication and continuous inputs from customer representative leaves no space for guesswork.
  • The end result is the high-quality software in the least possible time duration and satisfied customer.

Disadvantages

  • Scalability.
  • The ability and collaboration of the customer to express user needs.
  • Documentation is done at later stages.
  • Reduce the usability of components.
  • Needs special skills for the team.

Conclusion

Choosing the right SDLC model for your software development project will require careful thought. It is important to recognize the inherent value and importance of selecting the right methodology for your software project. Even more important is assembling a solid team of skilled talent committed to moving the project forward through every unexpected challenge or setback.

References:

--

--

Hansa Sandamal

Software Engineer | Bsc(Hons) Software Engineering | University of Kelaniya