This document discusses software metrics and measurement. It defines key terms like measure, metric, indicator, and defines different types of metrics like process, project, and product metrics. It explains that metrics are needed for effective management and decision making. Metrics allow managers to assess quality, productivity, and benefits over time. The document also discusses guidelines for using metrics and normalizing metrics to allow comparison across projects.
Report
Share
Report
Share
1 of 24
More Related Content
software metrics(process,project,product)
1. G.H. PATEL COLLEGE OF ENGINEERING &
TECHNOLOGY
SUBJECT : SOFTWARE ENGINEERING(2160701)
DEPARTMENT: COMPUTER
PREPARED BY:
RUCHITESH MALUKANI-160110107026
NARSINGANI AMISHA-160110107031
GUJARAT TECHNOLOGICAL UNIVERSITY
2. Questions
How big is the program?
Huge!!
How close are you to finishing?
We are almost there!!
Can you, as a manager, make any useful decisions from such
subjective information?
Need information like, cost, effort, size of project.
3. Why Measure Software?
Determine the quality of the current product or process
Predict qualities of a product/process
Improve quality of a product/process
4. Metrics
Quantifiable measures that could be used to measure
characteristics of a software system or the software
development process
Required in all phases
Required for effective management
Managers need quantifiable information, and not subjective
information
Subjective information goes against the fundamental goal
of engineering
5. Measurement
Measurement is fundamental to any engineering discipline
Software Metrics - Broad range of measurements for
computer software
Software Process - Measurement can be applied to improve it
on a continuous basis
Software Project - Measurement can be applied in estimation,
quality control, productivity assessment & project control
Measurement can be used by software engineers in decision
making.
6. Definitions
• Measure - Quantitative indication of the extent, amount,
dimension, capacity or size of some attribute of a product or
process.
E.g., Number of errors
Measurement - The act of determining a measure
Metric - A quantitative measure of the degree to which a
system, component, or process possesses a given attribute
E.g., Number of errors found per person hours expended
7. Definitions
Indicator – An indicator is a metric or combination of metrics
that provide insight into the software process, a software
project or the product itself.
Direct Metrics: Immediately measurable attributes (e.g. line of
code, execution speed, defects reported)
Indirect Metrics: Aspects that are not immediately
quantifiable (e.g. functionality, quantity, reliability)
Faults:
Errors: Faults found by the practitioners during software
development
Defects: Faults found by the customers after release
8. Why Do We Measure?
To indicate the quality of the product.
To assess the productivity of the people who produce the
product
To assess the benefits derived from new software engineering
methods and tools
To form a baseline for estimation
To help justify requests for new tools or additional training
Estimate the cost & schedule of future projects
Forecast future staffing needs
Anticipate and reduce future maintenance needs
9. A Good Manager Measures
measurement
What do we
use as a
basis?
• size?
• function?
project metrics
process metrics
process
product
product metrics
10. Process Metrics
majority focus on quality achieved as a consequence of a
repeatable or managed process
statistical SQA data
error categorization & analysis
defect removal efficiency
propagation from phase to phase
reuse data
11. Process Metrics
Measuring the outcomes:
Errors
Defects
Productivity
Effort
Time
Schedule conformance
Measuring the characteristics of specific task:
Effort and time spent performing the umbrella activities and generic SE
activities
13. How to Measure Effectiveness of a Software
Process
We measure the effectiveness of a software process indirectly
We derive a set of metrics based on the outcomes that can be derived
from the process.
Outcomes include
Errors uncovered before release of the software
Defects delivered to and reported by end-users
Work products delivered (productivity)
Human effort
Calendar time etc.
Conformance to schedule
14. Project Metrics
Project Metrics are the measures of Software Project and are
used to monitor and control the project. They enable a
software project manager to:
Minimize the development time by making the
adjustments necessary to avoid delays and potential
problems and risks.
Assess product quality on an ongoing basis & modify the
technical approach to improve quality.
15. Project Metrics
Used in estimation techniques & other technical work.
Metrics collected from past projects are used as a basis from
which effort and time estimates are made for current software
project.
As a project proceeds, actual values of human effort &
calendar time expended are compared to the original
estimates.
This data is used by the project manager to monitor & control
the project.
16. Project Metrics
Used by a project manager and software team to
adapt project work flow and technical activities.
Metrics:
Effort or time per SE task
Errors uncovered per review hour
Scheduled vs. actual milestone dates
Number of changes and their characteristics
Distribution of effort on SE tasks
17. Product Metrics
focus on the quality of deliverables
measures of analysis model
complexity of the design
internal algorithmic complexity
architectural complexity
data flow complexity
code measures (e.g., Halstead)
measures of process effectiveness
e.g., defect removal efficiency
18. Metrics Guidelines
Use common sense and organizational sensitivity when interpreting metrics
data.
Provide regular feedback to the individuals and teams who have worked to
collect measures and metrics.
Don’t use metrics to appraise 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.
Metrics data that indicate a problem area should not be considered “negative.”
These data are merely an indicator for process improvement.
Don’t obsess on a single metric to the exclusion of other important metrics.
19. Types of Software Measurements
Direct measures
Easy to collect
E.g. Cost, Effort, Lines of codes (LOC), Execution Speed,
Memory size, Defects etc.
Indirect measures
More difficult to assess & can be measured indirectly only.
Quality, Functionality, Complexity, Reliability, Efficiency,
Maintainability etc.
20. Normalization of Metrics
To answer this we need to know the size & complexity of the
projects.
But if we normalize the measures, it is possible to compare the
two
Normalization: compensate for complexity aspects particular
to a product
For normalization we have 2 ways-
Size-Oriented Metrics
Function Oriented Metrics
21. Size-Oriented Metrics
• Based on the “size” of the software produced
LOC - Lines Of Code
KLOC - 1000 Lines Of Code
SLOC – Statement Lines of Code (ignore whitespace)
Typical Measures:
Errors/KLOC, Defects/KLOC, Cost/LOC, Documentation
Pages/KLOC
22. Function-Oriented Metrics
Based on “functionality” delivered by the software
Functionality is measured indirectly using a measure called
function point.
Function points (FP) - derived using an empirical relationship
based on countable measures of software & assessments of
software complexity
23. Qualities of a good metric
simple, precisely definable—so that it is clear how the metric can be
evaluated;
objective, to the greatest extent possible;
easily obtainable (i.e., at reasonable cost);
valid—the metric should measure what it is intended to measure; and
robust—relatively insensitive to (intuitively) insignificant changes in the
process or product.