Page 72 -
P. 72

CHAPTER 2  THE PROCESS                                              43

                                Classes created in past software engineering projects are stored in a class
                              library or repository (Chapter 31). Once candidate classes are identified, the class
                              library is searched to determine if these classes already exist. If they do, they are
                              extracted from the library and reused. If a candidate class does not reside in the
                              library, it is engineered using object-oriented methods (Chapters 21–23).  The first
                              iteration of the application to be built is then composed, using classes extracted
                              from the library and any new classes built to meet the unique needs of the appli-
                              cation. Process flow then returns to the spiral and will ultimately re-enter the
                              component assembly iteration during subsequent passes through the engineer-
                              ing activity.
                                The component-based development model leads to software reuse, and reusabil-
                              ity provides software engineers with a number of measurable benefits. Based on stud-
                              ies of reusability, QSM Associates, Inc., reports component assembly leads to a 70
                              percent reduction in development cycle time; an 84 percent reduction in project cost,
                              and a productivity index of 26.2, compared to an industry norm of 16.9. [YOU94]
                              Although these results are a function of the robustness of the component library, there
                              is little question that the component-based development model provides significant
                 XRef         advantages for software engineers.
                UML is discussed in  The unified software development process [JAC99] is representative of a number of
                some detail in Chapters  component-based development models that have been proposed in the industry.
                21 and 22.
                              Using the Unified Modeling Language (UML), the unified process defines the compo-
                              nents that will be used to build the system and the interfaces that will connect the
                              components. Using a combination of iterative and incremental development, the uni-
                              fied process defines the function of the system by applying a scenario-based approach
                              (from the user point of view). It then couples function with an architectural frame-
                              work that identifies the form the the software will take.



                        2.9   THE FORMAL METHODS MODEL
                              The formal methods model encompasses a set of activities that leads to formal math-
                 XRef
                Formal methods are  ematical specification of computer software. Formal methods enable a software engi-
                discussed in Chapters  neer to specify, develop, and verify a computer-based system by applying a rigorous,
                25 and 26.
                              mathematical notation. A variation on this approach, called cleanroom software engi-
                              neering [MIL87, DYE92], is currently applied by some software development organi-
                              zations.
                                When formal methods (Chapters 25 and 26) are used during development, they
                              provide a mechanism for eliminating many of the problems that are difficult to
                              overcome using other software engineering paradigms. Ambiguity, incomplete-
                              ness, and inconsistency can be discovered and corrected more easily, not through
                              ad hoc review but through the application of mathematical analysis. When formal
                              methods are used during design, they serve as a basis for program verification and
   67   68   69   70   71   72   73   74   75   76   77