GoConqr has a new look! Let us know what you think.

Mind map

Arquitetura de Software

mozoemoza Programação Avançada superior Portuguese

Mapa mental sobre arquitetura de software: conceito, seleção, benefícios, padrão em camadas e padrão MVC

Mapa mental: Arquitetura de software

Map content

Arquitetura de Software

  1. o que é?

    • Pode ser vista como uma organização fundamental de um sistema, incorporada em seus componentes, seus relacionamentos com o ambiente, os princípios que conduzem seu design e evolução (ISO/IEEE 1471-2000). Ela define o modo de integração e interação com os demais sistemas necessários para que os requisitos definidos sejam atendidos.
  2. como selecionar?

    • A escolha por uma arquitetura ou outra depende da nossa necessidade e das características do sistema que estamos tentando desenvolver. É importante que você escolha uma boa arquitetura, pois fazendo isso você obterá vários benefícios
  3. quais os benefícios?

    • Possibilidade de divisão do sistema de informações em várias partes, cada uma com suas respectivas funções e responsabilidades, facilitando o gerenciamento.
    • Melhor flexibilidade – novos requisitos do negócio podem ser satisfeitos rapidamente.
    • Melhor adaptabilidade – possibilidade de customização de uma aplicação para vários usuários, usando várias alternativas de entrega dos serviços da aplicação com impacto mínimo ao núcleo da aplicação.
    • Melhor manutenabilidade – possibilitando de atualização de uma aplicação, minimizando o impacto da maioria das mudanças.
    • Melhor reusabilidade – possibilidade montagem rapidamente de aplicações únicas e dinâmicas.
    • Melhor aproveitamento do legado – possibilidade de reusar a funcionalidade de sistemas legados em novas aplicações.
    • Melhor interoperabilidade – possibilidade de integrar duas aplicações executando em plataformas diferentes.
    • Melhor escalabilidade – possibilidade de distribuir e configurar a execução da aplicação para satisfazer vários volumes de transação.
    • Menor tempo de desenvolvimento – possibilidade de melhoria da produtividade e com baixo orçamento.
    • Melhor robustez – possibilidade de ter soluções com menos defeitos, com mais confiabilidade e disponibilidade.
  4. Padrão em Camadas

    • como se caracteriza?
      • Uma arquitetura em camadas se caracteriza pela separação de seus artefatos de softwares constituintes em partes distintas (camadas) e pela restrição de conexão imposta por essa divisão.
        • divisão
          • A divisão em camadas representa um agrupamento ordenado dos componentes e recursos, sendo que cada camada de um sistema repousa sobre a outra e a camada mais baixa ignora a existência da camada mais alta. O número e a composição das camadas dependem da complexidade do domínio do projeto e do espaço de solução.
    • Vantagens
      • Você pode compreender uma única camada como um todo coerente sem saber muito sobre as outras camadas.
      • Podemos substituir camadas por implementações alternativas dos mesmos serviços básicos.
      • Você minimiza as dependências entre as camadas.
      • O uso de camadas pode facilitar a padronização.
      • Podemos fazer reuso de camadas.
    • Desvantagens
      • Às vezes resultam em alteração em cascata.
      • Camadas extras podem prejudicar o desempenho. Em cada camada os dados precisam, tipicamente, ser transformados de uma representação para outra.
    • Tipos de Camadas
      • Uma Camada (Single-Tier)
        • Inicialmente os aplicativos eram monolíticos: não havia uma separação clara entre a linguagem de programação e o acesso ao banco de dados.
          • XBase, Cobol, Tabelas Paradox (Delphi)
      • Duas Camadas (Two- Tier)
        • Essa arquitetura é a Cliente/Servidor. Nela existe uma divisão clara entre o aplicativo e o acesso ao banco de dados. Para resolver os problemas da arquitetura de uma camada, foram criados os servidores de bancos de dados. A ideia é criar um programa ("servidor de banco de dados"), que é o único com permissão para acessar os arquivos de dados. Todas as consultas e atualizações devem ser pedidas para este programa. Isto resolve diversos problemas, pois o servidor de banco de dados pode:
          • Efetuar verificações adicionais de segurança (validar usuários, por exemplo).
          • Garantir que as atualizações sejam realmente efetuadas completamente ou então descartadas.
      • Três Camadas (Three-Tier)
        • Consiste em separar as funcionalidades em camadas: uma camada para a lógica de apresentação; outra para a lógica de negócio; e outra para a lógica de acesso a dados.
          • A separação em três camadas torna o sistema mais flexível, de modo que partes podem ser alteradas independentemente. Com o emprego de arquitetura em três camadas, qualquer alteração em uma determinada camada não influi nas demais, desde que o mecanismo de comunicação entre elas permanece inalterado. Isto permite substituir uma camada inteira por outra, independente de qual camada seja, ou que um projeto desenvolvido para web possa abranger também dispositivos móveis ou standalone, a partir da inclusão de uma nova camada de apresentação.
      • N Camadas (N-Tier)
        • Nesta arquitetura, retiramos a apresentação do cliente e a centralizamos em um servidor Web. Dessa forma, não temos mais o cliente como um programa que precisa ser instalado em cada computador da rede, pois o acesso à aplicação é feito por meio de um navegador. Ainda, com o deslocamento da camada de apresentação para um Servidor Web, resolvemos o problema de termos que atualizar a aplicação em centenas ou milhares de computadores cada vez que a interface for alterada, o que torna a atualização das aplicações, uma tarefa mais gerenciável.
  5. Padrão MVC

    • A ideia desse padrão é separar a lógica de negócio da interface com o usuário, fazendo com que a segunda seja mudada sem que seja necessária qualquer mudança na primeira. Para tanto, separamos a aplicação em três partes distintas: Model, que está relacionada à tarefa administrada pela aplicação; View, que está relacionada à exibição dos dados ou informação dessa aplicação; e Controller, que é a responsável pela coordenação das duas anteriores.
    • Model - representa as regras de negócio.
      • PADRÃO OBSERVER
    • View - apresenta os dados representados pelo modelo, acessando-os por meio do modelo e especifica como o dados serão apresentados.
      • PADRÃO COMPOSITE
    • Controller - traduz a interação do usuário com a visão em ações a serem executadas pelo modelo.
      • PADRÃO STRATEGY
    • Utiliza os padrões de projeto:
      • Observer- separar objetos de maneira que mudanças ocorridas em um possam afetar um número qualquer de outros objetos, sem exigir que o objeto alterado conheça detalhes dos outros.
      • Composite-ocorre sempre que queremos agrupar objetos e tratar o grupo com um objeto individual e outras classes definem objetos compostos.
      • Strategy-o relacionamento view-controller é um exemplo desse padrão. Ele é útil quando você quer substituir o algoritmo tanto estático como dinamicamente.

Information

Description
superior Programação Avançada Mind Map on Arquitetura de Software, created by mozoemoza on 20/09/2014.
Created by
mozoemoza
Views
22
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?