Você está na página 1de 28

PADRÕES DE SOFTWARES

Objetivos deste capítulo

✓Compreender o conceito dos padrões em


projetos de softwares;
✓Reconhecer a importância dos padrões dentro de
um projetos de software
Vamos pensar...
QUAL É A
UTILIDADE/FUNÇÃO DE SE
TER PADRÕES EM UM
PROJETO DE SOFTWARE?
DEFINIÇÃO INICIAL
✓Padrões são maneiras testadas e documentadas
de alcançar objetivos;
✓Padrões são comuns nas diversas áreas da
engenharia;
✓Na Engenharia de Software temos os Padrões de
Projeto – Design Patterns.
DEFINIÇÃO
Um padrão de projeto não é um projeto finalizado que pode ser
diretamente transformado em código fonte ou de máquina, ele é
uma descrição ou modelo (template) de como resolver um
problema que pode ser usado em muitas situações diferentes.
Padrões são melhores práticas formalizadas que o programador
pode usar para resolver problemas comuns quando projetar uma
aplicação ou sistema.
Padrões de projeto orientados a objeto normalmente mostram
relacionamentos e interações entre classes ou objetos, sem
especificar as classes ou objetos da aplicação final que estão
envolvidas
DEFINIÇÃO - PATTERNS

“Cada padrão descreve um problema que ocorre repetidas


vezes no nosso ambiente e, então, descreve o núcleo da
solução para aquele problema, de forma que você pode
reutilizar a mesma solução milhões de vezes sem nunca
fazê-la da mesma forma duas vezes.”

Christopher Alexander, et. al


A Pattern Language (1977)
DEFINIÇÃO - PATTERNS

“Descrição de uma solução customizada para resolver um


problema genérico de projeto em um contexto
específico. [...] Um padrão de projeto dá nome, abstrai e
identifica os aspectos-chave de uma estrutura de projeto
comum para torná-la reutilizável.”

Erich Gamma, et. al


Design Patterns, Elements of Reusable
Object-Oriented Software (1994)
DEFINIÇÃO - PATTERNS

• Padrões (...) são um modo de capturar experiências (…)


de modo que outras pessoas possam utilizá-
las[Gamma93].

• Padrões de projeto constituem um conjunto de regras


descrevendo como realizar determinadas tarefas no
desenvolvimento de software[Pree94].
DEFINIÇÃO - PATTERNS
 Analogia: jogo de xadrez.
 Diversos mestres já elaboraram jogadas geniais.
 Essas jogadas foram catalogadas e passaram a ser utilizadas por
outros jogadores.
O mesmo acontece no desenvolvimento de software.
 Desenvolvedores experientes criaram soluções para diversos
problemas relacionados ao desenvolvimento de software.
 Essas “jogadas” (padrões) também foram catalogadas.
 Esses padrões são agora utilizados por outros desenvolvedor
FORMATO DE UM PADRÃO
Quatro elementos essenciais:
 Nome;
 Descrição do problema e contexto para os quais o padrão se
aplica;
 Descrição da solução genérica proposta;
 Consequências da aplicação do padrão (custos e benefícios).
PARA QUE SERVEM UM PADRÃO

 Lembramos de patterns quando nos deparamos com algum problema


 Começo de um projeto
 Hábito no projeto de um sistema
 Aumentar o reuso
 Abstração
 Melhora a documentação
 São muito bem documentados – possui componentes
 Sistema pode agregar esta documentação
 Facilita a documentação
 Muito tempo gasto na manutenção
 Dedicar maior tempo ao projeto – usar padrões
 Bem documentados
POR QUE USAR OS PADRÕES
 Aprender com a experiência de outros:
 Ajudam a resolver os principais problemas dos iniciantes;
 Permitem que façamos bons projetos mais rapidamente.
 O jargão facilita a comunicação;
 Permitem que os desenvolvedores concentrem seus esforços nos
aspectos inéditos do problema.
 Software de melhor qualidade:
 Melhores práticas em OO;
 Soluções bem testadas e documentadas.
PADRÕES GoF

Definição segundo GoF (Gang of Four): "descriptions of


communicating objects and classes that are customized to solve a
general design problem in a particular context.“

"descrições de objetos e classes comunicantes que são


customizados para resolver um problema geral de design em um
determinado contexto."
PADRÕES GoF
Os padrões "GoF" são divididos em 24 tipos. Em função dessa
grande quantidade de padrões, foi necessário classificá-los de
acordo com as suas finalidades.

Segundo o seu propósito, padrões podem ser:


✓Criacionais: tratam do processo de criação de objetos
✓Estruturais: tratam da composição de classes e objetos
✓Comportamentais: tratam das interações e distribuição de
Responsabilidades entre classes e objetos
PADRÕES GoF
Os padrões "GoF" são divididos em 24 tipos. Em função dessa
grande quantidade de padrões, foi necessário classificá-los de
acordo com as suas finalidades.

Segundo seu escopo, padrões podem se aplicar a:


✓Classes: propõem relacionamentos entre classes e subclasses
✓Objetos: propõem relacionamentos entre objetos
PADRÕES GoF
PADRÕES GoF
PADRÕES GoF
PADRÕES GoF
POR QUE USAR OS PADRÕES

Um padrão somente deve merecer este nome depois que sua


utilidade for comprovada em um certo número de sistemas
COMO SELECIONAR UM PADRÃO?
• Entenda como os padrões ajudam a resolver problemas em
OO;
• Revise as intenções de cada padrão;
• Estude como os padrões se inter relacionam;
• Estude as similaridades entre os padrões de mesmo propósito;
• Conheça as principais causas de retrabalho;
• Considere o que você pode querer mudar em seu projeto no
futuro.
COMO USAR UM PADRÃO?
 Leia o padrão todo uma vez;
 Ler as seções aplicabilidade e consequências
 A aplicação pode ser imprópria ou gerar problemas maiores
 Ler as seções: Estrutura, participantes e colaboração;
 Estude o código fonte de exemplo – melhora o entendimento;
 Escolha nomes para os participantes do padrão dentro do seu
contexto;
 Defina as novas classes e modifique classes existentes que são
afetadas;
 Defina nomes para as operações do padrão dentro do seu
contexto;
 Implemente as operações.
'' Um framework é um conjunto
FRAMEWORK
cooperativo de classes que tornam
um projeto reutilizável para uma
classe específica de software. Um
framework fornece uma orientação
arquitetural através da divisão do
projeto em classes abstratas e
definindo as suas
responsabilidades e colaborações.
Um desenvolvedor irá customizar
um framework para uma aplicação
particular através de subclasses e
compor instâncias de classes do
framework. ''[GoF]
FRAMEWORK X PATTERNS

 Um framework é um conjunto de classes, uma espécie de mini-


arquitetura para uma determinada categoria de software.
 Um framework deverá ser customizado para uma aplicação
específia a partir da criação de classes concretas desta aplicação
que herdaram das classes abstratas do framework.
 Projetistas perdem um pouco de liberdade na tomada de decisão
 Arquitetura predefinida
 Pode conter Patterns na implementação
FRAMEWORK X PATTERNS
• Framewoks oferecem maior reuso do que Patterns
• O código do framework é reutilizado
• É construído em uma linguagem específica
• Arquitetura já está projetada
• Ciclo de desenvolvimento é menor
• Ao utilizar um framework, basta desenvolver somente a parte
especifica ao nosso caso.
CONCLUINDO...
• Desenvolver SW é difícil.
• Desenvolver SW reutilizável e ainda mais difícil.
• Padrões facilitam o reuso de projetos e arquiteturas de sucesso.
• OOP = ferramenta. “Ter um martelo não faz de ninguém um
arquiteto.”
• Estudar padrões de software é uma necessidade para
desenvolvedores de software que almejam qualidade em seu
trabalho.
FUTURO
• Novas tecnologias e técnicas surgem rapidamente.
• O profissional deve-se manter atualizado.
• O tempo é cada vez mais curto.
• Aumento da demanda por software.
• Maior exigência por qualidade.
• Algumas linguagens já implementam alguns patterns.
• Softwares construídos com patterns possuem facilidades de
manutenção.
• Bem documentados.
• Um exemplo:
• Uma empresa com profissionais pouco experientes pode reusar o conhecimento de uma
empresa mais experiente no ramo para aumentar o ganho no desenvolvimento.
FIM

Você também pode gostar