Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Existe um template/framework pra checar cada elemento recomendado de arquitetura?

Por exemplo, na aula quando o professor fala dos requisitos e o que deveria ser observado:
Disponibilidade e confiança: possui como métricas principais uptime, mtbf, mttr...
Existe algo que possamos ir preenchendo durante a fase de requisitos e gere um visão gerão se atende às métricas principais de cada requisito não funcional?

2 respostas
solução!

Oii, Antonio!

Que pergunta interessante. É muito comum sentirmos falta de algo mais palpável para "ticar" durante a fase de concepção, especialmente com requisitos não funcionais (RNFs), que costumam ser mais subjetivos.

Na arquitetura de software, não existe um template único e universal, mas existem frameworks e abordagens estruturadas que servem exatamente para esse preenchimento e acompanhamento que você mencionou.

  1. Architectural Decision Records (ADR):

O ADR é uma técnica para documentar decisões de arquitetura. Embora não seja um "check-list" de métricas, ele obriga o time a registrar o motivo de uma escolha, as alternativas e as consequências. Ao definir um RNF de disponibilidade, você cria um ADR especificando que o uptime esperado é de 99,9% e quais métricas (MTBF/MTTR) serão monitoradas.

  1. Atributos de Qualidade (Quality Attribute Workshop - QAW)
    Esta é uma prática do SEI (Software Engineering Institute). Em vez de um template estático, utiliza-se o conceito de Cenários de Atributos de Qualidade. Para cada requisito (Disponibilidade, Segurança, etc.), você preenche:
  • Fonte: Quem ou o que gera o estímulo (Ex: Um pico de acessos).
  • Estímulo: O que aconteceu (Ex: 10.000 requisições por segundo).
  • Ambiente: Condição do sistema (Ex: Sob carga normal).
  • Resposta: O que o sistema deve fazer (Ex: Escalar horizontalmente).
  • Medida da resposta: A métrica em si (Ex: Latência menor que 200ms).
  1. ISO/IEC 25010 (Modelo de Qualidade de Produto)

Se você busca uma lista exaustiva para não esquecer de nada, este padrão internacional é o melhor guia. Ele divide a qualidade do software em 8 características principais (Funcionalidade, Desempenho, Usabilidade, Confiabilidade, Segurança, Manutenibilidade, Portabilidade e Compatibilidade), cada uma com subcaracterísticas.

CaracterísticaO que observar (Métrica/Check)
ConfiabilidadeTaxa de falhas, Disponibilidade (Uptime), MTTR.
DesempenhoTempo de resposta (Latência), Vazão (Throughput).
ManutenibilidadeCobertura de testes, Complexidade ciclomática.
  1. Modelo C4 e os Diagramas

Como você está estudando o Modelo C4, uma forma de visualizar se os requisitos estão sendo atendidos é anotar as restrições diretamente nos diagramas de Container ou Componente.

Por exemplo, ao desenhar um Container de Banco de Dados, você pode adicionar uma nota técnica sobre a estratégia de replicação para garantir o RNF de disponibilidade definido.

Uma ferramenta que ajuda muito a "gerar essa visão" de forma dinâmica é o uso de Dashboards de Observabilidade (como Grafana ou Datadog) desde o início do desenvolvimento (ambiente de Staging). Assim, as métricas de MTBF e latência que você definiu no papel começam a ser visualizadas em tempo real.

Espero que essas referências ajudem a estruturar suas análises!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Muitíssimo obrigado! Agora sei por onde seguir!