A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
118<br />
de produtos (WEISS et al., 2008; VÖLTER; GROHER, 2007; BOTTERWECK; O’BRIEN; THIEL,<br />
2007; ARBOLEDA; CASALLAS; ROYER, 2007; TRASK et al., 2006; TOLVANEN; KELLY, 2005;<br />
CZARNECKI; HELSEN; EISENECKER, 2004b), e não na tarefa de produzir uma arquitetura de<br />
domínio que é adequada para o MDD, ou seja, que contemple elementos capazes de <strong>in</strong>tegrar<br />
DSLs, transformações e geradores de código.<br />
Além disso, a maioria destas abordagens, como as descritas por Almeida et al. (2007b),<br />
Keepence e Mannion (1999), Lee e Kang (2004), baseia-se na identificação da variabilidade<br />
somente em termos de features. Como já discutido anteriormente, há outros tipos de variação,<br />
como aquelas presentes em modelos entidade-relacionamento, por exemplo (BARTHOLDT;<br />
OBERHAUSER; RYTINA, 2008), que são mais complexas do que é possível capturar em um<br />
modelo de features (RABISER; GRÜNBACHER; DHUNGANA, 2007), sendo necessária uma DSL<br />
específica para representar a variabilidade de modo adequado ao MDD.<br />
6.1 Objetivos do projeto de domínio<br />
Existem conceitos relacionados ao MDD que devem ser considerados durante o projeto do<br />
domínio, especialmente durante a def<strong>in</strong>ição da arquitetura do domínio. Além da variabilidade<br />
mais complexa discutida anteriormente, nesta abordagem a arquitetura e seus componentes<br />
contam com a existência de DSLs e transformações, que por sua vez devem ser capazes de<br />
produzir artefatos de implementação voltados àquela arquitetura específica.<br />
A fase de projeto do domínio tem os segu<strong>in</strong>tes objetivos:<br />
• Identificar as diretrizes arquiteturais: o projeto arquitetural deve ser direcionado pelos<br />
objetivos de negócio e requisitos mais importantes, considerando-se o ponto de vista<br />
de diferentes stakeholders. Estes são chamados de diretrizes arquiteturais (BASS;<br />
CLEMENTS; KAZMAN, 2003), e são responsáveis por “moldar” a arquitetura de forma a<br />
atender a todos os requisitos da melhor forma possível. Nos contextos de reutilização<br />
e MDD, as diretrizes devem <strong>in</strong>cluir, obrigatoriamente, as variabilidades em forma de<br />
features e DSLs, e a existência de artefatos do MDD, como DSLs e transformações de<br />
software;<br />
• Selecionar/def<strong>in</strong>ir táticas e padrões: o projeto arquitetural deve cobrir as diretrizes<br />
arquiteturais, em forma de táticas e padrões que contemplem soluções para cada requisito.<br />
Um padrão consiste em uma solução comprovadamente bem sucedida para determ<strong>in</strong>ados<br />
tipos de problema, com um contexto bem def<strong>in</strong>ido. Por trás de um padrão existem