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
1.
Assess status of ongoing project
2.
Track potential risks
3.
Uncover problem are before they go
critical
4.
Adjust work flow or tasks
5.
Evaluate the project team’s ability
to control quality of software work 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.
Errors are categorized by their
origin
2.
Record cost to correct each error
and defect
3.
Count number of errors and defects
in each category
4.
Overall cost of errors and defects
computed for each category
5.
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 reported 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
1.
Correctness (defects per KLOC)
2.
Maintainability (mean time to
change)
3.
Integrity (threat and security)
4.
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 throughout 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 don’t 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:
1.
data must be reasonably accurate,
not guesstimates
2.
data should be collected for as many
projects as possible
3.
measures must be consistent
4.
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 don’t 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 sub goals
4.
Identify sub goal 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
No comments:
Post a Comment