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

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

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

Saved successfully!

Ooh no, something went wrong!