Questionário de RFP – Avaliação de Qualidade de Software
Stack obrigatória: Angular (Frontend / Micro-frontends), Java (Backend / Micro-serviços), PostgreSQL (Banco de Dados)
Arquitetura: Micro-serviços, API First, Micro-frontend
Qualidade: Testes automatizados, segurança, escalabilidade e boas práticas arquiteturais
1. Funcionalidade (Functional Suitability)
- Como a solução garante rastreabilidade completa entre requisitos funcionais e APIs (API First)?
- Como os contratos de API (OpenAPI/Swagger) são versionados e validados?
- Como mudanças de requisitos impactam micro-serviços já em produção?
- Como é garantida a consistência funcional entre micro-frontends?
- Quais mecanismos asseguram que funcionalidades críticas sejam priorizadas e protegidas?
2. Performance / Eficiência
- Como a arquitetura garante baixo tempo de resposta sob alta concorrência?
- Quais estratégias de cache são utilizadas (frontend, backend, banco)?
- Como são realizados testes de performance e stress?
- Como o PostgreSQL é otimizado para alto volume de leitura/escrita?
- Como gargalos entre micro-serviços são identificados?
3. Confiabilidade (Reliability)
- Como falhas em um micro-serviço não impactam todo o sistema?
- Quais padrões de resiliência são adotados (circuit breaker, retry, timeout)?
- Como é tratada a recuperação automática de falhas?
- Qual o histórico de estabilidade da solução em ambientes produtivos?
- Como erros são registrados e monitorados?
4. Usabilidade (Usability)
- Como o Angular é utilizado para garantir consistência visual entre micro-frontends?
- Como princípios de UX e acessibilidade são aplicados?
- Como feedback do usuário é coletado e incorporado?
- Como erros são apresentados de forma clara ao usuário final?
- A solução é responsiva e compatível com múltiplos dispositivos?
5. Segurança (Security)
- Como é implementada autenticação e autorização (OAuth2, OpenID Connect)?
- Como as APIs são protegidas contra ataques (OWASP Top 10)?
- Como dados sensíveis são protegidos no PostgreSQL?
- Como segredos e credenciais são gerenciados?
- Como testes de segurança são executados (SAST, DAST)?
6. Manutenibilidade (Maintainability)
- Como o código Java é organizado para facilitar manutenção?
- Quais padrões arquiteturais são utilizados?
- Como o acoplamento entre micro-serviços é minimizado?
- Como a documentação técnica é mantida atualizada?
- Qual o tempo médio para corrigir defeitos?
7. Portabilidade (Portability)
- A solução é containerizada (Docker)?
- Como é garantida a execução em diferentes ambientes (cloud/on‑premises)?
- Como dependências externas são abstraídas?
- Como o Angular é configurado para múltiplos ambientes?
- Existe dependência de fornecedor (vendor lock-in)?
8. Escalabilidade (Scalability)
- Como micro-serviços escalam horizontalmente?
- Como o banco PostgreSQL é escalado?
- Como picos de acesso são tratados?
- Como micro-frontends escalam independentemente?
- Como limites de capacidade são monitorados?
9. Disponibilidade (Availability)
- Qual o SLA garantido da solução?
- Como é garantida alta disponibilidade dos serviços?
- Existe estratégia de failover?
- Como janelas de manutenção são tratadas?
- Como indisponibilidades são comunicadas?
10. Interoperabilidade (Interoperability)
- Como APIs REST seguem padrões de mercado?
- Existe suporte a integração via eventos/mensageria?
- Como versionamento de APIs evita quebra de contratos?
- Como sistemas legados são integrados?
- Como erros de integração são tratados?
11. Testabilidade (Testability)
- Qual a cobertura mínima de testes automatizados?
- Existem testes unitários, de integração e end‑to‑end?
- Como testes são executados em CI/CD?
- Como micro-frontends são testados isoladamente?
- Como dados de teste são gerenciados?
12. Reusabilidade (Reusability)
- Como componentes Angular são reutilizados?
- Existem bibliotecas comuns entre micro-serviços?
- Como APIs são projetadas para reutilização?
- Como duplicação de código é evitada?
- Existem guidelines formais de reutilização?
13. Robustez (Robustness)
- Como o sistema lida com entradas inválidas?
- Como falhas externas são isoladas?
- Como exceções são tratadas no backend?
- Como o sistema se comporta sob condições extremas?
- Existem testes de caos (chaos testing)?
14. Responsividade (Responsiveness)
- Como o frontend garante carregamento rápido?
- Como chamadas assíncronas são tratadas?
- Existe uso de lazy loading?
- Como o tempo de resposta é monitorado?
- Como SLAs de resposta são garantidos?
15. Conformidade com Padrões
- Quais padrões arquiteturais são seguidos?
- A solução segue normas ISO ou equivalentes?
- Como conformidade é auditada?
- Como boas práticas de REST são aplicadas?
- Existem padrões internos documentados?
16. Auditabilidade (Auditability)
- Como logs de auditoria são registrados?
- É possível rastrear ações por usuário?
- Logs são imutáveis?
- Existe integração com SIEM?
- Como relatórios de auditoria são gerados?
17. Configurabilidade (Configurability)
- Como configurações são externalizadas?
- Existe separação entre código e configuração?
- Como mudanças de configuração são aplicadas?
- Existe versionamento de configurações?
- Configurações são seguras?
18. Modularidade (Modularity)
- Como micro-serviços são delimitados?
- Como micro-frontends são independentes?
- Existe baixo acoplamento entre módulos?
- Como dependências são gerenciadas?
- Como módulos podem evoluir isoladamente?
19. Flexibilidade (Flexibility)
- Como a arquitetura suporta novas funcionalidades?
- Como novos micro-serviços são adicionados?
- Como mudanças de negócio impactam o sistema?
- Como APIs evoluem sem impacto?
- Existe suporte a extensões futuras?
20. Integridade (Integrity)
- Como a integridade dos dados é garantida no PostgreSQL?
- Como transações distribuídas são tratadas?
- Existe validação consistente de dados?
- Como corrupção de dados é detectada?
- Existem mecanismos de rollback e versionamento?
Observação: As respostas devem incluir evidências técnicas, diagramas arquiteturais e exemplos práticos.