Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Como mensurar a qualidade de uma Arquitetura de...

Como mensurar a qualidade de uma Arquitetura de Software

Entender se a solução implementada atende nossos objetivos e mensurar a qualidade da nossa arquitetura são fatores decisivos para tomada de decisões em nosso System Design. Venha explorar quais as melhores métricas e ferramentas podem ser utilizados e como obter melhores resultados em seus projetos

Avatar for Daniel Bertolini

Daniel Bertolini

December 05, 2023
Tweet

More Decks by Daniel Bertolini

Other Decks in Programming

Transcript

  1. Whoami Daniel Bertolini Desenvolvedor de Software há +8 anos Arquiteto

    de Front End Tech Lead daniel-bertolini-correia Dan_Bertolini
  2. Arquitetura de Software pode ser definida como a estruturação fundamental

    de um sistema de software visando seu sucesso no curto, médio e longo prazo Definindo Arquitetura de Software
  3. Arquitetura de Software pode ser definida como a estruturação fundamental

    de um sistema de software visando seu sucesso no curto, médio e longo prazo Isso consiste na capacidade de combinar requisitos de negócios com preocupações adicionais que são não- funcionais como por exemplo: Definindo Arquitetura de Software
  4. Definindo Arquitetura de Software Arquitetura de Software pode ser definida

    como a estruturação fundamental de um sistema de software visando seu sucesso no curto, médio e longo prazo Disponibilidade Testabilidade Segurança Desempenho Confiabilidade Escalabilidade Isso consiste na capacidade de combinar requisitos de negócios com preocupações adicionais que são não- funcionais como por exemplo:
  5. Ciclo de Vida de um Projeto de Software Concepção Levantamento

    de Requisitos Definições de Arquitetura Desenvolvimento Entregas do Produto
  6. Mensurar a qualidade de uma Arquitetura de Software Pra que?

    Permite a tomada de decisões mais assertivas
  7. Mensurar a qualidade de uma Arquitetura de Software Pra que?

    Permite a tomada de decisões mais assertivas Prove previsibilidade de possíveis cenários adversos de problemas
  8. Mensurar a qualidade de uma Arquitetura de Software Pra que?

    Permite a tomada de decisões mais assertivas Prove previsibilidade de possíveis cenários adversos de problemas Definir prioridades para concentrar esforços nas tarefas importantes que exigem atenção.
  9. Medições na Infraestrutura e Aplicações Logs Traces Métricas Análise de

    Design (Arquitetura) Análise de Software (Código) Mecanismos de Mensuração de Qualidade
  10. Medições na Infraestrutura e Aplicações Logs Traces Métricas Análise de

    Design (Arquitetura) Análise de Software (Código) Estimativas e Modelos Experiências prévias Medidas de Sistemas Similares Benchmarking Mecanismos de Mensuração de Qualidade
  11. Mecanismos de Mensuração de Qualidade Medições na Infraestrutura e Aplicações

    Logs Traces Métricas Análise de Design (Arquitetura) Análise de Software (Código) Estimativas e Modelos Experiências prévias Medidas de Sistemas Similares Benchmarking Architectural Fitness Functions Ilustração sobre Fitness Functions no capítulo 2 do livro Building Evolutionary Architectures
  12. Architectural Fitness Functions Definir Métrica Categorização Instrumentar Ferramentas Criar Alertas

    Escopo, Cadência, Resultado, Invocação, Proatividade e Cobertura
  13. Architectural Fitness Functions Definir Métrica Categorização Instrumentar Ferramentas Criar Alertas

    Definir Planos de Ação Escopo, Cadência, Resultado, Invocação, Proatividade e Cobertura
  14. Ferramentas Monitores de Métricas Análise Estática e Dinâmica de Código

    SCA, DAST e SAST Exército Símio (Netflix) Frameworks de Teste de Arquitetura APM LightHouse Testes de Carga
  15. Arquitetura Medições em cada Etapa Métricas de Acoplamento Estabilidade de

    Componentes Nível de Abstração de Componentes Connascence Métricas de Coesão Falta de Coesão de Métodos (LCOM) Representação de Estabilidade e Instabilidade de Componentes Outros Adesão aos princípios de arquitetura
  16. Desenvolvimento Medições em cada Etapa Métricas de Manutenibilidade Complexidade Ciclomática

    Densidade de Duplicação de Código Métricas de Testabilidade Nível de Cobertura de Código Métricas de Segurança Quantidade de Vulnerabilidades no Código-Fonte e Dependências
  17. Aplicação e Infraestrutura Medições em cada Etapa Métricas de Desempenho

    Latência Throughput Uso de Recursos Métricas de Disponibilidade Tempo Médio entre Falhas (MTBF) Tempo Médio de Recuperação (MTTR)
  18. Ciclo de uma Arquitetura Evolucionária Ilustração de Eoin Woods sobre

    Arquitetura Contínua no capítulo 7 do livro Software Architecture Metrics Alterações incrementais e guiadas por métricas Documente todas as decisões importantes (ADR) Entenda os Trade Offs de cada decisão Adie decisões até que elas sejam realmente necessárias
  19. Dos and Don’ts sobre Métricas de Qualidade Comece pequeno Comece

    logo Meça coisas que importam Atue no que foi medido Torne as medidas visíveis Torne as medidas contínuas
  20. Dos and Don’ts sobre Métricas de Qualidade Focar nos mecanismos

    e não nas medidas Buscar exatidão desnecessariamente Medir demais Escolher medidas apenas por serem fáceis Não utilizar o que foi medido
  21. Referências Building Evolutionary Architectures por Neal Ford, Rebecca Parsons, Patrick

    Kua, Pramod Sadalage Fundamentals of Software Architecture: An Engineering Approach por Mark Richards e Neal Ford Software Architecture: The Hard Parts por Neal Ford, Mark Richards, Pramod Sadalage, Zhamak Dehghani Software Architecture Metrics por Christian Ciceri, Dave Farley, Neal Ford , Andrew Harmel-Law, Michael Keeling, & 5 mais