UMA ABORDAGEM PARA OTIMIZAÇÃO DA QUALIDADE DE CÓDIGO FONTE BASEADO NA COMPLEXIDADE ESTRUTURAL - AN APPROACH TO IMPROVE SOURCE CODE QUALITY BASED ON STRUCTURAL COMPLEXITY

Heleno de Souza Campos Junior, Luis Rogério Ventura Martins Filho, Marco Antônio Pereira Araújo

Resumo


Estudantes de programação desenvolvem códigos fonte com condições redundantes que acabam ocasionando uma complexidade estrutural desnecessária. Nesse cenário, busca-se evitar que isso aconteça. Dessa forma, este trabalho tem como objetivo apresentar uma abordagem capaz de identificar a presença de complexidade ciclomática desnecessária em um código fonte. A abordagem foi implementada como uma nova funcionalidade em uma ferramenta que apoia a criação de casos de teste de unidade para códigos fonte escritos em linguagem Java. A utilização dessa funcionalidade pode levar o usuário a simplificar seus algoritmos e despender menos esforço durante a fase de testes de unidade, impactando em uma melhor qualidade final do software desenvolvido.

 

Programming students sometimes develops source code with redundant conditions, resulting in an unnecessary structural complexity. In this context, we aim to prevent this practice. Thus, the objective of this paper is to present an approach to detect the unnecessary cyclomatic complexity in a source code. The approach was included as a new feature in a tool that supports the unit test cases development for source code developed with the Java language. By using this feature, the user may simplify his algorithms and spend less time and effort on the unit testing phase, leading to a greater quality on the developed software.


Palavras-chave


Qualidade de software; teste de software; complexidade desnecessária; complexidade ciclomática; melhoria do código fonte - Software quality, software testing, unnecessary complexity, cyclomatic complexity, source code improvement.

Texto completo:

PDF

Referências


ALLEN, F. E. Control flow analysis, Proceedings of a symposium on Compiler optimization, Urbana-Champaign, Illinois, 1970, p. 1-19.

BENNETT, K. H. e RAJLICH, V. T. Software maintenance and evolution: a roadmap. In: INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, 22th, 2000, Limerick. Proceedings of the Conference on the Future of Software Engineering. ACM, 2000, p. 73-87.

BOEHM, B. W. e PAPACCIO, P. N. Understanding and controlling software costs. IEEE Transactions on Software Engineering, vol. 14, no. 10, p. 1462-1477, 1988.

BOGHDADY, P. N., BADR, N. L., HASHIM, M. A., & TOLBA, M. F. An enhanced test case generation technique based on activity diagrams. In: Computer Engineering & Systems (ICCES), 2011 International Conference. Cairo, IEEE, 2011, p. 289-294.

CAMPOS JUNIOR, H.S., MARTINS FILHO, L. R. V. e ARAÚJO, M. A. P. Uma ferramenta interativa para visualização de código fonte no apoio à construção de casos de teste de unidade. In: BRAZILIAN WORKSHOP ON SYSTEMATIC AND AUTOMATED SOFTWARE TESTING, 9th, 2015, Belo Horizonte. Proceedings of the 9th Brazilian Workshop on Systematic and Automated Software Testing. 2015, p. 31-40.

CAMPOS JUNIOR, H. S., MARTINS FILHO, L. R. V. e ARAÚJO, M. A. P. An Approach for Detecting Unnecessary Cyclomatic Complexity on Source Code. Submetido para o periódico IEEE América Latina. 2016a.

CAMPOS JUNIOR, H. S., PRADO, A. F. e ARAÚJO, M. A. P. Complexity Tool: uma ferramenta para medir complexidade ciclomática de métodos Java. Revista Multiverso. v. 1, n.1, p. 66-76, 2016b.

MCCABE, T., J. e WATSON, A., H. Structured Testing: A Testing Methodology Using the Cyclomatic Complexity Metric. NIST Special Publication. p. 500-235, 1996.

YU, S. e ZHOU, S. 2010. A Survey on Metric of Software Complexity. In: IEEE INTERNATIONAL CONFERENCE ON INFORMATION MANAGEMENT AND ENGINEERING. 2nd, 2010, Chengdu. Proceedings of the 2nd IEEE International Conference on Information Management and Engineering. IEEE, 2010, p. 352-356.


Apontamentos

  • Não há apontamentos.




Multiverso: Revista Eletrônica do Campus Juiz de Fora - IF Sudeste MG, ISSN 2447-8725, Juiz de Fora, Minas Gerais, Brasil.

Licença Creative Commons

Esta obra está licenciada com uma Licença Creative Commons Atribuição 4.0 Internacional.