What is :-
A software metric is a measure of some property of a piece of software or its specifications.
what is Measurement :-
Measurement is the process of assigning some numbers and symbols on some entities by some clearly defined rules.
difference between Measurement and Metrics :-
Measure – numerical value assign to an entity and act of determining the measure is called measurement.
Metric :- Mathematical set of relevant values (quantifiable) over a time.
example: represent the measurement in the form of table , chart etc.
Indicator :- An indicator is a metric or combination of metrics that provide clear understanding of a software product.
“collection of measures is called metric , collection of metrics is called indicator and a software engineer collects all these things .”
principles for metrics characterization and validation:-
1. A metric should have desirable mathematical properties. = metric value should be in meaningful range (0 to 1)
2. positive traits occur = metrics increase which represents software characteristics.
undesirable traits = metrics decrease which represents software characteristics.
3. Each metric should be validated before being published.
Attributes of effective software metrics:-
1. simple and computable .
2. prgramming language independent
3. an effective mechanism for high quality feedback.
4. consistent and objective
Metric for requirement Model
1. function based metrics (function point metrics use)
2. metrics for specification quality
1. function based metrics:-
function point (fp) metric is used for measuring the functionality delivered by a system . it depends on
a. number of external inputs (ei)
b. number of external outputs (eo)
c. number of external inquiries (eq)
d. number of internal logical files (ilf)
e. number of external interface file (eif)
2. metrics for specification quality :
The characteristics that can be used to assess the quality of the requirements model and the corresponding requirements specification :
c. understand ability
e. internal and external consistency
metrics for the design model
1. class oriented metrics ( CK metrics suit and MOOD metrics suit)
2. OO Metrics
3. component level design metrics
4. operation oriented metrics
5. user interface design metrics
6. design metrics for WebApps
1.1 CK metrics suit:-
proposed by chidamber and kemerer .
attributes are :
weighted methods per class
depth of inheritance tree
number of children
coupling between object classes
response for a class
lack of cohesion in method
metrics for testing
1. halstead metrics applied to testing
2. metrics for object oriented testing.
1. Halstead metrics applied to testing:-
2. metrics for object oriented testing:-
metrics consider aspects of encapsulation and inheritance
a. lack of cohesion in methods(LCOM) =method should not generate side effect.
b. percent public and protection (PAP)= percent of class attributes that are public or protected.
c. public access to data members( PAD)= this metrics indicate the number of classes or methods that can access other’s attributes.
d. number of root class(NOR) = Number of distinct classes.
e. fan-in (FIN) :- indication of multiple inheritance.
f. Number of children and depth of the inheritance tree.
metrics for maintenance
Software Maturity Index (SMI) is used to provides an indication of the stability of a software product.
The following information is determined for metrics :
Mt= number of modules in the current release
Fc= number of modules in the current release that have been changed.
Fa= number of modules in the current release that have been added.
Fd= number of modules from the preceding release that were deleted in the current release.