What is SDLC ?
- Software Development Life Cycle (SDLC) is a set of phases that provide a common understanding of the software building process.
- How the software is realized and developed from the business understanding and requirements elicitation phase to convert these business ideas and requirements into functions and features until its usage and operation to achieve the business needs.
- Generally a software engineer should have enough knowledge on how to select the SDLC model based on the project context and the business requirements.
- Therefore, it may be required to choose the right SDLC model according to the specific concerns and requirements of the project to ensure its success.
- You can think of SDLC models as tools that you can use to better deliver your software project. Therefore, knowing and understanding each model and when to use it, the advantages and disadvantages of each one are important to know which one is suitable for the project context.
What is SDLC
- There are some various software development life cycle models defined and designed which are followed during the software development process. These models are also referred as Software Development Process Models”.
- Each process model based on a Series of rules unique to its type to ensure success in the process of software development.
- Following are the most important and popular SDLC models followed in the industry & miuns
- Waterfall Model
- Iterative Model
- Spiral Model
- Big Bang Model
- The waterfall is a widely accepted SDLC model. In this approach, the whole process of the software development is divided into various phases. In this SDLC model, the outcome of one phase acts as the input for the next phase.
- This SDLC model is documentation-intensive, with earlier phases documenting what need be performed in the subsequent phases.
- The incremental model is not a separate model. It is essentially a series of waterfall cycles.
- The requirements are divided into groups at the start of the project. For each group, the SDLC model is followed to develop software.
- The SDLC process is repeated, with each release adding more functionality until all requirements are met. In this method, every cycle act as the maintenance phase for the previous software release.
- Modification to the incremental model allows development cycles to overlap. After that subsequent cycle may begin before the previous cycle is complete.
- In this type of SDLC model testing and the development, the phase is planned in parallel.
- So, there are verification phases on the side and the validation phase on the other side. V-Model joins by Coding phase.
- Agile methodology is a practice which promotes continue interaction of development and testing during the SDLC process of any project.
- In the Agile method, the entire project is divided into small incremental builds. All of these builds are provided in iterations, and each iteration lasts from one to three weeks.
- Phase 1: Requirement collection and analysis
- Phase 2: Feasibility study
- Phase 3: Design
- Phase 4: Coding
- Phase 5: Testing
- Phase 6: Installation/Deployment
- Phase 7: Maintenance
Phase 1: Requirement collection and analysis
- The requirement is the first stage in the SDLC process. It is conducted by the senior team members with inputs from all the stakeholders and domain experts in the industry.
- Planning for the quality assurance requirements and recognization of the risks involved is also done at this stage.
Phase 2: Feasibility study
- Once the requirement analysis phase is completed the next step is to define and document software needs.
- This process conducted with the help of ‘Software Requirement Specification’ document also known as ‘SRS’ document.
There are mainly five types of feasibilities checks:
- Economic: Can we complete the project within the budget or not ?
- Legal: Can we handle this project as cyber law and other regulatory framework/compliances.
- Operation feasibility: Can we create operations which is expected by the client ?
- Technical: Need to check whether the current computer system can support the software
- Schedule: Decide that the project can be completed within the given schedule or not.
Phase 3: Design
- In this third phase, the system and software design documents are prepared as per the requirement specification document. This helps define overall system architecture.
- This design phase serves as input for the next phase of the model.There are two kinds of design documents developed in this phase,
High-Level Design (HLD)
- Brief description and name of each module
- An outline about the functionality of every module
- Interface relationship and dependencies between modules
- Database tables identified along with their key elements
- Complete architecture diagrams along with technology details
- Functional logic of the modules
- Database tables, which include type and size
- Complete detail of the interface
- Addresses all types of dependency issues
- Listing of error messages
- Complete input and outputs for every module
Phase 4: Coding
- Once the system design phase is over, the next phase is coding. In this phase, developers start build the entire system by writing code using the chosen programming language.
- In the coding phase, tasks are divided into units or modules and assigned to the various developers. It is the longest phase of the Software Development Life Cycle process.
- In this phase, Developer needs to follow certain predefined coding guidelines. They also need to use programming tools like compiler, interpreters, debugger to generate and implement the code.
Phase 5: Testing
- Once the software is complete, and it is deployed in the testing environment. The testing team starts testing the functionality of the entire system.
- This is done to verify that the entire application works according to the customer requirement.
Phase 6: Installation/Deployment:
- Once the software testing phase is over and no bugs or errors left in the system then the final deployment process starts.
- Based on the feedback given by the project manager, the final software is released and checked for deployment issues if any.
Phase 7: Maintenance
- Bug fixing – bugs are reported because of some scenarios which are not tested at all
- Upgrade – Upgrading the application to the newer versions of the Software
- Enhancement – Adding some new features into the existing software