Page 65 -
P. 65

48   Chapter 2   Software processes


                                        that customers are less likely to encounter software failures in the most impor-
                                        tant parts of the system.

                                       However, there are problems with incremental delivery:

                                    1.  Most systems require a set of basic facilities that are used by different parts of the
                                        system. As requirements are not defined in detail until an increment is to be
                                        implemented, it can be hard to identify common facilities that are needed by all
                                        increments.
                                    2.  Iterative development can also be difficult when a replacement system is being
                                        developed. Users want all of the functionality of the old system and are often
                                        unwilling to experiment with an incomplete new system. Therefore, getting use-
                                        ful customer feedback is difficult.
                                    3.  The essence of iterative processes is that the specification is developed in conjunc-
                                        tion with the software. However, this conflicts with the procurement model of
                                        many organizations, where the complete system specification is part of the system
                                        development contract. In the incremental approach, there is no complete system
                                        specification until the final increment is specified. This requires a new form of
                                        contract, which large customers such as government agencies may find difficult to
                                        accommodate.


                                       There are some types of system where incremental development and delivery is
                                    not the best approach. These are very large systems where development may involve
                                    teams working in different locations, some embedded systems where the software
                                    depends on hardware development and some critical systems where all the require-
                                    ments must be analyzed to check for interactions that may compromise the safety or
                                    security of the system.
                                       These systems, of course, suffer from the same problems of uncertain and chang-
                                    ing requirements. Therefore, to address these problems and get some of the benefits
                                    of incremental development, a process may be used in which a system prototype is
                                    developed  iteratively  and  used  as  a  platform  for  experiments  with  the  system
                                    requirements and design. With the experience gained from the prototype, definitive
                                    requirements can then be agreed.



                             2.3.3 Boehm’s spiral model
                                    A risk-driven software process framework (the spiral model) was proposed by
                                    Boehm (1988). This is shown in Figure 2.11. Here, the software process is repre-
                                    sented as a spiral, rather than a sequence of activities with some backtracking from
                                    one activity to another. Each loop in the spiral represents a phase of the software
                                    process. Thus, the innermost loop might be concerned with system feasibility, the
                                    next loop with requirements definition, the next loop with system design, and so on.
                                    The spiral model combines change avoidance with change tolerance. It assumes that
   60   61   62   63   64   65   66   67   68   69   70