Page 63 -
P. 63

34            PART ONE  THE PRODUCT AND THE PROCESS


                       The RAD process model is illustrated in Figure 2.6. Obviously, the time constraints
                       imposed on a RAD project demand “scalable scope” [KER94]. If a business applica-
                       tion can be modularized in a way that enables each major function to be completed
                       in less than three months (using the approach described previously), it is a candidate
                       for RAD. Each major function can be addressed by a separate RAD team and then
                       integrated to form a whole.
                          Like all process models, the RAD approach has drawbacks [BUT94]:
           XRef
         RAD makes heavy use of  •  For large but scalable projects, RAD requires sufficient human resources to
         reusable components.
         For further information  create the right number of RAD teams.
         on component-based  •  RAD requires developers and customers who are committed to the rapid-fire
         development, see
         Chapter 27.        activities necessary to get a system complete in a much abbreviated time
                            frame. If commitment is lacking from either constituency, RAD projects will
                            fail.
                         •  Not all types of applications are appropriate for RAD. If a system cannot be
                            properly modularized, building the components necessary for RAD will be
                            problematic. If high performance is an issue and performance is to be
                            achieved through tuning the interfaces to system components, the RAD
                            approach may not work.
                         •  RAD is not appropriate when technical risks are high. This occurs when a new
                            application makes heavy use of new technology or when the new software
                            requires a high degree of interoperability with existing computer programs.



                 2.7   EVOLUTIONARY SOFTWARE PROCESS MODELS

                       There is growing recognition that software, like all complex systems, evolves over a
                       period of time [GIL88]. Business and product requirements often change as devel-
                       opment proceeds, making a straight path to an end product unrealistic; tight market
                       deadlines make completion of a comprehensive software product impossible, but a
                       limited version must be introduced to meet competitive or business pressure;  a set
                       of core product or system requirements is well understood, but the details of prod-
                       uct or system extensions have yet to be defined. In these and similar situations, soft-
                       ware engineers need a process model that has been explicitly designed to
                       accommodate a product that evolves over time.
                          The linear sequential model (Section 2.4) is designed for straight-line develop-
                       ment. In essence, this waterfall approach assumes that a complete system will be
                       delivered after the linear sequence is completed. The prototyping model (Section
                       2.5) is designed to assist the customer (or developer) in understanding require-
                       ments. In general, it is not designed to deliver a production system. The evolu-
                       tionary nature of software is not considered in either of these classic software
                       engineering paradigms.
   58   59   60   61   62   63   64   65   66   67   68