É comum na indústria de software que sistemas sejam desenvolvidos sem um modelo formal de Arquitetura de Software.

Padrões de Arquitetura de Software.
Design Patterns

Por exemplo, equipe de desenvolvedores costumam iniciar o seu trabalho sem uma arquitetura clara e bem definida ocasionando diversos problemas: código-fonte desorganizado, módulos sem uma definição concreta de papéis, responsabilidades e relacionamentos. É o cenário conhecido como “Big Ball of Mud” (leia mais aqui).

Devido a isto, aplicações sem um modelo formal de Arquitetura de Software são altamente acopladas, difíceis de evoluir e sem uma visão clara, obrigando aos desenvolvedores entenderem cada aspecto de seus módulos internos antes de aplicar uma evolução.

Todavia, perguntas simples são difíceis de serem respondidas: A aplicação é escalável? Quais é a performance da aplicação? Quão fácil é aplicar uma mudança? Quais são os requisitos de deployment da aplicação? O quão responsiva é a aplicação?

Contudo, padrões de Arquitetura de Software definem um conjunto de princípios básicos de características e comportamentos de uma aplicação. Por exemplo, alguns padrões direcionam a aplicação para a escalabilidade enquanto outros direcionam a aplicação para a performance.

Acima de tudo, conhecer as características, forças e fraquezas de cada padrão de Arquitetura de Software é necessário para escolher aquele que irá atender os objetivos e as necessidades das áreas de negócio.

Portanto, para atender estas necessidades serão apresentadas nos próximos artigos a definição detalhada, o conceito e a análise dos prós e contras dos seguintes padrões de Arquitetura de Software:

  • Layered Architecture Pattern
  • Event Driven Architecture Pattern
  • Microkernel Architecture Pattern
  • Microservices Architecture Pattern
  • Space-based Architecture Pattern

Concluindo, cabe ao Arquiteto de Software justificar suas decisões e o objetivo dos próximos artigos será munir o profissional com informações que o auxilie nesta decisão. Até mais!!!

Caso deseje saber mais sobre os principais conceitos de Arquitetura de Software, clique aqui.


Deixe sua opinião