Software development life cycle [SDLC] methods.

K.G.C.Chathuranga
6 min readNov 20, 2020

--

Hi guys, today I am going to write about SDLC. I think you can get some brief idea about some methods of SDLC. First of all, what is SDLC? SDLC or Software Development Life Cycle is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process. These are the main parts of SDLC.

  • panning
  • Defining
  • Designing
  • Building
  • Testing
  • Deployment

Now we can move to our main topic. Software development life cycle methods. Choosing the correct method of SDLC is very useful for having better output when going to develop a software. These are some methods of SDLC.

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

Waterfall Mode

The Waterfall Model is a linear sequential flow. In which progress is seen as flowing steadily downwards (like a waterfall) through the phases of software implementation. This means that any phase in the development process begins only if the previous phase is complete. The waterfall approach does not define the process to go back to the previous phase to handle changes in requirement. The waterfall approach is the earliest approach and most widely known that was used for software development.

Better to use in 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.

Advantages:-

  • Simple and easy to understand and use
  • Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.
  • Phases are processed and completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Clearly defined stages.
  • Well understood milestones.

Disadvantage :-

  • 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.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing. So, risk and uncertainty is high with this process model.
  • It is difficult to measure progress within stages.

V-Shaped Model

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.

Better to use in Software requirements clearly defined and known or
Software development technologies and tools are well-known.

Advantages:-

  • This is a highly-disciplined model and Phases are completed one at a time.
  • Works well for smaller projects where requirements are very well understood.
  • Simple and easy to understand and use.
  • Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process.

Disadvantages :-

  • High risk and uncertainty.
  • Not a good model for complex and object-oriented projects.
  • Poor model for long and ongoing projects.
  • Not suitable for the projects where requirements are at a moderate to high risk of changing.
  • Once an application is in the testing stage, it is difficult to go back and change a functionality.
  • No working software is produced until late during the life cycle.

Spiral Method (SDM)

It is combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. This model of development combines the features of the prototyping model and the waterfall model. The spiral model is favored for large, expensive, and complicated projects. This model uses many of the same phases as the waterfall model, in essentially the same order, separated by planning, risk assessment, and the building of prototypes and simulations.

This model is better to use in the large applications and systems which built-in small phases or segments.

Advantages :-

  • Changing requirements can be accommodated.
  • Allows extensive use of prototypes.
  • Requirements can be captured more accurately.
  • Users see the system early.
  • Development can be divided into smaller parts and the risky parts can be developed earlier which helps in better risk management.

Disadvantages :-

  • Management is more complex.
  • End of the project may not be known early.
  • Not suitable for small or low risk projects and could be expensive for small projects.
  • Process is complex
  • Spiral may go on indefinitely.
  • Large number of intermediate stages requires excessive documentation.

Iterative and Incremental Method

It is developed to overcome the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between. The basic idea behind this method is to develop a system through repeated cycles (iterative) and in smaller portions at a time (incremental), allowing software developers to take advantage of what was learned during the development of earlier parts or versions of the system. Its better to use in shrink-wrap application and large system which built-in small phases or segments. Also, can be used in a system has separated components, for example, ERP system. Which we can start with the budget module as a first iteration and then we can start with the inventory module and so forth.

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 development

This is the most popular method use in these days and most of companies are trying to shift to this method. It is based on iterative and incremental development, where requirements and solutions evolve through collaboration between cross-functional teams.

What is Agile??

Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In Agile, the tasks are divided to time boxes (small time frames) to deliver specific features for a release.

Iterative approach is taken and working software build is delivered after each iteration. Each build is incremental in terms of features; the final build holds all the features required by the customer.

This method is better to use with any type of the project, but it needs more engagement from the customer and to be interactive. Also, we can use it when the customer needs to have some functional requirement ready in less than three weeks and the requirements are not clear enough. This will enable more valuable and workable piece for software early which also increase the customer satisfaction.

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.

These are some other SDLC methods, Big Bang Model, RAD Model, Rapid Application Development and Prototyping Models. I think you got some idea about SDLC models. If you are more interest the resources that I used are mention below. Thanks for reading.

Resources:-

https://melsatar.blog/2012/03/15/software-development-life-cycle-models-and-methodologies

https://www.tutorialspoint.com/sdlc/sdlc_overview.htm

--

--

K.G.C.Chathuranga

Undergraduate student of Software engineering-University of Kelaniya.