Code complexity: an empirical study based on the index of internal effort

Autores

DOI:

https://doi.org/10.18265/2447-9187a2026id9190

Palavras-chave:

Arduino, Complexidade, Engenharia de Sistemas, Indicador, Open-Source

Resumo

Measuring the complexity of programming code remains a persistent challenge in computer science education, particularly when assessing student-developed projects. This study aims to evaluate the applicability of the Index of Internal Effort (IIE), a metric originally designed to quantify Explicit Intellectual Activities (EIAs), in the context of measuring the complexity of software code. The methodological approach involved analyzing two distinct datasets: (i) simple Arduino programs typically used in electronics and embedded systems courses, and (ii) source code from open-source projects published on public repositories such as GitHub. The study applied the IIEa, a version of the IIE adapted for complexity estimation, and compared its results to well-established software metrics, including LOC (Lines of Code), WMC (Weighted Methods per Class), and CC (Cyclomatic Complexity). The results revealed a strong correlation between IIEa and traditional metrics, supporting its applicability. However, due to the lack of data regarding the number of developers involved in the open-source projects, it was not possible to compute the average team effort using IIE0, a second equation within the IIE framework. The data analysis reinforces the viability of IIE as a complementary metric in programming education, enabling more accurate and fair assessments. Comparisons with prior studies indicate that cognitive complexity is closely associated with the structural properties of code. The findings suggest that the IIE can contribute both to more effective pedagogical practices and to future research aimed at integrating cognitive effort metrics into learning environments.

Downloads

Não há dados estatísticos.

Métricas

Carregando Métricas ...

Referências

ÁLVAREZ, J. L.; MOZO, J. D.; DURÁN, E. Analysis of single board architectures integrating sensors technologies. Sensors, v. 21, n. 18, 6303, 2021. DOI: http://doi.org/10.3390/s21186303.

ARDITO, L.; COPPOLA, R.; BARBATO, L.; VERGA, D. A Tool-Based Perspective on Software Code Maintainability Metrics: A Systematic Literature Review. Scientific Programming, v. 2020, n. 1,8840389, 2020. DOI: https://doi.org/10.1155/2020/8840389.

BACKES, A. Linguagem C - Completa e Descomplicada. 2. ed. Rio de Janeiro: GEN LTC, 2022. 424 p. In Portuguese.

BADRI, M.; TOURE. F. Empirical Analysis of Object-Oriented Design Metrics for Predicting Unit Testing Effort of Classes. Journal of Software Engineering and Applications, v. 5, n. 7, p. 513-526, 2012. DOI: http://doi.org/10.4236/jsea.2012.57060.

BRASIL. Ministério da Gestão e da Inovação em Serviços Públicos. PE 08/2023 – Ponto de Função – CODIFICAGOV. Brasília, DF: MGI, 2024. Available at: https://www.gov.br/gestao/pt-br/assuntos/central-de-compras/transparencia/arp/2024/pe-08-2023-ponto-de-funcao-codificagov. Accessed on: 1 Jan. 2025. In Portuguese.

CCCC. C and C++ Code Counter. Software. 2013. Available at: https://sourceforge.net/projects/cccc/. Accessed on: 1 Jan. 2023.

CHIDAMBER, S. R.; KEMERER, C. F. A metrics suite for object oriented design. IEEE Transactions on Software Engineering, v. 20, n. 6, p. 476-493, 1994. DOI: https://doi.org/10.1109/32.295895.

DORF, R. C.; BISHOP, R. H. Modern control systems. 12th ed. New Jersey: Prentice Hall. 2011.

GITHUB. Trending. 2025. Available at: https://github.com/trending. Accessed on: 1 Feb. 2025.

GONÇALES, L. J.; FARIAS, K.; SILVA, B. C. Measuring the cognitive load of software developers: an extended systematic mapping study. Information and Software Technology, v. 136, 106563, 2021. DOI: https://doi.org/10.1016/j.infsof.2021.106563.

IEEE – INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. 1061-1998 - IEEE Standard for a Software Quality Metrics Methodology. [S.l.]: IEEE, 1998. DOI: https://doi.org/10.1109/IEEESTD.1998.243394.

KERNIGHAN, B. W.; RITCHIE, D. M. The ANSI C Programming Language. 2nd ed. New Jersey: Prentice Hall, 1988.

LEE, S.; HOOSHYAR, D.; JI, H.; NAM, K.; LIM, H. Mining biometric data to predict programmer expertise and task difficulty. Cluster Computing, v. 21, n. 1, p. 1097-1107, 2017. DOI: https://doi.org/10.1007/s10586-017-0746-2.

M SQUARED TECHNOLOGIES. What’s Inside Your Source Code? 2001. Available at: https://www.ic.unicamp.br/~eliane/Cursos/RSM/rsm_descricao.htm. Accessed on: 5 Jan. 2025.

MCCABE, T. J. A Complexity Measure. IEEE Transactions on Software Engineering, v. SE-2, n. 4, p. 308-320, 1976. DOI: https://doi.org/10.1109/TSE.1976.233837.

MEIRELLES, P. R. M. Monitoramento de métricas de código-fonte em projetos de software livre. Tese (Doutorado em Ciência da Computação) – Instituto de Matemática e Estatística, Universidade de São Paulo, São Paulo, 2013. DOI: https://doi.org/10.11606/T.45.2013.tde-27082013-090242. In Portuguese.

MILLS, E. E. Software Metrics. Seattle: Software Engineering Institute, Carnegie Mellon University, 1988. 43 p. Available at: https://resources.sei.cmu.edu/asset_files/CurriculumModule/1988_007_001_15608.pdf. Accessed on: 10 Jan. 2023.

OLIVEIRA, A. A. Assessing Programming Difficulty and Effort: Statistical Correlations with the Index of Internal Effort. In: ESCOLA REGIONAL DE INFORMÁTICA DE GOIÁS (ERI-GO), 12., 2024, Ceres. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024a. p. 21-30. DOI: https://doi.org/10.5753/erigo.2024.4795.

OLIVEIRA, A. A. Índice interno de esforço: uma proposta para a mensuração robusta de artefatos intelectuais desenvolvidos por servidores públicos. 103 f. 2024. Tese (Doutorado em Engenharia de Produção) – Universidade Tecnológica Federal do Paraná, Ponta Grossa, 2024b. Available at: http://repositorio.utfpr.edu.br/jspui/handle/1/35490. Accessed on: 5 Jan. 2025. In Portuguese.

OLIVEIRA, A. A.; FUNG, C. W. H.; BURKARKER, E.; PILATTI, L. A.; SANTOS, C. B. Metrificação de patentes: uma análise entre qualidade, complexidade e esforço. In: ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO, 43., 2023, Fortaleza. Anais [...]. Fortaleza: ABEPRO, 2023a. DOI: http://doi.org/10.14488/enegep2023_tn_st_404_1989_45333. In Portuguese.

OLIVEIRA, A. A.; GUIMARÃES, T. A.; AVILA, C. A.; PILATTI, L. A.; SANTOS, C. B. Metrificação de patentes desenvolvidas no serviço público: um estudo acerca do índice interno de esforço. In: ENCONTRO NACIONAL DE ENGENHARIA DE PRODUÇÃO, 43., 2023, Fortaleza. Anais [...]. Fortaleza: ABEPRO, 2023b. DOI: http://doi.org/10.14488/enegep2023_tn_wpg_404_1986_45338. In Portuguese.

OLIVEIRA, A. A.; PILATTI, L. A. Mensuração da complexidade de códigos em C com o método do Índice Interno de Esforço. Anais do Encontro Anual de Tecnologia da Informação, v. 10, n. 2, 2021. Available at: http://anais.eati.info/eati/article/view/64. Accessed on: 10 Sept. 2023. In Portuguese.

OLIVEIRA, A. A.; SANTOS, C. B.; PILATTI, L. A. Bridging the gap in patent assessment: The Index of Internal Effort framework for pharma innovations. Journal of Pharmacy & Pharmacognosy Research, v. 12, n. 5, p. 852-869, 2024. DOI: https://doi.org/10.56499/jppres23.1859_12.5.852.

OUALLINE, S. Practical C programming: why does 2+2=5986. 3rd ed. Sebastopol: O’Reilly, 1997. 504 p.

PEREIRA, S. A.; OLIVEIRA, A. A.; BARBALHO, C. R. S. Gestão estratégica de patentes em instituições públicas: avaliando o Índice Interno de Esforço como ferramenta para otimizar o portfólio. P2P e Inovação, Rio de Janeiro, RJ, v. 11, n. 2, e-7458, 2025. DOI: http://doi.org/10.21728/p2p.2025v11n2e-7458. In Portuguese.

POPPER, K. R. A lógica da pesquisa científica. 9. ed. São Paulo: Cultrix, 2001. 567 p. In Portuguese.

PRESSMAN, R. S. Engenharia de software: uma abordagem profissional. Porto Alegre: AMGH, 2011. 780 p. In Portuguese.

SHEARD, S. A.; MOSTASHARI, A. A. Complexity Typology for Systems Engineering. Incose International Symposium, v. 20, n. 1, p. 933-945, 2010. DOI: https://doi.org/10.1002/j.2334-5837.2010.tb01115.x.

SOMMERVILLE, I. Engenharia de software. 10. ed. São Paulo: Pearson Prentice Hall, 2019. 756 p. In Portuguese.

SOURCEFORGE. Top Software Downloads on SourceForge. 2025. Available at: https://sourceforge.net/top. Accessed on: 13 Jan. 2025.

TIWARI, U. K. Conventional to component-based software: a critical survey on interaction and integration complexities. International Journal of Advanced Research in Computer Science, v. 8, n. 8, p. 135-139, 2017. DOI: https://doi.org/10.26483/ijarcs.v8i8.4617.

TRIOLA, M. F. Introdução à estatística: atualização da tecnologia. Rio de Janeiro: LTC Publisher, 2013. 707 p. In Portuguese.

VOGEL, M.; KNAPIK, P.; COHRS, M.; SZYPERREK, B.; PUESCHEL, W.; ETZEL, K.; FIEBIG, D.; RAUSCH, A.; KUHRMANN, M. Metrics in automotive software development: A systematic literature review. Journal of Software: Evolution and Process, v. 33, n. 2, e2296, 2020. DOI: http://doi.org/10.1002/smr.2296

Downloads

Publicado

03-03-2026

Como Citar

OLIVEIRA, A. A. de. Code complexity: an empirical study based on the index of internal effort. Revista Principia, [S. l.], v. 63, 2026. DOI: 10.18265/2447-9187a2026id9190. Disponível em: https://periodicos.ifpb.edu.br/index.php/principia/article/view/9190. Acesso em: 10 mar. 2026.

Edição

Seção

Ciência da Computação
Smart Citations via scite_