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.