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.

Weis, Ulbrich e Geihs (2003) apresentam uma proposta de um mecanismo para modelagem,<br />

denom<strong>in</strong>ado Kase, e uma l<strong>in</strong>guagem para transformação de modelos, denom<strong>in</strong>ada Kafka. Eles<br />

apresentam os requisitos a serem atendidos por transformações no desenvolvimento orientado<br />

a modelos. O primeiro deles é que as transformações devem ser automáticas, pois de outra<br />

forma os desenvolvedores considerariam a criação de modelos uma tarefa improdutiva. Outro<br />

requisito é que as transformações não podem ser universais e genéricas, mas sim específicas para<br />

cada caso, podendo ser adaptadas facilmente e reutilizadas. F<strong>in</strong>almente, os autores ressaltam<br />

a necessidade de se utilizar l<strong>in</strong>guagens visuais para a construção das transformações, uma<br />

vez que o uso de l<strong>in</strong>guagens textuais, tais como l<strong>in</strong>guagens de programação e l<strong>in</strong>guagens de<br />

transformação baseadas em XML, possuem uma distância conceitual em relação aos modelos,<br />

dificultando a tarefa de construção de transformadores. As transformações representadas na<br />

l<strong>in</strong>guagem Kafka são baseadas em regras de mapeamento, facilitando a chamada engenharia<br />

“ida e volta”, ou seja, modelo para código e código para modelo.<br />

A abordagem desta tese também busca automatizar completamente as transformações, de<br />

modo que não é necessário trabalho manual, o que poderia <strong>in</strong>ibir o uso dos transformadores.<br />

Outro aspecto similar é que tanto no trabalho de Weis, Ulbrich e Geihs (2003) como nesta<br />

tese, as transformações devem ser específicas para cada caso. A idéia aqui defendida é que<br />

os transformadores devem ser customizados de acordo com os requisitos e com o contexto do<br />

domínio sendo construído, da mesma forma que no mecanismo Kase.<br />

Existem dois pontos, no entanto, nos quais a presente abordagem difere do Kase:<br />

1. Esta abordagem não está restrita a l<strong>in</strong>guagens visuais, por entender que há subdomínios<br />

onde o nível de abstração da especificação deve ser mais baixo, aproximando-se das<br />

características e poder expressivo de uma l<strong>in</strong>guagem textual; e<br />

2. Nesta tese, as transformações não se baseiam somente em regras de mapeamento, por dois<br />

motivos: (i) transformadores baseados em templates são mais simples de se construir e<br />

manter; e (ii) a necessidade da engenharia “ida e volta” é reduzida com o uso de uma<br />

implementação de referência e um processo de migração de código. Apesar de mais<br />

trabalhoso, esse cam<strong>in</strong>ho foi preferido por ser mais prático.<br />

Czarnecki et al. (2005) discutem a comb<strong>in</strong>ação das idéias de l<strong>in</strong>has de produto (Seção 2.1.2)<br />

e desenvolvimento orientado a modelos, ressaltando que essas duas l<strong>in</strong>has são complementares.<br />

Neste sentido, os autores propõem a comb<strong>in</strong>ação da modelagem de características, ou features,<br />

com o uso de templates de características, responsáveis pelo mapeamento automático das<br />

características para modelos que as implementam, com base em transformações de modelos.<br />

213

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

Saved successfully!

Ooh no, something went wrong!