padrões-01 - introdução

16
Padrões

Upload: nicola-zagari

Post on 18-Dec-2014

1.011 views

Category:

Technology


0 download

DESCRIPTION

Padrões. Introdução.

TRANSCRIPT

Page 1: Padrões-01 - Introdução

Padrões

Page 2: Padrões-01 - Introdução

2 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Padrões

• O que é um Padrão? – Comportamento “expert” (especialista)

• Par problema-solução Arquitetura Economia Eng. Software

Page 3: Padrões-01 - Introdução

3 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Um Exemplo na Arquitetura

• Window Place – Todo mundo gosta – Se não existe, raramente as pessoas se

sentem bem • Ou elas se sentam para se sentir confortáveis • Ou se dirigem para próximas da luz

– Portanto: em todos os cômodos que se passa boa parte do tempo, deve-se fazer, pelo menos, uma janela “window place”

Page 4: Padrões-01 - Introdução

4 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Um Exemplo na Arquitetura

Page 5: Padrões-01 - Introdução

5 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Um Exemplo em Arquitetura de Software

•  Model-View-Controller Considere o desenvolvimento de um SW com IHM. – Estender funcionalidades pode implicar em:

•  Modificar menus •  Adaptar a interface para usuários específicos

– O sistema pode precisar migrar para uma nova plataforma com um padrão “look-and-feel” diferente

•  Mesmo uma atualização no sistema de janelas pode implicar em mudanças no código

Page 6: Padrões-01 - Introdução

6 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Um Exemplo em Arquitetura de Software

– Um software com toda esta funcionalidade pode ser caro demais!

•  Desenvolver vários módulos certamente não deve ser a melhor solução!

•  Considere 2 aspectos: – Mudanças para a interface do usuário deveriam ser

fáceis e possivelmente em tempo de execução – Adaptar ou portar a interface não deve ter impacto no

código do núcleo da aplicação •  Para resolver, divide-se este tipo de aplicação

em 3 áreas: processamento, saída e entrada

Page 7: Padrões-01 - Introdução

7 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Um Exemplo em Arquitetura de Software

– Componente MODEL: encapsula os dados do núcleo da aplicação e sua funcionalidade

– Componentes VIEW: mostra as informações para o usuário. Obtém-nas do MODEL

– Cada componente VIEW tem um componente CONTROLLER associado

•  Recebem a entrada (usualmente eventos) •  Eventos são traduzidos em requisições de serviços que são

enviadas para o MODEL ou para VIEW •  O usuário interage com o sistema apenas através dos

CONTROLLERs •  Esta separação possibilita múltiplas visões do

mesmo modelo

Page 8: Padrões-01 - Introdução

8 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Model-View-Controller

Page 9: Padrões-01 - Introdução

9 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Propriedades dos Padrões

•  Um padrão trata um problema recorrente que surge em situações de projeto e apresenta uma solução para ele

•  Padrões documentam experiências de projeto reais e bem sucedidas

•  Identificam e especificam abstrações que estão acima do nível de classes e instâncias únicas ou de componentes

•  Provêem um vocabulário comum e entendimento para princípios de projeto

Page 10: Padrões-01 - Introdução

10 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Propriedades dos Padrões

•  São um meio para a documentação de arquiteturas de software

• Dão suporte à construção de softwares com propriedades definidas

•  Ajudam-nos a construir arquiteturas de software complexas e heterogêneas

•  Ajudam-nos a gerenciar a complexidade do software

Page 11: Padrões-01 - Introdução

11 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Definição

•  Um padrão para arquitetura de software descreve um problema de projeto recorrente particular que surge em contextos de projetos específicos e apresenta um esquema genérico, bem comprovado, para sua solução

•  O esquema de solução é especificado descrevendo-se seus componentes constituintes, suas responsabilidades e relacionamentos e a forma como eles colaboram.

Page 12: Padrões-01 - Introdução

12 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

O que constitui um Padrão

•  Existe um “esqueleto” de 3 partes que captura a essência de todo padrão, independente de seu domínio: – Contexto: situação de projeto que levanta um

problema de projeto – Problema: o problema recorrente que se

levanta neste contexto. É descrito através de um conjunto de aspectos que devem ser considerados na solução

Page 13: Padrões-01 - Introdução

13 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

O que constitui um Padrão

– Solução: uma solução bem sucedida do problema, composta por uma parte estática, que descreve a estrutura com seus componentes e seus relacionamentos e uma parte dinâmica, que descreve o comportamento em tempo de execução dos componentes

Page 14: Padrões-01 - Introdução

14 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Categorias

•  Padrões Arquiteturais – Expressam um esquema estrutural

fundamental para sistemas de software – Provêem um conjunto de subsistemas

fundamentais, especificam suas responsabilidades e incluem regras e guias para a organização dos relacionamentos entre eles

Page 15: Padrões-01 - Introdução

15 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Categorias

•  Padrões de Projeto – Provêem um esquema para refinamento dos

subsistemas ou componentes de um sistema de software ou dos relacionamentos entre eles.

– Descrevem uma estrutura recorrente comum de componentes de comunicação que solucionam um problema de projeto geral dentro de um contexto particular

Page 16: Padrões-01 - Introdução

16 Livro Texto: Pattern Oriented Software Architecture - Buschmann

Eduardo N. F. Zagari

Categorias

•  Idiomas – São um padrão de “nível baixo” específico de

uma linguagem de programação – Descrevem como implementar aspectos

particulares de componentes ou de relacionamentos entre eles usando as características de uma dada linguagem