SlideShare uma empresa Scribd logo
1 de 24
Projeto e implementação de software utilizando padrões de projeto Antonio Passos
Agenda De onde vêm os padrões?  Conceito de padrão Por que estudar padrões? Alguns padrões conhecidos  Padrões GRASP Como tomar decisões de projeto Pra saber mais
De onde vêm os padrões? Algo em comum aqui? Escadaria Selarón - RJ Biblioteca Nacional - RJ
De onde vêm os padrões? Pirâmide de Kukulcán - México
De onde vêm os padrões? Pirâmide de Kukulcán - México
De onde vêm os padrões? A beleza está realmente nos olhos de quem vê? Ou existe base objetiva para tal julgamento?
De onde vêm os padrões?
É possível projetar sistemas de forma metódica, racional, explicável?
Conceitos de padrões Par nomeado problema/solução que pode ser aplicado em novos contextos, com conselhos sobre sua aplicação em novas situações e uma discussão sobre as consequências de seu uso ,[object Object],É uma técnica, uma diretriz
Por que estudar padrões? Melhorar a comunicação da equipe e o aprendizado individual Aumentar a capacidade de modificação melhorada do código Reutilizar soluções Decidir se disponho do projeto certo, não apenas de um projeto que funcione
Gangue dos Quatro
Arquitetura de aplicações corporativas
GRASP
Padrões GRASP Padrões de Princípios Gerais para Atribuição de Responsabilidade (General Responsibility Assignment Software Patterns)
Padrões GRASPEspecialista na informação Problema Qual é o princípio básico de atribuição de responsabilidades a objetos? Solução Atribuir a responsabilidade ao especialista na informação: a classe que tem a informação necessária para satisfazer a responsabilidade. Benefícios O encapsulamento de informações é mantido. São estimuladas definições de classes « leves », de maior coesão, mais fáceis de compreender e manter.
Padrões GRASPCriador Problema Quem deve ser responsável pela criação de uma nova instância de uma classe? Solução Atribua à classe B a responsabilidade de criar uma instância da classe A se uma das seguintes condições for verdadeira: B agrega objetos de A; B contém objetos de A; B registra instâncias de objetos de A; B usa de maneira muito próxima objetos de A; B tem os dados de iniciação que serão passados para A quando ele for criado. Benefícios Favorece o acoplamento fraco
Padrões GRASPAcoplamento fraco Problema Como favorecer a dependência baixa, o pequeno impacto à mudança e aumentar a reutilização? Solução Atribuir uma responsabilidade de maneira que o acoplamento permaneça fraco. Benefícios Não é afetado por mudanças em outros componentes; É simples de entender isoladamente; É conveniente para reutilização
Padrões GRASPAcoplamento fraco Opção 01 Opção 02
Padrões GRASPCoesão alta Problema Como manter a complexidade sob controle? Solução Atribuir uma responsabilidade de forma que a coesão permaneça alta. Benefícios Mais clareza e facilidade de compreensão no projeto; Simplificação da manutenção e do acréscimo de melhorias; Favorecimento do acoplamento fraco; Aumento do potencial de reutilização
Padrões GRASP Coesão alta Como manter a complexidade sob controle? ,[object Object]
Como favorecer a dependência baixa, o pequeno impacto à mudança e aumentar a reutilização?,[object Object]
Como tomar decisões de projeto? Qual dessas implementações é a melhor? ,[object Object]
Qual dessas circunstâncias é a que mais se assemelha ao meu domínio do problema?,[object Object]
Obrigado Antonio Passos ,[object Object]

Mais conteúdo relacionado

Destaque

Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Moisés Moura
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoVinícius de Paula
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesRosicleia Frasson
 
Desenvolvimento De Projetos
Desenvolvimento De ProjetosDesenvolvimento De Projetos
Desenvolvimento De Projetosguest0b1a25
 

Destaque (11)

Prime Faces
Prime FacesPrime Faces
Prime Faces
 
Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
 
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
 
Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)
 
Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22Caelum java-testes-jsf-web-services-design-patterns-fj22
Caelum java-testes-jsf-web-services-design-patterns-fj22
 
JSF - JavaServer Faces
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Faces
 
Aula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de ProjetoAula 01 - UML e Padrões de Projeto
Aula 01 - UML e Padrões de Projeto
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
Apostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
 
Desenvolvimento De Projetos
Desenvolvimento De ProjetosDesenvolvimento De Projetos
Desenvolvimento De Projetos
 
Projeto de WEB Site
Projeto de WEB SiteProjeto de WEB Site
Projeto de WEB Site
 

Semelhante a Projeto e Implementação de Software Utilizando Padrões

Information Expert.pdf
Information Expert.pdfInformation Expert.pdf
Information Expert.pdfssuserefabf71
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Marvin Ferreira
 
Aplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPs4nx
 
Ebook contextos complexos
Ebook   contextos complexosEbook   contextos complexos
Ebook contextos complexosPaulo Ocelotl
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de ProjetoEduardo Mendes
 
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gilmar Pupo
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaFernando Palma
 
METODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de CockbumMETODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de Cockbumvanessa finoto
 
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Thiago Dieb
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...Rogério Batista
 
Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Isaac de Souza
 

Semelhante a Projeto e Implementação de Software Utilizando Padrões (20)

Information Expert.pdf
Information Expert.pdfInformation Expert.pdf
Information Expert.pdf
 
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...Análise de aderência de práticas ágeis na cultura de startups de software: o ...
Análise de aderência de práticas ágeis na cultura de startups de software: o ...
 
APS - RAD x Ágeis
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x Ágeis
 
Aplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XP
 
Ebook contextos complexos
Ebook   contextos complexosEbook   contextos complexos
Ebook contextos complexos
 
Introdução a Padrões de Projeto
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de Projeto
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Sld 1
Sld 1Sld 1
Sld 1
 
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr...
 
Relatório - Sistemas periciais
Relatório - Sistemas periciaisRelatório - Sistemas periciais
Relatório - Sistemas periciais
 
42906.ppt
42906.ppt42906.ppt
42906.ppt
 
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo RochaMetodologias ágeis de desenvolvimento de software por Givanaldo Rocha
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha
 
Agile2011 140902173318-phpapp02
Agile2011 140902173318-phpapp02Agile2011 140902173318-phpapp02
Agile2011 140902173318-phpapp02
 
Métodos ágeis
Métodos ágeisMétodos ágeis
Métodos ágeis
 
Artigo corrigido
Artigo corrigidoArtigo corrigido
Artigo corrigido
 
METODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de CockbumMETODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de Cockbum
 
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
Agile Day - Gestão de Projetos com Métodos ágeis de Larga escala:Fatores d...
 
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol...
 
Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.Sua solução escala? Testes de Stress e APMs podem responder.
Sua solução escala? Testes de Stress e APMs podem responder.
 
Programacao Extrema
Programacao ExtremaProgramacao Extrema
Programacao Extrema
 

Mais de Antonio Passos

Criação x evolução
Criação x evoluçãoCriação x evolução
Criação x evoluçãoAntonio Passos
 
Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Antonio Passos
 
Senai pais competentes = filhos brilhantes2
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2Antonio Passos
 
Senai pais competentes = filhos brilhantes1
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1Antonio Passos
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCAntonio Passos
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression LanguageAntonio Passos
 

Mais de Antonio Passos (7)

Criação x evolução
Criação x evoluçãoCriação x evolução
Criação x evolução
 
Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2
 
DAWJ - Filtros
DAWJ - FiltrosDAWJ - Filtros
DAWJ - Filtros
 
Senai pais competentes = filhos brilhantes2
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2
 
Senai pais competentes = filhos brilhantes1
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBC
 
JSP - Expression Language
JSP - Expression LanguageJSP - Expression Language
JSP - Expression Language
 

Projeto e Implementação de Software Utilizando Padrões

  • 1. Projeto e implementação de software utilizando padrões de projeto Antonio Passos
  • 2. Agenda De onde vêm os padrões? Conceito de padrão Por que estudar padrões? Alguns padrões conhecidos Padrões GRASP Como tomar decisões de projeto Pra saber mais
  • 3. De onde vêm os padrões? Algo em comum aqui? Escadaria Selarón - RJ Biblioteca Nacional - RJ
  • 4. De onde vêm os padrões? Pirâmide de Kukulcán - México
  • 5. De onde vêm os padrões? Pirâmide de Kukulcán - México
  • 6. De onde vêm os padrões? A beleza está realmente nos olhos de quem vê? Ou existe base objetiva para tal julgamento?
  • 7. De onde vêm os padrões?
  • 8. É possível projetar sistemas de forma metódica, racional, explicável?
  • 9.
  • 10. Por que estudar padrões? Melhorar a comunicação da equipe e o aprendizado individual Aumentar a capacidade de modificação melhorada do código Reutilizar soluções Decidir se disponho do projeto certo, não apenas de um projeto que funcione
  • 13. GRASP
  • 14. Padrões GRASP Padrões de Princípios Gerais para Atribuição de Responsabilidade (General Responsibility Assignment Software Patterns)
  • 15. Padrões GRASPEspecialista na informação Problema Qual é o princípio básico de atribuição de responsabilidades a objetos? Solução Atribuir a responsabilidade ao especialista na informação: a classe que tem a informação necessária para satisfazer a responsabilidade. Benefícios O encapsulamento de informações é mantido. São estimuladas definições de classes « leves », de maior coesão, mais fáceis de compreender e manter.
  • 16. Padrões GRASPCriador Problema Quem deve ser responsável pela criação de uma nova instância de uma classe? Solução Atribua à classe B a responsabilidade de criar uma instância da classe A se uma das seguintes condições for verdadeira: B agrega objetos de A; B contém objetos de A; B registra instâncias de objetos de A; B usa de maneira muito próxima objetos de A; B tem os dados de iniciação que serão passados para A quando ele for criado. Benefícios Favorece o acoplamento fraco
  • 17. Padrões GRASPAcoplamento fraco Problema Como favorecer a dependência baixa, o pequeno impacto à mudança e aumentar a reutilização? Solução Atribuir uma responsabilidade de maneira que o acoplamento permaneça fraco. Benefícios Não é afetado por mudanças em outros componentes; É simples de entender isoladamente; É conveniente para reutilização
  • 18. Padrões GRASPAcoplamento fraco Opção 01 Opção 02
  • 19. Padrões GRASPCoesão alta Problema Como manter a complexidade sob controle? Solução Atribuir uma responsabilidade de forma que a coesão permaneça alta. Benefícios Mais clareza e facilidade de compreensão no projeto; Simplificação da manutenção e do acréscimo de melhorias; Favorecimento do acoplamento fraco; Aumento do potencial de reutilização
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.