Professional C__ - Marc Gregoire [406]
Figure 23-4 shows an example of three cycles through the spiral in the development of an operating system. The first cycle yields a plan containing the major requirements for the product. The second cycle results in a prototype showing the user experience. The third cycle builds a component that is determined to be a high risk.
FIGURE 23-4
Benefits of the Spiral Model
The Spiral Model can be viewed as the application of an iterative approach to the best that the Waterfall Model has to offer. Figure 23-5 shows the Spiral Model as a waterfall process that has been modified to allow iteration. Hidden risks and a linear development path, the main drawbacks of the Waterfall Model, are resolved through short iterative cycles.
FIGURE 23-5
Performing the riskiest tasks first is another benefit. By bringing risk to the forefront and acknowledging that new conditions can arise at any time, the Spiral Model avoids the hidden time bombs that can occur in the Waterfall Model. When unexpected problems arise, they can be dealt with by using the same four-stage approach that works for the rest of the process.
This iterative approach also allows for incorporating feedback from testers. For example, an early version of the product can be released for internal or even external evaluation. These testers could, for example, say that a certain feature is missing, or an existing feature is not working as expected. The Spiral Model has a built-in mechanism to react to such input.
Finally, by repeatedly analyzing after each cycle and building new designs, the practical difficulties with the design-then-implement approach are virtually eliminated. With each cycle, there is more knowledge of the system that can influence the design.
Drawbacks of the Spiral Model
The main drawback of the Spiral Model is that it can be difficult to scope each iteration small enough to gain real benefit. In a worst-case scenario, the Spiral Model can degenerate into the Waterfall Model because the iterations are too long. Unfortunately, the Spiral Model only models the software life cycle. It cannot prescribe a specific way to break down a project into single-cycle iterations because that division varies from project to project.
Other possible drawbacks are the overhead of repeating all four phases for each cycle and the difficulty of coordinating cycles. Logistically, it may be difficult to assemble all the group members for design discussions at the right time. If different teams are working on different parts of the product simultaneously, they are probably operating in parallel cycles, which can get out of synch. For example, the user interface group could be ready to start the discovery phase of the Window Manager cycle, but the core OS group could still be in the development phase of the memory subsystem.
The Rational Unified Process
The Rational Unified Process (RUP) is a disciplined and formal approach to managing the software development process. The most important characteristic of the RUP is that, unlike the Spiral Model or the Waterfall Model, RUP is more than just a theoretical process model. RUP is actually a software product, marketed and sold by Rational Software, a division of IBM. Treating the process as software is compelling for a number of reasons:
The process itself can be updated and refined, just as software products periodically have updates.
Rather than simply suggesting a development framework, RUP includes a set of software tools for working with that framework.
As a product, RUP can be rolled out to the entire engineering team so that all members are using the exact same processes and tools.
Like many software products, RUP can be customized to the needs of the users.
RUP as a Product
As a product, the RUP takes the form of a suite of software applications that guides developers through the software development process. The product