Students need to understand the concepts of the following software process models:
Waterfall is the first methodology generally acknowledged as being dedicated to software development. Its principals are for the first time described by Winston W. Royce even though the actual term waterfall is not used in the article. It emphasizes meticulous planning and it outputs comprehensive documentation. The Waterfall methodology is linear sequential process where every stage starts only after the previous has been completed. Each stage has its own deliverables. The Waterfall methodology is predictable and values rigorous software planning and architecture.
Prototyping is a methodology that evolved out of the need to better define specifications and it entails building a demo version of the software product that includes the critical functionality. Initial specifications are defined only to provide enough information to build a prototype. The prototype is used to refine specifications as it acts as baseline for communication between project team and project owner. The prototype is not meant to be further developed into the actual software product. Prototypes should be built fast and most of the times they disregard programming best practices.
Iterative and incremental is a methodology that relies on building the software application one step at the time in the form of an expanding model. Based on initial specification a basic model of the application is built. Unlike the prototype, the model is not going to be discarded, but is instead meant to be extended. After the model is
tested and feedback is received from the project owner specifications are adjusted and the model is extended. The process is repeated until the model becomes a fully functional application that meets all the project owner’s requirements.
Extreme programming breaks the conventional software development process into smaller more manageable chunks. Rather than planning, analyzing, and designing for the entire project at once, extreme programming exploits the reduction in the cost of changing software to do all of these activities a little at a time, throughout the entire software development process. It enforces pair programming where two developers use the same computer. One is writing code and the other is supervising. They change roles at regular intervals. For reducing the number of errors, it relies heavily on unit testing and developers are required to write tests before writing the actual code. There is a collective ownership code policy where any developer can change any code sequence even if it was not written by him. The project owner is the one that decides the priority of the tasks.
Question No. 1: Classify the above-mentioned models in the following categories:
Waterfall Model follows a structured analysis. This is so, because structured analysis as the name suggests entails careful planning and the vital concentration is on the process and how the development will pan out. It is extremely beneficial with the waterfall Model since this model too, is required only when there is a comprehensive planning done already about how the development will motion. Structured analysis provides an in depth knowledge of all the activities and the variables used within the entire software development which is also a case in Waterfall Model. Hence this model is classified within the structured analysis using models.
Prototyping Model follows the object-oriented analysis. It basically involves developing demos that can be further improvised using regular feedbacks and new functionalities can be added to the entire demo or the prototype as well. This way the entire program is categorised into objects or prototypes that are handled but this is not the actual product. This is just a prototype or a copy of the actual product.
Iterative & Incremental methodology follows the Agile/Adaptive approach. The software is developed in units that is, the entire problem is divided into parts and then every module is developed one at a time. This is the Agile methodology. The continuous modification of the software is done and the changes are continually adapted while the errors are removed.
Extreme Programming follows the Agile approach. Since in agile development continuous improvement and planning keep on going alongside the development process which is the same case in Extreme Programming. The source code is tested again and again in regular intervals by having cooperation from two individuals one supervising the program while the other writing the code.
Get Answers For Free
Most questions answered within 1 hours.