SlideShare uma empresa Scribd logo
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

Escopo

Classe
Objeto

De criação
Factory Method
Abstract Factory
Builder
Prototype
Singleton

Propósito
Estrutural
Adapter (classe)
Adapter (objeto)
Bridge
Composite
Decorator
Façade
Flyweight
Proxy

Comportamental
Interpreter
Template Method
Chain of Responsability
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor

Fonte: GAMMA, et al., 2007.

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

Escalável

Inteligível
21/02/2014

Flexível

Reutilizável

Manutenibilidade

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

Mais conteúdo relacionado

Mais procurados

Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
Daniel Brandão
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
Adolfo Neto
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
Daniel Brandão
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
Cloves da Rocha
 
Usabilidade IHC
Usabilidade IHCUsabilidade IHC
Usabilidade IHC
Wellington Oliveira
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
Guilherme
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
Leinylson Fontinele
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Reuso de software
Reuso de softwareReuso de software
Reuso de softwarerebekinha
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
thomasdacosta
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetossoncino
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
Marcello Thiry
 
Interação Humano Computador Capítulo 11 - Análise de Atividades
Interação Humano Computador Capítulo 11 - Análise de AtividadesInteração Humano Computador Capítulo 11 - Análise de Atividades
Interação Humano Computador Capítulo 11 - Análise de Atividades
Wellington Oliveira
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
Fernando Palma
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
Alberto Simões
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
thaisedd
 
Usabilidade aula-01 Introdução
Usabilidade aula-01 IntroduçãoUsabilidade aula-01 Introdução
Usabilidade aula-01 Introdução
Alan Vasconcelos
 

Mais procurados (20)

Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)Aula 02 - Principios da Orientação a Objetos (POO)
Aula 02 - Principios da Orientação a Objetos (POO)
 
Metodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de SoftwareMetodologias Ágeis para o Desenvolvimento de Software
Metodologias Ágeis para o Desenvolvimento de Software
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Usabilidade IHC
Usabilidade IHCUsabilidade IHC
Usabilidade IHC
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)Sistemas Operacionais - Aula 07 (Thread e Processos)
Sistemas Operacionais - Aula 07 (Thread e Processos)
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Reuso de software
Reuso de softwareReuso de software
Reuso de software
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Apresentação programação orientada à objetos
Apresentação   programação orientada à objetosApresentação   programação orientada à objetos
Apresentação programação orientada à objetos
 
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)POO   - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
POO - Unidade 2 (parte 1) - Diagrama de Classe - Associação (versão 2)
 
Interação Humano Computador Capítulo 11 - Análise de Atividades
Interação Humano Computador Capítulo 11 - Análise de AtividadesInteração Humano Computador Capítulo 11 - Análise de Atividades
Interação Humano Computador Capítulo 11 - Análise de Atividades
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Usabilidade aula-01 Introdução
Usabilidade aula-01 IntroduçãoUsabilidade aula-01 Introdução
Usabilidade aula-01 Introdução
 

Destaque

Design Patterns - Aula 2
Design Patterns - Aula 2Design Patterns - Aula 2
Design Patterns - Aula 2
Talita Pagani
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SP
Talita Pagani
 
Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016
Talita Pagani
 
Aula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - WebschoolAula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - Webschool
Bruno Orlandi
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
Bruno Orlandi
 
Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5
Talita Pagani
 
Acessibilidade Web Cognitiva
Acessibilidade Web CognitivaAcessibilidade Web Cognitiva
Acessibilidade Web Cognitiva
Talita Pagani
 

Destaque (7)

Design Patterns - Aula 2
Design Patterns - Aula 2Design Patterns - Aula 2
Design Patterns - Aula 2
 
Web Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SPWeb Semântica - RoadShow TI Senac SP
Web Semântica - RoadShow TI Senac SP
 
Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016Construindo sites adequados para pessoas com Autismo - Webbr 2016
Construindo sites adequados para pessoas com Autismo - Webbr 2016
 
Aula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - WebschoolAula 1 - Curso Git e Github - Webschool
Aula 1 - Curso Git e Github - Webschool
 
Aula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - WebschoolAula 2 - Curso Git e Github - Webschool
Aula 2 - Curso Git e Github - Webschool
 
Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5
 
Acessibilidade Web Cognitiva
Acessibilidade Web CognitivaAcessibilidade Web Cognitiva
Acessibilidade Web Cognitiva
 

Semelhante a Design Patterns - Aula 1

Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6
ariovaldodias
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
Athena542429
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
Os Fantasmas !
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
Felipe Do Nascimento
 
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Fernando Geraldo Mantoan
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
IF Sertão Pernambucano
 
Semiótica Aplicada ao Design (Aula 01)
Semiótica Aplicada ao Design (Aula 01)Semiótica Aplicada ao Design (Aula 01)
Semiótica Aplicada ao Design (Aula 01)
Hely Costa Júnior
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Cris Fidelix
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
Aula 1 - Apresentação da Disciplina
Aula 1 - Apresentação da DisciplinaAula 1 - Apresentação da Disciplina
Aula 1 - Apresentação da Disciplina
André Constantino da Silva
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-Patterns
Rodrigo Kono
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
Nauber Gois
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
Fábio Nogueira de Lucena
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Adolfo Neto
 
Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareWillian Carminato
 
Estilizando temas de WordPress
Estilizando temas de WordPressEstilizando temas de WordPress
Estilizando temas de WordPress
Anyssa Ferreira
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
Carlos Eduardo
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
Rogerio P C do Nascimento
 
Inovação Centrada no Usuário
Inovação Centrada no UsuárioInovação Centrada no Usuário
Inovação Centrada no UsuárioMourylise Heymer
 

Semelhante a Design Patterns - Aula 1 (20)

Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6Introdução à análise orientada a objetos parte 6
Introdução à análise orientada a objetos parte 6
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
 
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
CST EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS IFPB 5º PERÍODO PADRÕES DE PROJE...
 
Design Patterns - Com Java
Design Patterns  - Com JavaDesign Patterns  - Com Java
Design Patterns - Com Java
 
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
Banca: Proposta de Arquitetura de Desenvolvimento Web Baseada em PHP Utilizan...
 
00 apresentacao
00   apresentacao00   apresentacao
00 apresentacao
 
Semiótica Aplicada ao Design (Aula 01)
Semiótica Aplicada ao Design (Aula 01)Semiótica Aplicada ao Design (Aula 01)
Semiótica Aplicada ao Design (Aula 01)
 
Cesar.Edu Turma S2I
Cesar.Edu Turma S2ICesar.Edu Turma S2I
Cesar.Edu Turma S2I
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
 
Aula 1 - Apresentação da Disciplina
Aula 1 - Apresentação da DisciplinaAula 1 - Apresentação da Disciplina
Aula 1 - Apresentação da Disciplina
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-Patterns
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
Introdução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de SoftwareIntrodução a Padrões de Projeto - Engenharia de Software
Introdução a Padrões de Projeto - Engenharia de Software
 
Estilizando temas de WordPress
Estilizando temas de WordPressEstilizando temas de WordPress
Estilizando temas de WordPress
 
Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1Programação Orientada a Objetos - Pós Graduação - aula 1
Programação Orientada a Objetos - Pós Graduação - aula 1
 
Aula1 Apresentacao TEES
Aula1 Apresentacao TEESAula1 Apresentacao TEES
Aula1 Apresentacao TEES
 
Inovação Centrada no Usuário
Inovação Centrada no UsuárioInovação Centrada no Usuário
Inovação Centrada no Usuário
 

Mais de Talita Pagani

Design acessível para autistas
Design acessível para autistasDesign acessível para autistas
Design acessível para autistas
Talita Pagani
 
Projetando para a neurodiversidade
Projetando para a neurodiversidadeProjetando para a neurodiversidade
Projetando para a neurodiversidade
Talita Pagani
 
Guia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em AutismoGuia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em Autismo
Talita Pagani
 
Projetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismoProjetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismo
Talita Pagani
 
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Talita Pagani
 
Projeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação AlternativaProjeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação Alternativa
Talita Pagani
 
Carreira não linear em TI
Carreira não linear em TICarreira não linear em TI
Carreira não linear em TI
Talita Pagani
 
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em AutistasAcessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Talita Pagani
 
Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016
Talita Pagani
 
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe dissoCaro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
Talita Pagani
 
Projetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com AutismoProjetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com Autismo
Talita Pagani
 
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Talita Pagani
 
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
Talita Pagani
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-end
Talita Pagani
 
Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015
Talita Pagani
 
Introdução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso DesignIntrodução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso Design
Talita Pagani
 
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web PerformanceMedindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
Talita Pagani
 
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistas
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistasGuidelines Open-souce de interfaces para a inclusão sociodigital de autistas
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistas
Talita Pagani
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-end
Talita Pagani
 
Desmistificando a IHC para programadores
Desmistificando a IHC para programadoresDesmistificando a IHC para programadores
Desmistificando a IHC para programadores
Talita Pagani
 

Mais de Talita Pagani (20)

Design acessível para autistas
Design acessível para autistasDesign acessível para autistas
Design acessível para autistas
 
Projetando para a neurodiversidade
Projetando para a neurodiversidadeProjetando para a neurodiversidade
Projetando para a neurodiversidade
 
Guia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em AutismoGuia de Acessibilidade de Interfaces Web focado em Autismo
Guia de Acessibilidade de Interfaces Web focado em Autismo
 
Projetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismoProjetando sites e aplicativos mais adequados a pessoas com autismo
Projetando sites e aplicativos mais adequados a pessoas com autismo
 
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
Acessibilidade para cidadania : uma avaliação de usabilidade e acessibilidade...
 
Projeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação AlternativaProjeto CoCoA: Um Colete de Comunicação Alternativa
Projeto CoCoA: Um Colete de Comunicação Alternativa
 
Carreira não linear em TI
Carreira não linear em TICarreira não linear em TI
Carreira não linear em TI
 
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em AutistasAcessibilidade Digital para Tecnologias Educacionais focadas em Autistas
Acessibilidade Digital para Tecnologias Educacionais focadas em Autistas
 
Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016
 
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe dissoCaro Analista de Requisitos, você faz UX Design e nem sabe disso
Caro Analista de Requisitos, você faz UX Design e nem sabe disso
 
Projetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com AutismoProjetando sites adequados a pessoas com Autismo
Projetando sites adequados a pessoas com Autismo
 
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
Towards Web Accessibility Guidelines of Interaction and Interface Design for ...
 
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
PROJETO GAIA: Guia de Acessibilidade de Interfaces Web focado em aspectos do ...
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-end
 
Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015Meetup inaugural - Bauru UX Design Group - Fev/2015
Meetup inaugural - Bauru UX Design Group - Fev/2015
 
Introdução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso DesignIntrodução a testes de usabilidade - 11º Diverso Design
Introdução a testes de usabilidade - 11º Diverso Design
 
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web PerformanceMedindo o Desempenho de sua aplicação com as APIs de Web Performance
Medindo o Desempenho de sua aplicação com as APIs de Web Performance
 
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistas
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistasGuidelines Open-souce de interfaces para a inclusão sociodigital de autistas
Guidelines Open-souce de interfaces para a inclusão sociodigital de autistas
 
Interface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-endInterface é código: aprimorando a experiência do usuário no front e no back-end
Interface é código: aprimorando a experiência do usuário no front e no back-end
 
Desmistificando a IHC para programadores
Desmistificando a IHC para programadoresDesmistificando a IHC para programadores
Desmistificando a IHC para programadores
 

Design Patterns - Aula 1

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. Design Patterns para Software Orientado a Objetos Tabela 1 - O espaço dos padrões de projeto Escopo Classe Objeto De criação Factory Method Abstract Factory Builder Prototype Singleton Propósito Estrutural Adapter (classe) Adapter (objeto) Bridge Composite Decorator Façade Flyweight Proxy Comportamental Interpreter Template Method Chain of Responsability Command Iterator Mediator Memento Observer State Strategy Visitor Fonte: GAMMA, et al., 2007. 21/02/2014 Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 10
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. Modelagem de software com auxílio de Design Patterns • Projeto de software para ser: Robusto Escalável Inteligível 21/02/2014 Flexível Reutilizável Manutenibilidade Design Patterns | Aula 1 | Prof.ª Esp. Talita Pagani 14
  • 15. • 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