Rep reuse release equivalence principle

Post on 03-Jul-2015

530 views 0 download

description

A unidade de reuso é a unidade da versão. Apenas componentes que possuem umsistema de rastreamento de versão podem ter reuso efetivo. Esta unidade é o pacote.

Transcript of Rep reuse release equivalence principle

Princípio da Equivalência de Versão/Reuso

Davidson MarquesJarison Araújo

REP (Reuse/Release EquivalencePrinciple)

• A unidade do reuso é a unidade de versão.

• Apenas componentes que possuem um sistema de rastreamento de versão podem ter reuso efetivo.

• Esta unidade é o pacote.

REP (Reuse/Release EquivalencePrinciple)

• Um método não deve ser copiado e colado dentro do seu código, nem mesmo uma classe deve ser copiada e colada em seu projeto

• Ao contrário disso, inclua o pacote dentro do seu projeto, mantendo o autor original

Mantendo o autor original

• O autor original identifica as versões• O autor original evolui seu pacote e

mantem a compatibilidade• O autor original é resposável pela

evolução e manutenção do código• Você passa a ser cliente do pacote

Contra Exemplo

• Não há reuso• O mesmo método é

implementado em duas classes diferentes, mas com a mesma finalidade

• Elevado custo de manutenção

meu.pacote.trataarquivos

ArquivoParaDownload

+gerarArquivoZip()

DocumentosParaArquivoamento+List arquivos+gerarArquivoZip()

Evolução do Contra Exemplo

• Já é notório o reuso• Ainda implementa o

método que foi copiado de um outro pacote

• A responsabilidade sobre a propagação das correções ainda é do novo autor

meu.pacote.trataarquivos

ArquivoParaDownload DocumentosParaArquivoamento+List arquivos

GeradorDeArquivos

+gerarArquivoZip()

Exemplo

• Reuso de pacote• Responsabilidade

de versão e correções do autor original

• O novo autor não precisa conhecer o código do método reutilizado

java.util.zip

meu.pacote.trataarquivos

ArquivoParaDownload DocumentosParaArquivoamento+List arquivos

ZipOutputStream