Lecture Notes for CS 325
Design Validation and Metrics, 21 February
2000
-
objectives
- catch design errors - omission or commission
- improve design structure - weak modularity or re-use
- validation
- design reviews
- large
reviewing groups - designers, implementors, requirements, testers
- varying degrees of formality and tools
- find, not fix
problems; be nice
- effective at finding problems
- logical
design reviews can be more informal and need fewer people than
architectural design reviews
- metrics
-
metrics also serve as design validation
- automating measurements
with case tools and other formal techniques
- metric quality as a
correlate with other important measures, such as error rates or project
resource use
- coupling metrics
- measure the
independence of the modules and simplicity of the design
-
network metrics
- module interconnectedness
- the more
tree-like, the better
- number of boxes - number of arrows = 1
- low correlation with anything
- information-flow
metrics
- augment network metrics with information flowing
over the arrows
- information in + information out
-
weighting information flow by connectivity - fan in and fan out
-
low correlation with anything
- stability or simplicity
metrics
- measure the complexity of the information flowing
- simple information exerts minimal influence over other modules
- ood metrics
- many, most new
-
class complexity
- evaluate method complexities, sum the
evaluations to get class complexity
- good correlation with error
occurrences
- inheritance tree depth
- the
number of ancestor classes
- good correlation with error
occurrences
- child class count
- poor
correlation with error occurrences
- a re-use measure
- include aggregation in the metric
- count classes
used by a class - variables and parameters
- high
correlation with error occurrences
- adjust by methods
actually called
- cohesion metrics
-
difficult to quantify
- all procedures (or methods) use all
variables
- information-flow metrics within a module
-
difficult for functional design due to lack of module innards
- logical design metrics
- presence details about
module innards makes these important
- cyclomatic complexity
- count of decisions in code
- good correlation with errors
and code size
- refine information-flow metrics using
read-write access information
- how to use statistics
- comparison against historical data
- outliers
-
standard deviations from the mean
This page last
modified on 21 February 2000.