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.

98<br />

(b) Aplicação realiza busca no local especificado<br />

(c) Aplicação exibe lista com o conteúdo que corresponde à “str<strong>in</strong>g” e locais<br />

especificados<br />

(d) Usuário clica sobre um resultado e cont<strong>in</strong>ua navegando<br />

Neste exemplo, as mudanças <strong>in</strong>troduzidas pelos cenários 2 e 3 não <strong>in</strong>validam o cenário<br />

1, apenas acrescentam ou ref<strong>in</strong>am comportamento, e portanto só <strong>in</strong>troduzem variabilidades<br />

positivas.<br />

A remoção forçada de uma variabilidade negativa, porém, pode <strong>in</strong>terferir com o real<br />

significado dos modelos da base comum, produz<strong>in</strong>do impactos <strong>in</strong>desejados no projeto do<br />

domínio (COPLIEN, 2000). Por exemplo, em resposta aos cenários acima, um projetista pode<br />

projetar uma solução genérica onde o local a ser buscado é um parâmetro para o mecanismo<br />

de busca, que irá conter o nome deste local, ou a palavra “tudo”, caso se trate de uma busca<br />

simples. Em uma aplicação onde a busca avançada existe, esta solução é elegante e simples.<br />

Mas em uma aplicação onde a busca avançada não está presente, este parâmetro não faz sentido<br />

algum, e acrescenta uma sobrecarga tanto no processamento (para ler e <strong>in</strong>terpretar o valor de<br />

entrada deste parâmetro), como na semântica dos modelos gerados.<br />

Assim, antes de se aplicar este método, é necessário avaliar alguns fatores para determ<strong>in</strong>ar<br />

a sua real necessidade:<br />

• Peso da variabilidade negativa: caso a variabilidade negativa ocorra com pouca<br />

frequência, pode não valer a pena gerar outros cenários apenas para removê-la. Por<br />

exemplo, caso apenas 1% das aplicações do domínio web possuam suporte para busca<br />

avançada, a solução descrita acima pode não valer a pena;<br />

• Tamanho da variabilidade negativa: variabilidades negativas pequenas são mais<br />

facilmente implementadas, utilizando-se, por exemplo compilação condicional (COPLIEN,<br />

2000; ANASTASOPOULOS; GACEK, 2001). Já a existência de variabilidades negativas<br />

grandes (envolvendo, por exemplo diversas classes ou cenários) pode <strong>in</strong>dicar uma<br />

necessidade de reavaliação.<br />

Atividade AD.3. Identificação de subdomínios<br />

Papéis: analista do domínio, especialista do domínio

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

Saved successfully!

Ooh no, something went wrong!