SlideShare ist ein Scribd-Unternehmen logo
1 von 101
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

Weitere ähnliche Inhalte

Was ist angesagt?

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareeros.viggiano
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvcleopp
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileCloves da Rocha
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introduçãoelliando dias
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
Design de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisDesign de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisInstituto Faber-Ludens
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com AngularElmano Cavalcanti
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidJosé Alexandre Macedo
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareRobson Silva Espig
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialAlexandre Leão
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareDanilo Sousa
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 

Was ist angesagt? (20)

Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Integração Contínua
Integração ContínuaIntegração Contínua
Integração Contínua
 
Apresentação mvc
Apresentação mvcApresentação mvc
Apresentação mvc
 
Aula 1 - Introdução ao Mobile
Aula 1 - Introdução ao MobileAula 1 - Introdução ao Mobile
Aula 1 - Introdução ao Mobile
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Design de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos MóveisDesign de Interfaces para Dispositivos Móveis
Design de Interfaces para Dispositivos Móveis
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Introdução à Programação Web com Angular
Introdução à Programação Web com AngularIntrodução à Programação Web com Angular
Introdução à Programação Web com Angular
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Introdução ao Desenvolvimento Android
Introdução ao Desenvolvimento AndroidIntrodução ao Desenvolvimento Android
Introdução ao Desenvolvimento Android
 
A Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de SoftwareA Evolucao dos Processos de Desenvolvimento de Software
A Evolucao dos Processos de Desenvolvimento de Software
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Normas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de SoftwareNormas e Padrões para a Qualidade de Software
Normas e Padrões para a Qualidade de Software
 
Aula 1 - Revisão UML
Aula 1 - Revisão UMLAula 1 - Revisão UML
Aula 1 - Revisão UML
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 

Andere mochten auch

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 WEBRafael 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 - MicrokernelEduardo Nicola F. Zagari
 
Arquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersArquiteturas usando Pipes and Filters
Arquiteturas usando Pipes and FiltersSergio 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 - CamadasEduardo 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 MVCAlmir 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 - BrokerEduardo 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 - MVCEduardo Nicola F. Zagari
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
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 softwareYan Justino
 
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 ArquiteturaisJorge Tressino Rua
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Adriano Tavares
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven DesignRafael Ponte
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Programação orientada a objetos
Programação orientada a objetosProgramação orientada a objetos
Programação orientada a objetosCleyton Ferrari
 
Arquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaArquitetura de Software - Concorrência
Arquitetura de Software - ConcorrênciaAndré Faria Gomes
 
Chamada remota de procedimentos .net
Chamada remota de procedimentos   .netChamada remota de procedimentos   .net
Chamada remota de procedimentos .netGabii Fonseca
 

Andere mochten auch (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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
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
 
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
 
Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1Modelagem Arquitetural e Visão 4+1
Modelagem Arquitetural e Visão 4+1
 
Entendendo Domain-Driven Design
Entendendo Domain-Driven DesignEntendendo Domain-Driven Design
Entendendo Domain-Driven Design
 
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
 

Ähnlich wie Padrões Arquiteturais de Sistemas

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
 
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 ControllerLourdilene 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 MVCMichael 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
 
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
 
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
 
Apresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIApresentação Facelets_UNIFEI
Apresentação Facelets_UNIFEIFelipe Knappe
 

Ähnlich wie 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
 
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
 
MVC Pattern
MVC PatternMVC Pattern
MVC Pattern
 

Mehr von 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 RUPVagner 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 WidgetsVagner 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çãoVagner Santana
 
SEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais OnlineSEMISH 2009 - Redes Sociais Online
SEMISH 2009 - Redes Sociais OnlineVagner 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
 
Desenvolvimento de Software
Desenvolvimento de SoftwareDesenvolvimento de Software
Desenvolvimento de SoftwareVagner Santana
 
W4A 2012 - Vagner Santana
W4A 2012 - Vagner SantanaW4A 2012 - Vagner Santana
W4A 2012 - Vagner SantanaVagner Santana
 

Mehr von 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
 

Kürzlich hochgeladen

Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptPedro Luis Moraes
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...Francisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAssuser2ad38b
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2Maria Teresa Thomaz
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAJulianeMelo17
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxandrenespoli3
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxMarcosLemes28
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxReinaldoMuller1
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffNarlaAquino
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 

Kürzlich hochgeladen (20)

Aula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.pptAula de jornada de trabalho - reforma.ppt
Aula de jornada de trabalho - reforma.ppt
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
Aula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptxAula 03 - Filogenia14+4134684516498481.pptx
Aula 03 - Filogenia14+4134684516498481.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 

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