Software development lifecycle models must be selected and adapted to the context of project and product characteristics. The development and testing of the project are context-dependent. The Development and Testing of an e-commerce application differ from the safety critical systems like an automobile's brake control system.
Why SDLC is Context-Dependent?
Here are the reasons why software development models must be adapted to the context of the project:
- Product Type and Risk: Difference in product risks of systems. A complex system like banking has a lot more risk involved compared to a simple project like an internal admin system.
- Different Business Units: Many business units can be part of a project or program, and a combination of sequential and agile development is used.
- Less Time to Market: When there is a short time to deliver a product to the market, a merge of test levels and or integration of test types in test levels are done.
Integrating Test Levels and Activities
Test levels or activities can be combined or reorganized depending on the nature of the project or the system architecture. For example, during the integration of a commercial off-the-shelf software product into a system following testing may be done by the buyer:
- Interoperability testing at the system integration test level (e.g., integration to the infrastructure and other systems)
- Functional and non-functional testing, along with user acceptance testing and operational acceptance testing at the acceptance test level
Combining Development Models
It is not necessary that only one model must be used for the development of the project. Several models can be combined to develop the complete application.
Agile can be used for front-end development, and the backend system and integration development can be done using V-Model. Prototyping may be used early in a project, with an incremental development model adopted once the experimental phase is complete.
For example, IoT (Internet of Things), which consists of different objects like products, devices, and services, typically applies a separate software model for each object.