SlideShare uma empresa Scribd logo
Especialização em Projeto e Desenvolvimento de Sistemas




                Padrões Arquiteturais
                de Sistemas (2011)
                   Vagner Figuerêdo de Santana




                                                      1
Objetivo da disciplina
 Aplicação de padrões no
  desenvolvimento de software orientado a
  objetos
 Desenvolvimento multicamadas com
  integração em diferentes processos de
  software


                                            2
Conteúdo programático
 Introdução
 Padrões Arquiteturais de Sistemas
 Padrões enterprise multicamadas
 Oficina de padrões




                                      3
Introdução
   Christopher Alexander
       A Pattern Language: Towns, Buildings, Constrution
        (1977)
   Gamma et al.
       Design Patterns: Elements of Reusable Object-
        Oriented Software (1994)
   Buschamann et al.
       Pattern-Oriented Software Architecture: A System of
        Patterns (1996)


                                                            4
Introdução
   A qualidade dos projetos arquitetônicos é
    objetiva?




                                                5
Introdução
   Um padrão descreve
     problema que ocorre
      repetidamente
     solução para esse
      problema de forma que se
      possa reutilizar a solução




                                   6
Introdução
   Estrutura básica de um padrão
       Contexto
           Situação em que o problema surge
       Problema
           Conjunto de forças que surge no contexto
       Solução
           Configuração que equilibra as forças
              Estrutura com componentes e relacionamentos
              Comportamento




                                                             7
Introdução
   Exemplo na arquitetura: MASP
       Problema: O terreno para o museu havia
        sido doado com a condição de que a vista
        para o centro da cidade fosse preservada




                                                   8
Introdução
   Solução: Edifício sustentado por pilares




 Inaugurado em 68, o
 edifício é sustentado
     por quatro pilares
  laterais e conta com
um vão livre de 74m.
                          Foto: Kuca (http://www.flickr.com/photos/kuca/279529473/)   9
Introdução
   Por quê usar padrões?
       Aprender com a experiência dos outros
       O jargão facilita a comunicação de princípios
        complexos
       Melhora a qualidade do software
       Descreve abstrações de software
       Ajuda a documentar a arquitetura
       Captura as partes essenciais de forma compacta


                                                         10
Introdução
   No entanto…
     Não apresentam uma solução exata
     Não resolvem todos os problemas de design
     Não é exclusivo de orientação a objetos




                                                  11
Introdução
   Como selecionar um padrão?
       Entenda como os padrões ajudam a resolver
        problemas
       Revise as intenções de cada padrão
       Estude como os padrões se 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


                                                        12
Introdução
   Arquitetura de software
     Resultado do projeto de software
     Descrição dos subsistemas/componentes e
      seus relacionamentos




                                            13
Introdução
   Subsistema/componente
     Bloco básico de construção de sistemas
     Parte encapsulada de um sistema
     Possui uma interface
     Pode ser módulo, classe, objeto ou conjunto
      de funções relacionadas



                                                    14
Introdução
   Padrão Arquitetural
     Expressa uma estrutura fundamental para
      sistemas computacionais
     Fornece um conjunto de subsistemas
      predefinidos
     Especifica responsabilidades
     Conta com diretrizes para organizar o
      relacionamento entre os subsistemas


                                                15
Padrões Arquiteturais
de Sistemas
   MVC (Model View Controller)
       MVP (Model View Presenter)
 Pipeline
 N-tier
 Arquitetura em camadas




                                     16
MVC (Model View Controller)
   Divide aplicação interativa em 3 partes
     Model: regras de negócio e dados (core)
     View: apresenta informações ao usuário
     Controller: trata entrada de usuário e
      manipula o modelo
     A propagação de mudanças é o link entre
      model e view e controllers


                                                17
MVC (Model View Controller)
   Quando usá-lo?
     Contexto: Aplicações interativas
     Problema:
         Interfaces de usuário são propícias a mudanças
         Diferentes visualizações para mesmos dados

       Solução: Dividir processamento, entrada e
        saída


                                                           18
MVC (Model View Controller)

     View           Controller




            Model




                                 19
MVC (Model View Controller)
Classe                            Colaboradores
Model                              View

Responsabilidade                   Controller

 Fornecer funcionalidade
central da aplicação
 Registrar views e controllers
dependentes
 Notifica alterações aos
dependentes
                                                  20
MVC (Model View Controller)
Classe                               Colaboradores
View                                  Controller

Responsabilidade                      Model

 Cria e inicializa seu controller
 Apresenta informações
 Implementa procedimento de
atualização
 Recupera dados do modelo

                                                     21
MVC (Model View Controller)
Classe                         Colaboradores
Controller                      View

Responsabilidade                Model

 Manipula entrada de usuário
 Traduz entradas dos usuários
ou requisições do view em
requisições ao model
 Implementa o procedimento
de atualização
                                               22
MVC (Model View Controller)

     View           Controller




            Model




                                 23
MVC (Model View Controller)
   Este é o MVC clássico, mas...
       É adequado para os sistemas de hoje?
       Quais são as limitações na Web?
       Como model pode notificar a view?
       Quando podemos enfrentar problemas?
       Como poderíamos melhorá-lo?



                                               24
MVC (Model View Controller)
   Separar apresentação (View)
    dos dados (Model)

          View              Controller




                   Model



                                         25
MVC (Model View Controller)
   Separar apresentação (View)
    dos dados (Model)

          View              Controller




                   Model



                                         26
MVC (Model View Controller)
   Separar apresentação (View)
    dos dados (Model)
                   View




                 Controller




                  Model
                                  27
MVC (Model View Controller)
   Exemplo: Jogos (Bomberman)




                                 28
MVC (Model View Controller)




                              29
MVC (Model View Controller)
   Como adicionar mais views?




                                 30
MVC (Model View Controller)

   View                 View       View                View




 Controller           Controller          Controller




              Model                        Model




                                                              31
MVP (Model View Presenter)*
 Variação do MVC
 Surgiu em na IBM
 Ganhou visibilidade nos anos 90**
 Separa widgets reutilizáveis do código
  específico da aplicação

* http://martinfowler.com/eaaDev/uiArchs.html
** http://www.wildcrest.com/Potel/Portfolio/mvp.pdf

                                                      32
MVP (Model View Presenter)
   Divide aplicação interativa em 3 partes
     Model: regras de negócio e dados (core)
     View: estrutura de widgets que gerencia
      controles e formulários e encaminha eventos
      ao presenter
     Presenter: decide como reagir aos eventos e
      atualiza model e view
     Atualização da view é semelhante ao MVC



                                                33
MVP (Model View Presenter)




  Fonte: http://msdn.microsoft.com/en-us/library/ff647543.aspx

                                                                 34
Especificidades do MVP
 Presenter manipula o model e depois
  atualiza o view
 Presenter é como controller mas sem a
  manipulação de eventos
 View despacha eventos para presenter




    Fonte: http://martinfowler.com/eaaDev/uiArchs.html
                                                         35
Pipeline (Pipes and Filters)
   Estrutura para sistemas   Source
    que processam cadeias
    de dados                          Pipe

   Processos são             Filter 1

    encapsulados em                   Pipe
    filtros
                              Filter 2
   Dados são passados
    pelos pipes localizados           Pipe

    entre os filtros           Sink


                                             36
Pipeline (Pipes and Filters)
   Quando usá-lo?
     Contexto: Sistemas que processam cadeias
      de dados
     Problema: Processa/transforma cadeia de
      dados, mas implementá-la de uma só vez é
      inviável
     Solução: Dividir a tarefa em uma sequência
      de etapas

                                               37
Pipeline (Pipes and Filters)
Classe                        Colaboradores
Filter                         Pipe

Responsabilidade
 Obtém dados de entrada
 Manipula dados de entrada
 Fornece dados de saída




                                              38
Pipeline (Pipes and Filters)
Classe                  Colaboradores
Pipe                     Data source

Responsabilidade         Data sink

 Transfere os dados     Filter

 Sincroniza vizinhos




                                        39
Pipeline (Pipes and Filters)
Classe                       Colaboradores
Data Source                   Pipe

Responsabilidade
 Entrega dados de entrada
para pipeline




                                             40
Pipeline (Pipes and Filters)
Classe                        Colaboradores
Data Sink                      Pipe

Responsabilidade
 Consume os dados de saída




                                              41
Pipeline (Pipes and Filters)
   Exemplo: Linha de comando




                                42
N-tier
 Padrão geral de distribuição
 Componentes são separados em
  servidores diferentes
 Comumente, escolhemos um entre os
  padrões 2-tier, 3-tier ou 4-tier



                                      43
Tier vs Layer
   Layer descreve agrupamento lógico
   Tiers descreve a distribuição física em diferentes
    servidores, computadores, redes, etc.
   Layers e tiers usam o mesmo conjunto de nomes
    (apresentação, negócio, serviços e dados), mas
    somente tiers implicam separação física
   É comum ter mais de um layer no mesmo tier
   Podemos pensar no termo tier como sendo uma
    referência a padrões de distribuição de sistemas
    computacionais

                                                         44
2-tier
   Mesmo layout físico que o padrão
    cliente/servidor
   Em alguns casos, todo o código da aplicação é
    localizado no cliente e o banco de dados é
    localizado em um servidor separado
   Considere este padrão se você está
    desenvolvendo
     um cliente que vai acessar um servidor de aplicação
     um cliente stand-alone que acessa um servidor de
      dados separado


                                                       45
2-tier




 Fonte: http://msdn.microsoft.com/en-us/library/ee658120.aspx
                                                                46
3-tier
   O cliente acessa o servidor de aplicação, que
    acessa o servidor de banco de dados; todos
    em diferentes máquinas
   Padrão comum para aplicações Web e Web
    Services
   Pode ser necessário incluir um firewall entre o
    cliente e o servidor de aplicação e entre o
    servidor de aplicação e o banco de dados

                                                      47
3-tier




 Fonte: http://msdn.microsoft.com/en-us/library/ee658120.aspx
                                                                48
4-tier
   Servidor Web é separado fisicamente do servidor de
    aplicação
   O servidor Web está em uma rede e acessa a
    aplicação em outra sub-rede
   Neste cenário cliente e servidores de aplicação/Web
    podem ter que ser combinados com um firewall
   Considere este padrão se
     Requisitos de segurança ditam que as regras de negócio sejam
      separadas
     Você deseja dividir/controlar carga nos servidores




                                                                 49
4-tier




 Fonte: http://msdn.microsoft.com/en-us/library/ee658120.aspx
                                                                50
Arquitetura em Camadas
   Estrutura aplicações decompostas grupos
    de tarefas em diferentes níveis de
    abstração
           Cliente       Camada N



                        Camada N-1




                         Camada 1
                                          51
Arquitetura em Camadas
   Quando usá-lo?
     Contexto: Sistema complexo que exige
      decomposição
     Problema:
         Sistema manipula questões de baixo nível e deve
          disponibilizar funcionalidades a usuários
         Estrutura horizontal com vertical subdivisão

         Portabilidade

       Solução: Estruturar o sistema em número
        apropriado de camadas                          52
Arquitetura em Camadas
Classe                         Colaboradores
Camada N                        Camada N-1

Responsabilidade
 Fornecer funcionalidades
usadas pela camada N+1
 Delega subtarefas à camada
N-1


                                               53
Arquitetura em Camadas
      Exemplo




Fonte: http://msdn.microsoft.com/en-us/library/ee658109.aspx   54
Arquitetura em Camadas
   Exercício: Como definir o número de
    camadas?




                                          55
Arquitetura em Camadas
   Definindo o número de camadas
       Agrupar componentes que representam
        papeis e funcionalidades diferentes
           Ex.: Apresentação, Negócio e Dados
       Delimitar locais onde decisões envolvendo
        tecnologias ou projeto precisam ser
        tomadas
           Ex.: Linguagens, Dispositivos, Banco de dados.

                                                             56
Arquitetura em Camadas
   Pontos críticos
       Separar aplicação em muitas camadas pode
         Prejudicar o desempenho
         Complexidade desnecessária

       Prezando pela manutenção deve-se
         Manter encapsulamento nas camadas
         Baixo acoplamento entre camadas

         Como verificar?



                                               57
Arquitetura em Camadas
   Arquitetura em 3 camadas (Fowler)
       Apresentação (fornece serviço)
         Exibir informações
         Traduzir comandos do usuário em ações na

          camada de domínio
       Domínio
           Regras de negócio
       Dados (usa serviço)
           Apresentação e recuperação de dados
                                                     58
Arquitetura em Camadas
Fowler           Microsoft      J2EE
Apresentação     Apresentação   Cliente
                                Apresentação
                                (servidor)
Domínio          Negócio        Negócio
Fonte de dados   Acesso a dados Integração
                                Recursos


                                               59
Exercício
 Em duplas ou trios
 Projetar o sistema do bilhete único de SP
     Definir arquitetura(s)
     Esboço do projeto (diagrama de classes)

   Considerar
     Sistema central
     Quiosques de recarga
     Catracas
                                                60
Arquitetura baseada em serviços

 Composto por múltiplos serviços
 Comunicação via mensagens/protocolos
 Componentes da solução total
 Outras aplicações podem usar serviços
  sem se precisar se preocupar como eles
  estão implementados


                                           61
Arquitetura baseada em serviços

      Exemplo




Fonte: http://msdn.microsoft.com/en-us/library/ee658109.aspx   62
Arquitetura baseada em serviços

   Exemplo: Reuso de CMS




                                  63
Padrões enterprise multicamadas*
 Padrões de base
 Padrões de fontes de dados
 Padrões de lógica de domínio (negócio)
 Padrões de apresentação
 Padrões de distribuição


(*) www.martinfowler.com/eaaCatalog

                                           64
Padrões de base
Gateway
   Objeto que encapsula o acesso a um
    sistema ou recurso externo




                                         65
Padrões de base
Mapper
   Objeto que inicializa comunicação entre
    objetos independentes que não possuem
    conhecimento um do outro




                                          66
Padrões de base
Layer Supertype
 Atua como supertipo de todos os tipos na
  sua camada
 Pode ser comum ter objetos que
  compartilham métodos em uma camada
 Você pode mover comportamento para
  um Layer Supertype


                                         67
Padrões de base
Separated Interface
   Interface em um
    pacote diferente
    do local de sua
    implementação




                       68
Padrões de base
Registry
   Objeto bem conhecido que outros objetos
    pode usar para encontrar objetos ou
    serviços comuns (ou globais)




                                          69
Padrões de base
Value Object
 Objeto simples que baseia sua igualdade
  no valor e não na identidade (e.g.,
  Money, Date, Temperature)
 Normalmente são passados por valor
 Comparações consideram valor em vez
  de instância
 Nota: Remete ao método equals()


                                        70
Padrões de base
Money
   Representa valor monetário




                                 71
Padrões de base
Special Case
 Subclasse com
  comportamento especial
  para casos particulares
 Em vez de retornar
  nulo ou outra coisa
  estranha, retorne
  um Special Case

                            72
Padrões de base
Plugin
   Conecta classes durante configuração em
    vez de tempo de compilação




                                          73
Padrões de base
Service Stub
   Remove dependência de serviços
    problemáticos durante testes




                                     74
Padrões de base
Record Set
   Representação em memória de dados
    tabulares




                                        75
Padrões de fontes de dados
Table Data Gateway
 Objetos que atuam como Gateway para
  uma tabela de dados
 Uma instância manipula todas linhas da
  tabela




                                           76
Padrões de fontes de dados
Row Data Gateway
 Objeto que atua como Gateway para um
  registro em uma fonte de dados
 Uma instância por linha




                                         77
Padrões de fontes de dados
Active Record
   Objeto que envolve uma linha de tabela,
    encapsula acesso ao banco de dados e
    adiciona lógica de domínio nos dados




                                              78
Padrões de fontes de dados
Data Mapper
   Camada de Mappers que move dados
    entre objetos e banco de dados
    mantendo independência




                                       79
Padrões de lógica de domínio
Transaction Script
   Organiza lógica de negócio via
    procedimentos em que cada um manipula
    requisitos vindos da apresentação




                                        80
Padrões de lógica de domínio
Domain Model
   Modelo de objeto do domínio que
    incorpora comportamento e dados




                                      81
Padrões de lógica de domínio
Table Module
   Instância única que manipula a lógica de
    negócio para todas linhas em uma tabela




                                           82
Padrões de lógica de domínio
Service Layer
   Define limites da
    aplicação com uma
    camada de serviços
    que estabelecem
    um conjunto de
    operações



                               83
Padrões de apresentação
Model View Controller
   Divide a interface de usuário em três
    papéis distintos




                                            84
Padrões de apresentação
Page Controller
   Objeto que manipula uma requisição por
    uma página específica ou ação




                                             85
Padrões de apresentação
Front Controller
   Controller que manipula todas requisições




                                            86
Padrões de apresentação
Template View
   Insere informações em HTML colocando
    marcadores em uma interface de usuário




                                             87
Padrões de apresentação
Transform View
   View que processa dados de domínio
    (elemento a elemento) e transforma em
    HTML




                                            88
Padrões de apresentação
Two Step View
   Transforma dados
    de domínio em
    HTML
     Monta a estrutura
      lógica
     Renderiza a
      estrutura
      lógica em HTML.

                          89
Padrões de apresentação
Application Controller
   Ponto central para manipular navegação
    na tela e o fluxo de uma aplicação




                                             90
Padrões de distribuição
Remote Facade
   Converter objetos de granularidade fina
    (ou alta) em objetos compactos tendo
    como foco eficiência de rede




                                              91
Padrões de distribuição
Data Transfer Object
   Objeto que carrega dados entre
    processos para reduzir o número de
    chamadas de métodos




                                         92
Exercício
   Continuar o projeto do sistema do bilhete
    único de SP aplicando, quando aplicável,
    o máximo de padrões vistos até o
    momento




                                            93
Formatos de padrões
   POSA - Pattern-Oriented Software
    Architecture

   PoEAA - Patterns of Enterprise
    Application Architecture

   GoF - Gang of Four

                                       94
POSA
 Nome
 Contexto
 Problema
 Solução




             95
GoF
                   Intenção
 Nome             Outros nomes

 Problema         Motivação

                   Aplicação
 Solução
                   Estrutura
 Consequências    Participantes

                   Colaborações

                   Implementação

                   Código de exemplo

                   Usos conhecidos

                   Padrões relacionados   96
PoEAA
 Nome
 Intenção e esboço
 Problema
 Como funciona
 Quando usá-lo
 Leitura adicional
 Exemplos

                      97
POSA          PoEAA                        GoF
Nome          Nome                Nome e outros nomes
Contexto      Intenção            Intenção
              Esboço              Estrutura
Problema      Problema            Problema e Motivação
Solução       Como funciona       Solução
                                  Consequências
              Quando usá-lo       Usos conhecidos e
                                  Aplicação
              Leitura adicional
              Exemplos            Código de exemplo e
                                  Implementação
                                  Participantes
                                  Colaborações
                                  Padrões relacionados
                                                         98
Notas finais
   Funcionalidades principais de um sistema
    são significativos para a arquitetura

   O que é feito durante a arquitetura visa
    evitar o risco de um projeto falhar



                                               99
Referências
   Buschamann et al.
    Pattern-Oriented Software Architecture: A System of
    Patterns (1996)
   Gamma et al.
    Design Patterns: Elements of Reusable Object-Oriented
    Software (1994)
   Fowler
    Patterns of Enterprise Application Architecture (2007)




                                                         100
Referências
   http://martinfowler.com/eaaDev/uiArchs.html
   http://www.martinfowler.com/eaaCatalog
   http://www.wildcrest.com/Potel/Portfolio/mvp.pdf
   http://msdn.microsoft.com/en-us/library/ff647543.aspx
   http://msdn.microsoft.com/en-us/library/ee658120.aspx
   http://msdn.microsoft.com/en-us/library/ee658109.aspx




                                                            101

Mais conteúdo relacionado

Mais procurados

Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
Alessandro Kieras
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
sergiocrespo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
elliando dias
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
Guilherme
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
Márcia Rodrigues
 
Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)
Helio Henrique L. C. Monte-Alto
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
Eliseu Castelo
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
Douglas Alonso
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Marcelo Yamaguti
 
Uml
UmlUml
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
Andre de Carvalho
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Fábio Nogueira de Lucena
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Estêvão Bissoli Saleme
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
Felipe Oliveira
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
Wagner Zaparoli
 
UML
UMLUML
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
alinebicudo
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
Daniel Brandão
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
Tiago Antônio da Silva
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
Franklin Matos Correia
 

Mais procurados (20)

Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Aula diagrama de classes
Aula diagrama de classesAula diagrama de classes
Aula diagrama de classes
 
Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)Arquitetura orientada a serviços (SOA)
Arquitetura orientada a serviços (SOA)
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Documentação de Arquitetura de Software Aplicando o C4 Model
Documentação de Arquitetura  de Software Aplicando o C4 ModelDocumentação de Arquitetura  de Software Aplicando o C4 Model
Documentação de Arquitetura de Software Aplicando o C4 Model
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Uml
UmlUml
Uml
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Es capítulo 5 - modelagem de sistemas
Es   capítulo 5  - modelagem de sistemasEs   capítulo 5  - modelagem de sistemas
Es capítulo 5 - modelagem de sistemas
 
Gerência de Configuração
Gerência de ConfiguraçãoGerência de Configuração
Gerência de Configuração
 
UML
UMLUML
UML
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2Diagramas de casos de uso - aula 2
Diagramas de casos de uso - aula 2
 

Destaque

Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
Rafael França
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
Eduardo Nicola F. Zagari
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
Sergio Crespo
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
Eduardo Nicola F. Zagari
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
Almir Neto
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
Eduardo Nicola F. Zagari
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
Eduardo Nicola F. Zagari
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
Eduardo Nicola F. Zagari
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
Yan Justino
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
leopp
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
Jorge Tressino Rua
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
Rafael Ponte
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
Aricelio Souza
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
ejdn1
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
Cleyton Ferrari
 
Dancing with publish/subscribe
Dancing with publish/subscribeDancing with publish/subscribe
Dancing with publish/subscribe
Sameera Horawalavithana
 
Arquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaArquitetura de Software - Concorrência
Arquitetura de Software - Concorrência
André Faria Gomes
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
Gabii Fonseca
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
B&R Consultoria Empresarial
 

Destaque (20)

Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and Filters
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Padrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVCPadrões de Projeto WEB e o MVC
Padrões de Projeto WEB e o MVC
 
Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Atacando as complexidades no coração do software
Atacando as complexidades no coração do softwareAtacando as complexidades no coração do software
Atacando as complexidades no coração do software
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
 
Padrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVMPadrões Arquiteturais - MVC, MVP e MVVM
Padrões Arquiteturais - MVC, MVP e MVVM
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetos
 
Dancing with publish/subscribe
Dancing with publish/subscribeDancing with publish/subscribe
Dancing with publish/subscribe
 
Arquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaArquitetura de Software - Concorrência
Arquitetura de Software - Concorrência
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .net
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Aula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQLAula 01 - Curso PHP e MySQL
Aula 01 - Curso PHP e MySQL
 

Semelhante a Padrões Arquiteturais de Sistemas

MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
André Faria Gomes
 
Asp net mvc
Asp net mvcAsp net mvc
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
anybalrocha
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
Rafael França
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
Objectory
ObjectoryObjectory
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
Felipe Coelho Machado
 
Arquitetura Model View Controller
Arquitetura Model View ControllerArquitetura Model View Controller
Arquitetura Model View Controller
Lourdilene Souza
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
Michael Costa
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
Portal GSTI
 
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Lucas Furtado de Oliveira
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
Otávio Calaça Xavier
 
DCI com PHP
DCI com PHPDCI com PHP
DCI com PHP
Flávio Lisboa
 
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Lucas Furtado de Oliveira
 
Camadas
CamadasCamadas
Camadas
Sonia Góes
 
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
Ryan Padilha
 
Treinamento MVC .Net
Treinamento MVC .NetTreinamento MVC .Net
Treinamento MVC .Net
Henrique Riccio
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
Jefferson Moreira
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
Felipe Knappe
 

Semelhante a Padrões Arquiteturais de Sistemas (20)

MVC MVP MVVM para Web
MVC MVP MVVM para WebMVC MVP MVVM para Web
MVC MVP MVVM para Web
 
Asp net mvc
Asp net mvcAsp net mvc
Asp net mvc
 
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
ASM.NET MVC 5 + Entity Framework - Explorando conceitos e criando um projeto ...
 
Mvc - Semifinal
Mvc - SemifinalMvc - Semifinal
Mvc - Semifinal
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Objectory
ObjectoryObjectory
Objectory
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
2016-12 Microsserviços: Comparativo da Arquitetura de Microsserviços com o Mo...
 
Arquitetura Model View Controller
Arquitetura Model View ControllerArquitetura Model View Controller
Arquitetura Model View Controller
 
Treinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVCTreinamento Básico Sobre ASP.NET MVC
Treinamento Básico Sobre ASP.NET MVC
 
Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório Ebook AngularJS | Guia Introdutório
Ebook AngularJS | Guia Introdutório
 
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
Entendendo a Tríade Model-View-Controller (MVC) Utilizando Padrões de Projeto...
 
Padrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVCPadrões de Projeto Web e o MVC
Padrões de Projeto Web e o MVC
 
DCI com PHP
DCI com PHPDCI com PHP
DCI com PHP
 
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
Entendendo a Tríade Model-View-Controller (MVC) utilizando padrões de projeto...
 
Camadas
CamadasCamadas
Camadas
 
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
 
Treinamento MVC .Net
Treinamento MVC .NetTreinamento MVC .Net
Treinamento MVC .Net
 
Arquitetura de Sofware
Arquitetura de SofwareArquitetura de Sofware
Arquitetura de Sofware
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEI
 

Mais de Vagner Santana

Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUP
Vagner Santana
 
MCPL2013 - Social network analyses in organizations: challenges and approache...
MCPL2013 - Social network analyses in organizations: challenges and approache...MCPL2013 - Social network analyses in organizations: challenges and approache...
MCPL2013 - Social network analyses in organizations: challenges and approache...
Vagner Santana
 
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
Vagner Santana
 
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
Vagner Santana
 
WWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
WWW/Internet 2011 - A Framework for Web 2.0 Secure WidgetsWWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
WWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
Vagner Santana
 
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
Vagner Santana
 
IHC 2010 - Competição de avaliação
IHC 2010 - Competição de avaliaçãoIHC 2010 - Competição de avaliação
IHC 2010 - Competição de avaliação
Vagner Santana
 
Acessibilidade web
Acessibilidade webAcessibilidade web
Acessibilidade web
Vagner Santana
 
SEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais OnlineSEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais Online
Vagner Santana
 
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
Vagner Santana
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
Vagner Santana
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
Vagner Santana
 
W4A 2012 - Vagner Santana
W4A 2012 - Vagner SantanaW4A 2012 - Vagner Santana
W4A 2012 - Vagner Santana
Vagner Santana
 

Mais de Vagner Santana (13)

Introdução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUPIntrodução à Engenharia de Requisitos e RUP
Introdução à Engenharia de Requisitos e RUP
 
MCPL2013 - Social network analyses in organizations: challenges and approache...
MCPL2013 - Social network analyses in organizations: challenges and approache...MCPL2013 - Social network analyses in organizations: challenges and approache...
MCPL2013 - Social network analyses in organizations: challenges and approache...
 
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
W4A2013 - Firefixia: An Accessibility Web Browser Customization Toolbar for P...
 
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
W4A2013 - Web Accessibility Snapshot: An Effort to Reveal Coding Guidelines C...
 
WWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
WWW/Internet 2011 - A Framework for Web 2.0 Secure WidgetsWWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
WWW/Internet 2011 - A Framework for Web 2.0 Secure Widgets
 
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
IHC 2010 - Bringing Users of a Digital Divide Context to Website Evaluation U...
 
IHC 2010 - Competição de avaliação
IHC 2010 - Competição de avaliaçãoIHC 2010 - Competição de avaliação
IHC 2010 - Competição de avaliação
 
Acessibilidade web
Acessibilidade webAcessibilidade web
Acessibilidade web
 
SEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais OnlineSEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais Online
 
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
ICEIS 2012 - VISUALIZING USER INTERFACE EVENTS: Event Stream Summarization th...
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de Software
 
W4A 2012 - Vagner Santana
W4A 2012 - Vagner SantanaW4A 2012 - Vagner Santana
W4A 2012 - Vagner Santana
 

Último

A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
MarcoAurlioResende
 
DNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicosDNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicos
jonny615148
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
Manuais Formação
 
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptxSlides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptxagosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
ValdineyRodriguesBez1
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
pamellaaraujo10
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
ARIADNEMARTINSDACRUZ
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
Manuais Formação
 
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
FredPaixaoeSilva
 
Vivendo a Arquitetura Salesforce - 01.pptx
Vivendo a Arquitetura Salesforce - 01.pptxVivendo a Arquitetura Salesforce - 01.pptx
Vivendo a Arquitetura Salesforce - 01.pptx
Mauricio Alexandre Silva
 
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptxSlides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdfEXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
eltinhorg
 
A justiça divina segundo o Espiritismo (V2).pdf
A justiça divina segundo o Espiritismo (V2).pdfA justiça divina segundo o Espiritismo (V2).pdf
A justiça divina segundo o Espiritismo (V2).pdf
MarcoAurlioResende
 
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptxDEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
ConservoConstrues
 
Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
Mary Alvarenga
 
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdfRazonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
Demetrio Ccesa Rayme
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
beatrizsilva525654
 
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptxSlides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
Militao Ricardo
 
Caça-palavaras e cruzadinha - Dígrafos.
Caça-palavaras  e cruzadinha  - Dígrafos.Caça-palavaras  e cruzadinha  - Dígrafos.
Caça-palavaras e cruzadinha - Dígrafos.
Mary Alvarenga
 

Último (20)

A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
A Formação da Moral Cristã na Infância - CESB - DIJ - DIEF - G. de PAIS - 16....
 
DNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicosDNA e RNA - Estrutura dos Ácidos nucleicos
DNA e RNA - Estrutura dos Ácidos nucleicos
 
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdfUFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
UFCD_10789_Metodologias de desenvolvimento de software_índice.pdf
 
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptxSlides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
Slides Lição 12, Betel, Ordenança para amar o próximo, 2Tr24.pptx
 
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptxagosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
agosto - A cidadania - direitos e deveres em países hispanohablantes.pptx
 
Roteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptxRoteiro para análise do Livro Didático.pptx
Roteiro para análise do Livro Didático.pptx
 
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇOPALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
PALAVRA SECRETA - ALFABETIZAÇÃO- REFORÇO
 
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
UFCD_7211_Os sistemas do corpo humano_ imunitário, circulatório, respiratório...
 
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
Discursos Éticos e Políticos Acerca do Meio Ambiente e Desenvolvimento Susten...
 
Vivendo a Arquitetura Salesforce - 01.pptx
Vivendo a Arquitetura Salesforce - 01.pptxVivendo a Arquitetura Salesforce - 01.pptx
Vivendo a Arquitetura Salesforce - 01.pptx
 
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptxSlides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
Slides Lição 13, CPAD, A Cidade Celestial, 2Tr24.pptx
 
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdfEXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
EXERCÍCIOS ARTRÓPODES E EQUINODERMAS.pdf
 
A justiça divina segundo o Espiritismo (V2).pdf
A justiça divina segundo o Espiritismo (V2).pdfA justiça divina segundo o Espiritismo (V2).pdf
A justiça divina segundo o Espiritismo (V2).pdf
 
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptxDEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
DEUS CURA TODAS AS FERIDAS ESCONDIDAS DA NOSSA.pptx
 
Loteria - Adição, subtração, multiplicação e divisão.
Loteria - Adição,  subtração,  multiplicação e divisão.Loteria - Adição,  subtração,  multiplicação e divisão.
Loteria - Adição, subtração, multiplicação e divisão.
 
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdfRazonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
Razonamiento Matematico 6to Primaria MA6 Ccesa007.pdf
 
Resumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionaisResumo de Química 10º ano Estudo exames nacionais
Resumo de Química 10º ano Estudo exames nacionais
 
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptxSlides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
Slides Lição 12, CPAD, A Bendita Esperança, A Marca do Cristão, 2Tr24.pptx
 
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
Podcast: como preparar e produzir um programa radiofônico e distribuir na int...
 
Caça-palavaras e cruzadinha - Dígrafos.
Caça-palavaras  e cruzadinha  - Dígrafos.Caça-palavaras  e cruzadinha  - Dígrafos.
Caça-palavaras e cruzadinha - Dígrafos.
 

Padrões Arquiteturais de Sistemas

  • 1. Especialização em Projeto e Desenvolvimento de Sistemas Padrões Arquiteturais de Sistemas (2011) Vagner Figuerêdo de Santana 1
  • 2. Objetivo da disciplina  Aplicação de padrões no desenvolvimento de software orientado a objetos  Desenvolvimento multicamadas com integração em diferentes processos de software 2
  • 3. Conteúdo programático  Introdução  Padrões Arquiteturais de Sistemas  Padrões enterprise multicamadas  Oficina de padrões 3
  • 4. Introdução  Christopher Alexander  A Pattern Language: Towns, Buildings, Constrution (1977)  Gamma et al.  Design Patterns: Elements of Reusable Object- Oriented Software (1994)  Buschamann et al.  Pattern-Oriented Software Architecture: A System of Patterns (1996) 4
  • 5. Introdução  A qualidade dos projetos arquitetônicos é objetiva? 5
  • 6. Introdução  Um padrão descreve  problema que ocorre repetidamente  solução para esse problema de forma que se possa reutilizar a solução 6
  • 7. Introdução  Estrutura básica de um padrão  Contexto  Situação em que o problema surge  Problema  Conjunto de forças que surge no contexto  Solução  Configuração que equilibra as forças  Estrutura com componentes e relacionamentos  Comportamento 7
  • 8. Introdução  Exemplo na arquitetura: MASP  Problema: O terreno para o museu havia sido doado com a condição de que a vista para o centro da cidade fosse preservada 8
  • 9. Introdução  Solução: Edifício sustentado por pilares Inaugurado em 68, o edifício é sustentado por quatro pilares laterais e conta com um vão livre de 74m. Foto: Kuca (http://www.flickr.com/photos/kuca/279529473/) 9
  • 10. Introdução  Por quê usar padrões?  Aprender com a experiência dos outros  O jargão facilita a comunicação de princípios complexos  Melhora a qualidade do software  Descreve abstrações de software  Ajuda a documentar a arquitetura  Captura as partes essenciais de forma compacta 10
  • 11. Introdução  No entanto…  Não apresentam uma solução exata  Não resolvem todos os problemas de design  Não é exclusivo de orientação a objetos 11
  • 12. Introdução  Como selecionar um padrão?  Entenda como os padrões ajudam a resolver problemas  Revise as intenções de cada padrão  Estude como os padrões se 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 12
  • 13. Introdução  Arquitetura de software  Resultado do projeto de software  Descrição dos subsistemas/componentes e seus relacionamentos 13
  • 14. Introdução  Subsistema/componente  Bloco básico de construção de sistemas  Parte encapsulada de um sistema  Possui uma interface  Pode ser módulo, classe, objeto ou conjunto de funções relacionadas 14
  • 15. Introdução  Padrão Arquitetural  Expressa uma estrutura fundamental para sistemas computacionais  Fornece um conjunto de subsistemas predefinidos  Especifica responsabilidades  Conta com diretrizes para organizar o relacionamento entre os subsistemas 15
  • 16. Padrões Arquiteturais de Sistemas  MVC (Model View Controller)  MVP (Model View Presenter)  Pipeline  N-tier  Arquitetura em camadas 16
  • 17. MVC (Model View Controller)  Divide aplicação interativa em 3 partes  Model: regras de negócio e dados (core)  View: apresenta informações ao usuário  Controller: trata entrada de usuário e manipula o modelo  A propagação de mudanças é o link entre model e view e controllers 17
  • 18. MVC (Model View Controller)  Quando usá-lo?  Contexto: Aplicações interativas  Problema:  Interfaces de usuário são propícias a mudanças  Diferentes visualizações para mesmos dados  Solução: Dividir processamento, entrada e saída 18
  • 19. MVC (Model View Controller) View Controller Model 19
  • 20. MVC (Model View Controller) Classe Colaboradores Model  View Responsabilidade  Controller  Fornecer funcionalidade central da aplicação  Registrar views e controllers dependentes  Notifica alterações aos dependentes 20
  • 21. MVC (Model View Controller) Classe Colaboradores View  Controller Responsabilidade  Model  Cria e inicializa seu controller  Apresenta informações  Implementa procedimento de atualização  Recupera dados do modelo 21
  • 22. MVC (Model View Controller) Classe Colaboradores Controller  View Responsabilidade  Model  Manipula entrada de usuário  Traduz entradas dos usuários ou requisições do view em requisições ao model  Implementa o procedimento de atualização 22
  • 23. MVC (Model View Controller) View Controller Model 23
  • 24. MVC (Model View Controller)  Este é o MVC clássico, mas...  É adequado para os sistemas de hoje?  Quais são as limitações na Web?  Como model pode notificar a view?  Quando podemos enfrentar problemas?  Como poderíamos melhorá-lo? 24
  • 25. MVC (Model View Controller)  Separar apresentação (View) dos dados (Model) View Controller Model 25
  • 26. MVC (Model View Controller)  Separar apresentação (View) dos dados (Model) View Controller Model 26
  • 27. MVC (Model View Controller)  Separar apresentação (View) dos dados (Model) View Controller Model 27
  • 28. MVC (Model View Controller)  Exemplo: Jogos (Bomberman) 28
  • 29. MVC (Model View Controller) 29
  • 30. MVC (Model View Controller)  Como adicionar mais views? 30
  • 31. MVC (Model View Controller) View View View View Controller Controller Controller Model Model 31
  • 32. MVP (Model View Presenter)*  Variação do MVC  Surgiu em na IBM  Ganhou visibilidade nos anos 90**  Separa widgets reutilizáveis do código específico da aplicação * http://martinfowler.com/eaaDev/uiArchs.html ** http://www.wildcrest.com/Potel/Portfolio/mvp.pdf 32
  • 33. MVP (Model View Presenter)  Divide aplicação interativa em 3 partes  Model: regras de negócio e dados (core)  View: estrutura de widgets que gerencia controles e formulários e encaminha eventos ao presenter  Presenter: decide como reagir aos eventos e atualiza model e view  Atualização da view é semelhante ao MVC 33
  • 34. MVP (Model View Presenter) Fonte: http://msdn.microsoft.com/en-us/library/ff647543.aspx 34
  • 35. Especificidades do MVP  Presenter manipula o model e depois atualiza o view  Presenter é como controller mas sem a manipulação de eventos  View despacha eventos para presenter Fonte: http://martinfowler.com/eaaDev/uiArchs.html 35
  • 36. Pipeline (Pipes and Filters)  Estrutura para sistemas Source que processam cadeias de dados Pipe  Processos são Filter 1 encapsulados em Pipe filtros Filter 2  Dados são passados pelos pipes localizados Pipe entre os filtros Sink 36
  • 37. Pipeline (Pipes and Filters)  Quando usá-lo?  Contexto: Sistemas que processam cadeias de dados  Problema: Processa/transforma cadeia de dados, mas implementá-la de uma só vez é inviável  Solução: Dividir a tarefa em uma sequência de etapas 37
  • 38. Pipeline (Pipes and Filters) Classe Colaboradores Filter  Pipe Responsabilidade  Obtém dados de entrada  Manipula dados de entrada  Fornece dados de saída 38
  • 39. Pipeline (Pipes and Filters) Classe Colaboradores Pipe  Data source Responsabilidade  Data sink  Transfere os dados  Filter  Sincroniza vizinhos 39
  • 40. Pipeline (Pipes and Filters) Classe Colaboradores Data Source  Pipe Responsabilidade  Entrega dados de entrada para pipeline 40
  • 41. Pipeline (Pipes and Filters) Classe Colaboradores Data Sink  Pipe Responsabilidade  Consume os dados de saída 41
  • 42. Pipeline (Pipes and Filters)  Exemplo: Linha de comando 42
  • 43. N-tier  Padrão geral de distribuição  Componentes são separados em servidores diferentes  Comumente, escolhemos um entre os padrões 2-tier, 3-tier ou 4-tier 43
  • 44. Tier vs Layer  Layer descreve agrupamento lógico  Tiers descreve a distribuição física em diferentes servidores, computadores, redes, etc.  Layers e tiers usam o mesmo conjunto de nomes (apresentação, negócio, serviços e dados), mas somente tiers implicam separação física  É comum ter mais de um layer no mesmo tier  Podemos pensar no termo tier como sendo uma referência a padrões de distribuição de sistemas computacionais 44
  • 45. 2-tier  Mesmo layout físico que o padrão cliente/servidor  Em alguns casos, todo o código da aplicação é localizado no cliente e o banco de dados é localizado em um servidor separado  Considere este padrão se você está desenvolvendo  um cliente que vai acessar um servidor de aplicação  um cliente stand-alone que acessa um servidor de dados separado 45
  • 47. 3-tier  O cliente acessa o servidor de aplicação, que acessa o servidor de banco de dados; todos em diferentes máquinas  Padrão comum para aplicações Web e Web Services  Pode ser necessário incluir um firewall entre o cliente e o servidor de aplicação e entre o servidor de aplicação e o banco de dados 47
  • 49. 4-tier  Servidor Web é separado fisicamente do servidor de aplicação  O servidor Web está em uma rede e acessa a aplicação em outra sub-rede  Neste cenário cliente e servidores de aplicação/Web podem ter que ser combinados com um firewall  Considere este padrão se  Requisitos de segurança ditam que as regras de negócio sejam separadas  Você deseja dividir/controlar carga nos servidores 49
  • 51. Arquitetura em Camadas  Estrutura aplicações decompostas grupos de tarefas em diferentes níveis de abstração Cliente Camada N Camada N-1 Camada 1 51
  • 52. Arquitetura em Camadas  Quando usá-lo?  Contexto: Sistema complexo que exige decomposição  Problema:  Sistema manipula questões de baixo nível e deve disponibilizar funcionalidades a usuários  Estrutura horizontal com vertical subdivisão  Portabilidade  Solução: Estruturar o sistema em número apropriado de camadas 52
  • 53. Arquitetura em Camadas Classe Colaboradores Camada N  Camada N-1 Responsabilidade  Fornecer funcionalidades usadas pela camada N+1  Delega subtarefas à camada N-1 53
  • 54. Arquitetura em Camadas  Exemplo Fonte: http://msdn.microsoft.com/en-us/library/ee658109.aspx 54
  • 55. Arquitetura em Camadas  Exercício: Como definir o número de camadas? 55
  • 56. Arquitetura em Camadas  Definindo o número de camadas  Agrupar componentes que representam papeis e funcionalidades diferentes  Ex.: Apresentação, Negócio e Dados  Delimitar locais onde decisões envolvendo tecnologias ou projeto precisam ser tomadas  Ex.: Linguagens, Dispositivos, Banco de dados. 56
  • 57. Arquitetura em Camadas  Pontos críticos  Separar aplicação em muitas camadas pode  Prejudicar o desempenho  Complexidade desnecessária  Prezando pela manutenção deve-se  Manter encapsulamento nas camadas  Baixo acoplamento entre camadas  Como verificar? 57
  • 58. Arquitetura em Camadas  Arquitetura em 3 camadas (Fowler)  Apresentação (fornece serviço)  Exibir informações  Traduzir comandos do usuário em ações na camada de domínio  Domínio  Regras de negócio  Dados (usa serviço)  Apresentação e recuperação de dados 58
  • 59. Arquitetura em Camadas Fowler Microsoft J2EE Apresentação Apresentação Cliente Apresentação (servidor) Domínio Negócio Negócio Fonte de dados Acesso a dados Integração Recursos 59
  • 60. Exercício  Em duplas ou trios  Projetar o sistema do bilhete único de SP  Definir arquitetura(s)  Esboço do projeto (diagrama de classes)  Considerar  Sistema central  Quiosques de recarga  Catracas 60
  • 61. Arquitetura baseada em serviços  Composto por múltiplos serviços  Comunicação via mensagens/protocolos  Componentes da solução total  Outras aplicações podem usar serviços sem se precisar se preocupar como eles estão implementados 61
  • 62. Arquitetura baseada em serviços  Exemplo Fonte: http://msdn.microsoft.com/en-us/library/ee658109.aspx 62
  • 63. Arquitetura baseada em serviços  Exemplo: Reuso de CMS 63
  • 64. Padrões enterprise multicamadas*  Padrões de base  Padrões de fontes de dados  Padrões de lógica de domínio (negócio)  Padrões de apresentação  Padrões de distribuição (*) www.martinfowler.com/eaaCatalog 64
  • 65. Padrões de base Gateway  Objeto que encapsula o acesso a um sistema ou recurso externo 65
  • 66. Padrões de base Mapper  Objeto que inicializa comunicação entre objetos independentes que não possuem conhecimento um do outro 66
  • 67. Padrões de base Layer Supertype  Atua como supertipo de todos os tipos na sua camada  Pode ser comum ter objetos que compartilham métodos em uma camada  Você pode mover comportamento para um Layer Supertype 67
  • 68. Padrões de base Separated Interface  Interface em um pacote diferente do local de sua implementação 68
  • 69. Padrões de base Registry  Objeto bem conhecido que outros objetos pode usar para encontrar objetos ou serviços comuns (ou globais) 69
  • 70. Padrões de base Value Object  Objeto simples que baseia sua igualdade no valor e não na identidade (e.g., Money, Date, Temperature)  Normalmente são passados por valor  Comparações consideram valor em vez de instância  Nota: Remete ao método equals() 70
  • 71. Padrões de base Money  Representa valor monetário 71
  • 72. Padrões de base Special Case  Subclasse com comportamento especial para casos particulares  Em vez de retornar nulo ou outra coisa estranha, retorne um Special Case 72
  • 73. Padrões de base Plugin  Conecta classes durante configuração em vez de tempo de compilação 73
  • 74. Padrões de base Service Stub  Remove dependência de serviços problemáticos durante testes 74
  • 75. Padrões de base Record Set  Representação em memória de dados tabulares 75
  • 76. Padrões de fontes de dados Table Data Gateway  Objetos que atuam como Gateway para uma tabela de dados  Uma instância manipula todas linhas da tabela 76
  • 77. Padrões de fontes de dados Row Data Gateway  Objeto que atua como Gateway para um registro em uma fonte de dados  Uma instância por linha 77
  • 78. Padrões de fontes de dados Active Record  Objeto que envolve uma linha de tabela, encapsula acesso ao banco de dados e adiciona lógica de domínio nos dados 78
  • 79. Padrões de fontes de dados Data Mapper  Camada de Mappers que move dados entre objetos e banco de dados mantendo independência 79
  • 80. Padrões de lógica de domínio Transaction Script  Organiza lógica de negócio via procedimentos em que cada um manipula requisitos vindos da apresentação 80
  • 81. Padrões de lógica de domínio Domain Model  Modelo de objeto do domínio que incorpora comportamento e dados 81
  • 82. Padrões de lógica de domínio Table Module  Instância única que manipula a lógica de negócio para todas linhas em uma tabela 82
  • 83. Padrões de lógica de domínio Service Layer  Define limites da aplicação com uma camada de serviços que estabelecem um conjunto de operações 83
  • 84. Padrões de apresentação Model View Controller  Divide a interface de usuário em três papéis distintos 84
  • 85. Padrões de apresentação Page Controller  Objeto que manipula uma requisição por uma página específica ou ação 85
  • 86. Padrões de apresentação Front Controller  Controller que manipula todas requisições 86
  • 87. Padrões de apresentação Template View  Insere informações em HTML colocando marcadores em uma interface de usuário 87
  • 88. Padrões de apresentação Transform View  View que processa dados de domínio (elemento a elemento) e transforma em HTML 88
  • 89. Padrões de apresentação Two Step View  Transforma dados de domínio em HTML  Monta a estrutura lógica  Renderiza a estrutura lógica em HTML. 89
  • 90. Padrões de apresentação Application Controller  Ponto central para manipular navegação na tela e o fluxo de uma aplicação 90
  • 91. Padrões de distribuição Remote Facade  Converter objetos de granularidade fina (ou alta) em objetos compactos tendo como foco eficiência de rede 91
  • 92. Padrões de distribuição Data Transfer Object  Objeto que carrega dados entre processos para reduzir o número de chamadas de métodos 92
  • 93. Exercício  Continuar o projeto do sistema do bilhete único de SP aplicando, quando aplicável, o máximo de padrões vistos até o momento 93
  • 94. Formatos de padrões  POSA - Pattern-Oriented Software Architecture  PoEAA - Patterns of Enterprise Application Architecture  GoF - Gang of Four 94
  • 95. POSA  Nome  Contexto  Problema  Solução 95
  • 96. GoF  Intenção  Nome  Outros nomes  Problema  Motivação  Aplicação  Solução  Estrutura  Consequências  Participantes  Colaborações  Implementação  Código de exemplo  Usos conhecidos  Padrões relacionados 96
  • 97. PoEAA  Nome  Intenção e esboço  Problema  Como funciona  Quando usá-lo  Leitura adicional  Exemplos 97
  • 98. POSA PoEAA GoF Nome Nome Nome e outros nomes Contexto Intenção Intenção Esboço Estrutura Problema Problema Problema e Motivação Solução Como funciona Solução Consequências Quando usá-lo Usos conhecidos e Aplicação Leitura adicional Exemplos Código de exemplo e Implementação Participantes Colaborações Padrões relacionados 98
  • 99. Notas finais  Funcionalidades principais de um sistema são significativos para a arquitetura  O que é feito durante a arquitetura visa evitar o risco de um projeto falhar 99
  • 100. Referências  Buschamann et al. Pattern-Oriented Software Architecture: A System of Patterns (1996)  Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software (1994)  Fowler Patterns of Enterprise Application Architecture (2007) 100
  • 101. Referências  http://martinfowler.com/eaaDev/uiArchs.html  http://www.martinfowler.com/eaaCatalog  http://www.wildcrest.com/Potel/Portfolio/mvp.pdf  http://msdn.microsoft.com/en-us/library/ff647543.aspx  http://msdn.microsoft.com/en-us/library/ee658120.aspx  http://msdn.microsoft.com/en-us/library/ee658109.aspx 101