Chapter 25 - Process and Project Metrics
Overview
Software process and project metrics are quantitative measures that enable
software engineers to gain insight into the efficiency of the software process and
the projects conducted using the process framework. In software project
management, we are primarily concerned with productivity and quality metrics.
There are four reasons for measuring software processes, products, and
resources (to characterize, to evaluate, to predict, and to improve).
Process and Project Metrics
Metrics should be collected so that process and product indicators can be
ascertained
Process metrics used to provide indictors that lead to long term process
improvement
Project metrics enable project manager to
o Assess status of ongoing project
o Track potential risks
o Uncover problem are before they go critical
o Adjust work flow or tasks
o Evaluate the project teams ability to control quality of software wrok
products
Process Metrics
Private process metrics (e.g. defect rates by individual or module) are only
known to by the individual or team concerned.
Public process metrics enable organizations to make strategic changes to
improve the software process.
Metrics should not be used to evaluate the performance of individuals.
Statistical software process improvement helps and organization to discover
where they are strong and where are week.
Statistical Process Control
1.
2.
3.
4.
5.
Errors are categorized by their origin
Record cost to correct each error and defect
Count number of errors and defects in each category
Overall cost of errors and defects computed for each category
Identify category with greatest cost to organization
6. Develop plans to eliminate the most costly class of errors and defects or at
least reduce their frequency
Project Metrics
A software team can use software project metrics to adapt project workflow
and technical activities.
Project metrics are used to avoid development schedule delays, to mitigate
potential risks, and to assess product quality on an on-going basis.
Every project should measure its inputs (resources), outputs (deliverables),
and results (effectiveness of deliverables).
Software Measurement
Direct process measures include cost and effort.
Direct process measures include lines of code (LOC), execution speed,
memory size, defects rep orted over some time period.
Indirect product measures examine the quality of the software product itself
(e.g. functionality, complexity, efficiency, reliability, maintainability).
Size-Oriented Metrics
Derived by normalizing (dividing) any direct measure (e.g. defects or human
effort) associated with the product or project by LOC.
Size oriented metrics are widely used but their validity and applicability is
widely debated.
Function-Oriented Metrics
Function points are computed from direct measures of the information domain
of a business software application and assessment of its complexity.
Once computed function points are used like LOC to normalize measures for
software productivity, quality, and other attributes.
The relationship of LOC and function points depends on the language used to
implement the software.
Reconciling LOC and FP Metrics
The relationship between lines of code and function points depends upon the
programming language that is used to implement the software and the quality
of the design
Function points and LOC-based metrics have been found to be relatively
accurate predictors of software development effort and cost
Using LOC and FP for estimation a historical baseline of information must be
established.
Object-Oriented Metrics
Number of scenario scripts (NSS)
Number of key classes (NKC)
Number of support classes (e.g. UI classes, database access classes,
computations classes, etc.)
Average number of support classes per key class
Number of subsystems (NSUB)
Use Case-Oriented Metrics
Describe (indirectly) user-visible functions and features in language
independent manner
Number of use case is directly proportional to LOC size of application and
number of test cases needed
However use cases do not come in standard sizes and use as a
normalization measure is suspect
Use case points have been suggested as a mechanism for estimating effort
WebApp Project Metrics
Number of static Web pages (Nsp)
Number of dynamic Web pages (Ndp)
Customization index: C = Nsp / (Ndp + Nsp)
Number of internal page links
Number of persistent data objects
Number of external systems interfaced
Number of static content objects
Number of dynamic content objects
Number of executable functions
Software Quality Metrics
Factors assessing software quality come from three distinct points of view
(product operation, product revision, product modification).
Software quality factors requiring measures include
o correctness (defects per KLOC)
o maintainability (mean time to change)
o integrity (threat and security)
o usability (easy to learn, easy to use, productivity increase, user attitude)
Defect removal efficiency (DRE) is a measure of the filtering ability of the
quality assurance and control activities as they are applied through out the
process framework
DRE = E / (E + D)
E
= number of errors found before delivery of work product
D
= number of defects found after work product delivery
Integrating Metrics with Software Process
Many software developers do not collect measures.
Without measurement it is impossible to determine whether a process is
improving or not.
Baseline metrics data should be collected from a large, representative
sampling of past software projects.
Getting this historic project data is very difficult, if the previous developers did
not collect data in an on-going manner.
Arguments for Software Metrics
If you dont measure you have no way of determining any improvement
By requesting and evaluating productivity and quality measures software
teams can establish meaningful goals for process improvement
Software project managers are concerned with developing project estimates,
producing high quality systems, and delivering product on time
Using measurement to establish a project baseline helps to make project
managers tasks possible
Baselines
Establishing a metrics baseline can benefit portions of the process, project,
and product levels
Baseline data must often be collected by historical investigation of past
project (better to collect while projects are on-going)
To be effective the baseline data needs to have the following attributes:
o data must be reasonably accurate, not guesstimates
o data should be collected for as many projects as possible
o measures must be consistent
o applications should be similar to work that is to be estimated
Metrics for Small Organizations
Most software organizations have fewer than 20 software engineers.
Best advice is to choose simple metrics that provide value to the organization
and dont require a lot of effort to collect.
Even small groups can expect a significant return on the investment required
to collect metrics, if this activity leads to process improvement.
Establishing a Software Metrics Program
1. Identify business goal
2. Identify what you want to know
3. Identify subgoals
4. Identify subgoal entities and attributes
5. Formalize measurement goals
6. Identify quantifiable questions and indicators related to subgoals
7. Identify data elements needed to be collected to construct the indicators
8. Define measures to be used and create operational definitions for them
9. Identify actions needed to implement the measures
10. Prepare a plan to implement the measures