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.

de projeto arquitetural (ANASTASOPOULOS; GACEK, 2001; MUTHIG; PATZKE, 2003; RIBEIRO;<br />

MATOS; BORBA, 2008; SVANHBERG; GURP; BOSCH, 2002). Porém, estes não cobrem o aspecto<br />

de <strong>in</strong>tegração entre diferentes subdomínios. Para esta abordagem, foram selecionados alguns<br />

padrões que auxiliam na implementação das táticas específicas para variabilidade e <strong>in</strong>tegração<br />

entre subdomínios, apresentados mais adiante nesta seção.<br />

A escolha das táticas e padrões a serem utilizados é guiada por dois fatores: o requisito<br />

em si, explicitado pela diretriz arquitetural, e os efeitos colaterais que o emprego de uma tática<br />

ou padrão provoca nas demais diretrizes (BASS; CLEMENTS; KAZMAN, 2003). Caso não seja<br />

possível encontrar alguma tática e/ou padrão que sirva para um cenário específico, pode-se<br />

modificar ou adaptar táticas e padrões existentes, ou mesmo criar novos especialmente para<br />

este domínio. Estes passam então a fazer parte do catálogo da organização e podem ser<br />

reaproveitados em projetos futuros.<br />

Da mesma forma que as diretrizes arquiteturais, nesta abordagem são necessárias táticas<br />

e padrões para pelo menos três aspectos pr<strong>in</strong>cipais: variabilidade baseada em features,<br />

variabilidade baseada em DSLs e <strong>in</strong>tegração entre subdomínios. Alguns dos padrões<br />

identificados nesta tese são baseados nos trabalhos de Völter (2003), Völter e Bett<strong>in</strong> (2004),<br />

que são muito úteis para projetos de MDD, mas não são específicos para o projeto arquitetural<br />

ou para a engenharia de domínio, e portanto são acrescentadas discussões sobre como alguns<br />

desses padrões podem ser <strong>in</strong>corporados ao contexto de reutilização.<br />

Sub-atividade PD.3.1. Padrões arquiteturais para variabilidade baseada em features<br />

Existe uma série de padrões que podem ser utilizados para ajudar a tornar uma arquitetura<br />

de software específica de domínio preparada para os diferentes tipos de variabilidade baseada<br />

em features. Em particular, os padrões do GoF (GAMMA et al., 1995) podem facilitar<br />

a representação da variabilidade no projeto arquitetural, resolvendo alguns dos problemas<br />

relacionados à implementação das features (ALMEIDA et al., 2007b).<br />

No caso do desenvolvimento orientado a modelos, é necessário considerar também como<br />

os geradores de código são <strong>in</strong>tegrados com cada padrão, já que partes do software são<br />

automaticamente geradas e precisam <strong>in</strong>teragir com o restante do software.<br />

O cenário é o segu<strong>in</strong>te: um modelo de features descreve os pontos comuns e variáveis.<br />

Um gerador de código usa como entrada uma seleção de features/subfeatures que faz parte da<br />

aplicação gerada, e precisa produzir o código correspondente. Para cada tipo de feature, um ou<br />

mais padrões do GoF (GAMMA et al., 1995) é utilizado.<br />

125

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

Saved successfully!

Ooh no, something went wrong!