Resumo Design Multi-Camadas

  • Projeto:
    • Em portugues:
      • 1. Especificação da modelagem e arquitetura do sistema a ser construído => Design
      • 2. Gestão do escopo, do custo, do tempo e das atividades na construção de algo => Project
  • Em Engenharia de Software é comum adotar os Padrões de Projeto para problemas comuns no design de software
    • Padrões de projeto:
      • Não são códigos e sim, especificações de como lidar com problemas e projetar soluções
      • Essas soluções estão no nível de design para problemas recorrentes que engenheiros de software encontram com frequência
    • Categorias:
      • Padrão de projeto criacional
        • Lidam com mecanismos de instanciação de objetos de maneira adequada à situação
      • Padrão de projeto estrutural
        • Se preocupam em melhor organizar a estrutura das classes e relacionamentos entre classes e objetos
        • O objetivo principal destes padrões é aumentar a funcionalidades das classes envolvidas sem alterar muito sua composição
      • Padrão de projeto comportamental
        • Identificam padrões de comunicação comuns entre objetos, aumentando a flexibilididade da comunicação entre os objetos relacionados levando em conta a forma como uma classe se comunica com a outra.


  • Exemplos de padrões de projeto:
    • Camadas
    • Cliente-Servidor
    • MVC (Model-View-Controller)
    • Micro-serviços
    • PF (Pipes & Filters)
    • P2P (Peer-To-Peer)
    • SOA (Service Oriented Architecture)
    • P/S (Publish-Subscribe)


  • Foco: Layer ou Level (Camadas)
    • Quebra o problema em problemas menores
    • Cada um desses problemas menores é uma camada onde se pode construir
      • concetos, ferramentas, tecnologias, infraestruturas, linguagens independentes de outras camadas do projeto.


  • Reflexões para modelagem:
    • Problemas podem ser catregorizados pela natureza do problema que se quer resolver:
      • Matemático: foco na capacidade do sistema computacional, em que aspectos como IHC (Interface Humano-Computador) ou Armazenamento embora importantes não são a essência do que se quer resolver
      • Engenharia: onde o foco está no suporte que o sistema oferece a áreas de aplicação como é o caso de CAD (Computer Aided Design), CAE (Computer Aided Engineering), CAM (Computer Aided Maintenance), por exemplo
      • Negócios: onde o foco está em processos como BPM (Business Processing Modelling) e CRM (Customer Relationship Management) e na cadeia de suprimentos
      • Indústria: o interesse está em células de manufatura, automação, indústria 4.0 e outras.
      • Considera-se também Verticais de Negócio como Energia, Governo, Transporte, Saúde, Finanças, Segurança, etc.


  • Introduziremos abaixo, a Máquina Multi-Nível para tornar mais fácil o entendimento...