Authors:
Renato Correa Juliano
1
;
Bruno A. N. Travençolo
2
and
Michel S. Soares
3
Affiliations:
1
University of Araxá, Brazil
;
2
Federal University of Uberlândia, Brazil
;
3
Federal University of Sergipe, Brazil
Keyword(s):
Software Anomalies, Software Metrics, CK Metrics, Object-oriented Programming, Error Proneness.
Related
Ontology
Subjects/Areas/Topics:
Enterprise Information Systems
;
Information Systems Analysis and Specification
;
Software Engineering
;
Software Metrics and Measurement
Abstract:
The development of quality software has always been the aim of many studies in past years, in which the
focus was on seeking for better software production with high effectiveness and quality. In order to evaluate software quality, software metrics were proposed, providing an effective tool to analyze important features such as maintainability, reusability and testability. The Chidamber and Kemerer metrics (CK metrics) are frequently applied to analyze Object-Oriented Programming (OOP) features related to structure, inheritance and message calls. The main purpose of this article is to gather results from studies that used the CK metrics for source code evaluation, and based on the CK metrics, perform a review related to software metrics and the values obtained. Results on the mean and standard deviation obtained in all the studied papers is presented, both for Java and C++ projects. Therefore, software anomalies are identified comparing the results of software metrics described in th
ose studies. This article contributes by suggesting values for software metrics that, according to the literature, can present high probabilities of failures. Another contribution is to analyze which CK metrics are successfully used (or not) in some activities such as to predict proneness error, analyze the impact of refactoring on metrics and examine the facility of white-box reuse based on metrics. We discovered that, in most of the studied articles, CBO, RFC and WMC are often useful and hierarchical metrics as DIT and NOC are not useful in the implementation of such activities. The results of this paper can be used to guide software development, helping to manage the development and preventing future problems.
(More)