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:
- 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.
- 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.
- 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.