Page 67 -
P. 67

50   Chapter 2   Software processes


                                    The main difference between the spiral model and other software process models is
                                    its explicit recognition of risk. A cycle of the spiral begins by elaborating objectives
                                    such as performance and functionality. Alternative ways of achieving these objec-
                                    tives, and dealing with the constraints on each of them, are then enumerated. Each
                                    alternative is assessed against each objective and sources of project risk are identi-
                                    fied. The next step is to resolve these risks by information-gathering activities such
                                    as more detailed analysis, prototyping, and simulation.
                                       Once risks have been assessed, some development is carried out, followed by a plan-
                                    ning activity for the next phase of the process. Informally, risk simply means something
                                    that can go wrong. For example, if the intention is to use a new programming language,
                                    a risk is that the available compilers are unreliable or do not produce sufficiently effi-
                                    cient object code. Risks lead to proposed software changes and project problems such as
                                    schedule and cost overrun, so risk minimization is a very important project management
                                    activity. Risk management, an essential part of project management, is covered in
                                    Chapter 22.




                              2.4 The Rational Unified Process


                                    The Rational Unified Process (RUP) (Krutchen, 2003) is an example of a modern
                                    process model that has been derived from work on the UML and the associated Unified
                                    Software Development Process (Rumbaugh, et al., 1999; Arlow and Neustadt, 2005).
                                    I have included a description here, as it is a good example of a hybrid process model.
                                    It brings together elements from all of the generic process models (Section 2.1), illus-
                                    trates good practice in specification and design (Section 2.2) and supports prototyping
                                    and incremental delivery (Section 2.3).
                                       The RUP recognizes that conventional process models present a single view of
                                    the process. In contrast, the RUP is normally described from three perspectives:

                                    1.  A dynamic perspective, which shows the phases of the model over time.

                                    2.  A static perspective, which shows the process activities that are enacted.
                                    3.  A practice perspective, which suggests good practices to be used during the process.

                                       Most descriptions of the RUP attempt to combine the static and dynamic perspec-
                                    tives in a single diagram (Krutchen, 2003). I think that makes the process harder to
                                    understand, so I use separate descriptions of each of these perspectives.
                                       The RUP is a phased model that identifies four discrete phases in the software
                                    process. However, unlike the waterfall model where phases are equated with process
                                    activities, the phases in the RUP are more closely related to business rather than
                                    technical concerns. Figure 2.11 shows the phases in the RUP. These are:

                                    1.  Inception The goal of the inception phase is to establish a business case for the
                                        system. You should identify all external entities (people and systems) that will
   62   63   64   65   66   67   68   69   70   71   72