SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
Padrões
Padrões
•  O que é um Padrão?
    – Comportamento “expert” (especialista)


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




2                  Livro Texto: Pattern Oriented Software         Eduardo N. F. Zagari
                          Architecture - Buschmann
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”

3                  Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                          Architecture - Buschmann
Um Exemplo na Arquitetura




4          Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                  Architecture - Buschmann
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




5                      Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                              Architecture - Buschmann
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
6                     Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                             Architecture - Buschmann
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
7                    Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                            Architecture - Buschmann
Model-View-Controller




8        Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                Architecture - Buschmann
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
9                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
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
10            Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                     Architecture - Buschmann
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.
11              Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                       Architecture - Buschmann
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
12                 Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                          Architecture - Buschmann
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




13                Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                         Architecture - Buschmann
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


14                 Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                          Architecture - Buschmann
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

15               Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                        Architecture - Buschmann
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



16                 Livro Texto: Pattern Oriented Software   Eduardo N. F. Zagari
                          Architecture - Buschmann

Contenu connexe

En vedette

Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisEduardo Nicola F. Zagari
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 

En vedette (15)

Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
ICC-05 Álgebra Booleana
ICC-05 Álgebra BooleanaICC-05 Álgebra Booleana
ICC-05 Álgebra Booleana
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
ICC-01 História dos Computadores
ICC-01 História dos ComputadoresICC-01 História dos Computadores
ICC-01 História dos Computadores
 
Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 

Similaire à Padrões-01 - Introdução

Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareThomas Kanzig
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docxJulioCesar371362
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwareTiago Barros
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwareAdolfo Neto
 
Reutilização
ReutilizaçãoReutilização
Reutilizaçãoemjorge
 
O que é framework
O que é frameworkO que é framework
O que é frameworkfcdigital
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9wilsonguns
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelRyan Padilha
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 

Similaire à Padrões-01 - Introdução (20)

[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto[CEFETMG][ESw] Aula 6 - Conceitos de projeto
[CEFETMG][ESw] Aula 6 - Conceitos de projeto
 
Aula1.pdf
Aula1.pdfAula1.pdf
Aula1.pdf
 
P2_Aula1-convertido.pptx
P2_Aula1-convertido.pptxP2_Aula1-convertido.pptx
P2_Aula1-convertido.pptx
 
Frameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de softwareFrameworks da web - Uma ferramenta de reutilização de software
Frameworks da web - Uma ferramenta de reutilização de software
 
06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
 
Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
Práticas de Desenvolvimento de Software
Práticas de Desenvolvimento de SoftwarePráticas de Desenvolvimento de Software
Práticas de Desenvolvimento de Software
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de SoftwarePesquisa em Métodos Ágeis para o Desenvolvimento de Software
Pesquisa em Métodos Ágeis para o Desenvolvimento de Software
 
FDD
FDDFDD
FDD
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Travalho versao final
Travalho versao finalTravalho versao final
Travalho versao final
 
Reutilização
ReutilizaçãoReutilização
Reutilização
 
O que é framework
O que é frameworkO que é framework
O que é framework
 
Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9Engenharia de-software-1217199594686494-9
Engenharia de-software-1217199594686494-9
 
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e FlexívelDesign Pattern MVC – Arquitetura de Software Coesa e Flexível
Design Pattern MVC – Arquitetura de Software Coesa e Flexível
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Desenvolvimento Ágil
Desenvolvimento ÁgilDesenvolvimento Ágil
Desenvolvimento Ágil
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 

Plus de Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 

Plus de Eduardo Nicola F. Zagari (10)

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
ICC-03 Organização dos Computadores
ICC-03 Organização dos ComputadoresICC-03 Organização dos Computadores
ICC-03 Organização dos Computadores
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 

Padrões-01 - Introdução

  • 2. Padrões •  O que é um Padrão? – Comportamento “expert” (especialista) Arquitetura •  Par problema-solução Economia Eng. Software 2 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 3. 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” 3 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 4. Um Exemplo na Arquitetura 4 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 5. 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 5 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 6. 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 6 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 7. 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 7 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 8. Model-View-Controller 8 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 9. 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 9 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 10. 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 10 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 11. 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. 11 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 12. 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 12 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 13. 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 13 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 14. 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 14 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 15. 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 15 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann
  • 16. 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 16 Livro Texto: Pattern Oriented Software Eduardo N. F. Zagari Architecture - Buschmann