On the Impact of Bad Smell Agglomerations on Software Quality

  • Amanda Damasceno Santana UFMG
  • Eduardo Figueiredo UFMG

Resumo


When a system evolution is not planned, developers can take decisions that degrade the system quality. To cope with this problem, refactoring can be applied to the source code aiming to increase code quality without modifying the software external behavior. To know when to refactor, the concept of bad smells can be used. Bad smells are snippets of source code that suggest the need of refactoring. However, bad smells does not always appear isolated. The aim of this study is to understand the impact of bad smell agglomerations on the software quality by evaluating a large dataset of open source systems. To achieve our goal, we plan to use data mining techniques complemented with correlation analysis of the dataset.

Palavras-chave: Bad Smell, Refactoring, Agglomeration, Software Quality

Referências

Gurp, J. V. and Bosch, J. (2002) ―Design erosion: problems and causes,‖ Journal of Systems and Software, vol. 61, no. 2, pp. 105 – 119.

Fowler, M. and Beck, K. (1999) "Refactoring: Improving the Design of Existing Code," Object Technology Series. Addison-Wesley.

Kerievsky, J. (2005) "Refactoring to Patterns," The Addison-Wesley Signature Series. AddisonWesley.

F. Palomba, et al. (2018) "On the diffuseness and the impact on maintainability of code smells: a large scale empirical investigation," Empirical Software Engineering 23: 1188.

Khomh, F. et al. (2012) ―An Exploratory Study of the Impact of Antipatterns on Class Changeand Fault-proneness,‖ Empirical Software Engineering, vol. 17, no. 3, pp. 243–275.

Sjøberg, D. I. K. et al. (2013) "Quantifying the Effect of Code Smells on Maintenance Effort," in IEEE Transactions on Software Engineering, vol. 39, no. 8, pp. 1144-1156.

Yamashita, A. (2014) "Assessing the capability of code smells to explain maintenance problems: An empirical study combining quantitative and qualitative data", in Empirical Software Engineering, 19.

Palomba, F. et al. (2014) ―Do They Really Smell Bad? A Study on Developers’ Perception of Bad Code Smells,‖ in Int. Conf. on Software Maintenance and Evolution, pp. 101–110.

Yamashita, A. and Moonen, L. (2013) ―Do developers care about code smells? An exploratory survey,‖ in Working Conf. on Reverse Engineering. IEEE, pp. 242–251.

Sobrinho, V. de P. et al. (2018) "A systematic literature review on bad smells — 5 W's: which, when, what, who, where". IEEE Transactions on Software Engineering.

Pietrzak, B. and Walter, B. (2006) ―Leveraging Code Smell Detection with Inter-smell Relations,‖ in Proc. of the 7th Int. Conf. on Extreme Programming and Agile Processes in Software Engineering. Springer-Verlag, pp. 75–84.

Palomba, F. et al. (2015) ―Landfill: An open dataset of code smells with public evaluation,‖ in IEEE/ACM 12th Working Conf. on Mining Software Repositories, pp. 482–485.

Fernandes, E. et al. (2016) ―A review-based comparative study of bad smell detection tools,‖ in Proc. of the Int. Conf. on Evaluation and Assessment in Software Engineering, pp. 1–12.

Walter, B. et al. (2018) "Code smells and their collocations: A large-scale experiment on opensource systems," Journal of Systems and Software, vol. 144, pp. 1-21.

Yamashita, A. et al. (2015) ―Inter-smell relations in industrial and open source systems: A replication and comparative analysis,‖ in IEEE Int. Conf. on Software Maintenance and Evolution pp. 121–130.

Agrawal, R. et al. (1993) ―Mining Association Rules Between Sets of Items in Large Databases,‖ in SIGMOD Conference.

Han, J. et al. (2011) ―Data Mining: Concepts and Techniques,‖ Morgan Kaufmann Publishers Inc., 3rd edition.

Pietrzak, B. and Walter, B. (2005) ―Exploring Bad Code Smells Dependencies,‖ in: Proc. of the Conf. on Software Engineering: Evolution and Emerging Technologies, pp. 353-364.

Walter, B. et al (2018) "Code smells and their collocations: A large-scale experiment on opensource systems," Journal of Systems and Software, Volume 144, Pages 1-21.

Tempero, E. et al. (2010) "Qualitas Corpus: A Curated Collection of Java Code for Empirical Studies", Asia Pacific Software Engineering Conference, pp. 336–345.

Abbes, M. et al. (2011) ―An Empirical Study of the Impact of Two Antipatterns, Blob and Spaghetti Code, on Program Comprehension,‖ in 15th European Conference on Software Maintenance and Reengineering. IEEE, pp. 181–190.

Oizumi, W. et al. (2018) "On the identification of design problems in stinky code: experiences and tool support," in J Brazilian Computer Society 24: 13.

Oizumi, W. et al. (2016) "Code anomalies flock together: exploring code anomaly agglomerations for locating design problems," in Proc. of the 38th Int. Conf. on Software Engineering, pp. 440-451.

Halkidi, M. et al. (2011) ―Data mining in software engineering,‖ in Intelligent Data Analysis, pp. 413-441.

AlOmar, E. A. et al. (2019) ―Do Design Metrics Capture Developers Perception of Quality? An Empirical Study on Self-Affirmed Refactoring Activities,‖ in Empirical Software Engineering.

Silva, D. and Valente, M. T. (2017) ―RefDiff: Detecting Refactorings in Version Histories,‖ in Int. Conf. on Mining Software Repositories.
Publicado
25/09/2019
DAMASCENO SANTANA, Amanda; FIGUEIREDO, Eduardo. On the Impact of Bad Smell Agglomerations on Software Quality. In: WORKSHOP DE TESES E DISSERTAÇÕES (WTDSOFT) - CONGRESSO BRASILEIRO DE SOFTWARE: TEORIA E PRÁTICA (CBSOFT), 1. , 2019, Salvador. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 31-37. DOI: https://doi.org/10.5753/cbsoft_estendido.2019.7653.