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.

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.

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

Saved successfully!

Ooh no, something went wrong!