• Nenhum resultado encontrado

As métricas de software que surgiram por volta da década de 70, foram definidas para se tornarem um método de quantificação de atributos em processos, produtos e projetos de software. Segundo Daskalantonakis (1992), métrica pode ser entendida como um valor aplicado a um atributo de um produto de software, deste modo, tais valores podem ser comparados entre si com padrões aplicáveis em organizações. Esta seção não pretende ser uma revisão exaustiva sobre o tema, dado que, o objetivo seria esclarecer quais as métricas são tidas como as mais citadas durante a elaboração desta tese.

Métricas podem ser divididas em duas principais épocas: antes de 1992 onde o foco principal eram medidas de tamanho e complexidade (MCCABE, 1976) e, Halstead Software Science Metrics (HALSTEAD et al., 1977), largamente conhecidas e estudadas por vários anos. Medidas de tamanho como Linhas de Código (LOC) comumente referenciadas tem sido utilizadas desde o final da década de 60, conforme (FENTON; NEIL, 2000), e, McCabe e Halstead no final da década de 70. Tais métricas foram estudadas dos anos 70 ao início dos ano 90, quando sugiram as métricas orientadas a objetos (OO) propostas por (CHIDAMBER; KEMERER, 1994) e (LI; HENRY, 1993).

Devido a sua aplicação em uma larga variedade de aplicações e experimentos relacio- nados a código-fonte de forma geral, possuem um papel importante na predição de falhas, complexidade de testes, atividades de refatoramento, dentre outros. Com o objetivo de se aperfeiçoar as diferentes necessidades de medidas, mais e mais métricas são elaboradas, estudadas e validadas através dos anos, com novas métricas sendo propostas de forma constante.

Considerando o ritmo na elaboração de novas métricas de software juntamente com o corpo de pesquisa já produzido, torna-se difícil para pesquisadores e profissionais acom-

podemos citar os seguintes trabalhos em termos de análise do estado da pesquisa recente que visam auxiliar no mapeamento e na tomada de decisão, sendo eles:

• O levantamento elaborado por (NUÑEZ-VARELA et al., 2017), analisou 226 estudos

publicados entre os anos de 2010 a 2015, encontrando aproximadamente 300 métri- cas.

• A investigação apresentada por (SANTOS et al., 2016), onde existem por volta de 79 trabalhos relacionados a qualidade interna de software orientado a objetos, ou seja, passível de serem medidos de forma estática. Neste sentido, foram encontradas 265 métricas, porém, somente 15 métricas foram consideradas como as principais utilizadas para avaliação de qualidade interna;

• A catalogação e categorização elaborada por (SARAIVA et al., 2015), constando por

volta de 600 métricas permitindo facilitar a seleção e a tomada de decisão por parte de acadêmicos e profissionais da indústria;

• A análise de (TIMÓTEO et al., 2008) sobre o estado da arte em métricas de software, verificando sua evolução na área e informando as métricas mais referenciadas, sendo estas candidatas para o mapeamento em atributos de qualidade de código.

Analisando os quatro trabalhos citados, procuramos identificar quais as métricas foram mais estudadas ou recomendadas em cada trabalho.

Observando o trabalho elaborado por (NUÑEZ-VARELA et al., 2017), onde podemos destacar a existências das seis métricas propostas por (CHIDAMBER; KEMERER, 1994), a Tabela 19, destaca um total de dez métricas OO com um maior número de ocorrências.

Tabela 19 – Métricas com mais alto número de ocorrências (NUÑEZ-VARELA et al., 2017)

Métrica Ocorrências

Weighted Methods per Class (WMC) 89 Coupling Between Objects (CBO) 89 Lack of Cohesion in Methods (LCOM) 86 Depth of Inheritance Tree (DIT) 81

Lines of Code (LOC) 79

Number of Children (NOC) 77

Response for a Class (RFC) 72

Number of Methods (NOM) 57

Cyclomatic Complexity (V(G)) 55 Number of Attributes (NOA) 43

Para o trabalho elaborado por (SANTOS et al., 2016) as métricas com maior número de citações são destacadas na a Tabela 20, onde também estão inclusas as seis métricas citadas no trabalho anterior.

Tabela 20 – Métricas com mais alto número de citações (SANTOS et al., 2016)

Métrica Citações

Lack of Cohesion in Methods (LCOM) 40 Depth of Inheritance Tree (DIT) 37

Response for a Class (RFC) 33

Coupling Between Objects (CBO) 32

Number of Children (NOC) 30

Weighted Methods per Class (WMC) 28

Lines of Code (LOC) 20

Number of Methods (NOM) 18

Cyclomatic Complexity (V(G)) 13

Number of Attributes (NOA) 11

Lack of Cohesion in Methods-2 (LCOM2) 10 Lack of Cohesion in Methods-4 (LCOM4) 10

Loose Class Cohesion (LCC) 10

Tight Class Cohesion (TCC) 10

Fan-out (FOUT) 10

Conforme o trabalho elaborado por (SARAIVA et al., 2015), este indica as seguintes

métricas mais utilizadas em sua revisão: • Linhas de Código (LoC);

• e Métricas de (CHIDAMBER; KEMERER, 1994).

Como resultado do trabalho proposto por (TIMÓTEO et al., 2008), as métricas mais

recomendadas foram:

• Linhas de Código (LoC) para medir documentação;

• Complexidade ciclomática, para medir complexidade e manutenibilidade;

• Métricas de (CHIDAMBER; KEMERER, 1994) para medir reusabilidade, acoplamento e coesão;

• e por fim, (LORENZ; KIDD, 1994) para calcular modularidade.

A partir de 2000, foram identificados pouco trabalhos relacionados a criação de novas métricas, contudo, métricas possuem um papel crucial em modelos contínuos de avalia- ção de software, principalmente com a adoção de metodologias ágeis 1. Neste contexto,

avaliação de qualidade de software, e que, coletar métricas sem uma justificativa de inter- pretação adequada, tornam os números meramente dados sem um valor efetivo, podendo ainda a levar a tomadas de decisão equivocadas.

Ainda conforme (NUÑEZ-VARELA et al., 2017) as métricas OO são consideradas como essencial para o estudo de medições, trazendo consigo uma evolução para os paradigmas orientado a aspectos e orientado a características.

Conforme a evolução da pesquisa nessa tema, esta tese identificou que métricas associ- adas ao tamanho da aplicação, complexidade e acoplamento foram as mais utilizadas em técnicas de predição de manutenção. Embora haja um alto volume de métricas propostas, os trabalhos apresentaram alguns questionamentos que restringem o uso de métricas de forma geral, sendo eles:

• Dificuldade em se obter ferramentas que extraiam tais métricas; • Problemas de validação empírica e teórica;

• Métricas não possuem um processo claro de definição; • Métricas com o mesmo propósito;

• Definições de métricas advindas de outras métricas com composições téóricas não correlacionadas.

Na Seção 3.3, serão discutidos modelos de avaliação que permitem o uso de métri- cas discutidos nesta Seção, deste modo, é possível direcionar o mapeamento de métricas simples para um formato em mais alto nível.

Documentos relacionados