Uma Investigação da Aplicação de Aprendizado de Máquina para Detecção de Smells Arquiteturais

  • Warteruzannan Soyer Cunha UFScar
  • Valter Vieira de Camargo UFScar

Resumo


Uma investigação da aplicação de aprendizado de máquina para detectar os smells arquiteturais God Component (GC) e Unstable Dependency (UD) é apresentada neste trabalho. Dois datasets foram criados com exemplos coletados de sistemas reais. A acurácia, precisão e recall foram avaliadas com um conjunto de 10 algoritmos preditivos. Uma seleção de atributos foi realizada a fim de encontrar os mais relevantes para essa detecção. Os algoritmos AdaBoost e SVM (Support Vector Machine) com kernel linear alcançaram os melhores resultados para o GC e UD, respectivamente. Além disso, observouse que alguns atributos que a princípio não seriam considerados, contribuíram para a precisão da detecção.

Referências

Fontana, F. A., Mäntylä, M. V., Zanoni, M., and Marino, A. (2016). Comparing and experimenting machine learning techniques for code smell detection. Empirical Software Engineering, pages 1143–1191.

Fontana, F. A., Pigazzini, I., Roveda, R., Tamburri, D., Zanoni, M., and Di Nitto, E. (2017). Arcan: A tool for architectural smells detection. In 2017 IEEE International Conf. on Software Architecture Workshops, ICSA Workshops 2017, Gothenburg, Sweden, April 5–7.

Garcia, J., Popescu, D., Edwards, G., and Medvidovic, N. (2009). Toward a catalogue of architectural bad smells. In International Conference on the Quality of Software Architectures, pages 146–162. Springer.

Kohavi, R. et al. (1995). A study of cross-validation and bootstrap for accuracy estimation and model selection. In Ijcai, volume 14, pages 1137–1145. Montreal, Canada.

Kumar, L. and Sureka, A. (2018). An Empirical Analysis on Web Service Anti-pattern Detection Using a Machine Learning Framework. 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), pages 2–11.

Lippert, M. and Roock, S. (2006). Refactoring in large software projects: performing complex restructurings successfully. John Wiley & Sons.

Maiga,A.,Ali,N.,Bhattacharya,N.,Sabane,A.,Gueheneuc,Y.-G.,and Aimeur, E. (2012). Smurf: A svm-based incremental anti-pattern detection approach. In Reverse engineering (WCRE), 2012 19th working conference on, pages 466–475. IEEE.

Martin, R. (1994). Oo design quality metrics. An analysis of dependencies, pages 151–170.

Mitchell, T. M. (1997). Machine Learning. McGraw-Hill, Inc., New York, NY, USA, 1 edition.

Moha, N., Gueheneuc, Y. G., Duchien, L., and Meur, A. F. L. (2010). Decor: A method for the specification and detection of code and design smells. IEEE Transactions on Software Engineering, pages 20–36.

Palomba, F., Bavota, G., Penta, M. D., Oliveto, R., Lucia, A. D., and Poshyvanyk, D. (2013). Detecting bad smells in source code using change history information. In 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), pages 268–278.

Sharma,T.(2016).Designite – A Software Design Quality Assessment Tool.

Velasco-Elizondo, P., Castañeda-Calvillo, L., García-Fernandez, A., and Vazquez-Reyes, S. (2018). Towards detecting mvc architectural smells. Advances in Intelligent Systems and Computing, 688:251–260. cited By 0.

Wang, Y., Hu, S., Yin, L., and Zhou, X. (2018). Using code evolution information to improve the quality of labels in code smell datasets. In 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC).
Publicado
25/09/2019
SOYER CUNHA, Warteruzannan; VIEIRA DE CAMARGO, Valter. Uma Investigação da Aplicação de Aprendizado de Máquina para Detecção de Smells Arquiteturais. In: WORKSHOP DE VISUALIZAÇÃO, EVOLUÇÃO E MANUTENÇÃO DE SOFTWARE (VEM), 1. , 2019, Salvador. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2019 . p. 66-73. DOI: https://doi.org/10.5753/vem.2019.7587.