The document discusses several software development models: the waterfall model, prototype model, V-process model, incremental model, and spiral model. It provides an overview of each model including their basic approach, advantages, and disadvantages. The waterfall model is a linear and sequential approach while the prototype model focuses on early user involvement through prototypes. The V-process model matches each development phase with a testing phase. The incremental model applies the waterfall approach incrementally through releases while the spiral model combines prototyping and waterfall with an emphasis on risk management.
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
54 views
Software Development Models
The document discusses several software development models: the waterfall model, prototype model, V-process model, incremental model, and spiral model. It provides an overview of each model including their basic approach, advantages, and disadvantages. The waterfall model is a linear and sequential approach while the prototype model focuses on early user involvement through prototypes. The V-process model matches each development phase with a testing phase. The incremental model applies the waterfall approach incrementally through releases while the spiral model combines prototyping and waterfall with an emphasis on risk management.
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 22
Software Development Models
Classical Waterfall Model
As waterfall flows from the top to the bottom, the system model shows the development process from the top to the bottom in steps. As water does not rise from a lower level to a higher level, it is presumed that once a step in the model is over, it is not required to go back. Advantages
• Simple and easy to use.
• Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. • Phases are processed and completed one at a time. • Works well for smaller projects where requirements are very well understood. Disadvantages • No working software is produced until late during the life cycle. • High amounts of risk and uncertainty. • Poor model for complex and object-oriented projects. • Poor model for long and ongoing projects. • Poor model where requirements are at a moderate to high risk of changing. Prototype Model
The basic idea here is that instead of freezing
the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. Development of the prototype obviously undergoes design, coding and testing. But each of these phases is not done very formally or thoroughly. Advantages • Users are actively involved in the development • It provides a better system to users, as users have natural tendency to change their mind in specifying requirements and this method of developing systems supports this user tendency. • Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed. • Errors can be detected much earlier as the system is running side by side. • Quicker user feedback is available leading to better solutions. Disadvantages
• Customer could believe the prototype as the
working version. • Developer also could make the implementation compromises where he could make the quickfixes to the prototype and make is as a working version. • Takes more time. V-Process Model
The V-Shaped model is the same as the
Waterfall model except that testing is a consideration throughout the development. Each stage of development is matched with its equivalent stage in testing. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. Advantages • Not quite as straight forward as the waterfall method. • Allows for more extensive testing, as the testing is built into each phase of development, rather than as an afterthought. • More bugs are caught during development than are caught using the waterfall method. Disadvantages • Requires a very specific description of requirements and very little volatility in requirements. • Total development time is longer than the waterfall method. Incremental Model
The incremental Model is an evolution of the
waterfall model, where the waterfall model is incrementally applied. The series of releases is referred to as “increments”, with each increment providing more functionality to the customers. Advantages • The feedback from early increments improves the later stages. • The possibility of changes in requirements is reduced because of the shorter time spam between the design of a component and its delivery. • Users get benefits earlier than with a conventional approach. • Early delivery of some useful components improves cash flows, because you get some return on investment early on. • Smaller sub- projects are easier to control and managed. • The project can be temporarily abandoned if more urgent work emerges. • Job satisfaction is increased for developers who see their labours bearing fruit at regular, short, intervals. Disadvantages • Later increments might require modifications to earlier increments. This is known as software breakage. • Software developers may be more productive working on one large system than on a series of smaller ones. • Problems may arise pertaining to system architecture because not all requirements are gathered up front for the entire software life cycle. Spiral Model
This model of development combines the
features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects. It gives more emphasis on risk management. Advantages
• High amount of risk analysis
• Good for large and mission-critical projects • Software is produced early in the software life cycle Disadvantages • Can be a costly model to use. • Risk analysis requires highly specific expertise. • Project’s success is highly dependent on the risk analysis phase. • Doesn’t work well for smaller projects.