Page 319 -
P. 319

290           PART THREE  CONVENTIONAL METHODS FOR SOFTWARE ENGINEERING


         FIGURE 11.6
                                                                                 Additional
         Selecting the
                                                       Throwaway   Evolutionary  preliminary
         appropriate
                        Question                        prototype   prototype  work required
         prototyping
         approach
                        Is the application domain understood?  Yes     Yes          No
                        Can the problem be modeled?        Yes         Yes          No
                        Is the customer certain of basic system  Yes/No  Yes/No     No
                        requirements?
                        Are requirements established and stable?  No   Yes          Yes
                        Are any requirements ambiguous?    Yes         No           Yes
                        Are there contradictions in the requirements?  Yes  No      Yes





                                                   9
                       to be too complex for prototyping. If, however, the complexity can be partitioned, it
                       may still be possible to prototype portions of the software.
                          Because the customer must interact with the prototype in later steps, it is essen-
                       tial that (1) customer resources be committed to the evaluation and refinement of the
                       prototype and (2) the customer is capable of making requirements decisions in a
                       timely fashion. Finally, the nature of the development project will have a strong bear-
                       ing on the efficacy of prototyping. Is project management willing and able to work
                       with the prototyping method? Are prototyping tools available? Do developers have
                       experience with prototyping methods? Andriole [AND92] suggests six questions (Fig-
                       ure 11.6) and indicates typical sets of answers and the corresponding suggested pro-
                       totyping approach.

                       11.4.2  Prototyping Methods and Tools
                       For software prototyping to be effective, a prototype must be developed rapidly so
                       that the customer may assess results and recommend changes. To conduct rapid pro-
                       totyping, three generic classes of methods and tools (e.g., [AND92], [TAN89]) are
                       available:

                            Fourth generation techniques. Fourth generation techniques (4GT)
                            encompass a broad array of database query and reporting languages, pro-
                            gram and application generators, and other very high-level nonprocedural
                            languages. Because 4GT enable the software engineer to generate exe-
                            cutable code quickly, they are ideal for rapid prototyping.

                            Reusable software components. Another approach to rapid prototyping
                            is to assemble, rather than build, the prototype by using a set of existing soft-
                            ware components. Melding prototyping and program component reuse will



                       9  In some cases, extremely complex prototypes can be constructed rapidly by using fourth genera-
                          tion techniques or reusable software components.
   314   315   316   317   318   319   320   321   322   323   324