ter the 10 rounds of nested cross-validation of 73.4%
when trained with data over-sampled by ROS tech-
nique.
In summary, for the case of the data set con-
structed during the paper and used for the experi-
ments, code smells alone are not good class change-
proneness indicators as object-oriented software met-
rics. However, when combined, they can lead to good
results, increasing the performance of machine learn-
ing algorithms. Furthermore, the best performing ma-
chine learning techniques, based on the average value
of AUC after the 10 rounds of nested cross-validation
and algorithm simplicity, were RF, LGBM, and LR.
As future work, there are several possibilities and
different approaches to be investigated. From the
point of view of the data set design, one approach
would be adding new software metrics such as evolu-
tionary (Elish and Al-Rahman Al-Khiaty, 2013) and
intensity index of a code smell (Catolino et al., 2019).
Moreover, for the class change proneness prediction,
it is viable to test another machine learning and deep
learning techniques and use more modern and elabo-
rate methods to create synthetic training data.
ACKNOWLEDGEMENTS
This research was funded by LSBD/UFC.
REFERENCES
Abdi, H. and Williams, L. J. (2010). Principal component
analysis. WIREs Comput. Stat., 2(4):433–459.
Catolino, G., Palomba, F., Fontana, F. A., Lucia, A. D.,
Zaidman, A., and Ferrucci, F. (2019). Improving
change prediction models with code smell-related in-
formation. CoRR, abs/1905.10889.
Chawla, N. V., Bowyer, K. W., Hall, L. O., and Kegelmeyer,
W. P. (2002). Smote: Synthetic minority over-
sampling technique. Journal of Artificial Intelligence
Research, 16:321–357.
Chidamber, S. R. and Kemerer, C. F. (1994). A metrics
suite for object oriented design. IEEE Trans. Softw.
Eng., 20(6):476–493.
de Almeida Filho, F. G., Martins, A. D. F., Vinuto, T. d. S.,
Monteiro, J. M., de Sousa, I. P., de Castro Machado,
J., and Rocha, L. S. (2019). Prevalence of bad smells
in pl/sql projects. In Proceedings of the 27th Interna-
tional Conference on Program Comprehension, ICPC
’19, pages 116–121, Piscataway, NJ, USA. IEEE
Press.
Elish, M., Aljamaan, H., and Ahmad, I. (2015). Three em-
pirical studies on predicting software maintainability
using ensemble methods. Soft Computing, 19.
Elish, M. O. and Al-Rahman Al-Khiaty, M. (2013). A
suite of metrics for quantifying historical changes to
predict future change-prone classes in object-oriented
software. Journal of Software: Evolution and Process,
25(5):407–437.
Fowler, M. (2018). Refactoring: improving the design of
existing code. Addison-Wesley Professional.
He, H., Bai, Y., Garcia, E. A., and Li, S. (2008). Adasyn:
Adaptive synthetic sampling approach for imbalanced
learning. In 2008 IEEE International Joint Confer-
ence on Neural Networks (IEEE World Congress on
Computational Intelligence), pages 1322–1328.
Kaur, A., Kaur, K., and Jain, S. (2016). Predicting software
change-proneness with code smells and class imbal-
ance learning. In 2016 International Conference on
Advances in Computing, Communications and Infor-
matics (ICACCI), pages 746–754.
Koru, A. G. and Liu, H. (2007). Identifying and charac-
terizing change-prone classes in two large-scale open-
source products. Journal of Systems and Software,
80(1):63 – 73.
Lema
ˆ
ıtre, G., Nogueira, F., and Aridas, C. K. (2017).
Imbalanced-learn: A python toolbox to tackle the
curse of imbalanced datasets in machine learning.
Journal of Machine Learning Research, 18(17):1–5.
Lu, H., Zhou, Y., Xu, B., Leung, H., and Chen, L.
(2012). The ability of object-oriented metrics to pre-
dict change-proneness: a meta-analysis. Empirical
Software Engineering, 17(3).
McCabe, T. J. (1976). A complexity measure. IEEE Trans-
action on Software Engineering.
Melo., C. S., da Cruz., M. M. L., Martins., A. D. F., Matos.,
T., da Silva Monteiro Filho., J. M., and de Cas-
tro Machado., J. (2019). A practical guide to support
change-proneness prediction. In Proceedings of the
21st International Conference on Enterprise Informa-
tion Systems - Volume 2: ICEIS,, pages 269–276. IN-
STICC, SciTePress.
NDpends (2018). [Online; posted 09-November-2018].
Sharma, T. (2016). Designite - A Software Design Quality
Assessment Tool.
Singh, G. and Chopra, V. (2013). A study of bad smells
in code. Int J Sci Emerg Technol Latest Trends,
7(91):16–20.
Tomek, I. (1976). Two modifications of cnn. IEEE Trans.
Systems, Man and Cybernetics, 6:769–772.
Wilson, D. L. (1972). Asymptotic properties of nearest
neighbor rules using edited data. IEEE Transactions
on Systems, Man, and Cybernetics, SMC-2(3):408–
421.
Empirical Study about Class Change Proneness Prediction using Software Metrics and Code Smells
147