Page 61 -
P. 61

32            PART ONE  THE PRODUCT AND THE PROCESS


                       developers get to build something immediately. Yet, prototyping can also be prob-
                       lematic for the following reasons:

                        1.  The customer sees what appears to be a working version of the software,
                            unaware that the prototype is held together “with chewing gum and baling
                            wire,” unaware that in the rush to get it working no one has considered over-
                            all software quality or long-term maintainability. When informed that the
                            product must be rebuilt so that high levels of quality can be maintained, the
                            customer cries foul and demands that "a few fixes" be applied to make the
                            prototype a working product. Too often, software development management
         Resist pressure to
         extend a rough     relents.
         prototype into a  2.  The developer often makes implementation compromises in order to get a
         production product.  prototype working quickly. An inappropriate operating system or program-
         Quality almost always
         suffers as a result.  ming language may be used simply because it is available and known; an
                            inefficient algorithm may be implemented simply to demonstrate capability.
                            After a time, the developer may become familiar with these choices and for-
                            get all the reasons why they were inappropriate. The less-than-ideal choice
                            has now become an integral part of the system.
                          Although problems can occur, prototyping can be an effective paradigm for soft-
                       ware engineering. The key is to define the rules of the game at the beginning; that is,
                       the customer and developer must both agree that the prototype is built to serve as a
                       mechanism for defining requirements. It is then discarded (at least in part) and the
                       actual software is engineered with an eye toward quality and maintainability.


                 2.6   THE RAD MODEL
                       Rapid application development (RAD) is an incremental software development process
                       model that emphasizes an extremely short development cycle. The RAD model is a
                       “high-speed” adaptation of the linear sequential model in which rapid development
                       is achieved by using component-based construction. If requirements are well under-
                       stood and project scope is constrained, the RAD process enables a development team
                       to create a “fully functional system” within very short time periods (e.g., 60 to 90 days)
                       [MAR91]. Used primarily for information systems applications, the RAD approach
                       encompasses the following phases [KER94]:

                       Business modeling. The information flow among business functions is modeled in
                       a way that answers the following questions: What information drives the business
                       process? What information is generated? Who generates it? Where does the infor-
                       mation go? Who processes it? Business modeling is described in more detail in Chap-
                       ter 10.
                       Data modeling. The information flow defined as part of the business modeling phase
                       is refined into a set of data objects that are needed to support the business. The char-
   56   57   58   59   60   61   62   63   64   65   66