Abstract – OO design is a newer paradigm
that is replacing function-oriented design techniques. In OO analysis we model the problem domain, while in OO
design we model the solution domain. OO Analysis and Design combines
both data and methods into cohesive units (classes). OO metrics focus on
identifying the complexity of classes in an OO design. In this paper a review and analysis of object oriented
metrics is presented for identification and validation of object oriented
metrics and out of various metrics, a limited set of metrics is identified that
have a significant role in software complexity and quality measurement.
Index Terms – software design
metrics; object-oriented metrics, Software Measurement, metric, validation,
software metric is a measure of some property of a piece of software or its
specifications. Since quantitative methods have proved so powerful in the other
sciences, computer science practitioners and theoreticians have worked hard to
bring similar approaches to software development. Tom DeMarco stated, “You can’t
control what you can’t measure”
Object oriented metrics are most useful in early stage
of software development. To minimize effort and to identify a metric relevant
to measure an attribute validation of a metric is essential. Validation of a
metric means to verify whether the metric is relevant to the attribute being
measured. Validation technique can be empirical or analytical
Object-Oriented design is more beneficial in software
development environment and object oriented design metrics is an essential
feature to measure software quality over the environment. Object- oriented
design is those design which contained all the properties and quality of
software that is related to any large or small project. It is a degree through
which a system object can hold a particular attribute or characteristics.
Object -oriented is a classifying approach that is capable to classify the
problem in terms of object and it may provide many paybacks on reliability,
adaptability, reusability and decomposition of problem into easily under stood
objects and providing some future modifications. Software metrics makes it
possible for software engineer to measure and predict software necessary
resource for a project and project work product relevant to the software
development effort. Metrics provide insight necessary to create and design
model through the test. It also provide a quantitate way to access the quality
of internal attributes of the product, thereby it enables the software engineer
to access quality before the product is build. Metrics are the crucial source
of information through which a software developer takes a decision for design
good software. Some metrics may be transformed to serve their purpose for a new
procedural systems separate data and procedures, and model these separately.
Object orientation combines data and methods together into a cohesive whole data
abstraction. The purpose of Object-Oriented (OO) design is to define the
classes (and their relationships) that are needed to build a system that meets
the requirements contained in the SRS. Design based metrics are proposed as
quality models according to specific objectives targeting one or more quality
attributes such as Lorenz and Kidd , C.K metrics, Li and Henry metrics, MOOD
metrics , etc. Such quality models are introduced because many of these metrics
are not measurable directly from the software design artifacts. Traditional
metrics are investigated as possible indicators of complexity of object oriented
and structured systems such as Cyclomatic complexity (McCabe), Source Line of
Code (SLOC) and Comment Percentage (CP). These metrics always target size and
complexity internal quality attributes which affect directly on understandability
and maintainability. On the other hand there is a significant number of object
oriented design metrics developed in literature studies. For example; Public
Instance Methods (PIM), Number of Attributes (NumAttr), Depth of Inheritance
(DIT), Lack of Cohesion in Methods (LCOM) and Method Hidden Factor (MHF), etc.
Such metrics have different impacts on most of external quality attributes like
maintainability, extendibility, testability, etc
III. REVIEW OF METRICS
Metrics are classified as project based
metrics and design based metrics. The following figure 1 represents metric
Figure 1: Metrics Hierarchy
A significant number of object oriented metrics have
been developed in literature. For example, metrics proposed by Abreu , C.K
metrics, Li and Henry metrics, MOOD metrics, Lorenz and Kidd metrics etc. C.K
metrics are the most popular used among them and another comprehensive set of
metrics is MOOD metrics.
P. Dhankhar, H Mittal proposes an integrated measure
for object oriented software based on two parameters – Class Coupling and
Cyclomatic Complexity using fuzzy logic. This study also includes empirical
data of maintenance time of classes which has been used to validate the
proposed approach. They claim that maintainability can be best estimated with
the help of fuzzy logic and the empirical results prove that the integrated
measure of maintenance obtained, shows a strong correlation to the maintenance
a. C. K. Metric Suite-
Kemerer define the so called CK metric suite. CK metrics have generated a
significant amount of interest and are currently the most well known suite of
measurements for OO software. CK suite consist of six metrics WMC, DIT, NOC,
CBO, RFC and LOCM. CK metric suites have been tested in C++ and Smalltalk. This
suite has come under criticism on the basis of lack of clear terminology and a
number of inadequacies in the meaningfulness of the metrics. But in spite of
all criticism this suite has become industry standard.
1. Weighted methods per class (WMC)-WMC
is the number of all member functions and operators defined in each class.
Friend operators are not counted. Member functions and operators inherited from
the ancestors of a class are also not counted. WMC should be kept as low as
possible. It is used to measure the understandability, reusability,
maintainability and complexity and quality.
2. Depth of inheritance tree of a
class (DIT)-DIT is the length of longest path from the class
to the root in the inheritance hierarchy.
3. Number of children (NOC) – NOC
is the number of classes in the inheritance tree of a class. NOC represents the
effort required to test the class and reuse. NOC should be kept as low as
possible. It is used to measure the quality.
4. Coupling between objects (CBO)- CBO provides the number of other modules that are coupled to the
current module either as a client or supplier. Increase in CBO will decrease
the usability. It is used to measure complexity, reusability and quality.
5. Response for a class (RFC)-RFC is the count of methods within a set which can be invoked in
response to a message sent to an object to perform an operation. RFC should be
kept as low as possible. It measures complexity.
6. Lack of cohesion of methods (LCOM)-
LCOM is the difference between the number of methods whose similarity is zero
and the methods whose similarity is not zero. It is not a good metric of
b. MOOD Metric Suite- Abreu
defined MOOD (Metrics for Object Oriented Design) metrics.
MOOD suite consist of the following the following six
metrics. MOOD metrics focus on system level which includes encapsulation,
inheritance, polymorphism, and massage passing. This suite is applicable to all
object oriented programming languages like C++, JAVA.
Hiding Factor (AHF) – AHF is the ratio of attributes hidden to the
total data members defined. It should be kept as high as possible. It is used
to measure quality.
Inheritance Factor (AIF) – AIF is the ratio of the sum of inherited
attributes in all classes of the system to the total number of available
attributes for all classes. It should
be kept as high as possible. It is used to measure quality.
c. Coupling Factor (CF)-CF is
the ratio of the possible number of couplings in the software to the actual
number of couplings not imputable to inheritance. It is not a good measure of
d. Method Hiding
Factor (MHF) –MHF is the ratio of method hidden to the total number of
Inheritance Factor (MIF)-MIF is the ratio of method inheritance to the
total number of available methods.
Factor (PF)-PF is the ratio of the number of methods that redefine inherited
methods to the maximum number of possible distinct polymorphic situations
c. Lorenz and Kidd suite- In their
fundamental book about software quality Lorenz and Kidd introduced many metrics
to quantify software quality assessment. Eleven metrics introduced by Lorenz
and Kidd are applicable to class diagrams.
1. Number of
public methods (NPM)
2. Number of
3. Number of
public variables (NPV)
4. Number of
variables per class (NV)
5. Number of class variables (NCV)
6. Number of class methods (NCM)
7. Number of methods inherited (NMI)
8. Number of methods overridden (NMO)
9. Number of new methods (NNM)
10. Average parameter per method (APM)
11. Specialization index (SIX)
The metrics were categorized into three groups
(i). Class Size Metrics
(ii). Class Inheritance Metrics
(iii). Class Internals Metrics.
IV. CRITICAL ANALYSIS
Metrics have a number of thought-provoking
characteristics for providing development support. Validation of a metric means
to verify whether the metric is applicable to the attribute being measured.
Validation technique can be empirical or analytical. Empirical validation is
experimental technique. For empirical validation experimental hypothesis is
specified in advance. Analytical validation is theoretical technique and it
validates the metrics by predefined properties. A significant number of
researchers have evaluated OO metrics by the complexity properties proposed by
Chidamber and Kemerer have applied them for the
theoretical evaluation of their OO metrics and, due to the high popularity and
acceptance of Chidamber metrics, these properties are assumed to be accepted as
an evaluation criterion for OO metrics.
of CK suite C.K. metric suites were proposed to measure the
complexity of object oriented software at design time.CK suite consists of six
metrics WMC, DIT, NOC, CBO, RFC and LOCM.
1. Empirical Validation of CK suite- Basili empirically
validated CK suite as a predictor of fault-prone classes using eight medium
sized information management systems of C++ language and found that all CK
metrics except LCOM are useful to predict fault proneness of classes during the
early phases of life-cycle. CK metrics, except LCOM, have also been empirically
2. Analytical Validation of CK suite- Chidamber et al.
validated CK suite analytically using Weyuker properties and found that all the
six metrics of this suite satisfy all major Weyuker’s properties except
property-6 and in some conditions DIT and LOCM do not satisfy property-4. The
implication of this is that a class design become less complex the more the
classes are combined and ultimately one comes to only one class. In terms of OO
design it is clearly ludicrous. NOC cannot be used at all for fault proneness.
of MOOD suite- Mood suite consist of eight metrics AHF, AIF, CF,
CLF, MHF, MIF, PF and RF. MOOD suite has been empirically validated.
Correlation of quality measures and MOOD metrics shows that MIF, COF and PF are
C. Validation of Lorenz and Kidd suite Lorenz and
Kidd suite does not seem to be validated still. This suite is not suitable for
quality measurement as these are merely number of class properties. This suite
is criticized in for being mere counts of class properties. Neuro-fuzzy approach: Because of the
diversity of software engineering practices, no simple equation can be
discovered to delicately abstract the relationship from industry data. Since
neural networks began to regain public interests, they have been widely
implemented in a variety of fields. Their performance in prediction,
classification, and real time control is highly recognized by experts in those
domains. The main strength of neural networks is their power to model extremely
complex functions, for example, for the cases where there are a great number of
variables and traditional regression methods are not applicable. Moreover, neural
networks can learn from historical data and train themselves to achieve high
performance, where not much expertise is mandatory. Another sophisticated
technique for modeling complex systems is fuzzy logic, which is applied with
heuristic knowledge and with imprecise inputs to realize complicated
V. CONCLUSION AND FUTURE
This paper presented analysis of existing major
object oriented metrics. Lorenz and Kidd suite is discarded as criticized by
Four out of six metrics WMC, NOC, CBO, and RFC
are suitable for complexity and quality measurement.
The metrics DIT and LCOM are not suitable in OO
NOC cannot be used at all for fault proneness.
Five metrics of Mood suite are suitable for
quality measurement as all these have been empirically validated.
Metric CF is not suitable for quality
measurement. This report suggest that, only those metrics should be used which
are empirically and analytically validated. This study also advice to metrics
developers that, metrics should be simple, computable and programming language
Future work involves identifying limited set of
metric to model quality and complexity of object oriented design and validating
the identified metric suite against prevalent metric suites using Fuzzy Logic
and Neuro-Fuzzy technique.
mechanism is provided for comparing all the object oriented software metrics
which define all the methods, attributes are used in software engineering
environment. The increase is software development means the measurement was
also so high. The increasing significance being placed software measurement
which has to lead and increase amount of research on developing the new
1 C. Neelamegam, M. Punithavali, “A survey on object
oriented quality metrics”, Global journal of computer science and technologies,
pp 183-186, 2011.
2 2. A. Deepak, K. Pooja, T. Alpika, S. Sharma,
“Software quality estimation through object oriented design metrics”, IJCSNS
International journal of computer science and network security, april 2011, pp
3 A. Henderson, seller, “object oriented metrices:
measure of complexity”, Prentice Hall, 1996.
4 Sanjay Kumar Dubey, Amit Sharma & Dr. Ajay Rana
Amity university Comparison Study and Review on Object- Oriented
5 A. Deepak, K. Pooja, T. Alpika, S. Sharma, “Software
quality estimation through object oriented design metrics”, IJCSNS
International journal of computer science and network security, april 2011, pp
6 A. Henderson, seller, “object oriented metrices:
measure of complexity”, Prentice Hall, 1996.
7 R. B. Grady. Practical Software Metrics for Project
Management and Process Improvement. Prentice-Hall Inc., New Jersey, 1992
8 Ahmed Abd Elhalim Ibrahim Faculty of Computers
and Information Cairo , “Object Oriented
Metrics and Quality Attributes: A Survey”
9 Sahar Ragab and Hani Ammar. 2010. Object oriented
design metrics and tools a survey. Informatics and Systems (INFOS)
The 7th International
Conference (March 2010), 1–7.
10 Sandeep Kaur. 2015. Software Metrics and Metric Tools
A Review. International Journal on Recent and Innovation Trends in Computing
and Communication IJRITCC 3, 4 (2015), 2076– 2079.
11 Rosenberg H. Linda and Lawrence E. Hyatt. 1997.
Software quality metrics for object-oriented environments. Crosstalk journal
10, 4 (1997).
12 Soni, Devpriya, Ritu Shrivastava, and M.Kumar. 2010. A
framework for validation of object oriented design metrics
13 Bansiya J. 1999. A Class Cohesion Metric for Object Oriented
Designs. The Journal of Object-Oriented Programming 11, 8 (1999), 47–52.
14 Dr B.R. Sastry, M.V. Vijaya Saradhi, “Impact of
software metrics on Object Oriented Software Development life cycle”,
International Journal of Engineering Science and Technology, Vol 2 (2), pg 67-76,