padrões-01 - introdução
DESCRIPTION
Padrões. Introdução.TRANSCRIPT
Padrões
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
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”
4 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Um Exemplo na Arquitetura
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
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
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
8 Livro Texto: Pattern Oriented Software Architecture - Buschmann
Eduardo N. F. Zagari
Model-View-Controller
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
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
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.
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
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
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
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
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