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.
120<br />
PD.4), de forma a identificar novos módulos e dar “forma” à arquitetura. Por fim, uma<br />
atividade avalia a arquitetura ou arquiteturas projetadas, caso sejam def<strong>in</strong>idas diferentes opções<br />
arquiteturais (Atividade PD.5).<br />
Estas atividades são detalhadas a seguir.<br />
Atividade PD.1. Escolha dos módulos a serem ref<strong>in</strong>ados<br />
Papéis: projetista do domínio<br />
Entradas: PT.3.Validado. <strong>Model</strong>agem do domínio, PT.4.Validado. Candidatos a<br />
subdomínio e PT.5. Histórico de decisões sobre <strong>in</strong>clusão/exclusão de subdomínios<br />
Saídas: PT.6. Módulos a serem ref<strong>in</strong>ados<br />
Descrição: o projeto arquitetural desta abordagem baseia-se no método ADD<br />
(Attribute-<strong>Driven</strong> Design ou projeto orientado a atributos (BASS; CLEMENTS; KAZMAN, 2003)).<br />
O ADD promove o ref<strong>in</strong>amento sucessivo de módulos, <strong>in</strong>iciando-se com o domínio todo, e<br />
realizando divisões até serem obtidos os módulos que irão formar a arquitetural f<strong>in</strong>al.<br />
Assim, esta primeira atividade consiste na escolha dos módulos a serem ref<strong>in</strong>ados. O<br />
ref<strong>in</strong>amento pode ocorrer em duas dimensões:<br />
• Dos pontos comuns para os variáveis: neste ref<strong>in</strong>amento, <strong>in</strong>icia-se o projeto<br />
considerando-se apenas os pontos comuns. Em seguida, a cada iteração, acrescenta-se<br />
um ponto de variação no projeto; e<br />
• De módulos para sub-módulos: neste ref<strong>in</strong>amento, <strong>in</strong>icia-se divid<strong>in</strong>do-se o domínio<br />
todo em módulos, e em seguida os módulos são subdivididos sucessivamente.<br />
Estas dimensões normalmente são ortogonais, ou seja, um módulo pode <strong>in</strong>cluir diversos<br />
pontos variáveis. Da mesma forma, um ponto variável pode <strong>in</strong>cluir diversos módulos. Portanto,<br />
recomenda-se realizar apenas um desses tipos de ref<strong>in</strong>amento a cada iteração.<br />
Não existe uma ordem específica, ou seja, pode-se <strong>in</strong>iciar com um ref<strong>in</strong>amento de módulo<br />
para sub-módulo, em seguida acrescentar um ponto variável, depois novamente ref<strong>in</strong>ar um<br />
módulo. Porém, sugere-se <strong>in</strong>iciar com uma primeira divisão do domínio em módulos, o que<br />
permite uma visão geral da arquitetura desejada.<br />
Após uma primeira divisão, o projetista do domínio avalia a arquitetura existente até o<br />
momento, identifica se existem módulos que a<strong>in</strong>da precisam ser ref<strong>in</strong>ados, e os lista. Para cada<br />
um destes, executa as atividades segu<strong>in</strong>tes, ref<strong>in</strong>ando o módulo novamente.