Page 153 -
P. 153

124           PART TWO  MANAGING SOFTWARE PROJECTS


                       a cross-check for the other. Decomposition techniques take a "divide and conquer"
                       approach to software project estimation. By decomposing a project into major func-
                       tions and related software engineering activities, cost and effort estimation can be
                       performed in a stepwise fashion. Empirical estimation models can be used to com-
                       plement decomposition techniques and offer a potentially valuable estimation
                       approach in their own right. A model is based on experience (historical data) and
                       takes the form
                            d = f (v )
                                 i
                       where d is one of a number of estimated values (e.g., effort, cost, project duration)
                       and v are selected independent parameters (e.g., estimated LOC or FP).
                            i
                          Automated estimation tools implement one or more decomposition techniques or
                       empirical models. When combined with a graphical user interface, automated tools
                       provide an attractive option for estimating. In such systems, the characteristics of the
                       development organization (e.g., experience, environment) and the software to be
                       developed are described. Cost and effort estimates are derived from these data.
           Estimation tools  Each of the viable software cost estimation options is only as good as the histor-
                       ical data used to seed the estimate. If no historical data exist, costing rests on a very
                       shaky foundation.  In Chapter 4, we examined the characteristics of some of the soft-
                       ware metrics that provide the basis for historical estimation data.


                 5.6   DECOMPOSITION TECHNIQUES
                       Software project estimation is a form of problem solving, and in most cases, the
                       problem to be solved (i.e., developing a cost and effort estimate for a software proj-
                       ect) is too complex to be considered in one piece. For this reason, we decompose
                       the problem, recharacterizing it as a set of smaller (and hopefully, more manage-
                       able) problems.
                          In Chapter 3, the decomposition approach was discussed from two different points
                       of view: decomposition of the problem and decomposition of the process. Estima-
                       tion uses one or both forms of partitioning. But before an estimate can be made, the
                       project planner must understand the scope of the software to be built and generate
                       an estimate of its “size.”
                       5.6.1  Software Sizing

                       The accuracy of a software project estimate is predicated on a number of things: (1)
                       the degree to which the planner has properly estimated the size of the product to be
         The “size” of software  built; (2) the ability to translate the size estimate into human effort, calendar time,
         to be built can be
         estimated using a  and dollars (a function of the availability of reliable software metrics from past proj-
         direct measure, LOC,  ects); (3) the degree to which the project plan reflects the abilities of the software
         or an indirect measure,  team; and (4) the stability of product requirements and the environment that sup-
         FP.           ports the software engineering effort.
   148   149   150   151   152   153   154   155   156   157   158