Introdução: O software precisa do projeto arquitetônico para representar o projeto do software. O IEEE define o projeto arquitetônico como “o processo de definição de uma coleção de componentes de hardware e software e suas interfaces para estabelecer a estrutura para o desenvolvimento de um sistema de computador”. O software desenvolvido para sistemas baseados em computador pode exibir um desses muitos estilos arquitetônicos.
Cada estilo descreverá uma categoria de sistema que consiste em:

  • Um conjunto de componentes (por exemplo: um banco de dados, módulos computacionais) que realizarão uma função exigida pelo sistema.
  • O conjunto de conectores ajudará na coordenação, comunicação e cooperação entre os componentes.
  • Condições que determinam como os componentes podem ser integrados para formar o sistema.
  • Modelos semânticos que ajudam o designer a entender as propriedades gerais do sistema.

O uso de estilos arquitetônicos é estabelecer uma estrutura para todos os componentes do sistema.

Taxonomia de estilos arquitetônicos:

  1. Arquiteturas centradas em dados:
    • Um armazenamento de dados residirá no centro desta arquitetura e é acessado frequentemente por outros componentes que atualizam, adicionam, excluem ou modificam os dados presentes no armazenamento.
    • A figura ilustra um estilo típico de data center. O software cliente acessa um repositório central. Variações dessa abordagem são usadas para transformar o repositório em um quadro negro quando dados relacionados ao cliente ou dados de interesse do cliente mudam as notificações para o software cliente.
    • Essa arquitetura centralizada em dados promoverá a integrabilidade. Isso significa que os componentes existentes podem ser alterados e novos componentes do cliente podem ser adicionados à arquitetura sem a permissão ou preocupação de outros clientes.
    • Os dados podem ser passados ​​entre clientes usando o mecanismo de quadro-negro.

    arquitetura centrada em dados

  2. Arquiteturas de fluxo de dados:
    • Esse tipo de arquitetura é usado quando os dados de entrada são transformados em dados de saída por meio de uma série de componentes manipulativos computacionais.
    • A figura representa a arquitetura de tubo e filtro, pois usa tubo e filtro e tem um conjunto de componentes chamados filtros conectados por tubos.
    • Pipes são usados ​​para transmitir dados de um componente para o próximo.
    • Cada filtro funcionará independentemente e é projetado para receber a entrada de dados de uma determinada forma e produzir saída de dados para o próximo filtro de uma forma especificada. Os filtros não requerem nenhum conhecimento do funcionamento dos filtros vizinhos.
    • Se o fluxo de dados degenera em uma única linha de transformações, ele é denominado sequencial em lote. Essa estrutura aceita o lote de dados e, em seguida, aplica uma série de componentes sequenciais para transformá-lo.

    tubos e filtros



  3. Arquiteturas de chamada e retorno: são usadas para criar um programa fácil de escalar e modificar. Muitos subestilos existem nesta categoria. Dois deles são explicados a seguir.
    • Arquitetura de chamada de procedimento remoto: Este componente é usado para apresentar em uma arquitetura de programa principal ou subprograma distribuída entre vários computadores em uma rede.
    • Arquiteturas de programa principal ou subprograma: A estrutura do programa principal se decompõe em vários subprogramas ou função em uma hierarquia de controle. O programa principal contém vários subprogramas que podem invocar outros componentes.

      arquitetura do programa

  4. Arquitetura orientada a objetos: os componentes de um sistema encapsulam dados e as operações que devem ser aplicadas para manipular os dados. A coordenação e comunicação entre os componentes são estabelecidas através da passagem de mensagens.
  5. Arquitetura em camadas:
    • Uma série de camadas diferentes são definidas com cada camada executando um conjunto bem definido de operações. Cada camada fará algumas operações que se tornam mais próximas do conjunto de instruções da máquina progressivamente.
    • Na camada externa, os componentes receberão as operações da interface do usuário e nas camadas internas, os componentes farão a interface do sistema operacional (comunicação e coordenação com o SO)
    • Camadas intermediárias para serviços de utilidade e funções de software de aplicativo.

    componentes