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

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

Recommended

Softwares que Duram: Uma abordagem Arquitetônica by
Softwares que Duram: Uma abordagem ArquitetônicaSoftwares que Duram: Uma abordagem Arquitetônica
Softwares que Duram: Uma abordagem ArquitetônicaHugo Seabra
262 views39 slides
Apresentação jsf 2.0 by
Apresentação jsf 2.0Apresentação jsf 2.0
Apresentação jsf 2.0Paulo Neto
745 views29 slides
Desenvolvendo Produtos Com Java EE by
Desenvolvendo Produtos Com Java EEDesenvolvendo Produtos Com Java EE
Desenvolvendo Produtos Com Java EEelliando dias
467 views23 slides
Apresentando jsf by
Apresentando jsfApresentando jsf
Apresentando jsfAlberto Souza
657 views18 slides
Curso Java Web (JAVA, JSF, JPA) by
Curso Java Web (JAVA, JSF, JPA)Curso Java Web (JAVA, JSF, JPA)
Curso Java Web (JAVA, JSF, JPA)Marcos Batista
384 views10 slides
JSF com Primefaces by
JSF com PrimefacesJSF com Primefaces
JSF com PrimefacesFabio Noth
12.8K views58 slides

More Related Content

Viewers also liked

Prime Faces by
Prime FacesPrime Faces
Prime FacesBruno Garcia
5.1K views20 slides
Bibliotecas de interface rica no jsf 2 by
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2Pablo Nóbrega
9.4K views52 slides
Samir Mamude - Sistemas Comerciais Java EE by
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EESamir Mamude
215 views1 slide
Tutorial JSF 2.0 (2012) by
Tutorial JSF 2.0 (2012)Tutorial JSF 2.0 (2012)
Tutorial JSF 2.0 (2012)Helder da Rocha
1.3K views43 slides
Caelum java-testes-jsf-web-services-design-patterns-fj22 by
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
613 views178 slides
JSF - JavaServer Faces by
JSF - JavaServer FacesJSF - JavaServer Faces
JSF - JavaServer Facesnetinhoteixeira
1.5K views28 slides

Viewers also liked(11)

Bibliotecas de interface rica no jsf 2 by Pablo Nóbrega
Bibliotecas de interface rica no jsf 2Bibliotecas de interface rica no jsf 2
Bibliotecas de interface rica no jsf 2
Pablo Nóbrega9.4K views
Samir Mamude - Sistemas Comerciais Java EE by Samir Mamude
Samir Mamude - Sistemas Comerciais Java EESamir Mamude - Sistemas Comerciais Java EE
Samir Mamude - Sistemas Comerciais Java EE
Samir Mamude215 views
Caelum java-testes-jsf-web-services-design-patterns-fj22 by Moisés Moura
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
Moisés Moura613 views
Persistência Java: Hibernate e JPA by Caelum
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
Caelum8.3K views
Apostila Java Web com JSF, JPA e Primefaces by Rosicleia Frasson
Apostila Java Web com JSF, JPA e PrimefacesApostila Java Web com JSF, JPA e Primefaces
Apostila Java Web com JSF, JPA e Primefaces
Rosicleia Frasson50.4K views
Desenvolvimento De Projetos by guest0b1a25
Desenvolvimento De ProjetosDesenvolvimento De Projetos
Desenvolvimento De Projetos
guest0b1a2530.2K views

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

Information Expert.pdf by
Information Expert.pdfInformation Expert.pdf
Information Expert.pdfssuserefabf71
7 views10 slides
Análise de aderência de práticas ágeis na cultura de startups de software: o ... by
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
86 views35 slides
APS - RAD x Ágeis by
APS - RAD x ÁgeisAPS - RAD x Ágeis
APS - RAD x ÁgeisSilvio Carréra
1.3K views55 slides
Aplicação das abordagens Scrum e XP by
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XPs4nx
496 views15 slides
Ebook contextos complexos by
Ebook   contextos complexosEbook   contextos complexos
Ebook contextos complexosPaulo Ocelotl
107 views26 slides
Introdução a Padrões de Projeto by
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de ProjetoEduardo Mendes
2.3K views51 slides

Similar to Projeto e Implementação de Software Utilizando Padrões(20)

Análise de aderência de práticas ágeis na cultura de startups de software: o ... by Marvin Ferreira
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 Ferreira86 views
Aplicação das abordagens Scrum e XP by s4nx
Aplicação das abordagens Scrum e XPAplicação das abordagens Scrum e XP
Aplicação das abordagens Scrum e XP
s4nx 496 views
Ebook contextos complexos by Paulo Ocelotl
Ebook   contextos complexosEbook   contextos complexos
Ebook contextos complexos
Paulo Ocelotl107 views
Introdução a Padrões de Projeto by Eduardo Mendes
Introdução a Padrões de ProjetoIntrodução a Padrões de Projeto
Introdução a Padrões de Projeto
Eduardo Mendes2.3K views
Sld 1 by spawally
Sld 1Sld 1
Sld 1
spawally333 views
Gerência de Configuração de Software: Benefícios Do Controle de Versões Distr... by Gilmar Pupo
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 Pupo1.9K views
Metodologias ágeis de desenvolvimento de software por Givanaldo Rocha by Fernando Palma
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
Fernando Palma7.3K views
METODOLOGIA ÁGIL: Família Crystal de Cockbum by vanessa finoto
METODOLOGIA ÁGIL: Família Crystal de CockbumMETODOLOGIA ÁGIL: Família Crystal de Cockbum
METODOLOGIA ÁGIL: Família Crystal de Cockbum
vanessa finoto5.7K views
O uso de frameworks em aplicações desktop baseadas na metodologia de desenvol... by Rogério Batista
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 Batista2.4K views
Sua solução escala? Testes de Stress e APMs podem responder. by Isaac de Souza
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 Souza6 views

More from Antonio Passos

Criação x evolução by
Criação x evoluçãoCriação x evolução
Criação x evoluçãoAntonio Passos
1.7K views21 slides
Programação Server Side I - Aula 2 by
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2Antonio Passos
793 views25 slides
DAWJ - Filtros by
DAWJ - FiltrosDAWJ - Filtros
DAWJ - FiltrosAntonio Passos
1.7K views10 slides
Senai pais competentes = filhos brilhantes2 by
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2Antonio Passos
833 views8 slides
Senai pais competentes = filhos brilhantes1 by
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1Antonio Passos
340 views8 slides
Manipulando Bancos de Dados com JDBC by
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCAntonio Passos
3.8K views9 slides

More from Antonio Passos(7)

Programação Server Side I - Aula 2 by Antonio Passos
Programação Server Side I - Aula 2Programação Server Side I - Aula 2
Programação Server Side I - Aula 2
Antonio Passos793 views
Senai pais competentes = filhos brilhantes2 by Antonio Passos
Senai   pais competentes = filhos brilhantes2Senai   pais competentes = filhos brilhantes2
Senai pais competentes = filhos brilhantes2
Antonio Passos833 views
Senai pais competentes = filhos brilhantes1 by Antonio Passos
Senai   pais competentes = filhos brilhantes1Senai   pais competentes = filhos brilhantes1
Senai pais competentes = filhos brilhantes1
Antonio Passos340 views
Manipulando Bancos de Dados com JDBC by Antonio Passos
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBC
Antonio Passos3.8K views
JSP - Expression Language by Antonio Passos
JSP - Expression LanguageJSP - Expression Language
JSP - Expression Language
Antonio Passos5.5K views

Recently uploaded

VIRTUS 1.6 MSI.pdf by
VIRTUS 1.6 MSI.pdfVIRTUS 1.6 MSI.pdf
VIRTUS 1.6 MSI.pdfFbioVieira85
5 views13 slides
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023 by
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023
MAPA - SAÚDE - FUNDAMENTOS DE FARMACOLOGIA - 54/2023AcademicaDlaUnicesum
6 views3 slides
DevFest2023-Pragmatismo da Internet das Coisas by
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das CoisasWalter Coan
35 views40 slides
Shift left DevOps Experience by
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps ExperienceWalter Coan
5 views19 slides
TechConnection 2023 Floripa Azure Container Apps by
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container AppsWalter Coan
6 views14 slides
Conheça agora o UiPath Autopilot™ para o Studio.pdf by
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdfBrunaCavalcanti29
14 views8 slides

Recently uploaded(8)

DevFest2023-Pragmatismo da Internet das Coisas by Walter Coan
DevFest2023-Pragmatismo da Internet das CoisasDevFest2023-Pragmatismo da Internet das Coisas
DevFest2023-Pragmatismo da Internet das Coisas
Walter Coan35 views
Shift left DevOps Experience by Walter Coan
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
Walter Coan5 views
TechConnection 2023 Floripa Azure Container Apps by Walter Coan
TechConnection 2023 Floripa Azure Container AppsTechConnection 2023 Floripa Azure Container Apps
TechConnection 2023 Floripa Azure Container Apps
Walter Coan6 views
Conheça agora o UiPath Autopilot™ para o Studio.pdf by BrunaCavalcanti29
Conheça agora o UiPath Autopilot™ para o Studio.pdfConheça agora o UiPath Autopilot™ para o Studio.pdf
Conheça agora o UiPath Autopilot™ para o Studio.pdf

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