Page 65 -
P. 65

36            PART ONE  THE PRODUCT AND THE PROCESS


                          The incremental process model, like prototyping (Section 2.5) and other evolu-
                       tionary approaches, is iterative in nature. But unlike prototyping, the incremental
         When you encounter a  model focuses on the delivery of an operational product with each increment. Early
         difficult deadline that  increments are stripped down versions of the final product, but they do provide capa-
         cannot be changed,  bility that serves the user and also provide a platform for evaluation by the user.
         the incremental model
         is a good paradigm to  Incremental development is particularly useful when staffing is unavailable for a
         consider.     complete implementation by the business deadline that has been established for the
                       project. Early increments can be implemented with fewer people. If the core product
                       is well received, then additional staff (if required) can be added to implement the next
                       increment. In addition, increments can be planned to manage technical risks. For
                       example, a major system might require the availability of new hardware that is under
                       development and whose delivery date is uncertain. It might be possible to plan early
                       increments in a way that avoids the use of this hardware, thereby enabling partial
                       functionality to be delivered to end-users without inordinate delay.

                       2.7.2    The Spiral Model

                       The spiral model, originally proposed by Boehm [BOE88], is an evolutionary software
                       process model that couples the iterative nature of prototyping with the controlled and
                       systematic aspects of the linear sequential model. It provides the potential for rapid
                       development of incremental versions of the software. Using the spiral model, soft-
                       ware is developed in a series of incremental releases. During early iterations, the
                       incremental release might be a paper model or prototype. During later iterations,
                       increasingly more complete versions of the engineered system are produced.
                          A spiral model is divided into a number of framework activities, also called task
                              6
                       regions. Typically, there are between three and six task regions. Figure 2.8 depicts a
                       spiral model that contains six task regions:
                         •  Customer communication—tasks required to establish effective communi-
                            cation between developer and customer.
                         •  Planning—tasks required to define resources, timelines, and other project-
                            related information.
                         •  Risk analysis—tasks required to assess both technical and management
         Framework activities  risks.
         apply to every
         software project you  •  Engineering—tasks required to build one or more representations of the
         undertake, regardless  application.
         of size or complexity.
                         •  Construction and release—tasks required to construct, test, install, and
                            provide user support (e.g., documentation and training).




                       6  The spiral model discussed in this section is a variation on the model proposed by Boehm. For
                          further information on the original spiral model, see [BOE88]. More recent discussion of Boehm’s
                          spiral model can be found in [BOE98].
   60   61   62   63   64   65   66   67   68   69   70