Page 116 -
P. 116
CHAPTER 4 SOFTWARE PROCESS AND PROJECT METRICS 87
? How should design quality and to provide indicators that will influence the approach taken to code
generation and testing.
we use
metrics during the The intent of project metrics is twofold. First, these metrics are used to minimize
project itself?
the development schedule by making the adjustments necessary to avoid delays and
mitigate potential problems and risks. Second, project metrics are used to assess
product quality on an ongoing basis and, when necessary, modify the technical
approach to improve quality.
As quality improves, defects are minimized, and as the defect count goes down,
the amount of rework required during the project is also reduced. This leads to a
reduction in overall project cost.
Another model of software project metrics [HET93] suggests that every project
should measure:
• Inputs—measures of the resources (e.g., people, environment) required to do
the work.
• Outputs—measures of the deliverables or work products created during the
software engineering process.
• Results—measures that indicate the effectiveness of the deliverables.
In actuality, this model can be applied to both process and project. In the project con-
text, the model can be applied recursively as each framework activity occurs. There-
fore the output from one activity becomes input to the next. Results metrics can be
used to provide an indication of the usefulness of work products as they flow from
one framework activity (or task) to the next.
4.3 SOFTWARE MEASUREMENT
Measurements in the physical world can be categorized in two ways: direct measures
(e.g., the length of a bolt) and indirect measures (e.g., the "quality" of bolts produced,
measured by counting rejects). Software metrics can be categorized similarly.
Direct measures of the software engineering process include cost and effort applied.
? What is the Direct measures of the product include lines of code (LOC) produced, execution speed,
difference
between direct and memory size, and defects reported over some set period of time. Indirect measures of
indirect measures? the product include functionality, quality, complexity, efficiency, reliability, maintain-
ability, and many other "–abilities" that are discussed in Chapter 19.
The cost and effort required to build software, the number of lines of code pro-
duced, and other direct measures are relatively easy to collect, as long as specific
conventions for measurement are established in advance. However, the quality and
functionality of software or its efficiency or maintainability are more difficult to assess
and can be measured only indirectly.
We have already partitioned the software metrics domain into process, project,
and product metrics. We have also noted that product metrics that are private to an