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.

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.

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

Saved successfully!

Ooh no, something went wrong!