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.
ase em exemplos do código a ser gerado, com a diferença de que no Pulse-MDD ele é<br />
guiado pela identificação de padrões e critérios econômicos, enquanto nesta tese o processo<br />
está centrado nos diferentes tipos de variabilidade.<br />
A pr<strong>in</strong>cipal diferença desta tese com relação ao Pulse-MDD é que neste último a<br />
preocupação com o MDD começa somente na fase de projeto, enquanto nesta abordagem<br />
argumenta-se que ela deve começar antes, durante a análise, uma vez que os modelos de features<br />
possuem papel importante nesta def<strong>in</strong>ição, e normalmente precisam ser adaptados para refletir a<br />
existência dos artefatos MDD. Além disso, <strong>in</strong>iciando-se na análise, a preocupação com o MDD<br />
pode <strong>in</strong>cluir a identificação e divisão de subdomínios automatizáveis. Segundo defende-se nesta<br />
tese, reconhecer esta divisão natural do domínio é um requisito importante para possibilitar o<br />
uso do MDD em cenários práticos.<br />
Deelstra et al. (2003) discutem como uma abordagem para o desenvolvimento de l<strong>in</strong>has de<br />
produtos pode se beneficiar do desenvolvimento orientado a modelos. Os autores argumentam<br />
que o MDD pode levar a vários benefícios, e apresentam como ele pode ser utilizado para<br />
representação da variabilidade e derivação automática de produtos. O suporte à variabilidade<br />
com o MDD é através de modelos do domínio, a exemplo da abordagem desta tese. Porém,<br />
os autores passam diretamente da representação da variabilidade à derivação de produtos, sem<br />
entrar em detalhes sobre, por exemplo, a construção de uma arquitetura adequada para este<br />
cenário, como é o caso desta tese.<br />
O mesmo acontece com outros trabalhos encontrados na literatura. Muitas abordagens que<br />
comb<strong>in</strong>am o MDD com engenharia de domínio (ou l<strong>in</strong>has de produtos de software) possuem<br />
foco maior no estágio de derivação automática de produtos, dando pouca ou nenhuma ênfase ao<br />
projeto do domínio de acordo com os pr<strong>in</strong>cípios do MDD. Exemplos destas abordagens <strong>in</strong>cluem<br />
(WEISS et al., 2008; VÖLTER; GROHER, 2007; BOTTERWECK; O’BRIEN; THIEL, 2007; ARBOLEDA;<br />
CASALLAS; ROYER, 2007; TRASK et al., 2006; TOLVANEN; KELLY, 2005; CZARNECKI; HELSEN;<br />
EISENECKER, 2004b).<br />
Uma das exceções é o método Kobra (ANASTASOPOULOS; ATKINSON; MUTHIG, 2002).<br />
Orig<strong>in</strong>almente projetado para desenvolvimento de sistemas <strong>in</strong>dividuais, o Kobra se <strong>in</strong>tegra<br />
bem a um método voltado para l<strong>in</strong>has de produtos, como o Pulse-DSSA (ANASTASOPOULOS;<br />
ATKINSON; MUTHIG, 2002). O Kobra possui atividades específicas para o projeto arquitetural<br />
orientado a modelos. Os autores argumentam que dessa forma é possível obter <strong>in</strong>dependência<br />
de plataforma, pois o Kobra se baseia em modelos UML para especificação, realização e<br />
implementação de componentes de software no contexto de uma l<strong>in</strong>ha de produtos.<br />
Assim como a abordagem desta tese, o Kobra utiliza cenários para viabilizar a criação<br />
215