Software development is a process that involves numerous procedures and consists of certain important stages. Due to its complicacy, it is reasonable to make use of some models that allow for making the process of development the most productive. If the most appropriate model is chosen, it will also allow for costs minimization and reaching the initial goals.
Waterfall model is one of the most popular models known and widely used today around the world. It was first introduced in 1970 by Winston W. Royce and since then it has undergone a number of changes that keep it up-to-date and maintain its value for the professionals. One of its distinguishing characteristics is that it represents a sequence of procedures, which cannot be broken. Only when one stage is completed, the next can be started. Roughly, there can be singled out 6 stages in the model: 1) requirements phase – requirements to the program are defined; 2) specifications – on the basis of the requirements and constraints, a final view is formed as to the functioning of the program; 3) design – all the aspects of design are defined at this stage and process algorithm is designed; 4) implementation and testing – software is coded as per algorithm; 5) integration and testing – codes designed by different programmers are integrated and tested, the product is given to the client; 6) maintenance – constant support of the software in use by the client. The model has certain advantages and disadvantages. It is good, because it is linear and easy-to-implement, it doesn’t require a lot of resources, documentation at each stage allows for easy understanding of the development process, and there is testing at each stage, which prevents a lot of errors. The main disadvantage of the model is directly related to its advantages – you cannot return to the previous stages. If design was poor, the whole work is at a serious risk. Due to the same reason, it is often difficult to change something in the program. It is also a difficulty that until the last stage the client doesn’t see the program, which is why there is always a chance that the result will not be the one he hoped for.
Spiral model was developed in 1986 by Barry Boehm and was the first in the sphere of software development to explain the iteration importance. It successfully combines the waterfall and prototyping models and can be effectively used for expensive, large and complicated projects, because the product can be continuously refined through repeating the process around the spiral. The order of processes is similar to the one in the waterfall model, but the essential characteristic is repeating of the processes in the spiral manner. Overall, it is possible to distinguish between six stages at each lap of the spiral – 1) communication with customer; 2) planning; 3) risk analysis; 4) engineering; 5) construction and release; 6) customer evaluation and planning of the further iteration. The most important advantage of the spiral model is risk analysis that is conducted often, owing to which in the end there are fewer chances of essential problems occurrence after implementation. All the problems can be solved in later releases of the project, which allows for constant improvement of the product. The main disadvantage of the model is high cost involved in its application. Besides, it is very dependent of the risk analysis. In the majority of cases it is not reasonable to use it for small projects.
So, two models presented above deserve attention and should be considered when planning the development process. Waterfall model is more appropriate for small projects with little budgets. Spiral model is more complicated and expensive, but allows for receiving more reliable results. Risks are better defined and handled in the latter case and the opportunity to constantly monitor the quality of the product and release its newer versions is an important advantage.
References
McConnell, S. (2006). Software Estimation: Demystifying the Black Art. Microsoft Press.