Arquitetura de Software para inovação de serviços

porLuis Augusto Moretto

Arquitetura de Software para inovação de serviços

Introdução

Arquitetura de Software

Como qualquer outra estrutura complexa, o software deve ser construído sobre uma base sólida. Ferramentas e plataformas modernas ajudam a simplificar a tarefa de desenvolver software, mas não substituem a necessidade de projetar seu aplicativo com cuidado, com base em seus casos de uso e requisitos de negócio.

Os riscos expostos pela arquitetura deficiente incluem software que é instável, incapaz de suportar requisitos de negócios existentes ou futuros ou que é difícil de implantar ou gerenciar em um ambiente de produção.

Os sistemas devem ser projetados levando em consideração o usuário, o sistema (a infraestrutura de TI) e as metas de negócios. Para cada uma dessas áreas, você deve descrever os principais cenários e identificar atributos importantes de qualidade (por exemplo, confiabilidade ou escalabilidade) e áreas-chave de satisfação e insatisfação. Sempre que possível, desenvolva e considere métricas que medem o sucesso em cada uma dessas áreas.

Objetivos do usuário, dos negócios e do sistema

A experiência geral do usuário da solução é muitas vezes uma função dos negócios e da infraestrutura de TI. Mudanças nos requisitos de experiência do usuário podem ter um impacto significativo nos requisitos de negócios e infraestrutura de TI.

O desempenho pode ser um grande objetivo de usuário e de negócios, mas o administrador do sistema pode não conseguir investir no hardware necessário para atingir essa meta 100% do tempo. Um ponto de equilíbrio pode ser atingir o objetivo apenas 80% do tempo.

A arquitetura se concentra em como os principais elementos e componentes de um aplicativo são usados ​​ou interagem com outros elementos e componentes principais do aplicativo.

A seleção de estruturas de dados e algoritmos ou os detalhes de implementação de componentes individuais são preocupações de design. As preocupações de arquitetura e design muitas vezes se sobrepõem.

Em vez de usar regras rígidas e rápidas para distinguir entre arquitetura e design, faz sentido combinar essas duas áreas. Em alguns casos, as decisões são claramente mais arquitetônicas por natureza. Em outros casos, as decisões são mais sobre design e como elas ajudam você a perceber essa arquitetura.

Seguindo os processos descritos neste post e usando as informações que ele contém, você poderá construir soluções de arquitetura que abordam todas as preocupações relevantes, podem ser implantadas em sua infraestrutura escolhida e fornecer resultados que atendam às metas e objetivos originais. .

Considere as seguintes preocupações de alto nível ao pensar sobre arquitetura de software:

  1. Como os usuários estarão usando o aplicativo?
  2. Como o aplicativo será implantado em produção e gerenciado?
  3. Quais são os requisitos de atributo de qualidade para o aplicativo, como segurança, desempenho, simultaneidade, internacionalização e configuração?
  4. Como a aplicação pode ser projetada para ser flexível e sustentável ao longo do tempo?
  5. Quais são as tendências de arquitetura que podem afetar seu aplicativo agora ou depois que ele foi implantado?