Professional Documents
Culture Documents
Chapter Three Process and Project Metrics
Chapter Three Process and Project Metrics
2
Software metrics
• Software metrics refers to a broad range of measurements
for computer software.
• Measurement can be applied to the software process with the
intent of improving it on a continuous basis.
• Measurement can be used throughout a software project to
assist in estimation, quality control, productivity assessment,
and project control.
• Measurement can be used by software engineers to help
assess the quality of technical work products and to assist in
tactical decision making.
3
cont…
• Measurement is commonplace in the engineering world. We
measure power consumption, weight, physical dimensions,
temperature, voltage, ……the list is almost endless.
• Unfortunately, measurement is far less common in the
software engineering world.
• We have trouble agreeing on what to measure and
evaluating measures that are collected.
4
Software process and project metrics:-
• Are quantitative measures that enable software
engineers to gain insight into efficacy of the
software process and projects that are
conducted.
5
How are metrics used?
– Measures are often collected by SW engineers and
used by SW managers.
– Measurements are analyzed and compared to past
measurements, for similar projects, to look for trends
(good and bad) and to make better estimates.
6
Three domains of SW metrics
Product
Process
Project
• Product:-
– These measurements relate to SW product and all related artifacts.
– Examples: code, design docs, test plan, user manual…LOC,
# of objects, # of pages, # of files.
– Measures can also be used to evaluate the SW quality
7
Three domains of SW metrics cont…
• Process: -
– These measures used to quantify characteristics of the SW
process.
– Usually related to events or things that occur.
– Examples: # defects found in test, # requirements changes,
# days to complete task …
8
Three domains of SW metrics cont…
Two types of process metrics
• Private metrics –
– Measures taken of an individual's software process.
These are usually private to the individual or team.
Used to improve an individual's performance or personal software
process. – Example: defect rate for an individual.
• Public metrics –
– Measures taken at a team level. These are made public to the
organization. Used to improve an organizations process maturity.
– Example: defects found after release per KLOC. 9
Three domains of SW metrics cont…
10
Three domains of SW metrics cont…
Etiquette of Process Metrics
• Use common sense and organizational sensitivity when interpreting
metrics data.
• Don’t use metrics to evaluate individuals.
• Work with practitioners and teams to set clear goals and metrics that will
be used to achieve them.
• Never use metrics to threaten individuals or teams.
14
Software Measurement
Two categories of software measurement
• Direct measures of the product: include lines of
code (LOC) produced, execution speed, memory size,
and defects reported over some set period of time.
• Indirect measures of the product include:
functionality, quality, complexity, efficiency, reliability,
maintainability, and many other
Metrics for SW Quality
4 suggested quality measures
Correctness :-
• the degree to which the SW performs its required function.
• Usually measured by defects/KLOC.
• A defect is defined as a verified lack of conformance to
requirements. Usually counted over a standard period of time.
16
Cont..
Maintainability:-
• the ease to which a program can be corrected, if an error is found,
changed, for a new environment, or enhanced for a user request.
• No direct way to measure this.
• One measure is mean-time-to-change which measures that time
from when the change request is analyzed to when it is distributed
to the user.
17
Cont..
Integrity:-
• a system's ability to withstand/resist attacks to its security.
Attacks can be made to a systems data, programs or documents.
• Threat - the probability that an attack will occur in a given time
period.
• Security - the probability that an attack will be repelled.
18
Cont..
Usability:-
• an attempt to measure "user-friendliness"
• Can be measured in terms of 4 characteristics:
1. The physical and/or intellectual skill required to learn the
system
2. The time required to become moderately efficient in the use of
the system.
3. Increase in productivity, measured against the old process or
system, measured after a user has gained moderate efficiency.
4. A subjective measure of user attitude towards the system
19
Arguments for Software Metrics
• Most software developers do not measure, and most have little desire
to begin.
• Establishing a successful company-wide software metrics program
can be a multi-year effort.
• But if we do not measure, there is no real way of determining whether
we are improving.
• Measurement is used to establish a process baseline from which
improvements can be assessed.
• Software metrics help people to develop better project estimates,
produce higher-quality systems, and get products out the door on time
20
Getting Started with Metrics
21
Getting Started with Metrics (continued)
5) Establish a measurement collection process
a) What is the source of the data?
b) Can tools be used to collect the data?
c) Who is responsible for collecting the data?
d) When are the data collected and recorded?
e) How are the data stored?
f) What validation mechanisms are used to ensure the data are correct?
6) Acquire appropriate tools to assist in collection and assessment
7) Establish a metrics database
8) Define appropriate feedback mechanisms on what the metrics indicate about
your process so that the process and the metrics program can be improved
22