Mapa de Engenharia de Software: camadas, ferramentas e vocabulário
Esta referência organiza as camadas de uma aplicação, o vocabulário profissional e o catálogo de ferramentas da coleção de Engenharia de Software. O leitor usa o mapa para localizar onde uma responsabilidade vive, quais conhecimentos a antecedem e em qual capítulo ela é ensinada. A auditoria incorporada diferencia cobertura, publicação e pendência; o glossário preserva termos canônicos e equivalentes em português; o catálogo relaciona ferramentas a finalidades, sem transformá-las em receita universal. O documento também explica como o Atlas representa conexões e por que uma camada não deve ser confundida com uma ordem rígida de implementação.
Mapa de Engenharia de Software
Esta referência reúne o vocabulário, as camadas, as ferramentas e a auditoria de cobertura usados para navegar pela coleção. Ela não substitui os capítulos didáticos: serve para localizar responsabilidades, descobrir relações e verificar o estado editorial.
Auditoria
Auditoria editorial da coleção de engenharia de software
Data: 2 de agosto de 2026.
Cobertura estrutural
- 22 livros novos, cada um com README, capítulo conceitual e caderno operacional.
- 13 níveis da imagem cobertos explicitamente.
- Lacunas acrescentadas: produto/UX/acessibilidade; requisitos/modelagem/arquitetura; testes; filas/eventos; configuração/segredos; performance/capacidade/custo; documentação/ADRs/contratos; supply chain/SBOM.
- Cybersecurity preservada como eixo transversal e fonte canônica própria.
- Quatro manuais-base preservados, sem edição.
Testes de taxonomia
- Pergunta iniciante: “onde aprendo o que acontece depois de clicar em Concluir?” — começa em frontend, segue para backend/API/dados e encontra um fluxo no caderno.
- Consulta profissional: “como provar RPO de 15 minutos?” — alta disponibilidade/backup/DR, com restore como evidência.
- Caso interdisciplinar: “token” — tokens de sessão pertencem a identidade/cybersecurity; tokens de LLM pertencem à biblioteca de sistemas de IA.
- Caso negativo: CDN não é banco; esconder botão não autoriza; réplica não é backup; Kubernetes Secret não é cofre automaticamente.
Rubrica aplicada
Cada capítulo declara problema, vocabulário, modelo mental, limites, caso, falha, controle, teste, métrica, segurança, critérios de aceite, exercícios e fontes. Cada caderno exige caminho feliz, entrada inválida, negação, duplicata, timeout, recuperação e evidência.
Limitações honestas
- Os trechos de código são didáticos; projetos executáveis completos ficam no projeto integrador.
- Links oficiais foram selecionados na revisão indicada, mas configurações voláteis exigem conferência de versão.
- Profundidade não termina nesta edição: incidentes, avaliações e feedback devem gerar novos testes, ADRs e capítulos, sem inflar instruções globais.
Catalogo De Ferramentas
Catálogo de ferramentas e critérios de escolha
Revisão: 2 de agosto de 2026. Estado atual significa útil e mantido na data da revisão, não “melhor para todo projeto”. Confirme versão, licença, suporte, segurança e custo no site oficial antes de adotar.
Regra de seleção
Escolha primeiro a capacidade e a evidência: contrato, volume, risco, conhecimento da equipe, operação, portabilidade e custo total. Só então compare produtos com uma prova curta. Uma ferramenta deixa de ser candidata se não houver owner, estratégia de atualização, exportação de dados, observabilidade ou forma segura de removê-la.
| Camada | Capacidades a comparar | Exemplos atuais e representativos | Prova mínima antes da adoção |
|---|---|---|---|
| Produto/UX/UI | pesquisa, protótipo, tokens, componentes, handoff | Figma, Penpot, Storybook, axe, Playwright | tarefa real por teclado e leitor de tela |
| Arquitetura | modelagem, ADR, diagram-as-code, catálogo | Mermaid, Structurizr/C4, Backstage, ADR Tools | mudança rastreada do requisito ao teste |
| Frontend | renderização, roteamento, estado, build | React/Next.js, Vue/Nuxt, Angular, SvelteKit, Flutter | jornada no dispositivo-alvo e orçamento Web Vitals |
| Backend | runtime, framework, jobs, domínio | Node.js/Fastify/Nest, Python/FastAPI/Django, Java/Spring | caso de uso com timeout, idempotência e trace |
| APIs | schema, documentação, mock, contrato | OpenAPI, JSON Schema, AsyncAPI, Pact, Bruno/Postman | fornecedor e consumidor falham no breaking change |
| Dados | relacional, documento, busca, objeto | PostgreSQL, SQLite, Redis, OpenSearch, S3 compatível | carga representativa, migration e restore |
| Identidade | OIDC/OAuth, MFA, lifecycle, políticas | Microsoft Entra ID, Keycloak, Auth0, Okta, OPA/Cedar | revogação e acesso horizontal negado |
| Rede/TLS | DNS, certificados, proxy, mTLS | Let's Encrypt/ACME, Caddy, NGINX, Envoy, CoreDNS | renovação automática e falha por hostname inválido |
| Deploy | artefato, rollout, rollback, flags | OCI, Helm, Argo CD/Flux, Argo Rollouts, OpenFeature | canary aborta por SLO e rollback é compatível |
| Nuvem/containers | compute, isolamento, orquestração | Docker/Podman, Kubernetes, serviços gerenciados/serverless | limite de recurso, probe e falha de zona |
| Git/CI/CD | revisão, pipeline, artefato, attestation | Git, GitHub Actions, GitLab CI, Jenkins, Tekton | fork não obtém segredo e artefato é promovido, não recompilado |
| Testes | unidade, integração, contrato, E2E, carga | Vitest/Jest, pytest, JUnit, Testcontainers, Playwright, k6 | caso negativo falha antes do controle |
| Mensageria | fila, stream, schema, replay | RabbitMQ, Apache Kafka, NATS, serviços gerenciados | duplicata, ordem, DLQ e replay ensaiados |
| Configuração | secret store, flags, rotação | Vault, cloud secret managers, SOPS, OpenFeature | rotação sem indisponibilidade e redaction |
| Rate limiting | bucket, quota, concurrency, gateway | Envoy, NGINX, Kong, Redis + limitador da aplicação | justiça por tenant e Retry-After sob pico |
| Cache/CDN | HTTP cache, edge, invalidação | Varnish, NGINX, Redis, CDNs gerenciadas | isolamento por tenant e stampede controlado |
| Balanceamento | L4/L7, discovery, autoscaling | HAProxy, Envoy, NGINX, Kubernetes Service/HPA | draining e scale-out durante carga |
| Performance/FinOps | profile, load, custo unitário | profiling do runtime, k6, JMeter, OpenCost | p95/p99 e custo por jornada, não só média |
| Observabilidade | traces, métricas, logs, alertas | OpenTelemetry, Prometheus, Grafana, Jaeger, Loki | correlação E2E sem dados sensíveis |
| HA/DR | backup, failover, restore, caos | ferramentas nativas do banco, Velero, Litmus/Chaos Mesh | restore isolado dentro de RTO/RPO |
| Documentação | referência, tutorial, contrato, portal | Markdown/MDX, Diátaxis, OpenAPI, Backstage | links, exemplos e snippets testados em CI |
| Supply chain | SBOM, assinatura, scan, provenance | Syft, Grype, Trivy, CycloneDX, SPDX, Sigstore, SLSA | deploy rejeita artefato sem attestation válida |
“Como era / como é agora”
| Atalho histórico | Caminho recomendado hoje | Quando o antigo ainda cabe |
|---|---|---|
| servidor artesanal com mudança por SSH | artefato imutável, pipeline e rollout observável | laboratório descartável sem dados reais |
| segredo em arquivo versionado | identidade de workload ou secret manager com rotação | nunca para segredo real; fixture sintética não é segredo |
| testes só depois da feature | fatia vertical com contrato e casos negativos | exploração descartável claramente isolada |
| logs de texto como única telemetria | sinais estruturados correlacionados e SLO | script local simples e efêmero |
| réplica tratada como backup | cópia independente, imutabilidade e restore ensaiado | nunca quando perda/corrupção importam |
| microserviços como sinal de maturidade | fronteiras modulares e extração só por evidência | microserviço quando autonomia e escala justificam operação |
| “mais cache” para corrigir lentidão | perfil, orçamento de latência e cache com política | cache explícito para leitura repetida e stale tolerável |
Fontes de atualização
- MDN Web Docs
- W3C Web Accessibility Initiative
- IETF RFC Editor
- PostgreSQL Documentation
- Kubernetes Documentation
- OpenTelemetry Documentation
- SLSA specification
- NIST Computer Security Resource Center
Fóruns, issues e comparativos são sinais para formar hipóteses; decisões técnicas importantes devem voltar a especificações, documentação oficial, testes locais e restrições do projeto.
Glossario Engenharia
Glossário de engenharia de software e sistemas
As definições são operacionais: dizem o que o termo permite decidir. Consulte o livro indicado para limites, implementação e falhas.
Produto, experiência e arquitetura
- Acessibilidade: capacidade de pessoas com diferentes corpos, sentidos e tecnologias assistivas perceberem, operarem e compreenderem o produto.
- Affordance: pista percebida sobre como um elemento pode ser usado; um botão deve parecer e se comportar como ação.
- ADR (Architecture Decision Record): registro curto de contexto, decisão, alternativas e consequências arquiteturais.
- Atributo de qualidade: propriedade mensurável como disponibilidade, segurança, desempenho ou modificabilidade.
- Bounded context: limite dentro do qual um modelo e seu vocabulário têm significado consistente.
- C4: modelo de diagramas em níveis de contexto, contêiner, componente e código.
- Coesão: grau em que responsabilidades de um módulo mudam pela mesma razão.
- Acoplamento: dependência que faz uma mudança se propagar entre componentes.
- Design system: conjunto governado de fundamentos, tokens, componentes e padrões de experiência.
- Hipótese: explicação ou solução ainda não comprovada, acompanhada de teste e critério de decisão.
- Jornada: sequência ponta a ponta pela qual um ator tenta atingir um objetivo.
- WCAG: diretrizes do W3C para tornar conteúdo web perceptível, operável, compreensível e robusto.
Frontend e backend
- DOM (Document Object Model): representação em árvore que o navegador expõe para código ler e alterar o documento.
- Componente: unidade de interface com contrato de entrada, comportamento e saída visual.
- Estado: informação que influencia o comportamento atual e pode mudar ao longo do tempo.
- Renderização: transformação de dados e componentes em interface perceptível.
- Hidratação: ligação, no navegador, de comportamento interativo ao HTML previamente renderizado.
- Bundle: conjunto de arquivos processados e entregues ao cliente.
- PWA: aplicação web que usa capacidades como instalação, cache e trabalho offline com degradação controlada.
- Invariante: condição que deve permanecer verdadeira após qualquer operação válida do domínio.
- Caso de uso: coordenação de uma intenção do negócio, independente do protocolo que a transportou.
- Job: trabalho executado fora da resposta imediata, com estado, tentativa e condição de parada.
- Idempotência: propriedade pela qual repetir a mesma intenção não cria efeitos lógicos adicionais.
- Outbox: padrão que grava evento e mudança de negócio na mesma transação local para publicação posterior.
APIs e protocolos
- API: contrato pelo qual um componente oferece capacidades a outro.
- Endpoint: combinação de endereço e operação exposta por uma API.
- Header: metadado de uma mensagem HTTP, como tipo, autenticação ou política de cache.
- Body: representação do conteúdo enviado ou recebido.
- Status HTTP: código que descreve o resultado no nível do protocolo; não substitui o estado do negócio.
- OpenAPI: especificação para descrever operações, parâmetros, schemas e respostas de APIs HTTP.
- JSON Schema: vocabulário para declarar e validar estrutura e restrições de dados JSON.
- Webhook: chamada enviada pelo produtor quando ocorre um evento, sujeita a assinatura, duplicata e retry.
- Contract test: teste que verifica se produtor e consumidor continuam compatíveis com um contrato compartilhado.
- Breaking change: mudança que faz um consumidor antes válido deixar de funcionar ou mudar de significado.
Dados e armazenamento
- Chave primária: identificador estável e único de uma linha.
- Chave estrangeira: restrição que liga um valor a uma linha válida de outra relação.
- Transação: unidade de trabalho que o banco confirma ou desfaz segundo garantias definidas.
- Isolamento: regra sobre o que transações concorrentes podem observar umas das outras.
- Índice: estrutura auxiliar que acelera acessos específicos em troca de espaço e custo de escrita.
- Plano de execução: estratégia escolhida pelo banco para realizar uma consulta.
- Migração: mudança versionada do schema ou dos dados.
- Retenção: política que define por quanto tempo dados são mantidos e como são descartados.
- Linhagem: registro de origem, transformações e destinos de um dado.
- Governança de dados: responsabilidades, regras e evidências sobre qualidade, acesso, uso e ciclo de vida.
Identidade e segurança de transporte
- Identidade: representação estável de pessoa, sistema ou workload.
- Autenticação: processo de obter confiança de que o ator controla uma identidade.
- Autorização: decisão sobre uma ação de um ator em um recurso e contexto específicos.
- Sessão: estado que mantém continuidade entre interações autenticadas.
- Cookie: par nome/valor que o navegador associa a um escopo e envia conforme políticas; pode transportar um identificador de sessão.
- OAuth 2.0: framework de autorização delegada para obter tokens de acesso com escopos e atores definidos.
- OIDC (OpenID Connect): camada de identidade sobre OAuth 2.0 usada para autenticar o usuário e comunicar claims.
- SSO (Single Sign-On): experiência de usar uma autenticação para acessar múltiplos sistemas confiantes no mesmo provedor.
- RBAC: autorização baseada em papéis; simples, mas insuficiente quando recurso, unidade ou contexto importam.
- ABAC: autorização baseada em atributos do ator, recurso, ação e ambiente.
- DNS: sistema que resolve nomes em informações como endereços de serviços.
- TLS: protocolo que protege confidencialidade, integridade e autenticação do canal.
- PKI: pessoas, políticas, certificados, autoridades e processos que sustentam identidades criptográficas.
- mTLS: TLS em que cliente e servidor apresentam certificados e autenticam mutuamente o canal.
Entrega, nuvem e cadeia de suprimentos
- Build: transformação de fontes e dependências em artefato.
- Deploy: instalação ou promoção do artefato para um ambiente.
- Release: exposição do comportamento a usuários ou tráfego.
- Rollout: processo gradual de substituir instâncias por uma versão.
- Rollback: retorno controlado a comportamento ou artefato anterior compatível.
- Canary: liberação para parcela pequena do tráfego antes da expansão.
- Container: processo isolado empacotado com suas dependências de espaço de usuário.
- Imagem OCI: artefato por camadas e manifesto usado por runtimes de containers.
- Orquestrador: sistema que agenda, reinicia, conecta e atualiza workloads.
- IaC (Infrastructure as Code): declaração versionada de infraestrutura aplicada por automação.
- CI: integração contínua que produz feedback automatizado sobre mudanças.
- CD: entrega ou implantação contínua de artefatos aprovados.
- SBOM: inventário legível por máquina dos componentes de um artefato.
- Provenance: evidência verificável de como, onde e a partir de quais entradas um artefato foi construído.
- Attestation: declaração assinável sobre um fato do processo ou artefato.
- SLSA: especificação de controles e níveis para integridade da cadeia de suprimentos.
Testes, eventos e controle de demanda
- Teste unitário: verifica comportamento de uma unidade pequena com dependências controladas.
- Teste de integração: verifica colaboração real entre componentes ou infraestrutura.
- Teste end-to-end: percorre uma jornada por fronteiras representativas do sistema.
- Mutation testing: altera deliberadamente o código para medir se testes detectam comportamentos errados.
- Flake: teste que alterna entre passar e falhar sem mudança relevante do código.
- Fila: canal que retém trabalho até um consumidor processá-lo.
- Tópico: canal de publicação no qual múltiplos consumidores podem receber eventos.
- Ack: confirmação de que uma mensagem foi processada segundo o contrato.
- DLQ (Dead-Letter Queue): área para mensagens que excederam a política de processamento e exigem operação explícita.
- At-least-once: garantia de entrega que admite duplicatas e, portanto, exige consumidor idempotente.
- Rate limit: limite de ritmo em uma janela ou algoritmo contínuo.
- Quota: orçamento de consumo por período, ator ou tenant.
- Backpressure: mecanismo pelo qual o destino sinaliza ou impõe redução do ritmo da origem.
- Token bucket: algoritmo em que fichas acumuladas permitem ritmo médio limitado com burst controlado.
- Retry-After: header HTTP que informa quando o cliente pode tentar novamente.
Cache, escala, observabilidade e recuperação
- Cache hit/miss: leitura satisfeita ou não pela cópia armazenada.
- TTL: tempo após o qual uma entrada expira segundo a política.
- ETag: validador de representação usado para revalidação condicional.
- CDN: rede distribuída que serve conteúdo a partir de pontos próximos ao consumidor.
- Stampede: muitas solicitações recalculando simultaneamente uma entrada expirada.
- Load balancer: componente que escolhe um destino saudável para cada conexão ou requisição.
- Readiness: sinal de que uma instância pode receber tráfego útil, não apenas de que o processo existe.
- Escala horizontal/vertical: adicionar instâncias ou aumentar recursos de uma instância.
- Sharding: particionamento de dados ou carga entre domínios independentes.
- Latência: tempo de conclusão de uma operação; percentis mostram a distribuição melhor que a média isolada.
- Throughput: volume concluído por unidade de tempo.
- Saturação: proximidade de um recurso ao limite que aumenta espera ou rejeição.
- Headroom: capacidade reservada acima da demanda observada.
- Telemetria: sinais emitidos pelo sistema para observação e decisão.
- Trace/span: trace representa a jornada distribuída; span representa uma operação com duração e contexto.
- Cardinalidade: quantidade de combinações distintas de atributos; cardinalidade alta pode tornar métricas caras ou instáveis.
- SLI/SLO: indicador mensurável e objetivo desejado para o comportamento percebido do serviço.
- HA: desenho para manter serviço disponível durante classes de falha previstas.
- RPO: perda máxima de dados aceitável medida no tempo.
- RTO: tempo máximo aceitável para restaurar a capacidade.
- DR: conjunto de estratégias e runbooks para recuperar após desastre.
- Game day: exercício controlado de falha e recuperação com aprendizado documentado.
Desambiguação essencial
- Token de autenticação não é token de LLM.
- Cache HTTP/CDN não é prompt cache de modelos.
- Agente de observabilidade não é agente de IA.
- Sessão web não é conversa armazenada indiscriminadamente.
- Alta disponibilidade não é backup; réplica não protege sozinha contra deleção ou corrupção propagada.
- Frontend ocultar um botão não é autorização; a decisão pertence ao servidor.
Application Layers
Atlas das camadas de uma aplicação
A pilha da imagem é um bom índice visual, mas não é uma sequência rígida nem uma arquitetura universal. Algumas faixas são componentes, outras são capacidades transversais e outras representam operação. Este atlas preserva as treze camadas e acrescenta o que a figura omite.
Ler o fluxo em texto
- 1. Produto, pessoas e regras de negócio
- 2. UX, UI e acessibilidade
- 3. 1. Frontend
- 4. 2. APIs e lógica de negócio
- 5. 3. Banco de dados e armazenamento
- 6. 4. Autenticação e permissões
- 7. 5. Hospedagem e deploy
- 8. 6. Nuvem e computação
- 9. 7. CI/CD e controle de versão
- 10. 8. Segurança e TLS
- 11. 9. Limitação de requisições
- 12. 10. Cache e CDN
- 13. 11. Balanceamento e escalabilidade
- 14. 12. Monitoramento e logs
- 15. 13. Alta disponibilidade e recuperação
- 16. Governança, privacidade, custos e supply chain
Matriz das treze camadas
| # | Camada | Pergunta que responde | Evidência mínima | Livro canônico |
|---|---|---|---|---|
| 1 | Frontend | Como a pessoa interage? | fluxo acessível testado | frontend-web-mobile-desktop |
| 2 | APIs e lógica | Onde regras são aplicadas? | contrato + testes de domínio | backend-dominio-jobs, apis-protocolos-integracoes |
| 3 | Dados e armazenamento | O que persiste e com qual integridade? | modelo, migração e restauração | bancos-armazenamento-governanca |
| 4 | Autenticação e permissões | Quem é e o que pode fazer? | matriz de autorização e testes negativos | identidade-autenticacao-autorizacao |
| 5 | Hospedagem e deploy | Como o artefato chega ao ambiente? | deploy e rollback reproduzíveis | hospedagem-deploy-distribuicao |
| 6 | Nuvem e computação | Em que recursos executa? | arquitetura e capacidade justificadas | nuvem-containers-plataforma |
| 7 | CI/CD e versão | Como mudanças são controladas? | pipeline, revisão e proveniência | git-cicd-supply-chain |
| 8 | Segurança e TLS | Como riscos são reduzidos? | threat model e controles verificados | cybersecurity-privacidade-devsecops |
| 9 | Rate limiting | Como abuso e saturação são limitados? | política por identidade e resposta 429 | rate-limit-cache-cdn-escalabilidade |
| 10 | Cache e CDN | O que pode ser reutilizado e onde? | política de validade e invalidação | rate-limit-cache-cdn-escalabilidade |
| 11 | Balanceamento e escala | Como distribuir carga? | teste de carga e comportamento em falha | rate-limit-cache-cdn-escalabilidade |
| 12 | Monitoramento e logs | Como saber o estado real? | logs, métricas, traces e alertas acionáveis | observabilidade-slos-operacao |
| 13 | Disponibilidade e recuperação | Como continuar ou restaurar? | RTO/RPO e restauração exercitada | disponibilidade-backup-recuperacao |
Camadas esquecidas pela figura
| Lacuna | Por que não pode faltar | Destino canônico |
|---|---|---|
| Produto e regras de negócio | tecnologia sem problema validado produz desperdício | núcleo produto-dominio |
| Pesquisa, UX e acessibilidade | frontend não garante utilidade nem inclusão | produto-ux-ui-acessibilidade |
| Arquitetura e contratos | reduz acoplamento e torna decisões verificáveis | arquitetura-modularidade-contratos |
| Testes e qualidade | uma pirâmide bonita não comprova comportamento | testes-qualidade-resiliencia |
| Filas, eventos e jobs | integrações reais nem sempre são síncronas | apis-protocolos-integracoes |
| Redes, DNS e gateways | são o caminho real de toda chamada | redes-dns-tls-pki |
| Configuração e segredos | deploy seguro exige separá-los do código | hospedagem-deploy-distribuicao |
| Supply chain e SBOM | dependências e builds também são superfície de ataque | git-cicd-supply-chain |
| Privacidade e governança | uso legítimo não é consequência automática da segurança | cybersecurity-privacidade-devsecops |
| Custos e capacidade | arquitetura precisa ser sustentável e dimensionada | custos-capacidade-finops |
| Incidentes e mudanças | produção exige detectar, responder e aprender | documentacao-incidentes-mudancas |
| Dados e IA | qualidade, proveniência e avaliações são próprias de sistemas probabilísticos | biblioteca ai-systems |
Regra de uso
Não “desça a pilha” implementando uma camada inteira por vez. Entregue uma fatia vertical pequena que atravesse somente as camadas necessárias, teste-a de ponta a ponta e acrescente capacidades transversais proporcionalmente ao risco.
Comprove o que você aprendeu
Responda todas as questões. O gabarito comentado só aparece depois do envio.