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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

eutilizar também o código a ele associado. No MDD, isto é mais facilmente alcançado,<br />

pois o código pode ser automaticamente re-gerado para o novo contexto;<br />

• Verificações e otimizações: os modelos oferecem mais munição para verificadores<br />

semânticos e otimizações automáticas específicas de domínio poderem ser executados.<br />

Isto pode reduzir a ocorrência de erros semânticos e prover implementações mais<br />

eficientes;<br />

• Corretude: além do fato de geradores não <strong>in</strong>troduzirem erros acidentais, como erros de<br />

digitação, geradores permitem que a identificação de erros conceituais aconteça em um<br />

nível mais alto de abstração.<br />

Em resumo, as vantagens do MDD derivam da capacidade de evitar que o desenvolvedor<br />

precise executar as tarefas repetitivas necessárias para a transformação de modelos para o código<br />

f<strong>in</strong>al executável. Isto é alcançado por meio da automação dessas transformações. O tempo<br />

gasto nessas tarefas, que no desenvolvimento convencional (não orientado a modelos) <strong>in</strong>ibe a<br />

execução do ciclo completo dos requisitos aos testes, é significativamente reduzido, fazendo<br />

com que mesmo atividades de urgência, como correção de erros, possam ser executadas sem<br />

produzir <strong>in</strong>consistência com os modelos, mantendo-os sempre atualizados.<br />

Entre as desvantagens causadas pelo MDD, alguns autores, como Ambler (2003), Thomas<br />

(2004), citam as segu<strong>in</strong>tes:<br />

• Rigidez: o MDD causa maior rigidez no software produzido, uma vez que grande parte<br />

do código é gerado e fica além do alcance do desenvolvedor;<br />

• Complexidade: os artefatos necessários para uma abordagem baseada em modelos,<br />

como por exemplo ferramentas de modelagem, transformações e geradores de<br />

código, <strong>in</strong>troduzem complexidade adicional ao processo, pois tratam-se de artefatos<br />

<strong>in</strong>erentemente mais difíceis de construir e manter;<br />

• Desempenho: apesar de algumas otimizações poderem ser realizadas em nível mais alto<br />

de abstração, a regra geral é que geradores acabam <strong>in</strong>clu<strong>in</strong>do muito código desnecessário<br />

e, portanto, o resultado pode não apresentar desempenho ótimo, quando comparado com<br />

código escrito à mão;<br />

• Curva de aprendizado: o desenvolvimento dos artefatos específicos do MDD exigem<br />

profissionais com habilidades na construção de l<strong>in</strong>guagens, ferramentas de modelagem,<br />

transformações e geradores de código. O aprendizado destas técnicas, apesar de não ser<br />

extremamente difícil, requer um tre<strong>in</strong>amento dedicado; e<br />

43

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

Saved successfully!

Ooh no, something went wrong!