A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
A Model-Driven Software Reuse Approach (in portuguese)
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
90<br />
estão bem claros, porém o desenvolvimento a<strong>in</strong>da não foi <strong>in</strong>iciado) e aplicações potenciais<br />
(aplicações para as quais a<strong>in</strong>da não existem requisitos def<strong>in</strong>idos, mas que são vistas como<br />
relevantes).<br />
Após a identificação das aplicações, a lista de features é desenvolvida. A identificação<br />
de features envolve abstrair o conhecimento obtido com os especialistas do domínio e outros<br />
documentos, tais como livros, manuais de usuário, documentos de projeto e código-fonte (LEE;<br />
KANG; LEE, 2002). Porém, o volume de <strong>in</strong>formação de um domínio tende a ser muito grande.<br />
Neste sentido, quatro diretrizes (ALMEIDA et al., 2006) podem ser úteis:<br />
D1. Analisar as term<strong>in</strong>ologias usadas no domínio para identificar features: em alguns<br />
domínios mais maduros, especialistas normalmente utilizam term<strong>in</strong>ologia padronizada para<br />
comunicar suas idéias, necessidades e problemas. Assim, utilizando-se os mesmos termos<br />
padrões na identificação de features, pode-se acelerar a comunicação entre o analista do domínio<br />
e os provedores de <strong>in</strong>formação (especialista do domínio e usuários f<strong>in</strong>ais).<br />
D2. Categorizar as features: as features devem ser categorizadas, utilizando, por exemplo<br />
as quatro categorias descritas na Seção 3.1.1: features de capacitação, features de tecnologia<br />
do domínio, features de técnicas de implementação e features do ambiente operacional.<br />
Para organizações com pouca experiência na análise de domínio, ou que estão trabalhando<br />
com domínios <strong>in</strong>stáveis e pouco amadurecidos, é aconselhável concentrar-se nas features de<br />
capacitação. Após certa maturidade com o domínio ser alcançada, pode-se passar para as<br />
demais features.<br />
D3. Tentar primeiro encontrar diferenças entre as aplicações de um domínio, para só<br />
então tentar identificar as partes em comum: aplicações de um mesmo domínio compartilham<br />
um alto grau de funções em comum (COPLIEN; HOFFMAN; WEISS, 1998). Portanto, o espaço<br />
em comum deve ser consideravelmente maior do que as diferenças, e por consequência é mais<br />
fácil encontrar as diferenças primeiro. A estratégia é, <strong>in</strong>icialmente, identificar as aplicações<br />
existentes, e listar as features que caracterizam cada uma. Encontradas as diferenças, é mais<br />
fácil identificar as features comuns.<br />
D4. Não identificar todos os detalhes de implementação que não se dist<strong>in</strong>guem entre as<br />
aplicações do domínio: os desenvolvedores tendem a listar todos os detalhes de implementação<br />
e identificá-los como features, mesmo que não haja variações entre eles. Mas é importante notar<br />
que um modelo de features não é um modelo de requisitos, que expressa os detalhes de funções<br />
<strong>in</strong>ternas. Por essa razão, esta atividade deve ser realizada pelo analista do domínio, que tende a<br />
abstrair detalhes de implementação.<br />
Por fim, as aplicações e suas features são organizadas na forma de um mapa de