Product Metrics For Software
Product Metrics For Software
Chapter 15
Software Engineering: A Practitioner’s Approach
Roger S. Pressman
What are product metrics?
Metrics: measurable ways to design and
assess the software product
Process and project metrics apply to the
project as a whole
Project metrics focus on specific attributes
of the project
Collected as technical tasks are being
conducted
Software quality
Size Cohesion
Complexity Primitiveness
Coupling Similarity
Volatility
Sufficiency
Completeness
Metrics for
Object-Oriented Design
Size: defined in terms of four views:
Population: static count of OO entities such as
classes or operations
Volume: identical to population measure but
taken dynamically at a given instant in time
Length: measure of a chain of interconnected
design elements
Functionality: indirect indication of the value
delivered to the customer
Metrics for
Object-Oriented Design
Complexity
viewed in terms of structural characteristics by
examining how classes are related to one
another
Coupling
the physical connections between elements (e.g.
the number of messages passed between
objects)
Metrics for
Object-Oriented Design
Sufficiency
the degree to which a design component fully
reflects all properties of the application object it
is modeling
Completeness
like sufficiency, but the abstraction is
considered from multiple points of view, rather
than simply the current application
Metrics for
Object-Oriented Design
Cohesion
the degree to which the OO properties are part
of the problem or design domain
Primitiveness
applied to both operations and classes, the
degree to which an operation is atomic (similar
to simplicity)
Metrics for
Object-Oriented Design
Similarity
the degree to which multiple classes are similar
in terms of structure, function, behavior, or
purpose
Volatility
a measure of the likelihood that a change in
design will occur
The CK Metrics Suite
Chidamber and Kemerer have proposed six
class-based design metrics for OO systems: