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.
100<br />
subdomínios deve ser guiada por este profissional;<br />
• Dividir para conquistar: o conceito básico de divisão de um problema grande em partes<br />
menores é também útil no processo de desenvolvimento para reutilização. Diferentes<br />
técnicas podem ser utilizadas, dependendo do contexto. Relacionamentos do tipo<br />
ÉParteDe e ÉUm podem ser utilizados como técnica de decomposição, onde cada<br />
subdomínio ou é parte de um subdomínio maior, ou uma <strong>in</strong>stância. Além disso, a maioria<br />
dos autores concorda que a divisão deve seguir a categorização natural do domínio, o que<br />
mais uma vez ressalta a importância do especialista nesta tarefa;<br />
• Relacionamento features/sub-features: features são divididas em sub-features para<br />
ajudar na tarefa de compreensão do domínio e sua variabilidade, e a análise destes<br />
relacionamentos (LEE; KANG, 2003) leva a uma sub-divisão natural do domínio.<br />
Features muito próximas são normalmente boas candidatas a pertencerem a um mesmo<br />
subdomínio. A atenção às features que aparentam estar separadas das demais pode<br />
também levar à identificação de um subdomínio dist<strong>in</strong>to;<br />
• Domínios atômicos: idealmente, o subdomínio identificado deve ser atômico, ou seja,<br />
não pode ser substancialmente decomposto sem alterar suas propriedades primárias<br />
(HADDAD; TESSER, 2002). Isto é importante para manter o subdomínio simples e<br />
gerenciável, e portanto mais fácil de automatizar; e<br />
• Repetição: uma boa <strong>in</strong>dicação sobre o que pode ser automatizado é o nível de repetição<br />
que ocorre com um projeto, estrutura ou trecho de código. Se algum trecho de código<br />
aparece repetidamente em diferentes partes do produto, mesmo que não de forma idêntica,<br />
é provável que uma máqu<strong>in</strong>a consiga fazer o trabalho de cópia parametrizada. Pode<br />
valer a pena tentar procurar um subdomínio associado a este trecho. Outra técnica para<br />
encontrar repetições é a busca por padrões recorrentes (KNODEL et al., 2005).<br />
Além dessas diretrizes, a experiência prática com modelagem de domínio (TOLVANEN,<br />
2005) mostra que um aumento <strong>in</strong>cremental do escopo é a melhor forma de se chegar ao<br />
tamanho ideal do subdomínio, começando-se com um escopo pequeno, desenvolvendo partes<br />
da l<strong>in</strong>guagem e transformações, e <strong>in</strong>crementando-o sucessivamente.<br />
As segu<strong>in</strong>tes sub-atividades são responsáveis pela identificação dos subdomínios.<br />
Inicialmente, é feita uma seleção <strong>in</strong>icial de candidatos a subdomínio (Sub-atividade<br />
AD.3.1). Em seguida, são identificadas l<strong>in</strong>guagens de modelagem (Sub-atividade AD.3.2) e<br />
ferramentas (Sub-atividade AD.3.3). Para cada subdomínio candidato, é feita a atribuição