Skip to the content.

Survey of Software Maintenance Metrics: A Systematic Literature Review

Introdução

Este documento tem como objetivo servir de apoio a publicação Survey of Software Maintenance Metrics: A Systematic Literature Review do XIX Simpósio Brasileiro de Sistemas de Informação - 2023.

Metodologia de Pesquisa

A seção baixo tem por objetivo detalhar a metodologia de pesquisa aplicada no artigo e fornecer informações extras sobre o tema.

Conforme destacado no texto, para a identificação dos principais trabalhos na área de avaliação da manutenção, foi utilizado o modelo elaborado por Petersen et al. (2008). Desta forma, a Figura 1 complementa o processo de mapeamento sistemático.

Figura 1 - Processo de Revisão Sistemática
Imagem retirada do texto de Petersen et al. (2008, p. 2) representando o processo de mapeamento sistemático)
Fonte: Adaptado de (PETERSEN et al., 2008, p.2)

Diante disso, o processo de mapeamento sistemático, conforme definido por Petersen et al. (2008), é um método sistemático para identificar, avaliar e interpretar todas as pesquisas relevantes em uma área de interesse específica. Esse processo envolve as seguintes etapas:

  1. Identificação da questão de pesquisa: A primeira etapa envolve a formulação de uma questão de pesquisa clara e bem definida.
  2. Definição dos critérios de seleção: Em seguida, são definidos os critérios para inclusão ou exclusão dos estudos na revisão. Esses critérios podem ser baseados em características dos estudos, como o tipo de pesquisa, a metodologia utilizada ou a qualidade dos estudos.
  3. Busca por estudos relevantes: A terceira etapa envolve a busca por estudos relevantes na literatura, utilizando bases de dados eletrônicas, pesquisas manuais e outras fontes relevantes.
  4. Seleção de estudos: Os estudos identificados são avaliados de acordo com os critérios de seleção definidos na etapa anterior. Os estudos que atendem aos critérios são selecionados para inclusão na revisão.
  5. Extração de dados: Os dados relevantes de cada estudo selecionado são extraídos e registrados em uma planilha ou banco de dados.
  6. Análise e interpretação dos resultados: Os dados extraídos são analisados e interpretados para responder à questão de pesquisa. Isso pode incluir a síntese dos resultados dos estudos e a identificação de lacunas na pesquisa.
  7. Documentação da revisão: Finalmente, a revisão é documentada de forma clara e transparente, incluindo a descrição dos métodos utilizados e dos resultados obtidos.

Estratégia de Pesquisa

Com base no preconizado por Petersen et al (2008), após a elaboração das questões de pesquisa e dos critérios de inclusão e exclusão, foram elaboradas as strings de busca, para levantar os artigos na área de manutenção de software.

Contudo, cada Mecanismo de Busca (MBA), possui sua sintaxe específica, então, a partir da string de busca principal, foram derivadas strings especificas para cada mecanismo.

A string principal utilizada foi: “software engineering” AND (“maintenance effort” OR “maintenance process” OR “maintainability”) AND (“indica- tor” OR “measure” OR “metric” OR “quantitative” OR “kpi”) AND NOT (“case study”)

Para cada mecanimso de busca foi construída uma string específica conforme destacado no Quadro 1.

Quadro 1 - Strings de busca especializadas

Mecanismo de Busca String utilizada
IEEE e ACM NOT (“case study“) AND“software engineering“ AND (“maintenance effort“ OR “maintenance process“ OR “maintainability“) AND (“indicator“ OR “measure“ OR “metric“ OR “kpi“)
ScienceDirect e Wiley Interscience NOT (“study case“ OR “case study“) AND “software engineering“ AND (“maintenance effort“ OR “maintenance process“ OR “maintainability“) AND (“indicator“ OR “measure“ OR “metric“ OR “kpi“)
SCOPUS TITLE-ABS-KEY NOT ( “case study“ ) AND TITLE-ABS-KEY ( “software engineering“ AND ( “maintenance effort“ OR “maintenance process“ OR “maintainability“ ) AND ( “indicator“ OR “measure“ OR “metric“ OR “kpi“ ) )

Validações Qualitativas

Para avaliação qualitativa dos artigos, conforme abordado no texto, foi utiliazdo o padrão de avaliação de Huang et al. (2018), visando garantir a qualidade nos artigos.

As perguntas qualitativas aplicadas para validação da seleção de artigos foram:

  1. O objetivo da pesquisa é claro e bem fundamentado?
  2. O contexto de aplicação está claro?
  3. Foi descrita a forma de pesquisa elaborada previamente?
  4. Houve detalhamento da Coleta de Dados e das Métricas aplicadas?
  5. As métricas trazem relevância a questão de pesquisa?
  6. Foi detalhada corretamente a análise de dados?
  7. A interpretação do resultado e/ou seu efeito é descrito?
  8. São levantados os detratores da pesquisa?
  9. As conclusões são claras e os resultados apontam para elas?
  10. O artigo determina limites e validações?

Os valores foram atribuídos seguindo o método de análise comparada com o recurso de lógica booleana, que permite analisar relacionamentos causais complexos, conforme sugere Huang, et al. (2018). Contudo, ao analisar os textos dos artigos, foi identificado que mesmo não havendo uma aplicação direta do requisito, as informações sobre a métrica/medição utilizada, era relevante para fundamentar quantitativamente a pesquisa, o que levou a criação do status intermediário Parcial, permitindo com isso uma melhor relevância para os valores quantitativos.

Condução

A seção abaixo tem por objetivo detalhar a condução da pesquisa realizada, trazendo informações levantadas durante a pesquisa, bem como detalhar algumas etapas realizadas.

A pesquisa foi realizada pelos 3 pesquisadores, sendo que os critérios de inclusão e exclusão e a análise qualitativa foram aplicadas pelo primeiro pesquisador e revisada pelos demais pesquisadores.

Após, a extração de dados e interpretação dos resultados foi feita em conjunto, de maneira a consolitar as informações das métricas levantadas e identificar sua aplicabilidade.

Identificação dos Estudos Relevantes

Foram identificados 2145 em todos os MBAs utilizados, foram selecionados 216 artigos. A identificação e seleção dos artigos ficou disposta conforme Figura 2.

Figura 2 - Artigos identificados e selecionados por Fonte
Comparação entre Identificados e Selecionados por MBA
Fonte: Os autores (2023)

Os artigos foram distribuídos nos MBAs conforme Figura 3.

Figura 3 - Percentual de artigos por fonte
Separação percentual dos artigos por Mecanismo de Busca (MBA)
Fonte: Os autores (2023)

Classificação

Para a classificação, foram extraídas as informações de Ano de Publicação, Métrica Proposta, Ferramenta Utilizada, Perspectiva da Manutenção, Categoria, Forma de Validação, com as seguintes definições contidas no Quadro 2.

Quadro 2 - Informações de Classificação

Classificação Descrição
Ano de Publicação Identificar a atualidade da métrica e sua evolução no passar do tempo.
Métrica Proposta Quantificar as métricas propostas de maneira a definir a quantidade de vezes que esta é proposta
Ferramenta Utilizada Avaliar as ferramentas utilizadas pela área de Manutenção de Software e suas relações com as métricas.
Perspectiva Determinar se a métrica em questão avalia o Produto, o Processo ou o Recurso.
Categoria Para cada perspectiva, as métricas foram distribuídas em categorias específicas
Forma de Validação Validar formalmente a métrica conforme preconiza Ejiogu (1993)

Resultado

A seção baixo tem por objetivo detalhar os resultados obtidos com a pesquisa, demonstrando informações complementares as apresentadas no artigo.

Artigos Selecionados

No Quadro 3 estão disponíveis os artigos selecionados durante o processo de validação.

Quadro 3 - Artigos selecioandos

   
1 AHN, Yunsik et al. The software maintenance project effort estimation model based on function points. Journal of Software Maintenance, John Wiley & Sons, Inc., USA, v. 15, n. 2, p. 71–85, mar 2003. ISSN 1040-550X. Disponível em: https://doi.org/10.1002/smr.269.
2 AL-JAMIMI, Hamdi A.; AHMED, Moataz. Prediction of software maintainability using fuzzy logic. In: 2012 IEEE International Conference on Computer Science and Automation Engineering. [S.l.: s.n.], 2012. p. 702–705.
3 BAKOTA, Tibor et al. A probabilistic software quality model. In: . [S.l.: s.n.], 2011. p. 243–252.
4 BHATT, Pankaj et al. An influence model for factors in outsourced software maintenance. Journal of Software Maintenance, v. 18, p. 385–423, 11 2006.
5 BURROWS, Rachel et al. An empirical evaluation of coupling metrics on aspect-oriented programs. In: Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics. New York, NY, USA: Association for Computing Machinery, 2010. (WETSoM ’10), p. 53–58. ISBN 9781605589763. Disponível em: https://doi.org/10.1145/1809223.1809231.
6 BöRSTLER, Jürgen; CASPERSEN, Michael; NORDSTRöM, Marie. Beauty and the beast: on the readability of object-oriented example programs. Software Quality Journal, v. 24, 02 2015.
7 ÇALIKLI, Gül; STARON, Miroslaw; MEDING, Wilhelm. Measure early and decide fast: Transforming quality management and measurement to continuous deployment. In: Proceedings of the 2018 International Conference on Software and System Process. New York, NY, USA: Association for Computing Machinery, 2018. (ICSSP ’18), p. 51–60. ISBN 9781450364591. Disponível em: https://doi.org/10.1145/3202710.3203156.
8 CANFORA, G. et al. A family of experiments to validate metrics for software process models. J. Syst. Softw., Elsevier Science Inc., USA, v. 77, n. 2, p. 113–129, aug 2005. ISSN 0164-1212. Disponível em: https://doi.org/10.1016/j.jss.2004.11.007.
9 CHOUDHARI, Jitender; SUMAN, Ugrasen. Story points based effort estimation model for software maintenance. Procedia Technology, v. 4, p. 761–765, 12 2012.
10 CONCAS, Giulio et al. Assessing traditional and new metrics for object-oriented systems. In: Proceedings of the 2010 ICSE Workshop on Emerging Trends in Software Metrics. New York, NY, USA: Association for Computing Machinery, 2010. (WETSoM ’10), p. 24–31. ISBN 9781605589763. Disponível em: https://doi.org/10.1145/1809223.1809227.
11 COUTO, Christian et al. Mcl: Metrics-based constraint language. In: . [S.l.: s.n.], 2018. p. 1–8. ISBN 978-1-4503-6559-8.
12 DAGPINAR, M.; WEBER, Jens. Predicting maintainability with object-oriented metrics - an empirical comparison. In: . [S.l.: s.n.], 2003. p. 155– 164. ISBN 0-7695-2027-8.
13 DAHAB, Sarah; PORRAS, Juan; MAAG, Stephane. A novel formal approach to automatically suggest metrics in software measurement plans. In: . [S.l.: s.n.], 2018. p. 283–290.
14 DANTAS, Francisco; GARCIA, Alessandro; WHITTLE, Jon. On the role of composition code properties on evolving programs. In: Proceedings of the ACM-IEEE International Symposium on Empirical Software Engineering and Measurement. New York, NY, USA: Association for Computing Machinery, 2012. (ESEM ’12), p. 291–300. ISBN 9781450310567. Disponível em: https://doi.org/10.1145/2372251.2372304.
15 EL-SHARKAWY, Sascha; KRAFCZYK, Adam; SCHMID, Klaus. Fast static analyses of software product lines: An example with more than 42,000 metrics. In: Proceedings of the 14th International Working Conference on Variability Modelling of Software-Intensive Systems. New York, NY, USA: Association for Computing Machinery, 2020. (VAMOS ’20). ISBN 9781450375016. Disponível em: https://doi.org/10.1145/3377024.3377031.
16 FIORAVANTI, F.; NESI, P.; STORTONI, F. Metrics for controlling effort during adaptive maintenance of object oriented systems. In: Proceedings IEEE International Conference on Software Maintenance - 1999 (ICSM’99). ’Software Maintenance for Business Change’(Cat. No.99CB36360). [S.l.: s.n.], 1999. p. 483–492.
17 GARCÍA, Félix; RUIZ, Francisco; PIATTINI, Mario. Definition and empirical validation of metrics for software process models. In: BOMARIUS, Frank; IIDA, Hajimu (Ed.). Product Focused Software Process Improvement. Berlin, Heidelberg: Springer Berlin Heidelberg, 2004. p. 146–158. ISBN 978-3-540-24659-6.
18 GIL, Joseph; GOLDSTEIN, Maayan; MOSHKOVICH, Dany. An empirical investigation of changes in some software properties over time. In: 2012 9th IEEE Working Conference on Mining Software Repositories (MSR). [S.l.: s.n.], 2012. p. 227–236.
19 GIL, Yossi; GOLDSTEIN, Maayan; MOSHKOVICH, Dany. How much information do software metrics contain? In: Proceedings of the 3rd ACM SIGPLAN Workshop on Evaluation and Usability of Programming Languages and Tools. New York, NY, USA: Association for Computing Machinery, 2011. (PLATEAU ’11), p. 57–64. ISBN 9781450310246. Disponível em: https://doi.org/10.1145/2089155.2089169.
20 GORDEA, Sergiu; ZANKER, Markus. Building maintenance charts and early warning about scheduling problems in software projects. In: . [S.l.: s.n.], 2006. v. 1, p. 210–217.
21 HAYES, Jane; MOHAMED, Naresh; GAO, Tina. Observe-mine-adopt (oma): An agile way to enhance software maintainability. Journal of Software Maintenance, v. 15, p. 297–323, 09 2003.
22 HAYES, J.H.; PATEL, S.C.; ZHAO, L. A metrics-based software maintenance effort model. In: Eighth European Conference on Software Maintenance and Reengineering, 2004. CSMR 2004. Proceedings. [S.l.: s.n.], 2004. p. 254–258.
23 HEGEDüS, Péter et al. A drill-down approach for measuring maintainability at source code element level. In: . [S.l.: s.n.], 2013.
24 HOVSEPYAN, Aram et al. From aspect-oriented models to aspect-oriented code? the maintenance perspective. In: . [S.l.: s.n.], 2010. p. 85–96.
25 AIN, Ashu; TARWANI, Sandhya; CHUG, Anuradha. An empirical investigation of evolutionary algorithm for software maintainability prediction. In: 2016 IEEE Students’ Conference on Electrical, Electronics and Computer Science (SCEECS). [S.l.: s.n.], 2016.
26 JøRGENSEN, Magne; SJøBERG, Dag I. K. Impact of experience on maintenance skills. Journal of Software Maintenance and Evolution: Research and Practice, v. 14, n. 2, p. 123–146, 2002. Disponível em: https://onlinelibrary.wiley.com/doi/abs/10.1002/smr.248.
27 KULKARNI, U.L.; KALSHETTY, Y.R.; ARDE, Vrushali G. Validation of ck metrics for object oriented design measurement. In: 2010 3rd International Conference on Emerging Trends in Engineering and Technology. [S.l.: s.n.], 2010. p. 646–651.
28 LEWIS, J. A.; HENRY, S. M. On the benefits and difficulties of a maintainability via metrics methodology. Journal of Software Maintenance, John Wiley & Sons, Inc., USA, v. 2, n. 2, p. 113–142, jun 1990. ISSN 1040-550X. Disponível em: https://doi.org/10.1002/smr.4360020203.
29 LI, Wei; HENRY, Sallie. Object-oriented metrics that predict maintainability. Journal of Systems and Software, v. 23, n. 2, p. 111–122, 1993. ISSN 0164-1212. Object- Oriented Software. Disponível em: https://www.sciencedirect.com/science/article/pii/016412129390077B.
30 MAL, Sandip; RAJNISH, Kumar. New class cohesion metric: An empirical view. International Journal of Multimedia and Ubiquitous Engineering, v. 9, p. 367–376, 06 2014.
31 MAMUN, Md Abdullah Al; BERGER, Christian; HANSSON, Jörgen. Correlations of software code metrics: An empirical study. In: Proceedings of the 27th International Workshop on Software Measurement and 12th International Conference on Software Process and Product Measurement. New York, NY, USA: Association for Computing Machinery, 2017. (IWSM Mensura ’17), p. 255–266. ISBN 9781450348539. Disponível em: https://doi.org/10.1145/3143434.3143445.
32 OSTBERG, Jan-Peter; WAGNER, Stefan. On automatically collectable metrics for software maintainability evaluation. In: 2014 Joint Conference of the International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement. [S.l.: s.n.], 2014. p. 32–37.
33 RAZANI, Zohreh; KEYVANPOUR, MohammadReza. Sbsr solution evaluation: Methods and challenges classification. In: 2019 5th Conference on Knowledge Based Engineering and Innovation (KBEI). [S.l.: s.n.], 2019. p. 181–188.
34 SABOE, M. The use of software quality metrics in the materiel release process experience report. In: Proceedings Second Asia-Pacific Conference on Quality Software. [S.l.: s.n.], 2001. p. 104–109.
35 SAIFAN, Ahmad A.; AL-RABADI, Areej. Evaluating maintainability of android applications. In: 2017 8th International Conference on Information Technology (ICIT). [S.l.: s.n.], 2017. p. 518–523.
36 SANGWAN, Om; SINGH, Pradeep. Aspect oriented software metrics based maintainability assessment: Framework and model. In: . [S.l.: s.n.], 2013. v. 2013, p. 1.07–1.07. ISBN 978-1-84919-846-2.
37 SCHNAPPINGER, Markus et al. Learning a classifier for prediction of maintainability based on static analysis tools. In: 2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC). [S.l.: s.n.], 2019. p. 243–248.
38 SELVARANI, R.; NAIR, T.R. Gopalakrishnan; PRASAD, V. Kamakshi. Estimation of defect proneness using design complexity measurements in object-oriented software. In: 2009 International Conference on Signal Processing Systems. [S.l.: s.n.], 2009. p. 766–770.
39 SHARMA, Arun; BHATIA, Rajesh; GROVER, P. Empirical evaluation and validation of interface complexity metrics for software components. International Journal of Software Engineering and Knowledge Engineering, v. 18, p. 919–931, 11 2008.
40 SHELDON, F.T.; JERATH, Kshamta; CHUNG, Hong. Metrics for maintainability of class inheritance hierarchies. Journal of Software Maintenance, v. 14, p. 147–160, 05 2002
41 HUANG, Sun-Jen; LAI, R. Measuring the maintainability of a communication protocol based on its formal specification. IEEE Transactions on Software Engineering, v. 29, n. 4, p. 327–344, 2003.
42 SURESH, Yeresime; PATI, Jayadeep; RATH, Santanu. Effectiveness of software metrics for object-oriented system. Procedia Technology, v. 6, p. 420–427, 12 2012.
43 THONGMAK, Mathupayas; MUENCHAISRI, Pornsiri. Maintainability metrics for aspect-oriented software. International Journal of Software Engineering and Knowledge Engineering, v. 19, p. 389–420, 05 2009.
44 ZHANG, Feng et al. How does context affect the distribution of software maintainability metrics? In: 2013 IEEE International Conference on Software Maintenance. [S.l.: s.n.], 2013. p. 350–359.

Ano de Publicação

De maneira a identificar a atualidade das métricas, foram levantados os anos de publicação e demonstrados em um gráfico de linha, exibindo a evolução desta matéria no passar do tempo, conforme destaca a Figura 4.

Figura 4 - Ano de Publicação
Distribuição dos artigos por ano de publicação
Fonte: Os autores (2023)

É possível identificar que o número de publicações não possui uma constância, desta forma, pode-se observar que o assunto sobre as medições de software na área de manutenção de software tende a ser um assunto recorrente, podendo passar por períodos de validação de ideias, onde não há uma grande ocorrência de pesquisa, mas sendo trazido novamente para discussão.

Pode-se determinar que isto está ligado a principal forma de validação identificada neste estudo, sendo a Experimentação Técnica. Com isso, necessita-se deste período de experimentações para, então, chegar a conclusões e realizar novos estudos e avaliações

Veículos de Publicação

Pode-se observar que cerca de 68% dos estudos incluídos foram publicados em conferên- cias, enquanto 32% foram emitidos em periódicos (journals). A Figura 5 demonstra esta divisão.

Figura 5. Veículos de Publicação
Percentual de artigos por veículo de publicação
Fonte: Os autores (2023)

O Quadro 4 apresenta a quantidade de publicações por periódico.

Quadro 4 - Quantidade de Publicações por Periódico

Fóruns Quantidade
Journal of Software Maintenance and Evolution: Research and Pratice 6
International Journal of Software Engineering and Knowledge Engineering 2
IEEE Transactions on Software Engineering 1
International Journal of Multimedia and Ubiquitous Engineering 1
Procedia Technology 1
Software Quality Journal 1
System Software 1
The Journal of Systems and Software 1

O Quadro 5 apresenta a quantidade de publicações por conferêcia.

Quadro 5 - Quantidade de Publicações por Conferência

Fóruns Quantidade
ACM-IEEE international symposium on Empirical software engineering and measurement 1
Brazilian Symposium on Information Systems 1
Confluence 2013: The Next Generation Information Technology Summit 1
European Conference on Software Maintenance and Reengineering 1
First International Conference on Software and Data Technologies 1
IEEE International Conference on Software Engineering and Service Sciences 1
IEEE International Conference on Software Maintenance 1
IEEE International Conference on Software Maintenance (ICSM) 1
IEEE Students’ Conference on Electrical, Electronics and Computer Scienc 1
International Conference on Aspect-Oriented Software Development 1
International Conference on Communication, Computing & Security 1
International Conference on Emerging Trends in Engineering and Technolog 1
International Conference on Evaluation of Novel Approaches to Software Engineering 1
International Conference on Information Technology (ICIT) 1
International Conference on Product Focused Software Process 1
International Conference on Program Comprehension (ICPC) 1
International Conference on Signal Processing Systems 1
International Conference on Software and System Process 1
International Conference on Software Engineering 1
International Conference on Software Maintenance (ICSM) 1
International Mining Software Repositories 1
International Working Conference on Variability Modelling of Software-Intensive Systems 1
International Workshop on Software Measurement 1
International Workshop on Software Measurement and the International Conference on Software Process and Product Measurement 1
International Workshop on Software Quality and Maintainability 1
Iran University of Science and Technolog on Knowledge Based Engineering and Innovation 1
Proceedings Second Asia-Pacific Conference on Quality Software 1
SIGPLAN workshop on Evaluation and usability of programming languages and tools 1
Working Conference on Reverse Engineering 1
Workshop on Emerging Trends in Software Metrics 1

Desta forma, pode-se verificar que os principais locais de publicação são conferências, levando a entender que as discussões sobre métricas da área de manutenção de software são trazidas para socialização dos pesquisadores, permitindo uma maior interação da área com as ideias propostas. Contudo a maior concentração de um único local de publicação encontra-se em periódicos, demonstrando que as pesquisas nesta área tende a ser evolutivas, dando ênfase ao Journal of Software: Evolution and Process, que é um periódico científico que tem como uma de suas finalidades tratar sobre a evolução de software.

Propriedades Identificadas

De maneira a melhor compreender o ambiente de aplicação das métricas, é necessário identificar se a mesma está ligada a fatores internos e passíveis de gestão ou se a mesma está ligada a fatores externos e é dependente de variáveis que não são manipuláveis pela área de manutenção de software.

Figura 6. Quantidade de Propriedades
Métricas identificadas pro propriedade (interno ou externo)
Fonte: Os autores (2023)

A grande maioria dos estudos apontam métricas que são extraídos internamente pela própria empresa, conforme demonstra a Figura 6, sem necessariamente haver influência externa. Isso se dá pela facilidade em se obter essas informações e pelo menor nível de ruído que elas podem possuir, pois estão em um ambiente controlado das organizações.

Contudo, pode-se observar que existem métricas que, por mais que não são controladas diretamente pela organização, devem ser minimamente identificadas e avaliadas. Dentre as métricas, podemos citar as ligadas a recursos, em especial as que se relacionam com a sua habilidade e experiência, e aqueles que dependam de entradas e/ou saídas externas (outbounds).

Tipos de Medições

Conforme menciona a ISO/IEC 2002, as separações de tipos de medições foram levantadas pelas perspectivas, sendo que a perspectiva de Produto se destaca pela quantidade de variáveis independentes na análise dos estudo, conforme demonstra Figura 7.

Figura 7. Tipos de Medições
Métricas distribuídas por categoria e perspectiva
Fonte: Os autores (2023)

Como mencionado, a perspectiva de Produto possui um grande destaque, se tratando da perspectiva com o maior número de métricas identificadas. Como o objetivo do desenvolvimento de software está na entrega de Produto, isso seria algo natural.

Entretanto, é importante destacar que as discussões sobre as pespectivas de Processo e Recurso vem crecendo, sendo que das publicações que trouxeram informações sobre estas perspectivas, todas foram publicadas após 2005 e 53,84% delas foram publicadas após 2010.

Categorias

Dentro de cada perspectiva de aplicação, faz-se necessário a categorização de cada métrica. Ao longo da leitura e análise dos artigos levantados, foram sendo identificados formas de categorização das métricas, denominada categoria evolutiva. Este processo foi feito pelos autores de maneira a sumarizar as informações das métricas relativas a assuntos semelhantes. Denominou-se categoria evolutiva.

Ainda, para a perspectiva de Produto, foi utilizado uma segunda categorização conforme a ISO/IEC 2001. As categorizações são melhor detalhadas em separado para cada perspectiva a seguir.

Produto

Para a perspectiva de produto foram aplicadas duas categorizações, como já detalhadob anteriormente, sendo a categoria evolutiva, que foi detalhada ao longo da análise dos estudos, a categorização baseada na ISO/IEC 2001.

Como categoria evolutiva, encontrou-se as análises Tamanho (38%), Acoplamento (19%), Coesão (8%), Complexidade (27%), Métricas de Análise de Entorno (Topológicas) (1%), Métricas do Eixo Principal da Árvore (1%), Métricas de componentes fortemente conectados (2%), Dificuldade (1%), Uso de dados (1%), Estilo de Programação(1%), Paralelismo e não determinismo (1%), demonstrado na Figura 8 e Quadro 6.

Figura 8. Categoria Evolutiva
Percentual de cada categoria de produto
Fonte: Os autores (2023)

Quadro 6 - Categoria Evolutiva

Categoria Descrição
Tamanho Relativo ao tamanho do código fonte e suas alterações.
Acoplamento Relativo ao quão acoplado o código em questão está em relação a estrutura do produto.
Coesão Relativo a utilidade de funções e métodos dentro da estrutura do produto.
Complexidade Determinam o quão complicado e/ou confuso está o código.
Métricas de Análise de Entorno (Topológicas) Avaliam o entorno que afeta o código fonte, como clientes, utilizadores diretos e indiretos do código.
Métricas do Eixo Principal da Árvore Determinam as principais funções e métodos dentro do código principal do produto.
Métricas de componentes fortemente conectados Determinam as funções e métodos que possuem maior número de conexões no produto.
Dificuldade de Manutenção Demonstram o quão difícil é lidar com o código do produto.
Uso de dados Definem a quantidade de dados trafegados pelo produto.
Estilo de Programação Avaliam o estilo de programação aplicado ao código.
Paralelismo e não determinismo Verificam a tratativa dos fluxos de código

Os estudos também foram categorizados conforme padrão trazido pela ISO/IEC 2001. Como forma de padronização, a ISO/IEC 2001 definiu o modelo de qualidade interna e externa de produto de software, sendo que a manutenibilidade está presente neste modelo.

Desta forma, dentro da manutenibilidade, podemos destacar os aspectos da Analisabilidade, Modificabilidade, Modularidade, Reusabilidade e Testabilidade, podendo então caracterizar os artigos, demonstrado na Figura 9 e Quadro 7.

Figura 9. Categoria [ISO/IEC 2001]
Percentual de cada categoria de produto conforme ISO/IEC 2001
Fonte: Os autores (2023)

Quadro 7 - Categoria [ISO/IEC 2001]

Categoria Descrição
Analisabilidade Grau de eficácia e eficiência com o qual é possível avaliar o impacto em um produto ou sistema de uma alteração pretendida em uma ou mais de suas peças, ou para diagnosticar um produto quanto a deficiências ou causas de falhas, ou para identificar peças para ser modificado.
Modificabilidade Grau em que um produto ou sistema pode ser modificado de forma eficaz e eficiente sem introduzir defeitos ou degradar a qualidade do produto existente.
Modularidade Grau em que um sistema ou programa de computador é composto de componentes discretos, de forma que uma alteração em um componente tenha impacto mínimo em outros componentes.
Reusabilidade Grau em que um ativo pode ser utilizado em mais de um sistema ou na construção de outros ativos.
Testabilidade Grau de eficácia e eficiência com o qual os critérios de teste podem ser estabelecidos para um sistema, produto ou componente e os testes podem ser realizados para determinar se esses critérios foram atendidos.

Para a perspectiva de Produto, podemos analisar que o principal destaque está no Tamanho e Acoplamento de código fonte, que está ligado a Analisabilidade e Modificabilidade do sistema. Com isso, pode-se entender que a criação de sistemas com códificações legíveis e pequenas que possuam baixo acoplamento tendem a ser mais fácieis de serem analisados e mantidos

Processo

Para a perspectiva de processo foi aplicada apenas a categorização evolutiva, encontrando as seguintes categorias:

A distribuição dos indicadores nesta categoria foi destacada na Figura 10.

Figura 10. Categoria [ISO/IEC 2001]
Percentual de cada categoria de processo
Fonte: Os autores (2023)

Pode-se destacar que a habitualidade com o ambiente de manutenção tende a ser mais considerada nas análises de Manutenção de Software do que na habilidade em programação. Isso se deve pela caracteristica do ambiente de Manutenção, que traz consigo uma dinamicidade única.

Desta forma, os processos que ocorrem devem estar intimamente ligados ao ambiente, de maneira que devam trazer melhorias e direcionamentos corretos quanto ao desenvolvimento.

Recursos

Para a perspectiva de recurso foi aplicada apenas a categorização evolutiva, encontrando as seguintes categorias:

A distribuição dos indicadores nesta categoria foi destacada na Figura 11.

Figura 11. Categoria [ISO/IEC 2001]
Percentual de cada categoria de recurso
Fonte: Os autores (2023)

Entretanto no caso da perspectiva de recurso, por mais que a quantidade de indicadores encontrados relacionados a categoria Esforço, que representa apenas 18% dos indicadores, seja baixa, esta categoria possui os indicadores mais citados para utilização (Esforço de Trabalho e Dificuldade de Desenvolvimento).

Desta forma, entende-se que mesmo que a categoria Esforço não possua uma quantidade considerável de indicadores, os mesmos devem ser considerados, pois, conforme a análise dos artigos levantados, são os indicadores mais amplamente utilizados.

Forma de Validação

Durante a análise dos artigos, foram avaliadas as formas de validação de cada métrica levantadas, pode-se constatar que a grande parte das métricas são validadas por Experimentação Técnica da Medição, ou seja, são aplicadas dentro de um ambiente controlado para análise, onde, por muitas vezes, acabam não refletindo o ambiente real de manutenção de software. Ainda é importante salientar a grande quantidade de métricas que não possuem validações de aplicablidade, o que, desta forma, inviabiliza sua utilização na prática.

Para facilitar a visualização, foi criada a tabela, onde foi destacada a forma de validação conforme menciona Ejiogu (1993), acrescida de uma sigla.

Quadro 8 - Formas de Validação x Siglas

Forma Sigla
Exame Teórico ET
Satisfação matemática da medição SM
Experimentação técnica da medição ETM
Exame dos resultados ER
Confirmação da consistência com a análise dimensional CC
Sem validação SV

Desta forma, foi possível demonstra a relação da quantidade de artigos por forma de validação, destacando a quantidade significativa em experimentação técnica da medição, conforme mostra a Figura 12.

Figura 12. Formas de Validação
Distribuição das formas de validação
Fonte: Os autores (2023)

Referências