SOFTWARE DEVELOPMENT LIFE CYCLE APPROACHES | SDLC MODELS
SDLC (Software Development Life Cycle) is a step by step approach to developing the software. For detailed understanding of the steps, visit my article on this link (https://www.h2kinfosys.com/blog/software-development-life-cycle/). The ISO/IEC/IEEE 12207:2017 standard also provides the well-defined set of software life cycle processes for development of software [Read the introduction from Ref: https://www.iso.org/standard/63712.html].
The approaches to developing the software can be broadly classified into the sequential approach and iterative/incremental approaches. The classification of the SDLC models in software development is due to the differential project scenarios. The varying environments of software development, technology, client requirements, budget constraints etc. constitute the project scenarios. The IT Project Manager or IT company framework chooses the most appropriate SDLC model for software development.
The popular SDLC models that follow sequential processes are waterfall model, V model etc. Waterfall model is also known as the traditional model, classic model, predictive model. It follows the top-down approach to develop the software, hence the name waterfall model. The new requirements or changes in the requirements in the mid of the project are not acceptable. The IT team starts the software development processes with clear and complete requirements from the client. This model is applicable only for simple and low budget projects.
Another popular sequential approach to develop the software is V model. The V model has the four levels of software testing- the Component(unit) testing, integration testing, system testing and acceptance testing levels. At each level of software development, different documents produced are used as Test Basis. In the component testing, each program component is tested independently in isolation by the developers. The statements, decisions, programming standards are tested at the program level. The development environment supports the component testing with the debugging tools that are inbuilt. The next level of testing is integration testing, wherein the interfaces between the programs or the modules are tested, often carried out in the development environment. The system testing is done by the independent software testing team. Both the functional and nonfunctional requirements of the software are tested to identify the defects and verify the software behavior. The software can be released to the client only after the approval from QA team. The various software testing tools and procedures are used for testing the software. System testing is followed by User acceptance testing(UAT). The UAT is done by end users either in the IT environment or real environment for acceptance of the software. The business analysts coordinate and software testers might have to provide testing assistance to users. The testing carried out by the end users in IT environment is termed as Alpha testing and in the real environment is termed as Beta testing. The right side of V model is termed as Validation- “Are you building the right thing” and left side is Verification – “Are you building it right?”.
The sequential processes are limited to the simple projects. The changing trends in Information technology and complex software solutions required from the clients have urged the need for iterative/incremental approaches.
Check your understanding:
- Identify the different types of SDLC models.
- What is Verification & Validation?
- What are different levels of testing in V model?
This article is written by Priya, Sr. Faculty at H2K Infosys.