Software project development is one of the most powerful, vital and important issue in the world of computers. It is the subset of Software development life cycle (SDLC). SDLC is all about the minimization of risk and failure and maximization of quality of the software product. The software development process is the very complex thing without any proper step by step generating procedure so to make the software development processes simple and systematic the software development life cycle came in to existence. This is the systematic and structural method of software developing process. The SDLC defines the framework that includes different activities and tasks to be carried out during the software development process. There are various software development life cycle models that are used in the software development process heaving their own advantages and disadvantages in this paper we have included five of these SDLC models like waterfall model, v shaped model, prototype model, spiral model and iterative model for comparison of existing models.
The Waterfall Model
This model was proposed by Royce in 1970. This is the classical model of the software engineering. The model is one of the oldest models used in the government projects and in many of the major companies. The model is also called as the linear sequential model or classic life cycle. This is the linear sequential SDLC model followed by the following phases Requirement Analysis, Design, Implementation, Testing and Maintenance. The phases are fixed in such a manner the phase once can’t be repeated again. As the water fall model is the classical model so it serves as the baseline of all other models.
· Easy to understand.
· Define before design.
· It is used for project with simple and strict deadlines.
· Problems remain uncovered until testing.
· Requirements are not clear.
· Late delivery.
· Not easy to integrate risk Management.
· Difficult to make any changes.
The Prototyping Model
Prototype model is the evolutionary process model. Evolutionary Process models are the iterative type models using this model the developer cam develop increasingly more complete version of software. In prototype model here we have the quick design phase through which the developer has to quickly design the software after requirement gathering as shown in figure.
· Early visibility.
· Higher outputs.
· Cost reductive.
· Client can actually feel with the system, i.e. feedback.
· Early design.
· Possibility of unfinished systems.
· Possibility of inadequate system
· Lack of flexibility.
· Not suitable for large systems.
· Management is very complicated.
The Spiral Model
The spiral model was developed on the end of the 1980s, it was outlined by Barry Boehm, and introduces something that other models did not take into account, which is risk analysis. In essence, the spiral model attempts to bring together key aspects of some other prominent models (namely the waterfall, incremental, and evolutionary prototyping), in an attempt to gather the most appropriate traits from each one, because specific projects might be more or less adaptable to specific models. It has properties of all above said models. It is also called meta model.
· New prototype obtained every time.
· Reuse capabilities.
· Better productivity.
· It has systematic stepwise approach.
· Elimination of errors in early stage.
· Not proper cost and time estimation.
· Cost of risk analysis is high on large projects.
The V-Shaped Model
This model can be considered as extension of waterfall model. In waterfall model we move in a linear way while in V shaped model process steps are bent upwards the coding phases to form typical V-Shape. The relationship between each phase of the development process and its associated phase of testing. As testing is one of the important part of Software development the V shaped model emphasis is more on testing. The V shaped Model is almost same as waterfall model both the models are sequential. Requirements have to be very clear before the project starts because it is very expensive to go back to requirements and make changes for the existing projects.
· High amount of risk analysis.
· Good for critical projects.
· Early production.
· Easy to manage due to rigidity of model.
· Easy to understand.
· Not good model for object oriented projects.
· Not good for long and ongoing projects.
· Not suitable were requirements have high risk of changing.
· Can be costly model.
· Don’t work well for small projects.