Page 155 -
P. 155

126           PART TWO  MANAGING SOFTWARE PROJECTS


                       5.6.2  Problem-Based Estimation
                       In Chapter 4, lines of code and function points were described as measures from
                       which productivity metrics can be computed. LOC and FP data are used in two
                       ways during software project estimation: (1) as an estimation variable to "size"
                       each element of the software and (2) as baseline metrics collected from past proj-
                       ects and used in conjunction with estimation variables to develop cost and effort
                       projections.
                          LOC and FP estimation are distinct estimation techniques. Yet both have a num-
                       ber of characteristics in common. The project planner begins with a bounded state-
          ?  What do   ment of software scope and from this statement attempts to decompose software
            LOC- and
         FP-oriented   into problem functions that can each be estimated individually. LOC or FP (the esti-
         estimation have  mation variable) is then estimated for each function. Alternatively, the planner may
         in common?
                       choose another component for sizing such as classes or objects, changes, or busi-
                       ness processes affected.
                                                                       9
                          Baseline productivity metrics (e.g., LOC/pm or FP/pm ) are then applied to the
                       appropriate estimation variable, and cost or effort for the function is derived. Func-
                       tion estimates are combined to produce an overall estimate for the entire project.
         When collecting  It is important to note, however, that there is often substantial scatter in produc-
         productivity metrics for
         projects, be sure to  tivity metrics for an organization, making the use of a single baseline productivity
         establish a taxonomy  metric suspect. In general, LOC/pm or FP/pm averages should be computed by proj-
         of project types. This  ect domain. That is, projects should be grouped by team size, application area, com-
         will enable you to  plexity, and other relevant parameters. Local domain averages should then be
         compute domain-
         specific averages,  computed. When a new project is estimated, it should first be allocated to a domain,
         making estimation  and then the appropriate domain average for productivity should be used in gener-
         more accurate.  ating the estimate.
                          The LOC and FP estimation techniques differ in the level of detail required for
                       decomposition and the target of the partitioning. When LOC is used as the estima-
                       tion variable, decomposition 10  is absolutely essential and is often taken to consider-
                       able levels of detail. The following decomposition approach has been adapted from
                       Phillips  [PHI98]: 11

                          define product scope;
         For LOC estimates,  identify functions by decomposing scope;
         decomposition focuses  do while functions remain
         on software functions.  select a function j
                              assign all functions to subfunctions list;

                        9 The acronym pm stands for person-month.
                       10 In general, problem functions are decomposed. However, a list of standard components (Section
                          5.6.1) may be used instead.
                       11 The informal process design language noted here is intended to illustrate the general approach
                          for sizing. It does not consider every logical contingency.
   150   151   152   153   154   155   156   157   158   159   160