Detecção de Defeitos de Software Através da Aplicação de uma Arquitetura de Rede Neural Profunda
Resumo
O ciclo de vida de desenvolvimento de software abrange a etapa de teste de software, uma atividade rigorosa e custosa. Para obter sistemas de software confiáveis e de qualidade, adotar algoritmos de Redes Neurais para predição de possíveis defeitos tem se mostrado uma boa opção. Dessa forma, este artigo propõe uma estrutura de classificação, aplicada em 12 bases de dados da NASA para detectar defeitos de software. Avaliou-se ainda o efeito de duas técnicas de reamostragem híbridas, para tratar o problema de desbalanceamento das classes. Foram utilizadas as métricas acurácia, precisão, sensibilidade, pontuação F1, AUC e MCC, em que foram obtidos resultados competitivos ou superiores a outros estudos.
Referências
Avelino Júnior, J. S. (2022). Uma abordagem de seleção dinâmica de classificadores para predição de defeitos de software. Master’s thesis, Universidade Federal de Pernambuco.
Bajeh, A. O., Oluwatosin, O.-J., Basri, S., Akintola, A. G., and Balogun, A. O. (2020). Object-oriented measures as testability indicators: An empirical study. J. Eng. Sci. Technol, 15:1092–1108.
Balogun, A., Bajeh, A., Mojeed, H., and Akintola, A. (2020). Software defect prediction: A multi-criteria decision-making approach. Nigerian Journal of Technological Research, 15(1):35–42.
Basili, V. R., Briand, L. C., and Melo, W. L. (1996). A validation of object-oriented design metrics as quality indicators. IEEE Transactions on software engineering, 22(10):751–761.
Beduin, I. R. O. (2021). Detecção da covid-19 em imagens de raio-x: construindo um novo modelo de aprendizado profundo utilizando automl.
Catal, C. and Diri, B. (2009). Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem. Information Sciences, 179(8):1040–1058.
Chauhan, A. and Kumar, R. (2020). Bug severity classification using semantic feature with convolution neural network. In Computing in Engineering and Technology: Proceedings of ICCET 2019, pages 327–335. Springer.
Gaio, D. E. (2022). Análise comparativa das técnicas de implementação de arquiteturas da função sigmoide.
Haykin, S. S. (2000). Redes neurais artificiais: princípio e prática. 2ª Edição, Bookman, São Paulo, Brasil.
Herbold, S., Trautsch, A., and Grabowski, J. (2018). A comparative study to benchmark cross-project defect prediction approaches. In Proceedings of the 40th International Conference on Software Engineering, pages 1063–1063.
Homem, W. L. and Ufes, P. E. M. (2020). Apostila de machine learning. PET Engenharia Mecânica, UFES.
Iqbal, A. and Aftab, S. (2020). A classification framework for software defect prediction using multi-filter feature selection technique and mlp. International Journal of Modern Education & Computer Science, 12(1).
Iqbal, A., Aftab, S., Ali, U., Nawaz, Z., Sana, L., Ahmad, M., and Husen, A. (2019a). Performance analysis of machine learning techniques on software defect prediction using nasa datasets. International Journal of Advanced Computer Science and Applications, 10(5).
Iqbal, A., Aftab, S., Ullah, I., Bashir, M. S., and Saeed, M. A. (2019b). A feature selection based ensemble classification framework for software defect prediction. International Journal of Modern Education and Computer Science, 11(9):54.
Kovács, Z. L. (2002). Redes neurais artificiais. Editora Livraria da Fisica.
Kramer, O. (2016). Scikit-learn. Machine learning for evolution strategies, pages 45–53.
Lanubile, F., Lonigro, A., and Vissagio, G. (1995). Comparing models for identifying fault-prone software components. In SEKE, pages 312–319. Citeseer.
Mabayoje, M. A., Balogun, A. O., Bajeh, A. O., and Musa, B. A. (2018). Software defect prediction: effect of feature selection and ensemble methods.
Manjula, C. and Florence, L. (2019a). Deep neural network based hybrid approach for software defect prediction using software metrics. Cluster Computing, 22(Suppl 4):9847–9863.
Manjula, C. and Florence, L. (2019b). Deep neural network based hybrid approach for software defect prediction using software metrics. Cluster Computing, 22(Suppl 4):9847–9863.
Monard, M. C. and Baranauskas, J. A. (2003). Conceitos sobre aprendizado de máquina. Sistemas inteligentes-Fundamentos e aplicações, 1(1):32.
Nascimento, J. P. R. (2003). Análise e classificação de imagens baseadas em características de textura utilizando matrizes de co-ocorrência.
Neto, A. and Claudio, D. (2007). Introdução a teste de software. Engenharia de Software Magazine, 1:22.
Omri, S. and Sinz, C. (2020). Deep learning for software defect prediction: A survey. In Proceedings of the IEEE/ACM 42nd international conference on software engineering workshops, pages 209–214.
Rana, R., Staron, M., Hansson, J., and Nilsson, M. (2014). Defect prediction over software life cycle in automotive domain state of the art and road map for future. In 2014 9th International Conference on Software Engineering and Applications (ICSOFTEA), pages 377–382. IEEE.
Rosenblatt, F. (1960). Perceptron simulation experiments. Proceedings of the IRE, 48(3):301–309.
Rumelhart, D. (1986). E., hinton ge, and willians rj. Learning representations by backpropagating errors”, Nature, 323:6188.
Shepperd, M., Song, Q., Sun, Z., and Mair, C. (2013). Data quality: Some comments on the nasa software defect datasets. IEEE Transactions on Software Engineering, 39(9):1208–1215.
Vaz, A. L. (2019). Como lidar com dados desbalanceados em problemas de classificação. Disponível online: https://medium.com/@arthurlambletvaz. Acesso em: 19 de fevereiro de 2023.