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.

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

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

Saved successfully!

Ooh no, something went wrong!