SlideShare uma empresa Scribd logo
1 de 15
Baixar para ler offline
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

Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoLeinylson Fontinele
 
AULA02 - Gerência de Projetos - PMI
AULA02 - Gerência de Projetos - PMIAULA02 - Gerência de Projetos - PMI
AULA02 - Gerência de Projetos - PMIDaniela Brauner
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02thomasdacosta
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIgor Takenami
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021Eduardo Cesar
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosLeinylson Fontinele
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e GitIgor Steinmacher
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + PythonMateus Padua
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisDaniel Brandão
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareFelipe Goulart
 

Mais procurados (20)

Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro BancoBanco de Dados I - Aula Prática - Criando o Primeiro Banco
Banco de Dados I - Aula Prática - Criando o Primeiro Banco
 
Métodos Ágeis
Métodos ÁgeisMétodos Ágeis
Métodos Ágeis
 
AULA02 - Gerência de Projetos - PMI
AULA02 - Gerência de Projetos - PMIAULA02 - Gerência de Projetos - PMI
AULA02 - Gerência de Projetos - PMI
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Introdução ao Teste de Software
Introdução ao Teste de SoftwareIntrodução ao Teste de Software
Introdução ao Teste de Software
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
COMO SE TORNAR UM GP PMBOK 7 AINDA EM 2021
 
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de DadosBanco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
Banco de Dados I - Aula 03 - Conceitos de Sistemas de Banco de Dados
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Aula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas CondicionaisAula03 PHP - Estruturas Condicionais
Aula03 PHP - Estruturas Condicionais
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 

Destaque

Design Patterns - Aula 2
Design Patterns - Aula 2Design Patterns - Aula 2
Design Patterns - Aula 2Talita 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 SPTalita 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 2016Talita 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 - WebschoolBruno 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 - WebschoolBruno Orlandi
 
Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5Desenvolvimento de Jogos com HTML5
Desenvolvimento de Jogos com HTML5Talita Pagani
 
Acessibilidade Web Cognitiva
Acessibilidade Web CognitivaAcessibilidade Web Cognitiva
Acessibilidade Web CognitivaTalita 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 6ariovaldodias
 
PARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfPARADIGMAS_LINGUAGENS_PROG_aula02.pdf
PARADIGMAS_LINGUAGENS_PROG_aula02.pdfAthena542429
 
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 !
 
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
 
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 FidelixCris Fidelix
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a ModelagemRodrigo Branas
 
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-PatternsRodrigo Kono
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de ProjetoNauber Gois
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoFá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 SoftwareAdolfo 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 WordPressAnyssa 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 1Carlos Eduardo
 
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 autistasTalita Pagani
 
Projetando para a neurodiversidade
Projetando para a neurodiversidadeProjetando para a neurodiversidade
Projetando para a neurodiversidadeTalita 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 AutismoTalita 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 autismoTalita 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 AlternativaTalita Pagani
 
Carreira não linear em TI
Carreira não linear em TICarreira não linear em TI
Carreira não linear em TITalita 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 AutistasTalita Pagani
 
Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Acessibilidade Web Cognitiva - BrazilJS 2016
Acessibilidade Web Cognitiva - BrazilJS 2016Talita 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 dissoTalita 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 AutismoTalita 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-endTalita 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/2015Talita 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 DesignTalita 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 PerformanceTalita 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 autistasTalita 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-endTalita Pagani
 
Desmistificando a IHC para programadores
Desmistificando a IHC para programadoresDesmistificando a IHC para programadores
Desmistificando a IHC para programadoresTalita 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