Rep reuse release equivalence principle
Click here to load reader
-
Upload
engenharia-de-software-agil -
Category
Technology
-
view
530 -
download
0
description
Transcript of Rep reuse release equivalence principle
![Page 1: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/1.jpg)
Princípio da Equivalência de Versão/Reuso
Davidson MarquesJarison Araújo
![Page 2: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/2.jpg)
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.
![Page 3: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/3.jpg)
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
![Page 4: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/4.jpg)
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
![Page 5: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/5.jpg)
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()
![Page 6: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/6.jpg)
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()
![Page 7: Rep reuse release equivalence principle](https://reader038.fdocumentos.tips/reader038/viewer/2022100603/5595831d1a28ab09548b46f0/html5/thumbnails/7.jpg)
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