Arquitetura de Software

Definição: A Arquitetura de Software é um conjunto de decisões de design de alto nível que estabelecem a estrutura fundamental de um sistema de software.

Ela define a organização dos componentes de software, as relações entre eles e os princípios e diretrizes que regem seu design e evolução.

Componentes Principais:

  1. Estruturas: Define a organização do sistema em termos de módulos, camadas, componentes e suas interações.
    • Exemplo: Em um sistema de e-commerce, pode-se ter uma arquitetura em camadas, com uma camada de apresentação, uma de negócios, e uma de acesso a dados.
  2. Padrões de Arquitetura: São modelos que fornecem soluções comprovadas para problemas comuns.
    • Exemplo: O padrão MVC (Model-View-Controller) é frequentemente utilizado em aplicações web para separar a lógica de negócios da interface do usuário.
  3. Decisões de Design: Escolhas fundamentais sobre a organização do sistema, como uso de microserviços versus uma arquitetura monolítica.
    • Exemplo: Optar por uma arquitetura baseada em microserviços para um sistema de gerenciamento de estoque, visando escalabilidade e independência de componentes.

Influências:

  • Requisitos Não Funcionais (RNFs): São importantes na determinação da arquitetura. Incluem aspectos como desempenho, segurança, escalabilidade e disponibilidade.
    • Exemplo: Se a segurança é um RNF crítico, a arquitetura pode incluir componentes dedicados à autenticação e criptografia.

Considerações Finais:

  • A arquitetura de software deve ser flexível o suficiente para permitir mudanças e evolução, sem comprometer a integridade do sistema.
  • A documentação da arquitetura é essencial para a compreensão e manutenção do sistema.