The purpose of this paper is to carry out a research on both a modern and a traditional methodology, show the understanding of the Software Development Life Cycle (SDLC) by explaining the step-by-step process upon which the methodologies are based on. Also compare the two methodologies and outline the advantages and disadvantages.
There are various methodologies in the Software Development Life Cycle (SDLC). The SDLC is a process followed by a software project which helps to develop a framework that is used to structure, plan, and control a piece of software. The SDLC follows a step-by -step process: planning, defining, designing, building, testing and development. This research will examine the Waterfall Model and the Agile Model.
The Waterfall Model is a traditional model. It was the first process model to be introduced. The model is in a linear-sequential flow, it is very simple to understand and use. In a waterfall model, each phase must be completed before the next phase begin, there is no overlapping between phases. It is the earliest SDLC approach that was used for software development. In the waterfall model, the whole process of software development are divided into 6 phases: requirement analysis, system design, implementation, testing, development and maintenance. The outcome of one phase acts as the input for the next phase sequentially.
The first phase is the requirement gathering and analysis, all possible requirements of the software to be developed are gathered and documented in a requirement specification document. Next phase is the system design, the requirement specification act as an input, and this phase will prepare the system design of the requirements needed. System design specifies the hardware and system requirements, it also helps defining the overall system architecture. Implementation comes after system design, once the system design process is finished, the system is first developed in small programs call units, the units will be integrated in the next phase. The functionality test of the units are call unit testing. Units are integrated in the Testing phase, which developed into a system after each unit testing. Post integration the entire system is tested for any faults and failures. The product is deployed to the customer or the market after all the functional and nonfunctional testings are done. Lastly, if the product has issues and bugs after releasing to the environment, patches are released to fix those issues. Maintenance is done to deliver these changes.
The Agile Model is one of the modern models. It is the combination of the iterative and incremental process models, this model focus on product adaptivity and customer satisfaction by rapid delivery of working software product. Agile model believes that every project needs to be handled differently and the existing methods need to be tailored to best suit the project requirements. In agile the tasks...