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.

modelo de features, alguns relacionamentos parte-de exigem <strong>in</strong>formações extras. Por exemplo,<br />

no subdomínio GUI, um pa<strong>in</strong>el pode conter um ou mais botões. Mas onde estes botões<br />

estão localizados? Quais são seus tamanhos, cores e eventos associados? É possível <strong>in</strong>cluir<br />

atributos em modelos de features (CZARNECKI; HELSEN; EISENECKER, 2004b) para expressar<br />

estas <strong>in</strong>formações. Mas em termos do poder expressivo e facilidade de compreensão por parte<br />

dos especialistas, uma DSL seria mais adequada neste caso.<br />

D5. Tentar o cam<strong>in</strong>ho mais fácil primeiro: quanto mais próximo um subdomínio estiver<br />

do lado da configuração de rot<strong>in</strong>a do espectro de variabilidade, mais fácil será a implementação<br />

de uma l<strong>in</strong>guagem e transformações para o mesmo. Sempre que houver dúvida com relação à<br />

caracterização da variabilidade no subdomínio, o cam<strong>in</strong>ho mais fácil deve ser preferido, isto é,<br />

com um wizard ou configuração de features. Se estes se mostrarem <strong>in</strong>suficientes, então uma<br />

DSL mais complexa pode ser desenvolvida.<br />

A saída desta atividade é a caracterização do tipo de variabilidade <strong>in</strong>erente a cada<br />

subdomínio. Mais importante, começa-se a identificar quais subdomínios irão requerer uma<br />

DSL dedicada.<br />

Atividade ID.2. Def<strong>in</strong>ição das DSLs e do suporte ferramental (top-down)<br />

Papéis: implementador do domínio, Especialista do domínio<br />

Entradas: PT.3.Validado. <strong>Model</strong>agem do domínio, PT.4.Validado. Candidatos<br />

a subdomínio e PT.5. Histórico de decisões sobre <strong>in</strong>clusão/exclusão de subdomínios,<br />

PT.9.Avaliado. Projeto do domínio, PT.10. Subdomínios caracterizados<br />

Saídas: PT.11.Inicial. L<strong>in</strong>guagens específicas de domínio, PT.12.Inicial. Suporte<br />

ferramental para DSLs<br />

Descrição: dependendo do tipo de variabilidade para cada subdomínio, a DSL associada<br />

será mais ou menos complexa. Em casos de variabilidade mais simples, baseada em features, a<br />

DSL pode ser composta por símbolos que representam features <strong>in</strong>dividuais, para <strong>in</strong>dicar sua<br />

presença ou ausência. Czarnecki, Helsen e Eisenecker (2004a) propõem um método para<br />

derivar uma gramática livre de contexto para um modelo de features. Este método pode ser<br />

utilizado para criar uma DSL capaz de descrever todos os tipos de variabilidade característica a<br />

um modelo de features. Um gerador de parsers ou um framework de DSLs pode ser utilizado<br />

para criar o suporte à l<strong>in</strong>guagem mais facilmente, supr<strong>in</strong>do a necessidade de ferramentas.<br />

Em casos de variabilidade mais complexa, a DSL deve def<strong>in</strong>ir quais conceitos podem ser<br />

utilizados, como eles se relacionam entre si, e possíveis restrições que possam existir. Isto pode<br />

149

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

Saved successfully!

Ooh no, something went wrong!