Comparative Study of Software Development Life Cycle Process
The Software Development Life Cycle (SDLC) provides a systematic way for building and delivering software applications. SDLC process is used by the software industry to design, develop and test high quality softwares. The SDLC is used to produce high-quality software that meets customer expectations, software completion within time and estimates cost. SDLC is a process followed for a software project, within a software organization. SDLC defines a methodology for improving the quality of software and the overall development process. The figure1 shows various stages of a SDLC.
There are different software development life cycle models. Each process model follows a series of steps distinctive to its type for successful software development. Following are the some popular SDLC models used in the industry:
- Waterfall Model
- Iterative Model
- Prototyping Model
- Spiral Model
2.1 Waterfall Model
When requirements of a problem are reasonably well understood and when work flows in a linear fashion, Waterfall model is used. The various phases in waterfall model are as follows:
- Requirement Analysis: This phase defines the needed information, functions, behavior, and performance of the software by communication between vendor and customer. The outcome of this phase is Software Requirement Specification (SRS) document.
- Design: on the basis of SRS obtained in previous phase the vendor converts the requirements into different modules and prepares a basic level of design document. The output of this phase is data structures, software architecture, interface, algorithmic details.
- Coding/ Implementation: Actual implementation is done here. The outcome of this phase is source code, database and user documentation.
- Testing: A team performs testing on the end product. Different types of testing methods can be applied here.
- Deployment and Maintenance: The software is deployed at client side and if any problem is found is fixed in this phase.
When to use Waterfall Model:
- When requirements are very well known.
- Product definition is stable.
- Technology is understood.
- New version of an existing product.
- Changing an existing product to a new platform.
2.2 The Iterative Waterfall Model
A need of a new model was felt due to the limitations of the classical waterfall model. The iterative model came into existence to handle the problems of the original waterfall model. The iterative waterfall model is an enhanced version of classical waterfall model which could provide faster results require less time and packed with good flexibility. New model is created by adding an “iterative” loop at the end of the cycle which allows a return to previous stages and the changes can be done whenever required. In this model problem is divided into small parts and this allows developer team to go easily and quickly for their goal and obtain their valuable feedback from users. The project that is divided into small parts and each part is taken as a mini waterfall process.
- Much better model of software process.
- Client can get Feedback.
- Used in that type of projects were requirements are not clear.
- Document driven process.
- Works well on week teams.
- Not easy to manage.
- Not clear mile stones.
- No stage is finished really.
2.3The Prototyping Model
This model requires that before carrying out the development of the actual product, a working model or prototype of the system should be built. Prototype usually turns out to be a very crude version of the actual system, possibly a small working model. A prototype  is a toy implementation of a system. Prototyping can be evolutionary or throwaway. In prototyping first requirements of customer are gathered from them and then a working prototype is developed as per their requirements. After the prototype is developed it is provided to the customer and customer review it to see that whether it meets its expected requirements.
After finalization of software requirement specification developer attempts to use existing program segments from prototype and actual system is then developed using waterfall approach to produce good quality software product.
- Applied when detailed information related to input
- & output requirements is not available. Regular visibility progress aids management
- Reduces risk of incorrect user requirements
- Good where requirements are changing frequently
- Higher outputs.
- Cost reductive.
- Client can actually feel with the system, i.e. feedback.
- Early design supports early product marketing
- Possibility of unfinished systems. As an unstable/badly implemented prototype often becomes the final product.
- Possibility of inadequate system so requires extensive customer collaboration.
- Lack of flexibility.
- Not suitable for large systems.
- Management is very complicated and becomes difficult to finish if customer is not committed.
2.4 The Spiral Model
The spiral model was developed in late 1980s, it was proposed by Barry Boehm, and introduces a factor of risk analysis that other models did not take into account . It is cyclic in nature and project undergoes each phase repeatedly called spiral. It consists of four phases and each phase is represented by one quadrant. The four phases are Requirement planning, Risk analysis, Engineering (development & test) and Customer evaluation & Feedback. The planning phase is the base line spiral and during this phase requirements are gathered.
- New prototype obtained after each cycle/iteration.
- Reuse capabilities.
- Better productivity.
- It has systematic stepwise approach.
- Elimination of errors in early stage.
- No proper cost and time estimation.
- Cost of risk analysis is high on large projects.
- Time consuming and Complex model.
- Need expertise for this model.
2.5 Evalutionary Development Model
This model is Advanced model of Spirial Model
- user gets a chance to experiment partially development system.
- Reduce the error because the core module get tested throughly
- high quality
- Reduction in Time and cost
- Several Version Release
- Uncertain Nature of need
- Confusion by several version and different versions.