6615 Ijcses 01
6615 Ijcses 01
6, December 2015
ABSTRACT
With the sharp rise in software dependability and failure cost, high quality has been in great demand.
However, guaranteeing high quality in software systems which have grown in size and complexity coupled
with the constraints imposed on their development has become increasingly difficult, time and resource
consuming activity. Consequently, it becomes inevitable to deliver software that have no serious faults. In
this case, object-oriented (OO) products being the de facto standard of software development with their
unique features could have some faults that are hard to find or pinpoint the impacts of changes. The earlier
faults are identified, found and fixed, the lesser the costs and the higher the quality. To assess product
quality, software metrics are used. Many OO metrics have been proposed and developed. Furthermore,
many empirical studies have validated metrics and class fault proneness (FP) relationship. The challenge is
which metrics are related to class FP and what activities are performed. Therefore, this study bring
together the state-of-the-art in fault prediction of FP that utilizes CK and size metrics. We conducted a
systematic literature review over relevant published empirical validation articles. The results obtained are
analysed and presented. It indicates that 29 relevant empirical studies exist and measures such as
complexity, coupling and size were found to be strongly related to FP.
KEYWORDS
Class, Empirical validation, Object-oriented metrics, Fault proneness.
1. INTRODUCTION
In todays e-world, the importance of software technologies have been seen in different kinds of
productsand services used in everyday life. The exponential growth of software dependability
poses the demand for high quality from users and to meet this demand, today software has grown
in size and complexity [1][2][3][4]. This is because quality of software is the key determinant of
the success or failure of an organization [5]. However, guaranteeing high quality in this modern
age of large software systems development, increased difficulty, time and resource consumption
has become the order of the activity [4][5][6]. Given the size, the complexity and the constraints
imposed on the development, it is inevitable to deliver to customers software that have no faults
[1][3][4]. In particular, object-oriented (OO) products with its unique features could introduced
some faults that are hard if not impossible to find or pinpoint change impacts during maintenance.
Faults in software are errors introduced during the software development activity that can lead
software to fail or not meeting customers expectations. Though, it is difficult to find and fix
faults before product release, the earlier this is done the, lower the costs and the higher the
product quality would be [1][5][7][8][9][10][11] [12][13][14][15]. In software engineering, one
way to assure software quality cost-effectively is the use of software metrics.
DOI:10.5121/ijcses.2015.6601
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
Software metrics usage during development process, especially at the early phases is critical to
ensuring high quality in the software systems. There are used as a tool in software organizations
to assess software quality, monitor, control and take useful managerial and technical decisions
aimed at improving the software [16][17][18]. Existing software metrics are broadly classified
into traditional metrics and OO metrics [18]. Moreover, many OO metrics have been proposed
and developed for assessing OO design and codes quality [1][2][3][6][7][8][17][19][22]. OO
product metrics capture different software attributes such as class complexity, inheritance,
couplings and cohesions [10][16]. These structural properties are used to determine products
quality and complexity [10][19]. One of such OO metrics is the CK metric suit [16].
Albeit a greater amount of software faults found in software applications today are believed to
concentrate only on few classes of the system [10][20], what is more important is when such
faults are identified. In the world of OO systems, one viable approach used by engineers is to
identify faulty OO classes during the software development early stage through the construction
of quality models for prediction utilizing OO metrics and historical measures
[1][3][4][6][10][11][22][31]. The construction of these models can be used by organizations in
the identification of possible classes which are faulty either in the future applications or release
and to identify where resources are needed most [10]. Thus, it assist organizations to focus quality
improvement activities, make decisions, plan and schedule development activities in order to
produce high quality product within time and budget [10][19][21]. For instance, testing large
systems today is complex and time-consuming activity [5][6][10]. Therefore, predicting faulty
components early would allow organizations to take actions aim at mitigating against the high
risk posed by the faults which are likely to cause failure in the field. Such activities include
focusing testing and verification resources on such classes to avoid rework that could be costly
[10].
However, for OO design metrics to accurately predict faults in OO classes there have to be
empirically validated. That is, establishing which metrics are related to important external quality
attributes like class fault-proneness (FP). The essence is that, OO metrics are of no or little value
if such relationship is not empirically validated [10]. Nevertheless, few empirical validation
studies exist that have validated or re-validated OO metrics with respect to FP
[2][3][6][7][8][17][19][22][23][24]. In addition, these studies proposed and developed several
prediction models that make use of FP and OO metrics as dependent and independent variables
respectively. Among such validated OO metrics is the CK metric suite and size metric. Several
empirical studies in the literature has shown that some metrics are significantly or insignificantly
related to FP [2][3][6][7][8][17][19][22]. Furthermore, their findings appeared not to be
consistent [2]. For example, in one study a metric is considered related FP but insignificant
related to FP in another study. However, this could affect decision making in choosing directly
metrics that are associated with FP of a class. Hence, which of these metrics are actually related
to the FP of a class?
To establish OO design metrics that are related FP and are generic, this paper performed a
systematic literature review (SLR) using published empirical validation studies of CK +SLOC
metrics. The basis for this SLR is that the authors lack resources to perform empirical study on
real-world software systems, only few SLR on the CK + SLOC point of view exist within periods
considered and lastly, to bring together the state-of-the-art in fault prediction using FP and CK +
SLOC metrics. The study is specifically designed to assist software engineers take quick decision
regarding generic metrics that are suitable for fault prediction in a class when CK+SLOC metrics
are used.
The remaining part of the paper is organized as follows: Section 2 is the description of the metrics
used in this study, Section 3 is the research method used, Section 4 is analysis, Section 5 is the
study discussions and Section 6 is the conclusions.
2
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
2. METRICS STUDIED
The metrics considered in this study is the CK metric suit and the studies that have empirically
validated them. Moreover, the study also consider product size metric known as SLOC due to its
strong relationship with FP [1][17][22][25]. These metrics are shown on Table 1 alongside their
descriptions. They consist of six (6)OO design metrics and one size metric from the traditional
product metric.
Table 1. Metrics studied [16]
Metric
Definition
CK:
Weighted Methods per Class (WMC)A count of methods implemented within a given class.
Coupling between Objects (CBO)
CBO for a class is count of the number of other classes to which it is coupled and vice
versa.
Response for a Class (RFC)
The count of methods implemented within a class plus the number of methods
accessible to an object class due to inheritance.
Lack of Cohesion (LCOM)
For each data field in a class, the percentage of the methods in the class using that data
field; the %s are averaged then subtracted from 100 %.
Depth of Inheritance (DIT)
The length of the longest path from a given class to the root in the inheritance
hierarchy
Number of Children (NOC)
The NOC is the number of immediate subclasses of a class in a hierarchy.
Size:
Source Lines Of Code (SLOC)
It counts the lines of code (nonblank and non-commented) in the body of a given class
and all its methods
3. RESEARCH METHODOLOGY
This study has been conducted by strictly following the guidelines for performing SLR offered by
Kitchenham et al [26][39]. SLR is a secondary study which provides the means to gather and
analyse a collection of published research findings that assist in answering stated research
questions. This SLR results will be useful in identifying the current state-of-the-art of the
empirical validation of the relationship between CK metrics, size measure and class FP. The steps
involve are discussed as follows.
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
This question is designed to elicit information about the state-of-the-art in fault prediction using
FP and CK and SLOC metrics with respect to the programming language used, the settings of the
validation, the type of systems used and the product release used.
RQ4: Of what relevance are the empirical validations of software metrics?
This question is designed to provide the relevance of empirically validating the relationship
between FP and CK and SLOC metrics
RQ5: Are there generic software metrics for predicting faulty classes?
This question is designed to provide answers on whether there exist validated OO metrics which
are generic in the prediction of FP of OO software systems. This is important to help developers
or managers make quick decisions during software development.
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
studies were selected by applying thorough exclusion and inclusion criteria. More so, the
extracted data was compiled and organized quantitatively to answer the stated research questions.
Table 2 shows the list of selected Journals and Conferences papers considered in this SLR. Only
authors first name was included due to space constraint. For more information, out of the 29
studies selected, 5 are from conference proceedings and 24 are from journals.
Table 2. Selected Articles
Id
1
2
3
4
5
6
7
Ref.
[10]
[19]
[21]
[17]
[1]
[22]
[6]
Year
2001
1998
2001
2002
2008
2000
1996
[25] 2005
[23] 2007
10
[3]
2006
11
12
[4]
[8]
2010
1999
13
[5]
2003
14
[2]
2003
15
[24] 2009
16
[27] 2001
17
[28] 2008
18
[11] 2010
19
[29] 2012
20
[12] 2008
21
[9]
22
23
[30] 2009
[31] 2008
24
[32] 2011
25
26
[33] 2011
[34] 2010
27
[35] 2010
28
29
[36] 2007
[37] 2012
2005
Author
Emam et al
Briand et al
Emam et al
Yu et al
Zu et al
Briand et al
Basili et al
Title
The prediction of faulty classes using object-oriented design metrics
A Comprehensive Empirical Validation of Design Measures for OO Systems
The Confounding Effect of Class Size on the Validity of OO Metrics
Predicting FP using OO Metrics: An Industrial Case Study
An Empirical Validation of Object-Oriented Design Metrics for Fault Prediction
Exploring the relationships between design measures and software quality in OO systems
A Validation of Object-Oriented Design Metrics as Quality Indicators
Empirical Validation of OO Metrics on Open Source Software for Fault
Gyimothy et al
Prediction
Empirical Validation of Three Software Metrics Suites to Predict FP of OO Classes
Olague et al
Developed Using Highly Iterative or Agile Software Development Processes
Zhou et al
Empirical Analysis of Object-Oriented Design Metrics for Predicting High and Low
Severity Faults
Singh et al
Empirical validation of object-oriented metrics for predicting FP models
Tang et al
An Empirical Study on Object-Oriented Metrics
Practical assessment of the models for identification of defect-prone classes in OO
Succi et al
commercial systems using design metrics
Subramanyam et al Empirical Analysis of CK Metrics for OO Design Complexity: Implications for Software
Defects
Aggarwal et al
Empirical Analysis for Investigating the Effect of Object-Oriented Metrics on FP: A
Replicated Case Study
Briand et al
Replicated Case Studies for Investigating Quality Factors in OO Designs
Olague et al
An empirical validation of OO class complexity metrics and their ability to predict errorprone classes in highly iterative, or agile, software: a case study
Malhotra et al
Empirical validation of OO metrics for predicting FP at different severity levels using
support vector machines
S. Singh et al
Validating the Effectiveness of OO Metrics over Multiple Releases for
Predicting FP
Shatnawi et al
The effectiveness of software metrics in identifying error-prone classes in post-release
software evolution process
Janes et al
Identification of defect-prone classes in telecommunication software systems using design
metrics
English et al
Fault Detection and Prediction in an Open-Source Software Project
Goel et al
Empirical Investigation of Metrics for Fault Prediction on OO Software
Shaik et al
Investigate the Result of Object Oriented Design Software Metrics on FP in Object Oriented
Systems: A Case Study
Dallal, J.A
Transitive-based object-oriented lack-of-cohesion metric
Dallal et al
An object-oriented high-level design-based class cohesion metric
On the ability of complexity metrics to predict fault-prone classes in Object-Oriented
Zhou et al
systems
Pai et al
Empirical Analysis of Software Fault Content and FP Using Bayesian Methods
Johari et al
Validation of OO Metrics Using Open Source Software System: An Empirical Study
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
Significant
[10],[40],[17],[1],[22],[6],[25],
[23],[3],[4],[8],[2],[24],[27],
[11],[29],[12],[31],[32],[35],[36],[37]
Insignificant
[2]
N/A
[5],[9],[34],[19],[30],[33]
Coupling measures: Analysis indicates that 23 of the studies found CBO to be having strong
influence on class FP. The significance stems from the fact that a class that is highly coupled
tends to be more fault-prone than class that is loosely coupled. To this end, one study found CBO
to be insignificant but CBO was not measured in 5 studies.(See Table 4) Moreover, RFC was
found to be strongly significant related to class FP in 24 studies. The findings confirms that a
class with higher response sets tends to be more fault-prone than others with less response sets.
Interestingly, none of the studies found RFC insignificant but 5 of the studies did not measure
RFC.
Table 4. CBO and RFC Validation
Metric
CB0
RFC
Significant
[10],[19],[21],[17],[1],[22],[6],[25],[23],
[3],[4],[2],[24],[27],[11],[29],[12],[9],
[30],[31],[32],[36],[37]
[10],[19],[21],[17],[1],[22],[6],[11],
[23],[3],[4],[8],[5],[24],[27],[11],
[29],[12],[9],[30],[31],[32],[36],[37]
Insignificant
[8]
N/A
[5],[28],[35],[34],[33]
[2],[28],[35],[34],[33]
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
Cohesion measure: Based on the analysis carried out in this study, it shows that 14 studies found
LCOM to besignificantly related to class FP. Nevertheless, only 4 studies considered LCOM to
be insignificant while 11 studies did not measure LCOM in their study. This is shown in Table 5.
The overall results confirmed that a class with low cohesion value is more likely to have faults
than class with high cohesion value.
Table 5. LCOM Validation
Metric
LCOM
Significant
[19],[21],[17],[25],[23],[3],[4],[24],
[27],[11],[9],[32],[35],[34],[37]
Insignificant
[21],[6],[29],[31]
N/A
[10],[1],[22],[8],[5],[2],
[28],[12],[30],[33],[36]
Inheritance measures: In the perspective of inheritance measure of a class, results has it that only
9 studies found DIT to be significantly (strong and weak) related to FP. However, about 15
studies considered it to be insignificant while 5 studies did not measure it. With emphasis on the
insignificance of DIT, it indicates that a class with higher number of inheritance hierarchy is not
likely to have faults. Furthermore, only 3 studies found NOC to be significantly related to FP
while 15 studies considered it insignificant. With the insignificance results, it show that a class
having a higher number of children is not likely to be fault-prone than others with less number of
children. The validation for both DIT and NOC are shown in Table 6
Table 6. DIT and NOC Validation
Metric
DIT
Significant
[19],[22],[6],[25],[5],[2],[27],
[9],[37]
NOC
[17],[22],[2]
Insignificant
[10],[21],[17],[23],[3],[4],
[8],[24],[11],[29],[12],[30],
[31],[32],[36]
[19],[25],[23],[3],[4],[24],
[27],[11],[29],[12],[30],[31],
[32],[36],[37]
N/A
[1],[28],[35],[34],[33]
[10],[21],[1],[6],[5],[2],[28],[9],
[35],[34],[33]
Class Size measure: In this study, analysis indicates that SLOC of a class has a strong relationship
with FP and even more than OO metrics [1][17][22][25]. Consequently, about 17 studies
confirmed its significance on FP and no study considered it insignificant while 12 studies did not
measure it. (See Table 7) The implication of the results is that a class having a larger number of
lines of code is more likely to have faults than classes with small code lines.
Table 7. SLOC Validation
Metric
SLOC
Significant
[17],[1],[22],[25],[3],[4],[2],[24],[27],
[28],[11],[29],[30],[31],[32],[33],[36]
Insignificant
-
N/A
[10],[19],[21],[6],[23],[8],[5],[12],
[35],[34],[37]
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
as machine learning, logistic regression (LR) and so on. Moreover, LR is the most reported
techniques used to construct predictive
pred
e model that validate the relationship between metrics and
FP. With these findings,, we can deduced that LR is the best and widely used statistical techniques
for predicting FP of a class CK+SLOC. Based on the analysis, about 76% of the studies used LR
modell (i.e. univariate and multivariate), and other 24% is for other techniques. ((See Fig.1)
Fig
OTHERS
24%
LR
76%
Figure 1. Statistical techniques used
F
10%
FC
3%
FP
87%
Fig
Figure
2.Used dependent variables used
Also, the variables used in the models are the dependent and independent variables which can be
explained in terms of cause and effect. In an experiment, an independent variable is the cause or
input, while the dependent variable is the output or effect [39]. To this end, dependent and
independent variables are tested to valida
validate
te if they are the actual effect and cause respectively by
the prediction model. However, FP are used as the dependent variable in majority of the studies
(87%) and 10% used faults data (F), while only 3% used fault count (FC) aas dependent
variable.(See Fig.
g. 2) For independent variable, CK and SLOC metrics and others were
specifically used.
Furthermore, metric collection method is considered to be critical to the accuracy of the metrics
metric
validated. From the analysis performed, it indicates that only 4% of the
he studies collected metrics
manually, 41% stated the tools used in the collection, while 555%
% mentioned nothing about how
metrics were collected. (See Fig.. 3).
3
Manual
4%
Tool
41%
Not_sta
ted
55%
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
In this study based on the analysis conducted, it shows that the empirical validation studies of CK
and SLOC metrics relationship with FP have been carried out in both academia and nonacademia environments utilizing software products developed by either students or software
professionals respectively. The academic environment used mainly systems developed by
students while in the non-academia environment, either open source software (OSS) projects or
industrial software systems developed by professionals were utilized. In most of the selected
studies, product are either applications, components or middlewarethat ranges from OSS projects
like Mozilla [23][25][28], eclipse [12][30][33], NASA project [1][3][4][11][31][36] to
telecommunication systems [9][17][21]. Moreover, the systems have variable sizes ranging from
small to large sized systems.
Table 8. Validation details
Paper
Id
Dependent
Variable
Independent
Variable
Technique
LR
FP
JAVA
LR
FP
CK Metrics
LR
FP
CK & Others
4
5
6
7
8
OLS,LDA
OLS,ANFIS
LR
LR
LR/ML
FP
F
FP
FP
FP
CK OTHERS 8
CK SLOC
CK & OTHERS 49
CK
CK SLOC
9
10
11
12
FP
FP
FP
FP
CK OTHERS
CK SLOC
CK SLOC
CK-NOC
13
14
15
LR
LR/ML
LR/ML
LR
PRM,
NBRM,ZINBRM
OLS
LR
F
F
FP
CK LOC
WMC,CBO,DIT,SIZE
CK & OTHERS 49
16
LR
FP
17
18
19
LR
ML (SVM)
LR
FP
FP
FP
20
LR
PRM,NBRM,
ZINBRM
LR
FP
21
22
FP
FP
Pre
Pre
C++
NR
Pre
JAVA
C++
C++
C++
C++
NR
Pre
NR
NR
NR
NR
NR
Pre
Pre
Pre
Pre
Pre
NR
NR
NR
NR
Pre
Pre
Pre
Pre
NR
R
R
Pre
Pre
Pre
NR
Pre
NR
NR
NR
Pre
Pre
Post
NR
Pre
NR
Pre
C++
JAVA
C++
C++
C++
C++
C++, Java
Manual
Java
A tool based on the FAST parser
CK & OTHERS 49
technology
C++
WMC, LOC,
Software System Markup Language
Complexity
JAVA
CK SLOC
C++
CK, LOC & OTHERS
C++
Borland
Together
CK & OTHERS
JAVA
CK & Others
C++
CK & Others
java
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
23
24
LR
LR
FP
FP
CK & Others
CK, LOC & OTHERS
25
LR
FP
26
LR
FP
27
28
29
LR
PRM, NBRM
LR
FP
FP,FC
FP
C++
java
java
java
JAVA
JAVA
NR
Pre
NR
NR
Pre
Pre
NR
Pre
Pre
NR Pre
NR Pre
*LR: Logistic Regression; *ML: Machine Learning; *OLS, Ordinary Least Square; *LDA: Linear Discriminant Analysis;
*PRM: Poisson Regression Model; *NBRM: Negative Binominal Regression Model; *ZINBRM: Zeros
Zeros-Inflated Negative
Binominal Regression Model; *ANFIS:
NFIS: Adaptive Neuro
Neuro-Fuzzy Inference System *SVM: Support Vector Machine.
R: Replicated, NR: Non-replicated; Pre: Pre-release;
release; Post: Post
Post-release.
As presented in Table 8,, further analysis has shown that empirical validations is higher,
high about
79% in the non-academic environment than only 21% of the validation occurred in the academia
environment like the University of Maryland (UMLD) [3][19][22] and University School of
Information Technology (USIT) [24] and others (See Fig
Fig. 4). Furthermore, 21% of the systems
sy
used were written by students and 79% by mainly software professional few studies were
replicated studies that utilizes same data sets from public repository such as eclipse, NASA, and
others. (See Fig. 4).
). Also, the analysis shows that, 20% of the projects studied are students
projects, 33% are OSS and 47% are non-OSS
non
systems.(See Fig. 5)
Student
s(Acade
mia)
21%
Professi
onals(N
onAcade
Acade
Figure 4. Validation environments
Students
20%
Non-OSS
47%
OSS
33%
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
dominated the world of software applications. However, analysis indicate that about 54% of the
applications were written in C++ in both the industry and the academia while applications written
in Java is about 43% and 3% of the studies did not mentioned the language of their application.
(See Fig. 6)
Not_State
d
3%
Java
44%
C++
53%
Fig
Figure
6.Programming languages used
0%
Replicated
14%
Non
NonReplicated
86%
Figure 7. Study type
11
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
Postrelease
3%
Prerelease
97%
Figure 8. Product release type
Based on the release type, we mean the state of the system studied when its structural properties
were measured and validated: pre-release
pre
and post-release. For instance, pre-release
release means
measuring of faults
ts during development and testing, while those faults measured after the system
has been released to the users is the post-release.
post release. However, analysis indicates that about 97% of
the systems used for the empirical validation where pre
pre-release product. This findings confirmed
the effectiveness of OO design metrics in evaluating the structural properties of OO classes. In
addition, only 3% of the studies used post
post-release
release application (maintenance) by categorizing
faults at different levels of severity (High, M
Medium and Low-impact errors) [12]. (See
See Fig. 8)
Figure
ure 9. Theoretical basis of OO product metrics [10]
12
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
The studies went further to explain that the expression of such a relationship can be used for early
prediction and identification of risky software classes or the construction of preventative (e.g.
design, programming) strategies [10]. To this end, using OO design metrics such as CK and
SLOC metrics can assist organizations to assess software development of any size swiftly at a
reduced cost, take solution actions early and thus, avoid costly rework [10][11][19][24].
RFC
WMC LCOM
DIT
NOC
SLOC
N/A
11
11
12
Insignificant
15
15
Significant
23
24
21
14
17
From the results obtained in this analysis, it is clear that there is no generic metric for FP, rather
best predictors of FP varies according to the type of applications used, the language used in
coding and the target application domain. In addition, SLOC, CBO, RFC, and WMC are the
metrics mostly reported as having strong significant relationship with FP in all the studies
followed by LCOM. This confirms the findings in [40][41]. In this case, the results were based on
the value of each metrics. Consequently, the higher the value, the higher the FP of the class.
Moreover, DIT and NOC were the metrics found to be mostly insignificant in all the studies
considered.
5. DISCUSSIONS
As OO programming has becomes the mainstream in software development today, several OO
metrics have been proposed and developed to assess the quality of OO software systems. By
assessing the quality of software during software development, quick design decisions at a
reduced cost can be ensured. With the 29 studies considered in this SLR, it shows that only few
empirical validation studies exist in the perspective of CK and SLOC metrics and FP prediction.
However, the studies considered used different OO measures such as coupling, cohesion,
inheritance and size measures to construct quality models that predicts the FP based on the
statistical techniques of LR, machine learning and so on. In addition, the predictive accuracy of
such models were reported based on either cross validation or goodness of fit [42]. Based on the
13
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
analysis conducted, LR is the most widely used model with high predictive accuracy as well as
the best in predicting faulty classes. These models utilizes FP as the dependent variable obtained
during the testing phase, while the OO metrics are the independent variables obtained during
design and coding phases. However, the statistical technique like LR can only predict the FP of a
class without giving information regarding the possible number of faults in that class.
Also, the study found that size, complexity, coupling measures were the metrics found to be
strongly related to FP followed by cohesion in the studies that considered CK+SLOC metrics.
Inheritance measures were found to be insignificant in several studies. This led some authors to
argued that DIT has an impact on the understandability of OO application and does not support
reusability, while others argued that the number of methods in the classes is the factor that affects
understandability [10][29]. With replicated studies, analysis shows that only few studies exist and
most of the studies were based on shared or reused dataset of previous studies obtained from
NASA, OSS (Mozilla, eclipse projects) and so on. Furthermore, results obtained from these
studies were not consistent in terms of significance level. Some metrics appears to be
significantly (positively or negatively) related to FP and some were not. Consequently, the best
predictors of FP depends on the type of language, applications and the targeted domain.This study
also found that the systems used in the empirical validation circled within the sphere of students,
OSS, and non-OSS projects which is the dominant of all. In addition, majority of the systems
were developed by professionals (79%). Also, validation were performed on only pre-release
products (97%) and only one (4%) study actually performed it on post-release product. However,
the study by [29] recommend that as a system evolves, it becomes more cumbersome to use OO
metrics to accurately identify the FP of classes in post-release products. To this end, alternative
methods needs to be applied if high accuracy is to be achieved. More so, only applications written
in C++ and Java were used to validate the relationship between OO metrics and FP.
The implication of this study is that empirical validation of OO metrics relationship with FP is
crucial to preserving the practical relevance of OO metrics in organizations. It can assist in the
quick allocation of resources to where they are needed most, avoid the costly rework and
facilitate other development activities such as change impact analysis, testing and so on.
Therefore, during development strong efforts have to be technically channelled to keeping all
those metrics at a reasonable level since FP of a class is based on each metric value.
6. CONCLUSIONS
Today, as the OO paradigm has gained widespread popularity coupled with software
dependability, it is important that high software quality should not be compromised. OO design
metrics should always be used to assess software quality during software development. By this
14
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
evaluation, design quality will be improved which in turn would lower the probability of the
software being flawed. Doing this at the early phases of development can attracts a considerably
small cost and reduced efforts than late during development process. Several OO metrics have
been proposed in this direction like CK metric suite and the size measure. Moreover, many
empirical validation of the relationship between OO metric and FP have been reported. However,
to ascertain which of them are useful predictors of FP, this study explored the existing empirical
validation of CK+SLOC metrics to bring together the state-of-the-art in fault prediction using FP
and CK + SLOC metrics. The results obtained were presented and discussed.
The main findings of this SLR are as follows:
SLOC, CBO, RFC, WMC are metrics that strongly association with FP. There are also
considered the best predictors of FP in majority of the studies. Moreover, LCOM is
somehow an indicator of FP while DIT and NOC are found to be mostly insignificant.
With the results, we deduced that best predictors of FP depends on the class of
applications and the domain involved.
This study found 29 empirical studies that have validated CK and SLOC metrics with FP
of OO class. In these studies, 6 were from students project and 23 were from nonstudents projects (mainly OSS and industrial applications).
Software applications written in C++ and Java were majorly used to empirically validate
the association between OO metrics and FP.
The prediction models constructed were mainly based on LR. Only few machine learning
and other techniques have been used. Thus, this study deduced that LR is the best
statistical technique used for FP prediction.
The empirical studies revolved around pre-release software products. Only one study has
performed empirical validation on post-release product.
Lastly, only few replicated studies exist. However, most studies were found reusing the
dataset of previous studies.
Future work will involve conducting systematic review on the empirical validation of the
relationship between FP and other OO metrics other than CK metric suite as well as
maintainability.
With the above findings, here are some recommendations:
a) To predict the FP with some level of accuracy using CK and SLOC metrics, SLOC,
CBO, RFC, WMC and LCOM are to be considered. Moreover, LR should be used as the
predictive model. Metrics such as DIT, and NOC should only be considered based on the
current value measured in that particular software product. This is because, though they
appears not to be regular FP indicators, however their significance or insignificance could
be as a result of either the developers experience or the inheritance strategy applied.
b) For high quality software to be ensured that is stable and maintainable, low-coupling,
highly cohesion, controlled size and inheritance should be adhered to.
c) For the evaluation of software quality during development or maintenance, measures
should strongly not be based on the nature of the environment involved, instead on steady
indicators of design problems and impacts on external quality attributes.
d) More empirical studies should be carried out on applications written in other OO
languages other than C++ or Java. Also, additional empirical studies should be performed
in the academia and more replicated studies should be carried out in order to re-validate
the metrics and keep them relevant.
e) More efforts should be channeled towards post-release software products in order to
confirm if models utilizing OO metrics can effectively predict class FP accurately or not.
15
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
REFERENCES
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
Xu, J., Ho, D. and Capretz, L.F (2008): An Empirical Validation of Object-Oriented Design Metrics
for Fault Prediction. Journal of Computer Science No.4, Vol 7, pp. 571-577. ISSN 1549-3636
Subramanyam, R. and Krishnan, M.S.(2003): Empirical Analysis of CK Metrics for Object- Oriented
Design Complexity: Implications for Software Defects. IEEE Trans. Software Eng. No.29, pp. 297310,
Zhou, Y., & Leung, H.(2006): Empirical analysis of object oriented design metrics for predicting high
and low severity faults. IEEE Transactions on Software Engineering, 32(10), pp. 771784.
Singh, Y. Kaur, A. and Malhotra, R.(2010): Empirical validation of object-oriented metrics for
predicting FP models. Software Quality Journal, vol.18 pp. 335.
Succi, G., Pedrycz, W., Stefanovic, M., Miller, J.(2003): Practical assessment of the models for
identification of defect-prone classes in object-oriented commercial systems using design metrics.
Journal of Systems and Software 65, pp. 1-12.
Basili, V., Briand, L., & Melo, W.(1996): A validation of object oriented design metrics as quality
indicators. IEEE Transactions on Software Engineering, No.22, Vol. 10, pp.751761
Chidamber, S., Darcy, D., Kemerer, C.(1998): Managerial use of metrics for object oriented software:
an exploratory analysis. IEEE Trans. Softw. Eng. Vol. 24, No. 8, pp. 629639.
Tang, M. H., Kao, M. H., & Chen, M. H. (1999): An empirical study on object-oriented metrics. In
Proceedings of 6th IEEE International Symposium on Software Metrics. pp.242249.
Janes, A. et al.(2006): Identification of defect-prone classes in telecommunication software systems
using design metrics. International Journal of Information Sciences.
Emam, K.E., Melo, W.L., Machado, J.C.(2001): The prediction of faulty classes using object-oriented
design metrics. Journal of Systems and Software No. 56, pp. 63-75.
Malhotra, R., Kaur, A. and Singh, Y.(2010): Empirical validation of object-oriented metrics for
predicting FP at different severity levels using support vector machines. International Journal System
Assurrance Engineering Management. No.1, vol. 3, pp. 269281.
Shatnawi, R. and Li, W.(2008): The effectiveness of software metrics in identifying error-prone
classes in post-release software evolution process. The Journal of Systems and Software no. 81,
pp.18681882.
Boehm, B., Basili, V.(2004): Software Defect Reduction Top 10 Lists. IEEE Computer 34(1), 135
137, 2001
Myers, G., Badgett, T., Thomas, T., Sandler, C.(2004): The Art of Software Testing, second ed. John
Wiley& Sons, Inc., Hoboken, NJ.
Kanmani et al (2007): Object-oriented software fault prediction using neural networks, Information
and software technology 49, 483-492.
Chidamber, S., Kemerer, C.F.(1994): A metrics suite for object oriented design. IEEE Trans. Softw.
Eng. Vol. 20, No. 6, pp. 476493.
Yu, P., Systa, T., & Muller, H.(2002): Predicting FP using OO metrics: An industrial case study. In
Proceedings of Sixth European Conference on Software Maintenance and Reengineering, Budapest,
Hungary, pp.99107.
Fenton, N., Neil, M.(1999): Software metrics: successes, failures, and new directions. Journal of
Systems and Software vol. 47, pp. 149-157.
Briand, L., Daly, J., Porter, V., & Wust, J.(1998): A comprehensive empirical validation of design
measures for Object Oriented Systems. Proceeding METRICS '98 Proceedings of the 5th International
Symposium on Software Metrics IEEE Computer Society, Washington, DC, USA.
Fenton, N., Ohlsson, N.(2000): Quantitative analysis of faults and failures in a complex software
system. IEEE Transactions on Software Engineering, to appear.
Emam, K.E., Benlarbi, S., Goel, N., Rai, S.N.(2001): The Confounding Effect of Class Size on the
Validity of Object-Oriented Metrics. IEEE Trans. Software Eng. 27, 630650.
16
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
[22] Briand, L.C., Wst, J., Daly, J.W., Porter, D.V.(2000): Exploring the relationships between design
measures and software quality in object-oriented systems. Journal of Systems and Software No. 51,
pp. 245273.
[23] Olague, H.M., Etzkorn, L.H., Gholston, S., Quattlebaum, S.(2007): Empirical Validation of Three
Software Metrics Suites to Predict FP of Object-Oriented Classes Developed Using Highly Iterative
or Agile Software Development Processes. IEEE Trans. Software Eng. No.33, pp.402419.
[24] Aggarwal, K. K., Singh, Y., Kaur, A. and Malhotra, R. Empirical Analysis for Investigating the Effect
of Object-Oriented Metrics on FP: A Replicated Case Study. Software Process Improvement and
Practice, No.14, pp. 3962, 2009
[25] Gyimthy, T., Ferenc, R., Siket, I.(2005): Empirical Validation of Object-Oriented Metrics on Open
Source Software for Fault Prediction. IEEE Trans. Software Eng. No.31, pp.897910.
[26] Kitchenham, B. and Charters, S.(2007): Guidelines for performing Systematic Literature Reviews in
Software Engineering, Keele University and Durham University Joint Report, Tech. Rep. EBSE
2007-001.
[27] Briand, L.C., J. Wust and H. Lounis.(2001): Replicated case studies for investigating quality factors
in object-oriented designs. Empirical Software Engineering. No.6, pp. 11-58.
[28] Olague, H.M., Etzkorn, L.H., Messimer, S.L. and Delugach, H.S.(2008): An empirical validation of
object-oriented class complexity metrics and their ability to predict error-prone classes in highly
iterative, or agile, software: a case study. Journal of Software Maintenance. No. 20, pp.171-197.
[29] Rathore, S.S. and Gupta, A.(2012) Validating the Effectiveness of Object-Oriented Metrics over
Multiple Releases for Predicting FP. Proceedings of 19th Asia-Pacific Software Engineering
Conference, IEEE. pp.350-355.
[30] English, M., Exton, C., Rigon, I. and Cleary, B.(2009): Fault Detection and Prediction in an OpenSource Software Project. In: 5th International Conference on Predictor Models in Software
Engineering.
[31] Goel, B. and Singh, Y.(2008): Empirical Investigation of Metrics for Fault Prediction on ObjectOriented Software. Computer and Information Science, pp. 255-265.
[32] Shaik, A. et al.(2011): Investigate the Result of Object Oriented Design Software Metrics on FP in
Object Oriented Systems: A Case Study. Journal of Emerging Trends in Computing and Information
Sciences, Vol. 2 No.4, ISSN 2079-8407
[33] Zhou, Y., Xu, B. and Leung, H.(2010): On the ability of complexity metrics to predict fault-prone
classes in object-oriented systems. The Journal of Systems and Software No. 83, pp. 660674.
[34] Al-Dallal, J. and Briand, L.C.(2010): An object-oriented high-level design-based class cohesion
metric. Information & Software Technology No. 52, pp.1346-1361.
[35] Al-Dallal, J.(2011): Transitive-based object-oriented lack-of-cohesion metric. Procedia Computer
Science, pp. 1581-1587.
[36] Pai, G.J., Dugan, J.B.(2007): Empirical Analysis of Software Fault Content and FP Using Bayesian
Methods. IEEE Trans. Software Eng. No. 33, pp.675-686.
[37] Johari, K. and Kaur, A.(2012):Validation of Object Oriented Metrics Using Open Source Software
System: An Empirical Study. ACM SIGSOFT Software Engineering Note, Vol. 37, No.1, pp.1.DOI:
10.1145/2088883.2088893
[38] Briand, L., Wuest, J., Ikonomovski, S. and Lounis, H.(1999): Investigating quality factors in objectoriented designs: an industrial case study. In: Proceedings of the International Conference on
Software Engineering.
[39] Creswell, J.W.(2013): Research Design: Qualitative, Quantitative, and Mixed Methods Approaches,
4th Edition, ISBN-13: 978-1452226101
[40] Saxena, P. and Saini, M.(2011): Empirical Studies to Predict Fault Proneness: A Review.
International Journal of Computer Applications, Vol 22, ISBN: 0975 8887
[41] Khan, Y. A., Elish, M.O. and El-Attar, M.(2012): A Systematic Review on the Impact of CK Metrics
on the Functional Correctness of Object-Oriented Classes. Springer, pp. 258273.
[42] Briand et al.(2002):Assessing the Applicability of Fault-Proneness Models Across Object-Oriented
Software Projects. IEEE Transactions of Software Engineering. Vol. 28, No. 7.
[43] Isong, B.E. and Ekabua, O.O. (2013) A Systematic Review of the Empirical Validation of Objectoriented Metrics towards Fault-proneness Prediction. International Journal of Software Engineering
and Knowledge Engineering (IJSEKE) WSPC. Vol. 23, No. 10. pp. 15131540 DOI:
10.1142/S0218194013500484. ISSN: 0218-1940
17
International Journal of Computer Science & Engineering Survey (IJCSES) Vol.6, No.6, December 2015
AUTHORS
Dr. Isong, Bassey
Received B.Sc. degree in Computer Science from the University of Calabar, Nigeria
in 2004 and M.Sc. degrees in Computer Science and Software Engineering from
Blekinge Institute of Technology, Sweden in 2008 and 2010 respectively. Moreover,
he received a PhD in Computer Sciencein the North-West University, Mafikeng
Campus, South Africa in 2014. Between 2010 and 2014 he was a Lecturer in the
Dept. of Computer Science and Information Systems,University of Venda, South
Africa. Currently, he is a Lecturer in the Department of Computer Sciences,
Mafikeng Campus, North-West University. His research interests include Software Engineering,
Requirements Engineering, Software Measurement, Maintenance, Information Security, Software Testing,
Mobile Computing and Technology in Education.
Prof. Obeten, Ekabua
He is a Professor and Departmental Chair of the Department of Computer Science in
the Delta State University, Abraka, Nigeria. He holds BSc (Hons), MSc and PhD
degrees in Computer Science in 1995, 2003, and 2009 respectively. He started his
lecturing career in 1998 at the University of Calabar, Nigeria. He is the former chair of
the Department of Computer Science and Information Systems, University of Venda
and Department of Computer Science, North-West University, Mafikeng Campus,
South Africa. He has published several works in several journals and conferences. He
has also pioneered several new research directions and made a number of landmarks contributions in his
field and profession. He has received several awards to his credit. His research interest is in software
measurement and maintenance, Cloud and GRID computing, Cognitive Radio Networks, Security Issues
and Next Generation Networks.
18