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.

de classes dentro deste módulo que dependem de classes fora deste módulo.<br />

A métrica de <strong>in</strong>stabilidade varia entre 0 e 1, onde I próximo a 0 <strong>in</strong>dica um módulo estável<br />

e I próximo a 1 <strong>in</strong>dica um módulo <strong>in</strong>stável. Como não existem muitos dados prévios para<br />

serem utilizados como base para esta medida, neste estudo, considerou-se que módulos com<br />

<strong>in</strong>stabilidade < 0,5 são considerados mais estáveis do que a média, a exemplo do estudo de<br />

Almeida et al. (2007a).<br />

Esta métrica pode ser utilizada tanto em artefatos de código-fonte como em artefatos do<br />

MDD, como DSLs, modelos específicos de domínio, transformações e geradores, já que se<br />

baseia no conceito de dependências. Porém, enquanto existem ferramentas automatizadas para<br />

extrair tais valores diretamente do código-fonte, a coleta com relação aos demais artefatos deve<br />

ser manual.<br />

M7 Complexidade ciclomática. Um aspecto crítico na Engenharia de <strong>Software</strong> se relaciona<br />

à separação de <strong>in</strong>teresses e à modularização de um sistema de software com o objetivo de<br />

se obter módulos bem def<strong>in</strong>idos, testáveis e de fácil manutenção. Durante a década de 70,<br />

McCabe (1976) desenvolveu uma técnica matemática que provê uma base quantitativa para<br />

modularização e identificação de módulos de software difíceis de testar ou manter. Nesta<br />

técnica, uma medida de complexidade é apresentada, tendo como objetivo medir e controlar o<br />

número de cam<strong>in</strong>hos em um programa. No contexto da reutilização, a complexidade tem papel<br />

fundamental, pois artefatos mais complexos possuem menor facilidade de serem reutilizados<br />

(MASCENA, 2007; POULIN, 1994). A complexidade ciclomática é calculada a partir de um grafo<br />

conectado que representa o fluxo de execução de um módulo, da segu<strong>in</strong>te maneira:<br />

CC(G) = E − N + p<br />

onde E = número de arcos de um grafo, N = número de nós de um grafo e p = número de<br />

componentes conectados.<br />

Para esta métrica, valores entre 1 e 10 <strong>in</strong>dicam que se trata de um módulo simples, sem<br />

muito risco. Valores entre 11 e 20 representam módulos moderadamente complexos. Valores<br />

entre 21 e 50 representam alta complexidade, e valores maiores que 50 representam módulos<br />

completamente não-testáveis e com alto risco.<br />

Por ser aplicável a grafos, esta métrica pode ser utilizada diretamente em modelos visuais<br />

do tipo grafo. <strong>Model</strong>os textuais também podem ser transformados em grafos, analisando-se o<br />

metamodelo correspondente.<br />

M8. Índice de Manutenibilidade. A manutenibilidade é um atributo desejável tanto como<br />

175

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

Saved successfully!

Ooh no, something went wrong!