The Systems Development Life Cycle (SDLC) is a conceptual model for IT specialists to institutionalize system development through the conventional phases of planning for defining system development resource requirements, analysis for determining end user requirements, and design for modelling the architecture of the proposed system. The construction phase involves developing the proposed system, which is tested and put into use at the rollout stage before commencing the maintenance phase (Cohen, Dori & de Haan, 2010).
Waterfall model
The water fall model is a sequential linear development model with phases defined by requirements gathering and analysis (brainstorming to formulate the basic idea), system design (developing an elaborate and detailed technical design), implementation (writing program code), testing (evaluating system functionality), development, and maintenance phases (ensuring the system works as expected) (Rastogi, 2015).
According to Rastogi (2015), the waterfall model shown below was modified to provide feedback and to be used where requirements were not well understood.
Parallel development
In parallel development, system developers divide a project into subprojects or version designs that are developed iteratively. Subsequent versions are integrated and merged into the final product. Each release is given a version number starting with version 0. Subsequent versions are developed at the same time before being integrated into the final product.
V-model
The V-model is an extension of the waterfall model with the development phases split after the coding has been done. The methodology is defined by the requirement, system design, architectural design, and module design.
The new system undergoes unit testing, integration, system, and user acceptance testing before it is deployed for use. Critics consider the system to be too simple, inflexible, and lack development coherence. However, it is suitable for use when flexibility and agility are the key desired elements in the development process.
Iterative development
Iterative system development relies heavily on repetitiveness and delivers system functionality to users in cycles. Iterative development is time boxed, delivers products that are often tested earlier, and emphasizes on product quality.
System prototyping
System prototyping is one class of rapid application development that consists of the planning phase, which when complete, the system developer continues to the analysis, design, implementation phases to develop the prototype of the final product. The system prototype is further implemented by additional coding to develop the final product.
Throwaway prototyping
The system development approach is used to explore ideas that are not part of the final product. The methodology is unambiguous, addresses problems earlier, enables developers to explore alternative ideas, and allows for end user greater involvement (Rastogi, 2015).
Extreme programming
The methodology is used to improve software quality to accommodate changes in user requirements. It consists of code reviews, iterative reviews, daily communication, unit testing, and takes traditional system development methods into extreme levels to address all unfinished product features. The comparative advantages of the models are detailed in the table below.
References
Cohen, S., Dori, D., & de Haan, U. (2010). A Software System Development Life Cycle Model for Improved Stakeholders’ Communication and Collaboration, Int. J. of Computers, Communications & Control. Web.
Rastogi, V. (2015). Software Development Life Cycle Models Comparison, Consequences. International Journal of Computer Science and Information Technologies, 6 (1), 168-172. Web.