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.

268<br />

Abstração: a abstração ocorre quando as soluções recorrentes são generalizadas e<br />

representadas segundo um formato específico. Existem alguns formatos para descrição de<br />

padrão que são mais comumente utilizados, destacando-se aquele utilizado em (GAMMA<br />

et al., 1995). Normalmente essa descrição contém uma descrição do problema, de forma<br />

que um desenvolvedor possa decidir se esse padrão é adequado ao seu problema ou não;<br />

Seleção: a seleção ocorre quando o desenvolvedor procura por um padrão por meio da<br />

comparação do problema descrito no padrão e o problema sendo vivenciado por ele no<br />

momento. Esse processo é normalmente manual, exig<strong>in</strong>do uma consulta a catálogos de<br />

padrões, tal como o catálogo onl<strong>in</strong>e hillside.net 5 ;<br />

Adaptação: a adaptação consiste na <strong>in</strong>stanciação do padrão, adaptando-o para a situação atual.<br />

Os elementos do padrão são normalmente genéricos, precisando ser renomeados ou<br />

mesmo modificados; e<br />

Integração: a <strong>in</strong>tegração exige a adaptação do restante do sistema, ou do projeto, para<br />

acomodar os elementos <strong>in</strong>seridos pelo padrão.<br />

Existem basicamente três abordagens para os processos de adaptação e <strong>in</strong>tegração de um<br />

padrão (FLORIJN; MEIJERS; WINSEN, 1997): a abordagem top-down, na qual os elementos do<br />

padrão são criados e então <strong>in</strong>tegrados ao restante do sistema; a abordagem bottom-up, na<br />

qual os elementos já existentes no sistema são “transformados” nos elementos do padrão, e<br />

a abordagem híbrida, que é uma comb<strong>in</strong>ação das outras duas, com parte dos elementos do<br />

padrão sendo criados a partir do zero e parte sendo adaptada a partir de elementos já existentes<br />

no sistema.<br />

Reengenharia de <strong>Software</strong><br />

Outra técnica que promove a reutilização de software é a reengenharia de software.<br />

Também conhecida como renovação ou recuperação, tem como objetivo pr<strong>in</strong>cipal a<br />

reconstrução de sistemas legados para aumentar sua qualidade e manutenibilidade. Porém,<br />

sistemas legados normalmente encapsulam um conhecimento que evoluiu durante anos, e que<br />

não pode ser desperdiçado. Dessa forma, a reengenharia de software é também uma forma de<br />

reutilizar software, fazendo com que esse conhecimento seja reaproveitado. A reengenharia de<br />

software não somente recupera as <strong>in</strong>formações de um projeto existente, mas também as reutiliza<br />

para alterar ou reconstruir o sistema, adicionando novos requisitos ou <strong>in</strong>troduz<strong>in</strong>do novas<br />

5

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

Saved successfully!

Ooh no, something went wrong!