Extracting relative thresholds for source code metrics

dc.creatorPaloma Maira de Oliveira
dc.date.accessioned2019-08-10T03:07:21Z
dc.date.accessioned2025-09-08T23:40:10Z
dc.date.available2019-08-10T03:07:21Z
dc.date.issued2015-12-16
dc.description.abstractMeaningful thresholds are needed for promoting software metrics as an effective instrument to measure the internal quality of systems. To address this challenge, we propose in this thesis the concept of relative thresholds for evaluating metrics data following heavy-tailed distributions. The proposed concept assumes that metric thresholds should be followed by most entities, but that it is also natural to have entities in the 'long-tail' that do not follow the defined limits. We describe an empirical method for deriving relative thresholds from a set of systems and apply this method to the well-known Qualitas Corpus. We compare the proposed thresholds with thresholds extracted according to a method largely used by the software industry. We also evaluate our method under different contexts and using the history of versions of five systems. Finally, we validate our method with software practitioners. Overall, we found that good quality systems as cited by experts follow the thresholds.
dc.identifier.urihttps://hdl.handle.net/1843/ESBF-AAFJ7Z
dc.languageInglês
dc.publisherUniversidade Federal de Minas Gerais
dc.rightsAcesso Aberto
dc.subjectComputação
dc.subjectEngenharia de software
dc.subjectSoftware Controle de qualidade
dc.subject.otherDistribuição de cauda pesada
dc.subject.otherMétricas de Código Fonte
dc.subject.otherValores de Referência
dc.subject.otherQualidade de Software
dc.titleExtracting relative thresholds for source code metrics
dc.typeTese de doutorado
local.contributor.advisor1Marco Tulio de Oliveira Valente
local.contributor.referee1Dalton Dario Serey Guerrero
local.contributor.referee1Eduardo Magno Lages Figueiredo
local.contributor.referee1Eduardo Santana de Almeida
local.contributor.referee1Kecia Aline Marques Ferreira
local.contributor.referee1Mariza Andrade da Silva Bigonha
local.description.resumoDiversas métricas de código fonte já foram propostas para aferir a qualidade interna de sistemas orientados a objetos. No entanto, tais métricas são pouco utilizadas na prática. Um dos motivos é a falta de valores de referência confiáveis. Assim, nesta proposta de tese propõe-se o conceito de valores de referência relativos para avaliar métricas que estão em conformidade com distribuições de cauda-pesada (heavy-tailed). Os valores de referência propostos são ditos relativos, pois eles devem ser seguidos pela maioria das entidades de código fonte, contudo tolera-se um número de entidades acima do limite superior definido. Foi proposto um método empírico para extração de valores de referência relativos a partir de um repositório de sistemas. O método proposto foi aplicado usando o repositório Qualitas Corpus. Além disso, nós executamos uma análise extensiva dos valores de referência: (i) inicialmente, nós aplicamos os valores de referência relativo em uma amostra de 308 repositórios populares disponíveis no GitHub. Nós concluímos que a maioria dos repositórios seguem os valores de referência e que sistemas que não seguem os valores de referência, são geralmente aplicação Android, as quais possuem poucas classes com tendência a God Class; (ii) nós comparamos nossos valores de referência relativo com valores de referência extraídos usando o método SIG, um método amplamente usando na indústria de software. Com esse estudo, nós concluímos que sistemas que não seguem os valores de referência relativo, são sistemas considerados de alto risco de acordo com o SIG método; (iii) nós avaliamos a influência do contexto em nossos resultados e nós concluímos que o impacto da mudança de contexto nos valores de referência relativo é limitado; (iv) nós executamos uma análise histórica para verificar se os valores de referência relativos são válidos em diferentes versões de um sistema. Nos concluímos que nossos valores de referência capturam práticas de software duradoura; (v) nós analisamos se classes que não seguem os valores de referência são importante em termos de manutenção. Nós concluímos que tais classes são importantes, uma vez que elas são frequentemente modificadas; (vi) nós investigamos se existe relação entre densidade bad smells em um sistema e sua aderência ao valores de referência relativos. Nós não encontramos evidências que sistemas que não seguem os valores de referência possuam mais bad smells; (vii) finalmente, nós reportamos os resultados de um estudo realizado para validar nosso método com desenvolvedores. Nós concluímos que sistemas com boa qualidade seguem os valores de referência propostos.
local.publisher.initialsUFMG

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
palomamaira.pdf
Tamanho:
2.23 MB
Formato:
Adobe Portable Document Format