Software Development Life Cycle, abbreviated SDLC, is a well-defined sequence of phases in the software development process.
SDLC Activities
SDLC specifies a series of steps to develop software efficiently. The SDLC framework describes the following phases:
communication
This is the first step in the SLDC. The customer contacts the software company and discusses details and conditions.
Requirements recording
The development team works with the customer and records the requirements. They speak to the individual parties involved at the customer and try to understand the problem and document the requirements for the software. This creates user requirements, system requirements and functional requirements. The team carries out the following activities:
- Study the current or old system / software
- Conduct interviews with users, developers and stakeholders
- Studying databases
- Evaluate answers from questionnaires
Feasibility study
After the requirements analysis, the team creates a rough plan of the software process. At this point, it is examined whether software can be created that meets all requirements. The technical and financial feasibility of the product is also the subject of this analysis phase.
System Analysis
In this phase, the developers develop a roadmap for the product and examine any limitations, necessary changes to the existing system landscape and other impacts on the company and the IT and process landscape. They also plan resources and define the scope of the project.
Software design
In the next step, all the information collected up to this point is used to design a software product. The customer’s input and the output from the requirements phase are used as input for this phase. After this phase, two designs emerge: the logical and the physical design. In this phase, software engineers produce meta data, data dictionaries, logical diagrams, data flow diagrams and also pseudo code.
Coding
In this phase, programming takes place. The implementation of the software begins and the team proceeds according to the chosen process model (Scrum, Kanban, Waterfall).
Testing
Errors can ruin the entire software project. Testing should begin when the software is created (test driven development). Furthermore, dedicated testers should test the software automatically. There are many models and types of testing. Tools such as continuous delivery and continuous deployment help to ensure quality throughout.
integration
In this phase, the product is integrated into the existing IT landscape.
implementation
For desktop software, this phase involves installing the product on end-user computers and resolving portability and compatibility issues.
Operations and Maintenance
In this phase, users are trained in how to use the software and the product is put into operation. The software is also maintained, updates are installed regularly, bugs are fixed and operation is ensured. In this phase, errors often occur that can only be noticed in real operation. Testing in the test environment would be too time-consuming. Depending on the industry, this is of course not a viable option and the test phase must be extended accordingly.
Disposition
After a certain period of time, the software may enter a „shutdown“ phase. During this phase, data must be archived and shutdown prepared.
Software development paradigms
The software development paradigm helps developers choose a strategy for their approach. Each paradigm has its own set of tools, methods and procedures. The common paradigms are described below:
Waterfall model
The waterfall model is the simplest of the paradigms. It states that all phases of the SDLC are executed in a linear sequence. That is, when the first phase is completed, the second follows, and so on.
The model assumes that everything in the previous phases goes perfectly according to plan and the information from the previous phases does not change. The sequential nature of this model does not allow for „going back“ and changing information. Or if information is missing, the subsequent phases start from false assumptions. This model works best when the developers have already implemented similar projects and know the problem domain.
Iterative model / Agile model
This model takes place in iterations. It carries out the individual development phases of the SDLC multiple times in shorter cycles (in iterations).
The software is expanded in small steps and becomes „bigger“ from iteration to iteration. More features are developed, more modules are designed, tested and added. Each iteration produces software that is executable and can be tested. The customer can also view the software after each iteration and influence the next features and iterations.
V-Model
The main problem with the waterfall model is that you only move on to the next phase when the previous one is completed. There is no chance to go back and make corrections. The V-model claims to test the software in the opposite direction after each phase.
In each phase, test plans and test cases are created which are used to test and validate the product according to the requirements. For example, in the requirements phase, the test team prepares test cases. Later, when the product is ready, it is validated against these test cases. This model is also known as the verification and validation model.