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.

• Sub-features que representam listas de itens podem ser representados como<br />

compartimentos em blocos (como os métodos e atributos da UML, por exemplo).<br />

Sub-atividade ID.2.4. Def<strong>in</strong>ição da <strong>in</strong>tegração <strong>in</strong>ter-DSL<br />

O quarto passo lida com a <strong>in</strong>tegração entre diferentes DSLs, o que é um problema que<br />

surge quando se lida com múltiplos subdomínios. A <strong>in</strong>tegração <strong>in</strong>ter-DSL deve ser gerenciada<br />

de forma que o desenvolvedor possa especificar modelos em ambas as l<strong>in</strong>guagens utilizando<br />

conceitos que se relacionam. Por exemplo, no domínio web de autoria de conteúdo, uma<br />

pág<strong>in</strong>a de formulário (do subdomínio de navegação) pode se referir a um tipo de documento<br />

(do subdomínio de autoria).<br />

Referências baseadas em nome ou pontes entre modelos (WARMER; KLEPPE, 2006) são<br />

mecanismos simples que resolvem estes problemas. Referências baseadas em nome consistem<br />

em um simples atributo do tipo str<strong>in</strong>g, na DSL que contém a referência, que aponta para<br />

o nome de um elemento na DSL sendo referenciada. As checagens de tipo e <strong>in</strong>tegridade<br />

referencial devem ser feitas manualmente. Pontes entre modelos não são muito mais poderosas,<br />

consist<strong>in</strong>do na criação de um elemento, na DSL que contém a referência, que é uma cópia exata<br />

de um elemento na DSL sendo referenciada. Esta técnica propicia a checagem de tipos, mas a<br />

checagem de <strong>in</strong>tegridade referencial a<strong>in</strong>da precisa ser realizada manualmente.<br />

Caso necessário, uma solução mais poderosa é apresentada por Hessellund, Czarnecki e<br />

Wasowski (2007), que propõem o uso de regras lógicas para estabelecer relações <strong>in</strong>ter-DSL.<br />

Desta forma, consultas de mais alto nível podem ser realizadas, facilitando a checagem da<br />

consistência.<br />

Sub-atividade ID.2.5. Construção da ferramenta de modelagem específica de domínio<br />

Uma vez que as s<strong>in</strong>taxes abstratas e concretas estejam def<strong>in</strong>idas, uma ferramenta de<br />

modelagem específica para a DSL é construída. Frameworks de DSLs, como GMF ou<br />

openArchitectureWare, entre outros, são a tecnologia mais apropriada para a implementação<br />

da ferramenta, uma vez que eles exigem pouco conhecimento na construção de l<strong>in</strong>guagens para<br />

se alcançar resultados práticos rapidamente. Porém, DSLs mais complexas podem exigir uma<br />

participação mais ativa de um especialista em l<strong>in</strong>guagens.<br />

Esta última sub-atividade também <strong>in</strong>clui a def<strong>in</strong>ição de validações para capturar erros<br />

semânticos durante a modelagem, orientando o desenvolvedor na criação de diagramas ou<br />

programas segundo a DSL em questão (VÖLTER, 2008). Por exemplo, uma validação semântica<br />

153

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

Saved successfully!

Ooh no, something went wrong!