1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras.

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Padrão de Projeto Iterator
PADRÕES DE PROJETO..
Design Patterns Patrícia Mateus nº3343 Carla Guerreiro nº3157
Engenharia de Software
Docente Responsável: Dra. Isabel Brito
Modelagem de Software Orientado a Objetos
Design Patterns Builder Pattern
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Projeto de Sistemas de Software
Padrões de Projeto Prototype.
Design Patterns Interpreter
1 Introdução aos padrões de projeto (GoF) Conceitos preliminares –Mecanismos de herança –Princípio de Substituição de Liskov –Acoplamento concreto x Acoplamento.
Análise e Projeto de Sistemas
Padrões - introdução O que é um padrão?
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Design Pattern e a Reusabilidade de Software
Padrão de Construção Factory Method
Design Patterns Projeto de Sistemas de Software.
Fundamentos da Engenharia de Software
Visão crítica sobre padrões: Over Engineering
Padrões de projeto detalhados Factory Method, Abstract Factory
Vector To Raster Factory & Strategy Eric Silva Abreu São José dos Campos - 15 de dezembro de 2006.
Módulo III Padrões GOF Professores
Projeto de Sistemas de Software
Padrões de Projeto Aplicações empresariais são complexas
Design Patterns e você. Jay Moretti Grupo de desenvolvedores Actionscripts do Brasil
Rodrigo Cândido da Silva Instrutor VOffice / Globalcode
Padrões de Projeto These slides complement the E-book, Programming in the Large With Design Patterns available on both Kindle and Nook. Additional supporting.
Design Pattern (Padrões de Projeto)
Padrões de Projeto.
Introdução Padrões de Projeto
April 05 Prof. Ismael H. F. Santos - 1 Módulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Design Patterns (Padrões de Projeto)
Padrões de Design Toacy Cavalcante de Oliveira. 2 April 20, 2015 Problema.
Padrões de Projeto Abstract Factory.
Design Patterns Fundamentos da engenharia de softaware. 19/1/2003.
Padrões de Projeto.
Padrão de desenvolvimento
April 05 Prof. Ismael H. F. Santos - 1 Modulo I Princípios e Padrões de Projeto de SW em Java Professores Eduardo Bezerra –
Design Patterns A adoção dos padrões terá um efeito profundo e duradouro sobre a forma de escrevermos programas Ward Cunningham e Ralph Johnson.
Padrões de Projeto de Software Orientado a Objetos
Padrões de Projeto Alcides Calsavara
1 Padrões: Composite (p. 163) Objetivo: compor objetos em estruturas de árvores para representar relações de parte/todo. “Composite” permite tratar objetos.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
1 Design Patterns Israel Rios. 2 Origens A idéia de padrões de projeto não teve origem na ciência da computação Christopher Alexander A Pattern Language:
Padrão Composite Definição
Objetos Distribuídos Frameworks Orientados a Objetos.
Frameworks e Componentes Daniel Fernando Pavelec.
Jobson Ronan Padrões GoF Jobson Ronan
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS PARTE 1: INTRODUÇÃO Prof. Cesar Augusto Tacla UTFPR/Campus.
CURSO DE ESPECIALIZAÇÃO EM TECNOLOGIA JAVA DESIGN PATTERNS Prof. Cesar Augusto Tacla UTFPR/Campus Curitiba.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Semana /08/2012 Professor Leomir J. Borba-
1 - Introdução a Padrões de Projeto
Padrões de Projetos Professora Lucélia. Conceitos É uma solução conhecida para um problema comum São técnicas que nos dão uma boa solução para determinados.
Padrões de Projetos Orientados a Objetos I Wolley W. Silva.
PADROES DE PROJETO PROF. OSIEL MARLON. PADRÕES DE PROJETO INTRODUÇÃO Padrões de projeto têm emergido como uma das mais promissoras abordagens para a melhoria.
Padrões de Projeto. O que são?  Soluções provenientes de diversos projetos e utilizados por diversos programadores;  Documentados em catálogos como.
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1/65 Padrões de Projeto.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Padrões de Projeto de Criação Padrões de Projeto Orientados a Objetos Prof a. Danielle Martin Universidade de Mogi das Cruzes.
Jadson Xavier Muller Oliveira.  É difícil encontrar alguma definição consensual de padrão.  Definição aceitável: - São idéias que foram úteis em algum.
1 Padrões de Projeto de Software Orientado a Objetos Programação Orientada a Objetos Prof. Fabio Kon - IME/USP.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Programação Orienta a Objetos (SI) Análise e Projetos de Sistemas (LCC) 1 - Introdução a Padrões de Projeto Eduardo de Lucena Falcão.
Introdução a Padrões de Projeto Padrões de Projeto Orientado a Objetos Profa. Danielle Martin Universidade de Mogi das Cruzes.
Padrões de Projeto Estruturais
Padrões de Projeto.
Transcrição da apresentação:

1 Introdução aos Padrões de Projetos Créditos: Prof. Fabio Kon - IME/USP Adaptações: Prof. Nécio de Lima Veras

Padrões de Projeto de Software OO2 / 28 Padrões de Projeto de Software OO Também conhecidos como  Padrões de Desenho de Software OO  ou simplesmente como Padrões. Porque padrões?  Padrões contêm o somatório da experiência dos melhores projetistas OO;  Reuso de idéias, não de código;  Consistem de micro-arquiteturas de classes, objetos, seus papeis e suas colaborações;

Padrões de Projeto de Software OO3 / 28 A Inspiração A idéia de padrões foi apresentada por Christopher Alexander em 1977 no contexto de Arquitetura (de prédios e cidades): Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e então descreve a parte central da solução para aquele problema de uma forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas vezes da mesma forma. Livros  Padrões de Projetos: Soluções reutilizáveis de software OO;  Use a cabeça! Padrões de Projetos.

Padrões de Projeto de Software OO4 / 28 Catálogo de soluções Um padrão encerra o conhecimento de uma pessoa muito experiente em um determinado assunto de uma forma que este conhecimento pode ser transmitido para outras pessoas menos experientes. Outras ciências (p.ex. química) e engenharias possuem catálogos de soluções. Desde 1995, o desenvolvimento de software passou a ter o seu primeiro catálogo de soluções para projeto de software: o livro GoF.

Padrões de Projeto de Software OO5 / 28 Gang of Four (GoF) E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison-Wesley, 1995.

Padrões de Projeto de Software OO6 / 28 Gang of Four (GoF) Passamos a ter um vocabulário comum para conversar sobre projetos de software. Soluções que não tinham nome passam a ter nome. Ao invés de discutirmos um sistema em termos de pilhas, filas, árvores e listas ligadas, passamos a falar de coisas de muito mais alto nível como Fábricas, Fachadas, Observador, Estratégia, Objetos Singulares, etc. A maioria dos autores eram entusiastas de Smalltalk, principalmente o Ralph Johnson. Mas acabaram baseando o livro em C++ para que o impacto junto à comunidade de C fosse maior. E o impacto foi enorme, o livro vendeu centenas de milhares de cópias.

Padrões de Projeto de Software OO7 / 28 Características Descrever e justificar soluções para problemas concretos e bem definidos (não são estratégias de implementação); Ser comprovados, isto é, devem ter sido previamente experimentados e testados; Tratar problema que ocorram em diferentes contextos; Descrever relações entre conceitos, mecanismos e estruturas existentes nos sistemas, seus pontos fortes e fracos; Capturar a evolução e aprimoramento das soluções; Ser utilizados em conjunto com outros padrões, compondo linguagens de padrões.

Padrões de Projeto de Software OO8 / 28 Resultados Permitem compartilhar experiências bem sucedidas na resolução de problemas recorrentes; Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software; Permitem que os desenvolvedores concentrem seus esforços nos aspectos inéditos do problema.

Padrões de Projeto de Software OO9 / 28 Vantagens no uso de Padrões de Projeto Evita a redescoberta de soluções; Propicia o uso de soluções corretas; Melhora a qualidade do software; Permitem que os desenvolvedores concentrem seus esforços nos aspectos inéditos do problema; Economiza esforço e tempo de desenvolvimento e manutenção; Melhora a confiabilidade do software; Conduz ao bom uso de orientação a objetos; Provê uma linguagem comum entre desenvolvedores:  Compõem um vocabulário de alto nível para discussão de questões relativas ao projeto de sistemas de software;  Reduz o volume de documentação

Padrões de Projeto de Software OO10 / 28 Tipos de Padrões de Projeto Categorias de Padrões do GoF  Padrões de Criação;  Padrões Estruturais;  Padrões Comportamentais;

Padrões de Projeto de Software OO11 / 28 Classificação Padrões de Criação Abstraem o processo de instanciação; Tornam um sistema independente da forma como os objetos são criados, compostos e representados;

Padrões de Projeto de Software OO12 / 28 Classificação Padrões Estruturais Lidam com a composição de classes (ou objetos) para formar grandes estruturas no sistema;

Padrões de Projeto de Software OO13 / 28 Classificação Padrões Comportamentais Caracterizam a forma como classes (ou objetos) interagem Distribuem responsabilidade;

Padrões de Projeto de Software OO14 / 28 Classificação Padrões Comportamentais Caracterizam a forma como classes (ou objetos) interagem; Distribuem responsabilidade;

Padrões de Projeto de Software OO15 / 28 Cardápio 1. Abstract Factory 2. Builder 3. Factory Method 4. Prototype 5. Singleton 6. Adapter 7. Bridge 8. Composite 9. Decorator 10. Facade 11. Flyweight 12. Proxy 13. Chain of Responsibility 14. Command 15. Interpreter 16. Iterator 17. Mediator 18. Memento 19. Observer 20. State 21. Strategy 22. Template Method 23. Visitor Padrões de Criação Padrões Estruturais Padrões de Comportamento

Padrões de Projeto de Software OO16 / 28 O Formato de um padrão Todo padrão inclui  Nome  Problema  Solução  Conseqüências / Forças

Padrões de Projeto de Software OO17 / 28 O Formato dos padrões no GoF  Nome Um bom nome é essencial para que o padrão caia na boca do povo;  Objetivo / Intenção (Também Conhecido Como Motivação) Um cenário mostrando o problema e a necessidade da solução;  Aplicabilidade Como reconhecer as situações nas quais o padrão é aplicável;  Estrutura Uma representação gráfica da estrutura de classes do padrão;  Participantes As classes e objetos que participam e quais são suas responsabilidades;  Colaborações Como os participantes colaboram para exercer as suas responsabilidades

Padrões de Projeto de Software OO18 / 28 O Formato dos padrões no GoF  Conseqüências Vantagens e desvantagens, trade-offs (ação econômica que visa à resolução de um problema, mas acarreta outro);  Implementação Com quais detalhes devemos nos preocupar quando implementamos o padrão; Aspectos específicos de cada linguagem;  Exemplo de Código No caso do GoF, em C++ (a maioria) ou Smalltalk; No Head First, Java;  Usos Conhecidos Exemplos de sistemas reais de domínios diferentes onde o padrão é utilizado;  Padrões Relacionados Quais outros padrões devem ser usados em conjunto com esse; Quais padrões são similares a este, quais são as diferenças;

Padrões de Projeto de Software OO19 / 28 Estudando uns padrões específicos De Criação:  Singleton;  Abstract Factory; Estrutural:  Decorator; Comportamental:  Observer;  Strategy;

Padrões de Projeto de Software OO20 / 28 Recapitulando Voltando ao Christopher Alexander: Cada padrão descreve um problema que ocorre repetidamente de novo e de novo em nosso ambiente, e então descreve a parte central da solução para aquele problema de uma forma que você pode usar esta solução um milhão de vezes, sem nunca implementa-la duas vezes da mesma forma.

Padrões de Projeto de Software OO21 / 28 Para pesquisas... Dê uma olhada no GoF ou no Use a Cabeça! Padrões de Projetos  a biblioteca possui algumas cópias! Buscar por “GoF patterns” no google