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.

2.2.2.3 Abordagem Eclipse<br />

Figura 5: Funcionamento do MDR<br />

A abordagem liderada pela IBM é baseada na plataforma Eclipse. Uma das bases dessa<br />

abordagem é o EMF (Eclipse <strong>Model</strong><strong>in</strong>g Framework 6 ). O EMF permite a manipulação de<br />

modelos segundo seu correspondente metamodelo. O EMF segue um meta-metamodelo<br />

denom<strong>in</strong>ado Ecore, ao <strong>in</strong>vés do MOF, padrão estabelecido pelo OMG. O Ecore surgiu como<br />

uma implementação do MOF, mas evoluiu para uma forma mais eficiente, a partir da experiência<br />

obtida após alguns anos na construção de ferramentas (ECLIPSE, 2005).<br />

Pelo mesmo motivo de eficiência, o EMF não segue fielmente o padrão JMI, mais voltado<br />

para repositórios persistentes. O EMF utiliza um subconjunto de mapeamentos de metamodelo<br />

para Java otimizados para manipulação em memória (ECLIPSE, 2006), o que o torna, além de<br />

mais eficiente, mais simples de ser utilizado, porém menos abrangente do que o conjunto mais<br />

completo formado pela comb<strong>in</strong>ação JMI/MOF (MOORE et al., 2004).<br />

Além do metamodelo, existem outras duas diferenças pr<strong>in</strong>cipais entre o EMF e o MDR<br />

da Sun, conforme mostra a Figura 6. A primeira delas diz respeito à natureza de cada<br />

abordagem. Com a proposta de ser um repositório de metadados, o MDR oferece diferentes<br />

formas de armazenamento, tais como a representação em memória, banco de dados ou no<br />

sistema de arquivos, em estrutura de árvore B. Já o EMF tem foco na manipulação eficiente<br />

dos metamodelos, permit<strong>in</strong>do somente a representação em memória. Outra diferença é que,<br />

no MDR, somente as <strong>in</strong>terfaces de manipulação do metamodelo são geradas. O código que<br />

as implementa é um só para qualquer metamodelo. Estando embutido no MDR, esse código<br />

utiliza programação reflexiva para possibilitar o acesso às <strong>in</strong>formações do metamodelo. Já no<br />

6 <br />

49

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

Saved successfully!

Ooh no, something went wrong!