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

Ap i unidade 3 - levantamento de requisitos
Ap i   unidade 3 - levantamento de requisitosAp i   unidade 3 - levantamento de requisitos
Ap i unidade 3 - levantamento de requisitos
Glauber Aquino
 

Mais procurados (20)

03 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.003 - Orientação a objetos e classes em C# v1.0
03 - Orientação a objetos e classes em C# v1.0
 
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)
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
Banco de Dados II Aula Prática 1 (Conversão do modelo conceitual para modelo ...
 
Aula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHPAula 02 - Introdução ao PHP
Aula 02 - Introdução ao PHP
 
Wireframes para sites e dispositivos móveis
Wireframes para sites e dispositivos móveisWireframes para sites e dispositivos móveis
Wireframes para sites e dispositivos móveis
 
Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02Estrutura de Dados - Aula 02
Estrutura de Dados - Aula 02
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Ap i unidade 3 - levantamento de requisitos
Ap i   unidade 3 - levantamento de requisitosAp i   unidade 3 - levantamento de requisitos
Ap i unidade 3 - levantamento de requisitos
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
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
 
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
 
Aula 1. apresentação + frameworks
Aula 1. apresentação + frameworksAula 1. apresentação + frameworks
Aula 1. apresentação + frameworks
 
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
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Aps lista de exercícios
Aps lista de exercíciosAps lista de exercícios
Aps lista de exercícios
 
Formulário HTML
Formulário HTMLFormulário HTML
Formulário HTML
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Introdução a Bancos de Dados
Introdução a Bancos de DadosIntrodução a Bancos de Dados
Introdução a Bancos de Dados
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 

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

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
 
Introdução a Modelagem
Introdução a ModelagemIntrodução a Modelagem
Introdução a Modelagem
Rodrigo Branas
 
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
Willian Carminato
 
Inovação Centrada no Usuário
Inovação Centrada no UsuárioInovação Centrada no Usuário
Inovação Centrada no Usuário
Mourylise 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

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
 

Último

Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Dirceu Resende
 

Último (9)

Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo PagliusiPalestras sobre Cibersegurança em Eventos - Paulo Pagliusi
Palestras sobre Cibersegurança em Eventos - Paulo Pagliusi
 
Apostila e caderno de exercicios de WORD
Apostila e caderno de exercicios de  WORDApostila e caderno de exercicios de  WORD
Apostila e caderno de exercicios de WORD
 
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
[ServiceNow] Upgrade de versão - 2ª edição (Revisada, atualizada e ampliada)
 
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIAEAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
EAD Curso - CIÊNCIA DE DADOS NA INDÚSTTRIA
 
Entrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo PagliusiEntrevistas, artigos, livros & citações de Paulo Pagliusi
Entrevistas, artigos, livros & citações de Paulo Pagliusi
 
O futuro e o impacto da tecnologia nas salas de aulas
O futuro e o impacto da tecnologia  nas salas de aulasO futuro e o impacto da tecnologia  nas salas de aulas
O futuro e o impacto da tecnologia nas salas de aulas
 
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdfFrom_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
From_SEH_Overwrite_with_Egg_Hunter_to_Get_a_Shell_PT-BR.pdf
 
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINASCOI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
COI CENTRO DE OPERAÇÕES INDUSTRIAIS NAS USINAS
 
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
Apresentação Power Embedded - Descubra uma nova forma de compartilhar relatór...
 

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