What is Software Development Life cycle?
The software development life cycle (SDLC) is a process used for structuring the development of any software system, from commencement to implementation. Along with the right methodology for implementing the software is key to the success of any organization. SDLC is considered to be the foundation for all software development methodologies, with various activities associated with each level. The cycle ends when all requirements have been fulfilled.
The SDLC comprises of seven distinct phases which are as follows:-
1 Requirement analysis:- In the analysis phase, end user business requirements are analyzed and project goals converted into the defined system functions that the organization intends to develop. Main activities involved in the analysis phase are Gathering business requirement, Creating process diagrams and Performing a detailed analysis. Business requirement gathering is the most crucial part at this level of SDLC. 2 Planning:- In the planning phase, project goals are determined and a high-level plan for the intended project is established. Planning is the most fundamental and critical organizational phase. The primary activities involved in the planning phase are Identification of the system for development, Feasibility assessment and Creation of project plan. 3 Software design such as architectural design:- In the design phase, we describe the desired features and operations of the system. This phase includes business rules, pseudo-code, screen layouts, and other necessary documentation. The primary activities involved in the design phase are Designing of IT infrastructure and Designing of system model. To avoid any crash, malfunction, or lack of performance, the IT infrastructure should have solid foundations. 4 Software development:- In the development phase, all the documents from the previous phase are transformed into the actual system. The activities involved in the development phase are Development of IT infrastructure and Development of database and code. In the design phase, only the blueprint of the IT infrastructure is provided, whereas in this phase the organization actually purchases and installs the respective software and hardware in order to support the IT infrastructure. 5 Testing:- In the testing phase, all the pieces of code are integrated and deployed in the testing environment. Testers then follow Software Testing Life Cycle activities to check the system for errors, bugs, and defects to verify the system’s functionalities work as expected or not. The activities involved in the testing phase are Writing test cases and Execution of test cases. Testing is a critical part of software development life cycle. Writing test cases and executing them manually is an intensive task for any organization, which can result in the success of any business if executed properly. 6 Deployment:- During this phase, the system is deployed to a real-life (the client’s) environment where the actual user begins to operate the system. All data and components are then placed in the production environment. This phase is also called referred to as ‘delivery.’ 7 Maintenance:- In the maintenance phase, any necessary enhancements, corrections, and changes will be made to make sure the system continues to work, and stay updated to meet the business goals. It is necessary to maintain and upgrade the system from time to time so it can adapt to future needs. The primary activities involved in the maintenance phase are Support the system users, System maintenance & System changes and adjustment.
Commonly used SDLC models are listed below:
1 Waterfall Model: This SDLC model is the oldest and most straightforward. In this we finish one phase and then start the next. Each phase has its own mini-plan and each phase “waterfalls” into the next. The biggest drawback of this model is that small details left incomplete can hold up the entire process. 2 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. The drawback of this model is that the heavy emphasis on customer interaction can lead the project in the wrong direction in some cases. 3 Spiral Model: 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 necessary give structure to the several phases involved in software development efforts and SDLC serves that purpose. The cycle does not conclude until all the requirements have been fulfilled, and will continue until all the potential needs are adjusted within the system. The biggest advantage of the SDLC is that it provides control of the development process to some extent, and ensures the system complies with all the requirements that have been specified. However, there are some disadvantages to using SDLC. It does not work so well where there are levels of uncertainty or unnecessary overheads. It directs the development efforts with an emphasis on planning, but the system does not encourage creative input or innovation throughout the life cycle.