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.

Supondo que um caso de uso UC001 possua 5 passos - p1, p2, p3, p4 e p5: após análise da<br />

variabilidade, é descoberto um caso de mudança CM001, que possui 4 passos: p1, p2, p4 e p5.<br />

CM001 <strong>in</strong>troduz uma variabilidade negativa em UC001, pois ele remove p3 do comportamento<br />

“normal”, ou base comum. Neste caso, não existe variabilidade positiva <strong>in</strong>troduzida por<br />

CM001, e portanto basta <strong>in</strong>verter os cenários, transformando CM001 no cenário “normal”, e<br />

UC001 no caso de mudança.<br />

Porém, caso CM001 possua os passos p1, p2, p4, p5 e p6, a simples <strong>in</strong>versão não é<br />

suficiente, pois sempre existirá uma variabilidade negativa, não importando qual destes cenários<br />

faz parte da base comum. Neste caso, pode-se criar um terceiro cenário, que possui os passos<br />

em comum, por exemplo UC001: p1, p2, p4 e p5, e dois casos de mudança CM001: p1, p2,<br />

p3, p4 e p5 (antigo UC001), e CM002: p1, p2, p4, p5 e p6 (antigo CM001). Como resultado,<br />

somente variabilidades positivas são <strong>in</strong>troduzidas.<br />

O mesmo pode ser feito quando dois cenários diferem em um determ<strong>in</strong>ado passo. Neste<br />

caso, ocorre a comb<strong>in</strong>ação de variabilidade negativa e positiva (removendo um comportamento<br />

comum, e adicionando outro em substituição), e o mesmo método pode ser aplicado para<br />

remover a parte negativa.<br />

No exemplo da busca avançada (Quadro 5), pode-se aplicar este método para remover a<br />

variabilidade negativa, resultando em 3 cenários:<br />

1. Cenário 1: Busca<br />

(a) Usuário <strong>in</strong>forma parâmetros de busca<br />

(b) Aplicação realiza busca no conteúdo conforme especificado pelos parâmetros<br />

(c) Aplicação exibe lista com o conteúdo que corresponde aos parâmetros especificados<br />

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

2. Cenário 2: Busca simples<br />

(a) Usuário <strong>in</strong>forma “str<strong>in</strong>g” de busca<br />

(b) Aplicação realiza busca em todo conteúdo<br />

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

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

3. Cenário 3: Busca avançada<br />

(a) Usuário <strong>in</strong>forma “str<strong>in</strong>g” de busca e local a ser buscado<br />

97

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

Saved successfully!

Ooh no, something went wrong!