In this article, we discuss the SDLC and SDLC model overview. SDLC stands for Software Development Life Cycle. SDLC is the process consisting of a series of planned activities to develop or alter the software products. This tutorial also elaborates on the other related methodologies like Agile, RAD, and Prototyping.
- SDLC is the acronym of the Software Development Life Cycle.
- It is also called the Software development process.
- The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
- ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to be the standard that defines all the tasks required for developing and maintaining software. Let’s consider all life-cycle phases one by one:
1. Requirements Analysis (Requirements Phase)
At this phase (SDLC model overview) it is important to document all requirements to the desired software. You should dedicate sufficient time to this phase, conducting extensive interviews with stakeholders. It is better to structure all incoming data, analyze them, consider all technical limitations that may arise on the client’s side, and come out with a ready-to-follow specification to meet the client’s needs. Another thing to consider is any constraints that may hinder the development process, such as client’s time and budget constraints. Note: The more detailed information about the bespoke project you get, the less time you will spend on fixes, redesigns, budget reviews, discussions and other issues.
It is highly recommended that you create a detailed problem vision document, specifying the problem background, business goals and success criteria for the project, factors of business risk and description of the product end-user group. Then share it with the client to make sure you do understand the client’s needs in the right way and inform the client about any risks that may arise after the project is launched.
When all issues seem to be clarified, it is highly recommended that you conduct more interviews and interactive workshops with your stakeholders to elicit some non-obvious things that may further cause redesigning of software interface or rewriting some code patterns. This phase can also involve questionnaires, use cases, brainstorming, etc.
Many projects are sidetracked because of additional requirements that arise on the development phase. That’s why it is highly important that you understand the initial business goals and the primary idea of the future application.
2. Software Design Phase
The next step in the life-cycle involves creation of a project scope document with mockups, or hand-drawn sketches, and a detailed software development specification. It should be mentioned that in some cases vision and scope documents can be presented as one Vision and Scope document.
The project scope document should include project description with main functions defined with regard to the problem vision document, and, of course, timeline and bugets. It also involves creation of mockups, or hand-drawn sketches, based upon the vision document and gathered requirements. You can create a hand-drawn sketch of a user interface or use mockup programs, and share it with the client to get a feedback.
Of course, the client can come up with more and more new ideas for their project the more he thinks about it. Therefore the best advice is to give the client some time to think over the project and its application needs, and then meet and discuss it again to be sure nothing is missed. At this stage, after-sales product maintenance is also discussed. You should inform the client where any technical support will be rendered after the product is tested and deployed. Vision and scope documents are created prior to contract signing.
Software Requirements Specification
Software requirements specification (SRS) describes requirements that should be fulfilled within the requested software. It should be cohesive, consistent, traceable and complete. The requirements can be provided in different forms, for example, as traditional shall statements (e.g. “The Staff Manager system shall support the following browsers: Google Chrome, Apple Safari, Mozilla Firefox, Opera, IE 8+”) or as a user stories (e.g. “as a manager, I need access to personal information of all employees”).
There’s a great number of specification templates. Selection of a particular template depends on the specifics of the project. Basically, it includes product description, user classes, functional and non-functional requirements to the developed software.Sometimes, it can include a prototype. The main idea is to make your specification clear, concise and useful for developers.
To create a prototype, you need to figure out the following things:
- The way the input data will be acquired and processed to produce the desired output data
- The form in which the output data should be presented
Mockups (or prototypes) are sent to UI/UX designers who turn them into colorful layouts.
3. Software Development Life Cycle Phase
It should be noted that software development phase can also include creation of an interactive prototype that is actually the skeleton of the future application. Such prototype helps define the overall system architecture. This step involves little coding, like coding buttons and simple forms, just to give the client an idea how the final product will operate. That’s why we included creation of a prototype into the software development phase.
As soon as you are ready with the interactive prototype and application design and they are confirmed by the client, proceed with working out the application standards (naming conventions, how the code will be documented, formation of end-user instructions, etc.). Afterwards, you can get down to the next step in the life cycle, namely software development. It can be subdivided into small units, and each unit is developed and tested by developers for its functionality (unit testing).
4. Software Testing Phase
Once the product is developed, it should undergo a meticulous testing process to make sure that it solves the needs set forth during the requirements study phase. The client should be involved in the acceptance testing and try using it exactly the way it will be used when implemented . Once the major code problems are fixed, the software can be deployed. For minor fixes, a simple bug tracking system can be used, so that the problems could be tackled during the maintenance life-cycle phase.
5. Software Maintenance Phase
As soon as the product is tested and deployed at the client’s server, it enters the maintenance phase of the software development life cycle. Generally, it includes some minor bug fixes that are usually made during this phase. However, you still may have to make some changes in the produced software, disregarding your efforts on the earlier phases.
The client may come up with functionality enhancements to the developed software and you will have to collect, describe and discuss the new requirements with the client to have these modifications made. In this case, you come up with a new waterfall project and have to repeat all the above described steps.
There are various software development life cycle models defined and designed which are followed during software development process. These models are also referred as “Software Development Process Models”. Each process model follows a Series of steps unique to its type, in order to ensure success in process of software development.
Following are the most important and popular SDLC models followed in the industry:
- Waterfall Model
- Iterative MoMdel
- Spiral Model
- Big Bang Model
The other related methodologies are Agile Model, RAD Model, Rapid Application Development and Prototyping Models.