A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
172<br />
Existem diferentes métricas voltadas à reutilização 1 , que focam em aspectos econômicos e<br />
estruturais de artefatos de software. No contexto desta questão destacam-se apenas os aspectos<br />
estruturais, pois esta tese trata de uma abordagem voltada para a engenharia para reutilização.<br />
A literatura apresenta algumas métricas simples para medir a reutilização no nível estrutural dos<br />
artefatos, mas nenhuma delas é capaz de oferecer uma imagem completa do nível de reutilização<br />
em um sistema (MASCENA; ALMEIDA; MEIRA, 2005). Assim, faz-se necessária uma análise mais<br />
cuidadosa, comb<strong>in</strong>ando-se diferentes métricas que avaliem os aspectos importantes para este<br />
estudo específico.<br />
Assim, as segu<strong>in</strong>tes métricas foram def<strong>in</strong>idas para a questão Q1:<br />
M1. Porcentagem de reutilização (RP - <strong>Reuse</strong> Percent). Esta é a métrica mais básica de<br />
reutilização, sendo def<strong>in</strong>ida como a razão entre o número de l<strong>in</strong>has de código reutilizadas e<br />
o número total de l<strong>in</strong>has de código (POULIN; CARUSO, 1993). Um cuidado especial deve ser<br />
tomado com esta métrica, pois pode levar a conclusões <strong>in</strong>corretas. Por exemplo, caso seja<br />
reutilizado um único método, pequeno, de uma classe com milhares de l<strong>in</strong>has de código, esta<br />
porcentagem seria alta mas não refletiria a realidade de que apenas uma porção da classe<br />
foi reutilizada. A coleta desta métrica envolve a identificação dos módulos reutilizados e a<br />
contagem das l<strong>in</strong>has de código dos módulos reutilizados e não-reutilizados.<br />
M2. Razão de reutilização (RR - <strong>Reuse</strong> Ratio). Esta métrica é calculada da mesma forma<br />
que a M1, porém também considerando-se a reutilização do tipo caixa-branca (DEVANBU et al.,<br />
1996): artefatos modificados até um certo nível são considerados como reutilizados. Devanbu<br />
et al. (1996) sugerem o valor de 25% como margem de tolerância: artefatos que tiveram mais<br />
de 25% de seu código modificado não são considerados como reutilizados.<br />
M3. Porcentagem de reutilização não desejada. Conforme destacado na métrica M1, a<br />
reutilização de grandes trechos de código que não são efetivamente utilizados pode distorcer<br />
a métrica de porcentagem de reutilização. O uso desta métrica permite determ<strong>in</strong>ar se este<br />
efeito está ocorrendo. Além disso, reutilizar código que não é efetivamente aproveitado pode<br />
ser prejudicial, agregando <strong>in</strong>formações descartáveis que podem confundir a equipe durante a<br />
manutenção do software. Portanto, esta métrica também ajuda a caracterizar a reutilização. Esta<br />
métrica consiste no cálculo da porcentagem, para cada artefato reutilizado, das l<strong>in</strong>has de código<br />
que não são efetivamente utilizadas em relação ao número total de l<strong>in</strong>has de código reutilizadas.<br />
Para a coleta desta métrica pode-se utilizar funcionalidades das IDEs que permitem determ<strong>in</strong>ar<br />
quais métodos não são chamados, por exemplo.<br />
M4. Porcentagem de reutilização gerada. Esta métrica calcula a porcentagem de artefatos<br />
1 Uma revisão sobre métricas para MDD e reutilização é apresentada no Capítulo 9.