Introduction to SDLC Models : SDLC is an acronym for Software Development Life Cycle . SDLC is the proc ess of creating the software. These models are used in order for a sequential flow of the software development process. There are advantages and disadvantages of SDLC models. Every organization will analyze the SDLC models before starting a project to ensure the workflow of the development process.
Different types of SDLC Models :
Iterative Model .
V – Model
- Waterfall Model : Waterfall model is the classic life cycle model used in software Engineering process. It is first model to be introduced and used in software development process. In the Waterfall model after completing one phase then the next phase starts. Waterfall model has 6 phases they are
Deployment to production.
Requirements Gathering: Requirements are group of functionalities that the end user would like to have it in the software system. All the requirements are gathered from the end user by probing and are recorded as a document. Later this requirement are analysed for its implementation in the software system. After coming into the conclusion as the requirements can be implemented. Requirements Specification document (SRS software requirement specification) will be created which is used as the guideline for the next phase.
System design : The SRS document is studied completely for system design. System design specifies the hardware and system requirements of the software. The system design requirements are taken as input for the Coding phase.
Coding: Based on the System design, the project is divided into smaller modules. From the allocation of respective modules the programmers starts coding. After completing the coding for every module they are integrated to make a complete system. Later the developers do a unit testing on the developed system for correctness with the SRS document. Rectify any errors when they find it in the unit testing.
Testing: After completion of the unit testing from the developers. The Testing phase starts now, the testers test the developed software against the requirements. If any functionality has deviation from the requirements, an defect will be reported by the tester. Developers analyse and fix the defects raised by the testers. Testers once again do the retesting in order the defect has been fixed and close the defect.
Deployment to production: After successful completion of testing and approving it to the production environment. The complete code is moved to the production environment from the QA environment.
Maintenance: After completion of the deployment to production, Maintenance phase is one of the important phase where the process is always on going. Maintenance phase main focus is to overcome and resolve the issues that are not found during the development life cycle.
Advantages of Waterfall model:
Sequential flow of phases, after completing one phase only we can move to next phase.
At the end of each phase, we will have a specific review process and deliverables.
Easy to implement for smaller projects where requirements are complete.
Smaller iteration makes testing and debugging easy.
Disadvantages of Waterfall Model :
Partial delivery of software is not possible.
Not suitable for larger projects.
Risk is very high when requirements are not available.
Parallel processing of development and testing is not possible.
Idle time to use Waterfall Model :
The proposed software is small.
Requirements are available and clear.
Resources should be available at the starting of the phase itself.
2.Iterative Model :
In the iterative model the client does not have the complete requirements for the software to be developed. Where in the business analyst starts collecting the requirements and gives to the development team . Development team starts developing a portion of software and shows it to the client. Later client gives the feedback about the portion of the software and gives the further requirements. The process is repeated several times, by producing the new version of the software for each cycle of the model.
The iterative model consists of four phases they are
Requirements : A requirement phase involves in collection of requirements that are needed to develop the software for analyzing. Requirements phase goes on until the complete requirements are gathered and analyzed. Once the requirements are gathered for the first phase. We move on to the next phase.
Design : In design phase , as per the gathered requirements the designing takes place in order to give the best software product to the client. The design may include the previous projects design or new projects design whichever is feasible for the software development.
Implementation: In the implementation phase, where in the coding of the software takes place as per the requirements and design done in step 1 and 2.
Testing: After implementing the software, the individual modules are combined together to form a integrated software and testing phase starts from the scratch.
Review: In review process, the software developed is under evaluation , the available current requirements are reviewed and changed if necessary . If any additions are made to the current requirements they are taken to the next cycle implementation.
After completion of all the phases we can come to the conclusion that one complete cycle is completed. Now we have to make a decision whether the developed software can be taken to the next cycle or we need to start from the scratch as the developed software did not meet the client expectation. Then another cycle starts from the requirements phase to review phase this process is an iterative process, the process ends when the complete software is developed as per the client satisfaction. Each cycle can be taken as individual versions.
Advantages of Iterative Model:
Software can be obtained early.
Cost effective for requirement changes.
Is useful when the project is of large size.
Progress can be tracked for every complete cycle.
Disadvantages of Iterative Model:
Exit criteria for the software are unknown.
Is not applicable for smaller projects.
The no of resources requirement is more.
Idle time to use Iterative model :
When no requirements are available.
Iterative model is useful for big projects.
- RAD Model:
RAD Model is an acronym for Rapid Application Development Model. RAD Model main motive is to develop the desired software in a very short time. RAD makes use of iterative model during implementation.
RAD Model has below mentioned phases :
- Business Modeling
- Data Modeling
- Process Modeling
- Application Generation
- Testing and TurnOver
- Business Modeling : Business Model will be designed based on the information flow that are identified between various business channels.A lot of business analysis is performed in order to identify the key business information.
2.Data Modeling : Based on the information collected from the business model, data objects are derived and used for the business.
- Process Modeling : The data collected from Data modeling is implemented to acheive the business function.
- Application Generation : Automation tools are implemented to prepare the software, where Automation tools will convert the process model and data collected
into prototypes or code.
- Testing and Turnover : As testing is carried out for each prototype during every iteration, we can observe that overall testing time will be reduced in RAD Model.
Advantages of RAD Model:
Development time will be reduced.
Customer feedback are frequent.
Initial reviews are quick as small pieces are available.
Integration issues are reduced as integration occurs initially.
Usage of reusable components increases.
Disadvantages of RAD Model :
Requires a lot of expertise and commitment from the team.
Need quality developers.
Not applicable for very low budget projects.
Idle time to use RAD Model :
RAD Model is idle when the resources are having in depth expertise in their respective areas.
RAD Model is used when the project needs to be modularized within 3-4 months.
4.V – Model :
V – Model stands for verification and validation. V model is also known for its sequential way where the development and testing goes parallel.
V – Model consists of two parts they are :
Customer Requirements specification. User Acceptance Testing.
Software Requirements specification System Testing.
High Level Design Integration Testing.
Low Level design Unit Testing.
V – Model revolves around this two phases , i.e the action occurs simultaneously. For example, when Low Level Design phase is going on in verification side parallel to unit testing in validation side happens.
CRS OR BRS and User Acceptance Testing.
SRS and System Testing
High Level Design and Integration Testing.
Low Level Design and Unit Testing.
CRS or BRS and User Acceptance testing : Business requirements includes collecting the requirements and analyzing it for correctness and completeness. This BRS document contains the complete understanding of the software going to be developed for the client. The business analyst and higher management in the company takes this document as the base for the software development. After internal review of requirements documents is done, the BRS document is shared with the client for their feedback.
Now starts the User Acceptance Testing where the user goes through all the BRS documents and gives feedback if any modifications are needed. By accepting this BRS as base line document, client accepts the fact that software will be designed as per the BRS document approved by them.
Software Requirements and System Testing : After the completion of the BRS document preparation, the software requirements are created from the available BRS document. The software requirements are analyzed internally and feasibility study of the functionality is done. However, if the some of the requirements cannot be implemented immediately or cannot be implemented needs to be communicated to the client. And according to the clients specification we need to document the updated software requirement documents.
System Testing involves the testers authoring test cases for the proposed software to be developed . Once the complete software is developed , a complete system testing is done using the test cases developed. System Testing includes end to end implementation of the functionalities proposed by the software requirements.
High Level Design and Integration Testing : From the software requirements specification, the senior developers will create high level design. High level design can be defined as overall estimated design of the software.
From the High Level Design , the testing team should be aware of the fact that which modules needs to integrated. Integration Testing means combining one module with another module for integration.
Low Level Design and Unit Level Testing : From the High Level Design the detailed Low Level Design documents are created. Low level design is also known as in depth logic design, which is easy to understand.
Unit Level Testing is done by the developers also known as White box testers. Unit Level testing is testing of individual component separately in order to integrate with the other modules.
Advantages of V – Model :
V – Model is mainly used for smaller projects.
Defects can be found during early phase, which makes the fixing of defects cheaper for the project.
Testing activities takes place parallelly with the development phase.
Is much suitable when complete requirement documents are available.
Disadvantages of V – Model :
V – Model is less flexible.
Does not support constant updation of requirement documents.
V- Model is an costlier approach for developing a software. Since it needs more resources , capital and time.
Idle Time to use V- Model :
V – Model should be used when the adequate resources are available for the project.
V- Model should be used for the Smaller projects.
What is V Model also Known as ?
V – Model is also known as extension of Traditional waterfall model.