programação orientada a objetos s c a...

12
Programação Orientada a Objetos Reúso em POO André Santanchè Instituto de Computação – UNICAMP Abril 2015 Picture by Evan Leeson [http://www.flickr.com/photos/ecstaticist/]

Upload: others

Post on 05-Jun-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

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

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

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

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

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

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

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

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

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

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

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

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

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/