Buscar

Padrões de Projeto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 17 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fundamentos de PADRÕES DE PROJETO
ROBSON GODOI
Recife, 10 de fevereiro de 2012
• Atualmente a área de desenvolvimento de sistemas na 
Tecnologia da Informação (TI) vem enfrentando vários 
problemas no tocante ao uso da Engenharia de Software, 
em especial na constante necessidade de padronização 
de código.
Motivação
• Padrões de Softwares se apresentam como soluções 
reutilizáveis para problemas reincidentes, ocorridos 
durante o processo de desenvolvimento de software. 
• A experiência permite o analista acostumado com 
padrões identificar soluções que podem ser empregadas 
em tipos específicos de problemas. A documentação de 
padrões permite que analistas menos experientes possam 
fazer uso de resoluções eficazes empregadas 
anteriormente, evitando dispêndio de esforços e 
trabalhos repetitivos.
Motivação
trabalhos repetitivos.
• Padrões de projeto apresentam um novo paradigma de 
desenvolvimento de software, incorporando novas 
metodologias que atenuam ou resolvem problemas 
antigos da Engenharia de Software.
• Principais benefícios:
– Redução de prazos e custos, decorrente do ganho de 
produtividade proporcionado pela geração de grande parte do 
código;
– Portabilidade: aumentando o reuso de componentes e modelos;
– Interoperabilidade: garantindo que padrões baseados em 
múltiplas tecnologias implementem funções de negócio 
Benefícios
múltiplas tecnologias implementem funções de negócio 
cooperativas;
– Foco da equipe de desenvolvimento de aplicações em aspectos 
de negócio ao invés de aspectos técnicos;
– Garantia de aderência a padrões e arquitetura, aumentando a 
qualidade do produto gerado.
• Padrões de Projeto beneficiam os desenvolvedores:
– Ajudando a construir um software confiável com arquiteturas 
testada e perícia acumulada pela indústria.
– Promovendo a reutilização de projetos em futuros sistemas.
– Ajudando a identificar equívocos comuns e armadilhas que 
ocorrem ao construírem sistemas.
– Ajudando a projetar sistemas independentemente da linguagem 
Benefícios
– Ajudando a projetar sistemas independentemente da linguagem 
em que eles, em última instância, serão implementados.
– Estabelecendo um vocabulário comum de projeto entre os 
desenvolvedores.
– Encurtando a fase de projeto no processo de desenvolvimento 
de um software
• Maneira testada ou documentada de alcançar um 
objetivo qualquer
– Padrões são comuns em várias áreas da engenharia
• Design Patterns ou Padrões de Projeto
– Padrões para alcançar objetivos na engenharia de software 
O que é um padrão?
– Padrões para alcançar objetivos na engenharia de software 
usando classes e métodos em linguagens orientadas a objeto
• A ideia de padrões foi apresentada por Christopher 
Alexander em 1977 no contexto de Arquitetura (de 
prédios e cidades):
– Cada padrão descreve um problema que ocorre repetidamente 
de novo e de novo em nosso ambiente, e então descreve a parte 
central da solução para aquele problema de uma forma que 
você pode usar esta solução um milhão de vezes, sem nunca 
Inspiração
você pode usar esta solução um milhão de vezes, sem nunca 
implementa-la duas vezes da mesma forma.
• Um padrão encerra o conhecimento de uma pessoa 
muito experiente em um determinado assunto de uma 
forma que este conhecimento pode ser transmitido para 
outras pessoas menos experientes.
• Outras ciências (p.ex. química) e engenharias possuem 
Catálogo de soluções
• Outras ciências (p.ex. química) e engenharias possuem 
catálogos de soluções.
• Padrões são um repertório de soluções e princípios que 
ajudam os desenvolvedores a criar software e que são 
codificados em um formato estruturado consistindo de:
• Nome
• Problema que soluciona
• Solução do problema
Padrões de Projeto
• O objetivo dos padrões é codificar o conhecimento 
(knowing) existente de uma forma que possa ser 
reaplicado em contextos diferentes
• Não é um código final, é uma descrição ou modelo de 
como resolver o problema do qual trata, que pode ser 
usada em muitas situações diferentes.
• Desde 1995, o desenvolvimento de software passou a ter 
o seu primeiro catálogo de soluções para projeto de 
Padrões de Projeto
o seu primeiro catálogo de soluções para projeto de 
software: o livro GoF.
• E. Gamma and R. Helm and R. 
Johnson and J. Vlissides. Design 
Patterns - Elements of Reusable 
Object-Oriented Software. 
Addison-Wesley, 1995.
Gang of Four (GoF)
• Passamos a ter um vocabulário comum para conversar 
sobre projetos de software. 
• Soluções que não tinham nome passam a ter nome.
• Ao invés de discutirmos um sistema em termos de pilhas, 
filas, árvores e listas ligadas, passamos a falar de coisas de 
muito mais alto nível como Fábricas, Fachadas, 
GoF - Contribuições
muito mais alto nível como Fábricas, Fachadas, 
Observador, Estratégia, etc.
• Nome
• Problema
– Quando aplicar o padrão, em que condições?
• Solução
– Descrição abstrata de um problema e como usar os elementos 
disponíveis (classes e objetos) para solucioná-lo
Elementos de um padrão
disponíveis (classes e objetos) para solucioná-lo
• Consequências
– Custos e benefícios de se aplicar o padrão
– Impacto na flexibilidade, extensibilidade, portabilidade e 
eficiência do sistema
• Segundo Gamma et al, são classificados de duas formas:
– Por propósito: (1) criação de classes e objetos, (2) alteração da 
estrutura de um programa, (3) controle do seu comportamento
– Por escopo: classe ou objeto
• Segundo Metsker, são classificados em 5 grupos, por 
intenção (problema a ser solucionado): 
Classificação
• Segundo Metsker, são classificados em 5 grupos, por 
intenção (problema a ser solucionado): 
– Oferecer uma interface; 
– Atribuir uma responsabilidade;
– Realizar a construção de classes ou objetos;
– Controlar formas de operação;
– Implementar uma extensão para a aplicação.
• Introduzidos por Craig Larman em seu livro “Applying 
UML and Patterns”[4]
• GRASP:General Responsibility and Assignment Software 
Patterns
– Os padrões GRASP descrevem os princípios fundamentais da 
Padrões GRASP
– Os padrões GRASP descrevem os princípios fundamentais da 
atribuição de responsabilidades a objetos, expressas na forma 
de padrões
• Esses padrões exploram os princípios fundamentais de 
sistemas OO
– 5 padrões fundamentais
– 4 padrões avançados
• Se você conhece os padrões GRASP, pode dizer que 
Padrões GRASP
• Se você conhece os padrões GRASP, pode dizer que 
compreende o paradigma orientado a objetos.
• Padrões são específicos a uma determinada área (padrões 
J2EE, padrões de implementação em Java, em C#, 
padrões para concorrência, sistemas distribuídos, etc.)
• Exemplos:
– Dependency Injection: um caso particular de um dos padrões 
Outros padrões
– Dependency Injection: um caso particular de um dos padrões 
GRASP (Indirection) bastante popular no momento (também 
conhecido como Inversão de Controle)
– Aspectos: uma extensão ao paradigma orientado a objetos que 
ajuda a lidar com limitações dos sistemas OO

Continue navegando