Conceitos Básicos em Arquitetura de Software
Conceitos Básicos em Arquitetura de Software
1. Definição de Arquitetura de Software
Arquitetura de Software é a organização fundamental de um sistema, englobando seus componentes, relações entre eles e princípios que guiam seu design e evolução. Define a estrutura e o comportamento do sistema, garantindo atributos como desempenho, escalabilidade e manutenibilidade.
2. Componentes Principais
- Módulos/Componentes: Unidades funcionais do sistema (ex: serviços, classes).
- Conectores: Meios de interação entre componentes (ex: APIs, mensagens).
- Restrições: Regras que definem como os componentes se integram.
3. Estilos Arquiteturais
- Camadas (Layered): Divisão em camadas (ex: apresentação, negócio, dados).
- Cliente-Servidor: Separação entre provedor (servidor) e consumidor (cliente).
- Microsserviços: Sistemas independentes e especializados.
- Orientado a Eventos: Comunicação assíncrona via eventos.
4. Atributos de Qualidade
Características não funcionais que a arquitetura deve suportar:
- Desempenho: Tempo de resposta e throughput.
- Escalabilidade: Capacidade de crescimento.
- Segurança: Proteção contra ameaças.
- Manutenibilidade: Facilidade de modificação.
5. Padrões Arquiteturais
- MVC (Model-View-Controller): Separação entre lógica, interface e dados.
- Repository: Abstração de acesso a dados.
- Injeção de Dependência: Controle externo de dependências.
6. Documentação Arquitetural
Representada por diagramas (ex: UML, C4) e decisões documentadas (ADRs - Architectural Decision Records).
7. Importância para Concursos
Foco em: definições formais, estilos arquiteturais, trade-offs entre abordagens e vocabulário técnico (ex: acoplamento, coesão).