A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
60<br />
• Categorias de features e anotações: existem diversas categorias de features que<br />
estendem aquelas propostas orig<strong>in</strong>almente por Kang et al. (1990), <strong>in</strong>clu<strong>in</strong>do: features<br />
funcionais, arquiteturais, entre outras; e<br />
• Modularização: um diagrama de features pode conter um ou mais nós especiais, cada um<br />
representando um diagrama de features separado. Este mecanismo permite a quebra de<br />
diagramas grandes em diagramas menores, assim como a reutilização de partes comuns<br />
em diferentes locais.<br />
Existem diferentes notações propostas para a modelagem de features, com algumas<br />
diferenças em relação à notação orig<strong>in</strong>al proposta por Kang et al. (1990). Porém, uma<br />
característica desta técnica é que a notação é fixa, ou seja, pode não ser a forma mais <strong>in</strong>tuitiva<br />
para representar os conceitos de um domínio. Por este motivo, no MDD utiliza-se uma maneira<br />
mais flexível para a análise SCV, conforme descrito a seguir.<br />
3.1.2 SCV no desenvolvimento orientado a modelos<br />
Uma das formas para se realizar a análise SCV no desenvolvimento orientado a modelos<br />
envolve a utilização de l<strong>in</strong>guagens específicas de domínio (DSL - Doma<strong>in</strong>-Specific Language)<br />
para representação da variabilidade do domínio (VISSER, 2007). Uma DSL pode ser tão simples<br />
como um wizard, ou uma l<strong>in</strong>guagem completa, desenvolvida especialmente para representar a<br />
variabilidade (CZARNECKI, 2005).<br />
Uma DSL é uma l<strong>in</strong>guagem pequena, normalmente declarativa, focada em um domínio<br />
de problema em particular (DEURSEN; KLINT; VISSER, 2000). DSLs existem há um longo<br />
tempo. Mernik, Heer<strong>in</strong>g e Sloane (2005) citam os exemplos da l<strong>in</strong>guagem APT para controle<br />
numérico, que data de 1957-58, e da mais famosa BNF, ou Backus-Naur Form, l<strong>in</strong>guagem<br />
para especificação de gramáticas criada em 1959. Desde então, diversas l<strong>in</strong>guagens vêm sendo<br />
desenvolvidas e utilizadas, e a literatura nesta área é bastante rica (DEURSEN; KLINT; VISSER,<br />
2000; MERNIK; HEERING; SLOANE, 2005) 2 .<br />
Uma l<strong>in</strong>guagem específica de domínio pode ser textual (permit<strong>in</strong>do especificar programas)<br />
ou visual (permit<strong>in</strong>do especificar modelos ou diagramas), e normalmente possui três elementos:<br />
a s<strong>in</strong>taxe abstrata, a s<strong>in</strong>taxe concreta e a semântica.<br />
A s<strong>in</strong>taxe abstrata def<strong>in</strong>e os conceitos do domínio, e as relações e restrições que se<br />
aplicam a estes conceitos. Em l<strong>in</strong>guagens textuais, é representada por uma árvore (chamada<br />
2 Uma discussão mais aprofundada sobre DSLs e seu papel na reutilização é apresentada no Apêndice A.