Resumo de Arquitetura de Software - Arquitetura de Software

Arquitetura de Software

Arquitetura de Software para Concursos Públicos

1. Conceitos Fundamentais

Arquitetura de Software é a organização estrutural de um sistema, incluindo componentes, relações entre eles e princípios que regem seu design. Envolve decisões estratégicas que impactam qualidade, desempenho e manutenibilidade.

2. Estilos Arquiteturais

- Camadas (Layered): Separação em camadas (ex: apresentação, negócio, dados)
- Cliente-Servidor: Divisão entre provedor (servidor) e consumidor (cliente)
- MVC (Model-View-Controller): Separação entre lógica, interface e controle
- Microservices: Sistemas como serviços independentes e especializados
- Event-Driven: Comunicação baseada em eventos assíncronos

3. Padrões de Projeto

- Criacionais: Factory, Singleton, Builder
- Estruturais: Adapter, Decorator, Facade
- Comportamentais: Observer, Strategy, Command

4. Atributos de Qualidade

Não-funcionais que guiam a arquitetura: desempenho, escalabilidade, segurança, disponibilidade, modificaribilidade e usabilidade.

5. Técnicas e Ferramentas

- UML: Diagramas de classe, sequência, componentes
- ADRs: Documentação de decisões arquiteturais
- DDD: Domain-Driven Design (design orientado a domínio)

6. Tópicos Relevantes para Concursos

- Diferença entre arquitetura e design
- Trade-offs arquiteturais
- Padrões REST e SOAP
- Princípios SOLID e Clean Architecture
- Arquiteturas hexagonais e em pipeline