Arquitetura

A etapa de Arquitetura traz a estrutura organizacional de um sistema, incluindo sua decomposição em partes, sua conectividade, seus mecanismos de interação e os princípios e decisões que orientam no desenvolvimento de um sistema.

[Gather Requirements] -> [Analyze in Real World Context] -> [Develop the Architecture]

As três fundamentais etapas são:

  • Cenário: Descrevendo o problema.
  • Análise: O que fazer para solucionar o problema?
  • Projeto: Como fazer para solucionar o problema?

O guia para etapas são através dos Princípios, Padrões e Práticas.

Princípios, Padrões e Práticas

Os princípios, padrões e práticas são as bagagens de experiências do desenvolvedor sobre a etapa de Arquitetura - com a adição de complexidade adicional na maioria dos casos: enquanto os princípios trazem as sugestões e recomendações de expressões idiomáticas para a criação do software, os padrões trazem a formalização dos princípios em pares de problema/solução para serem aplicados e moldados aos contextos de software, por fim as práticas trazem as atividades/técnicas executadas durante o projeto pela abordagem filosófica e científica.

Os problemas são:

detectados pelas Práticas,
diagnosticados pelos Princípios,
solucionados pelos Padrões, e
regulados pelos Antipadrões.

Os mais utilizados/aplicados são:

Pontos importantes:

  • Trade-off: os padrões de projeto são utilizados conforme um equilíbrio entre espaço e tempo dos recursos computacionais.

  • 4 elementos essenciais: nome do padrão, problema, solução e consequências.

Outros

Dentre os pontos importantes estão:

  • Etapa Zero: a etapa/iteração zero é a primeira atividade, na qual utiliza o cenário mais simples (World ou Walking Skeleton) e representativo do projeto, assim validando o ambiente de desenvolvimento (IDE, Controle de Versão, Servidores, Frameworks, Rigs, etc...).

  • Arquiteturas Modernas: novos estudos de arquiteturas para a representação de software, baseadas em variantes da arquitetura Ports-And-Adapters, tais como: Hexagonal, Onion e Clean.

results matching ""

    No results matching ""