![Page 1: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/1.jpg)
Programação Orientada a Objetos
Reúso em POO
André SantanchèInstituto de Computação – UNICAMP
Abril 2015
Pic
ture
by
Eva
n L
eeso
n [
htt
p:/
/ww
w.f
lickr
.co
m/p
ho
tos/
ecst
atic
ist/
]
![Page 2: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/2.jpg)
Reúso de Software
▪ “Software reuse is the process of creating software systems from existing software rather than building software systems from scratch”. (Krueger, 1992)
![Page 3: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/3.jpg)
Por que reusar?
▪ Aumento de produtividade
▪ Redução de custos de desenvolvimento e manutenção
▪ Reuso pode promover sucessivas melhorias no produto
▪ Freqüência de reuso pode indicar qualidade
![Page 4: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/4.jpg)
Reúso Sistematizado
▪ Aspectos técnicos:
▫ definição de estratégias para reusar
▫ aplicação de padrões na produção
▫ documentação e indexação dos artefatos
▫ mecanismo de adaptação do conteúdo
![Page 5: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/5.jpg)
Aspectos de Reuso(Mili, 1995)
▪ Reúso de software envolve:
▫ desenvolvimento de software cujo projeto é reusável
▫ desenvolvimento com software reusável
▪ Reúso de software inclui:
▫ reúso de produtos desenvolvidos
▫ reúso do processo para o desenvolvimento
▪ Abordagens de reuso variam:
▫ blocos de construção (reuso do produto)
▫ genative ou reusable processor (reuso de processo)
![Page 6: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/6.jpg)
Taxonomia de Reúso de Software(Krueger, 1992)
▪ Linguagens de Alto Nível
▪ Garimpagem (Scavenging) de Projeto e Código
▪ Componentes de Software
▪ Esquemas de Software (ou Padrões de Programação Reusáveis)
▪ Geradores de Aplicação
▪ Linguagens de Altíssimo Nível (Very High-Level Languages – VHLL)
▪ Sistemas de Transformação
▪ Arquiteturas de Software
![Page 7: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/7.jpg)
Reúso Sistematizado em OO
▪ Reúso de código
▫ Classes em bibliotecas e frameworks
▫ Herança
▫ Agregação
▪ Reúso de projeto (design)
▫ Princípios de projeto
▫ Padrões de projeto (design patterns)
![Page 8: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/8.jpg)
Princípios de Projeto
▪ Projetos para sistemas confiáveis e extensíveis, exigem atenção para diversos aspectos relacionados à sua construção
▪ Princípios para a elaboração de projetos
▫ criados sobre a tecnologia de orientação a objetos
▫ baseados em diversos casos de sucesso
▫ aumentam as chances de se produzir projetos de qualidade.
![Page 9: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/9.jpg)
Referências
▪ AG Communication Systems. Examples to Accompany: Design Patterns Elements of Reusable Object-Oriented Software, 1999.
▪ Abowd, G. D., Allen, R., Garlan, D. Formalizing style to understand descriptions of software architecture. ACM Trans. Softw. Eng. Methodol., ACM Press, 1995, 4, 319-364.
▪ Alexander, Christopher; Ishikawa, Sara; Silverstein, Murray. A Pattern Language: Towns, Buildings, Construction. Oxford University Press, 1977.
▪ Krueger, C. W. Software Reuse. ACM Comput. Surv., ACM Press, 1992, 24, 131-183.
▪ Mcilroy, M. D. Naur, P. & Randell, B. (ed.) Mass Produced Software Components. Software Engineering: Report of a conference sponsored by the NATO Science Committee, 1968.
![Page 10: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/10.jpg)
Referências
▪ Mili, H.; Mili, F. & Mili, A. Reusing Software: Issues and Research Directions. IEEE Transactions on Software Engineering, 1995, 21, 528-562.
▪ Shaw, M. Abstraction Techniques in Modern Programming Languages. IEEE Software, 1984, 1, 4, 10-26.
▪ Sommerville, I. (2007) Software Engineering, 8th. ed. Addison Wesley.
![Page 11: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/11.jpg)
André Santanchèhttp://www.ic.unicamp.br/~santanche
![Page 12: Programação Orientada a Objetos s c a ssantanch/teaching/oop/2015-1/slides/poo0601-reuso-poo-v02.pdfPrincípios de Projeto Projetos para sistemas confiáveis e extensíveis, exigem](https://reader035.vdocuments.us/reader035/viewer/2022081611/5f029dd47e708231d405273d/html5/thumbnails/12.jpg)
License▪ These slides are shared under a Creative Commons License.
Under the following conditions: Attribution, Noncommercial and Share Alike.
▪ See further details about this Creative Commons license at:http://creativecommons.org/licenses/by-nc-sa/3.0/