15.04.2013 Views

A Model-Driven Software Reuse Approach (in portuguese)

A Model-Driven Software Reuse Approach (in portuguese)

A Model-Driven Software Reuse Approach (in portuguese)

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

176<br />

uma medida <strong>in</strong>stantânea como uma previsão da manutenibilidade com o tempo. Esforços<br />

para medir e rastrear a manutenibilidade têm por objetivo reduzir ou reverter a tendência de<br />

degradação de <strong>in</strong>tegridade de um sistema, e <strong>in</strong>dicar quando pode ser mais barato ou menos<br />

arriscado reconstruir do que modificar (VANDOREN, 1997). No contexto da engenharia de<br />

domínio, ela é um <strong>in</strong>dicador importante da reusabilidade de um artefato (MASCENA; ALMEIDA;<br />

MEIRA, 2005), uma vez que um domínio está constantemente em evolução, com novas features<br />

ou produtos sendo desenvolvidos (ALMEIDA et al., 2007a). O Índice de Manutenibilidade<br />

(IM) busca medir a manutenibilidade de um módulo, sendo def<strong>in</strong>ido da segu<strong>in</strong>te maneira<br />

(VANDOREN, 1997):<br />

IM = 171 − 5.2 ∗ ln(aveV ) − 0.23 ∗ aveV (g ′ ) − 16.2 ∗ ln(aveLOC) + 50 ∗ s<strong>in</strong>( 2.4 ∗ perCM)<br />

onde: aveV = média do volume Halstead V por módulo, aveV(g’) = média da complexidade<br />

ciclomática estendida por módulo, aveLOC = média de l<strong>in</strong>has de código por módulo, e perCM<br />

= média da porcentagem de l<strong>in</strong>has de comentário por módulo.<br />

A complexidade ciclomática é discutida na métrica M7. O volume Halstead V de um<br />

módulo é calculado da segu<strong>in</strong>te maneira:<br />

V = N ∗ log 2 n<br />

onde N = número total de operadores + número total de operandos do módulo e n = número<br />

total de operadores dist<strong>in</strong>tos + número total de operandos dist<strong>in</strong>tos do módulo.<br />

Segundo esta métrica, módulos com IM menor do que 65 são difíceis de serem mantidos,<br />

módulos entre 65 e 85 possuem manutenibilidade razoável e módulos com IM maior do que 85<br />

possuem boa manutenibilidade.<br />

Esta métrica é normalmente utilizada em artefatos de código-fonte, mas também pode<br />

ser aplicada a geradores de código, uma vez que os mesmos também possuem operadores e<br />

operandos. Geradores baseados em templates, que são um dos focos desta abordagem, possuem<br />

código embutido e marcações especiais que representam operações simples, como condições e<br />

laços. As segu<strong>in</strong>tes regras são utilizadas para cálculo do volume Halstead V de um gerador<br />

baseado em template:<br />

• Variáveis, trechos de código contínuo e constantes são consideradas operandos;<br />

• Marcações responsáveis por uma consulta, como uma seleção de elementos de um<br />

modelo, ou impressão de um determ<strong>in</strong>ado valor, são consideradas operadores;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!