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

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

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

Saved successfully!

Ooh no, something went wrong!