Vous êtes sur la page 1sur 29

Padres de Projeto

Engenharia de Software
III
Profa. Mrcia Hfele Islabo
Franco

Reuso de Software X Padres de


Projeto
Processo de desenvolvimento de software
baseado em reuso de software
Softwares de melhor qualidade
Maior confiabilidade
Agilidade no desenvolvimento
Menor custo

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Introduo


Surgiram no final dos anos 70 atravs do
trabalho do arquiteto Christopher
Alexander
Ressurgiram em 1987 no Workshop sobre
Especificao e Projeto para Programao
Orientada a Objetos

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Introduo


Descrevem solues para problemas que
ocorrem frequentemente no
desenvolvimento de software e que podem
ser reusadas por outros projetos

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Introduo


Por que padres de projeto?
Boas prticas!
Engenheiros de software no iniciam o
seu projeto do nada
reutilizamos ideias
As mesmas tcnicas so utilizadas
repetitivamente

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Histrico


1987: padres para projetar janelas em
Smalltalk
1991: padres de programao especficos
para a linguagem C++
Gamma GoF (1993): livro sobre Padres
de Projetos
1994 - Primeira Conferncia sobre Padres
de Projeto
Engenharia de Software III
Sistemas para Internet

Padres de Projeto - Definio


Um padro uma entidade que descreve
um problema que ocorre repetidamente
em um ambiente e ento descreve a
essncia da soluo para este problema,
de tal forma que voc use esta soluo
milhes de vezes, sem nunca utiliz-la do
mesmo modo.
Christopher Alexander

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Definio


Um padro uma soluo provada para um
problema em um contexto.
Comunidade de Software

Engenharia de Software III


Sistemas para Internet

Padres de Projeto
Podem se referir a diferentes nveis de
abstrao no desenvolvimento de
sistemas
Padres arquiteturais, padres de
anlise, padres de projeto, padres de
implementao, ...

Engenharia de Software III


Sistemas para Internet

Padres de Projeto - Vantagens


Proporcionam um vocabulrio comum para
a comunicao entre projetistas, criando
abstraes num nvel superior ao de
classes e garantindo uniformidade na
estrutura do software
Atuam como blocos construtivos a partir
dos quais projetos mais complexos podem
ser construdos
Engenharia de Software III
Sistemas para Internet

10

Padres de Projeto - Vantagens


Identificao de problemas comuns de projeto
de software
Solues testadas e bem documentadas
Boas prticas de OO
Auxiliam na converso de um modelo de
anlise em um modelo de implementao
Maior produtividade
Reduo de custo e tempo de
desenvolvimento
Padronizao
Engenharia de Software III
Sistemas para Internet

11

Anti Padres
Anti padres representam uma lio aprendida, ao
contrrio dos padres, que representam a melhor
prtica.
Brad Applenton

Podem ser de dois tipos:


Aqueles que descrevem uma soluo ruim para
um problema que resultou em uma situao ruim
Aqueles que descrevem como escapar de uma
situao ruim e como proceder para, a partir
dela, atingir uma boa soluo.
Engenharia de Software III
Sistemas para Internet

12

Classificao de Padres
Padres de processo:
Definem solues para os problemas
encontrados nos processos envolvidos na
engenharia de software: especificao,
desenvolvimento, testes.

Engenharia de Software III


Sistemas para Internet

13

Classificao de Padres
Padres arquiteturais:
Expressam o esquema ou organizao
estrutural fundamental de sistemas.

Engenharia de Software III


Sistemas para Internet

14

Classificao de Padres
Padres de padro:
Padres que descrevem como um padro deve
ser escrito, ou seja, que padronizam a forma
com que os padres so apresentados aos
seus usurios.

Engenharia de Software III


Sistemas para Internet

15

Classificao de Padres
Padres de projeto:
Definem solues para problemas de
projeto de software.

Engenharia de Software III


Sistemas para Internet

16

Classificao de Padres
Padres de interface:
Definem solues para problemas
comuns no projeto da interface de
sistemas. um caso particular dos
padres de projeto.

Engenharia de Software III


Sistemas para Internet

17

Classificao de Padres
Padres de programao:
Descrevem solues de programao
particulares de uma determinada
linguagem ou regras gerais de estilo de
programao.

Engenharia de Software III


Sistemas para Internet

18

Padres de Projeto Construo


Escritos na forma literria
Diferentes formatos
Componentes essenciais
Nome
Problema
Soluo
Consequncias
Estrutura
Participantes
Engenharia de Software III
Sistemas para Internet

19

Padres de Projeto Componentes


essenciais
Nome: uma palavra ou uma frase curta
a primeira coisa que o projetista
encontra quando procura uma soluo
Nomes de padres devem se tornar
parte do vocabulrio do domnio
Iniciantes procuram nomes que
descrevem o problema ou sua soluo

Engenharia de Software III


Sistemas para Internet

20

Padres de Projeto Componentes


essenciais
Problema
Quando utilizar o padro
Problema a ser resolvido descrito
claramente
Expresso por uma simples pergunta ou
por uma formulao resumida do
problema
Geralmente a primeira coisa que um
procurador por soluo observa
Engenharia de Software III
Sistemas para Internet

21

Padres de Projeto Componentes


essenciais
Soluo
O que fazer para resolver o problema
Deve descrever claramente o que
necessrio para resolver o problema
Trs tipos
Uma soluo que pode ser usada para todas
as ocorrncias do problema
Uma soluo que pode ser melhorada
Uma soluo que vai ser refinada nos nveis
de projeto e implementao de diferentes
formas
Engenharia de Software III
Sistemas para Internet

22

Padres de Projeto Outros


Componentes
Consequncias:
Resultados e anlises de vantagens e
desvantagens da aplicao padro
Estrutura:
Uma representao grfica das classes
no padro
Participantes:
As classes e/ou objetos que participam e
suas responsabilidades
...
Engenharia de Software III
Sistemas para Internet

23

Caractersticas de um bom
Padro
Deve ser uma soluo para um problema
em um contexto
Deve ser capaz de dizer o que fazer e como
resolver o problema
A soluo deve ser construda dentro da
tica do problema e pode ser implementada
diversas vezes sem se repetir
Padres frequentemente compartilham o
mesmo contexto
Engenharia de Software III
Sistemas para Internet

24

Como escolher o melhor


padro?
Considere como os padres de projeto
solucionam problemas de projeto
Examine as sees de descrio do
problema de cada padro
Estude como os padres se interrelacionam
Estude padres de finalidades semelhantes
Examine uma causa de reformulao de
projeto

Engenharia de Software III


Sistemas para Internet

25

Padres da GoF (Gang of Four)

Fonte: Design Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma;


Richard Helm; Ralph Johnson; John Vlissides. 1994.

Engenharia de Software III


Sistemas para Internet

26

Padres da GoF
Catlogo de padres de projeto, possui
mais estrutura e organizao, exibindo
tambm relaes entre os padres

Engenharia de Software III


Sistemas para Internet

27

Padres de Projeto
Estruturais:
Lidam com a composio de classes ou objetos;
Definem como as classes e objetos so compostos
para dar forma a estruturas maiores.
Criacionais:
Abstraem o processo de instanciao;
Ajudam a criar um sistema independente da forma
como os objetos so criados, compostos e
representados.
Comportamentais:
Caracterizam a forma como classes ou objetos
interagem;
Distribuem responsabilidades entre objetos e classes.
Engenharia de Software III
Sistemas para Internet

28

Referncias
GAMMA; HELM; JOHSON; VLISSIDES.
Padres de Projeto: Solues Reutilizveis
de Software Orientado a Objetos. Editora:
Artmed, 2000.

Engenharia de Software III


Sistemas para Internet

29

Vous aimerez peut-être aussi