Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1
Informações gerais 1. Definição de Design Patterns; 2. Design Patterns para softwares orientados a objetos: a. Padrões de criação; b. Padrões estruturais; c. Padrões comportamentais; 3. Estudo de caso de Design Patterns; 4. Modelagem de software com auxílio de Design Patterns; 5. Design Patterns para interfaces gráficas; 6. Design Patterns para mobile. 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 2
Informações gerais Conhecimento sobre orientação a objetos; Conhecimento sobre projeto de software orientado a objetos. Escopo destas aulas: Tópicos avançados em DP; Aplicação prática de DP. 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 3
Definição de Design Patterns Surgiu na arquitetura: padrões de Alexander (1977) 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 4
Definição de Design Patterns Padrão de projeto é uma solução de sucesso - testada e verificada - para um problema recorrente em um determinado contexto. 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 5
Definição de Design Patterns Padrões para software: Soluções simples para problemas de OO; Registro de experiência acumulada; Padronização e reuso; Eficácia; Flexibilidade. 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 6
Definição de Design Patterns Padrões para software: "descrições de objetos e classes comunicantes que precisam ser personalizadas para resolver um problema geral num contexto particular" (GAMMA, et al. 2007) 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 7
Design Patterns para Software Orientado a Objetos Surgiu em 1995 Erich Gamma, Richar Helm, Ralph Johnson e John Vlissides (Gang of Four) Catálogo de 23 padrões 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 8
Design Patterns para Software Orientado a Objetos Finalidade Padrões de criação (ou criacionais) Padrões estruturais Padrões comportamentais Escopo Classe Objetos 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 9
Design Patterns para Software Orientado a Objetos Tabela 1 - O espaço dos padrões de projeto Propósito De criação Estrutural Comportamental Escopo Classe Factory Method Adapter (classe) Interpreter Template Method Objeto Abstract Factory Builder Prototype Singleton Fonte: GAMMA, et al., 2007. Adapter (objeto) Bridge Composite Decorator Façade Flyweight Proxy Chain of Responsability Command Iterator Mediator Memento Observer State Strategy Visitor 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 10
Design Patterns para Software Orientado a Objetos Fonte: http://www.vincehuston.org/dp/ 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 11
Design Patterns para Software Orientado a Objetos Nome do padrão Intenção e objetivo Também conhecido como Motivação Aplicabilidade Estrutura Participantes 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 12
Design Patterns para Software Orientado a Objetos Colaboração Consequências Implementação Exemplos de código Usos conhecidos Padrões relacionados 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 13
Modelagem de software com auxílio de Design Patterns Projeto de software para ser: Robusto Flexível Escalável Inteligível R e u t i l i z á v e l M a n u tenibilidade 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 14
ALEXANDER, C., et al. A Pattern Language. Oxford University Press, 1977. AMMAR, H. H. 2008. Case Studies on Design Patterns. Disponível em: http://www.csee.wvu.edu/~ammar/rts/adv rts/design patterns case studies/before and after CaseStudies.ppt GAMMA, E., et al. Padrões de projeto: soluções reutilizáveis de software orientado a objetos; tradução de Luiz A. Meirelles Salgado. Porto Alegre: Bookman, 2007. HEGODA, D. 2013. Why? When to? Software Design Patterns. Disponível em: http://dasunhegoda.com/software-design-patterns/158/ JAVACAMP. 2012. Java Design Patterns At a Glance. Disponível em: http://www.javacamp.org/designpattern/ LEACOCK, M.; MALONE, E.; WHEELER, C. Implementing a Pattern Library in the Real World: A Yahoo! Case Study. In: Sixth Annual ASIS&T Information Architecture Summit. Montréal, Quebec, Canada, mar. 2005. Disponível em: http://leacock.com/patterns/ MCDONALD, J. 2007. Design Patterns Quick Reference. Disponível em: http://www.mcdonaldland.info/2007/11/28/40/ MEMÓRIA, F. Design para a internet: Projetando a experiência perfeita. Rio de Janeiro: Elsevier, 2005. WELIE, M. V. 2008. Patterns in Interaction Design. Disponível em: http://www.welie.com/patterns/ 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 15