Questões de Arquitetura de Software (Arquitetura de Software)

Limpar Busca

No desenvolvimento de software moderno, a aplicação de princípios de design e metodologias ágeis visa aumentar a qualidade e a manutenibilidade do código. Considerando os princípios SOLID e a prática de testes, assinale a alternativa CORRETA sobre a arquitetura de software.

  • A Metodologias ágeis como o Scrum desencorajam a realização de testes unitários automatizados, priorizando apenas a entrega de funcionalidades visuais ao cliente ao final de cada sprint.
  • B O Princípio da Responsabilidade Única (SRP) define que uma classe deve ter múltiplos motivos para mudar, permitindo que ela centralize diversas funcionalidades relacionadas para simplificar o acoplamento global.
  • C O Princípio da Inversão de Dependência (DIP) sugere que módulos de alto nível devem depender diretamente de módulos de baixo nível para garantir que a implementação concreta dite a arquitetura do sistema.
  • D O Princípio da Substituição de Liskov (LSP) estabelece que subclasses devem ser capazes de substituir suas classes base sem alterar a corretude do sistema, garantindo que as extensões não quebrem o comportamento esperado da abstração.
  • E Testes de integração possuem como objetivo principal validar a lógica interna de uma única função ou método isolado, sem considerar a comunicação entre diferentes módulos ou bancos de dados.

De acordo com o art. 4º da Resolução CNJ nº 335/2020, a Plataforma Digital do Poder Judiciário Brasileiro (PDPJ-Br) deve adotar, obrigatoriamente, soluções que abranjam o seguinte conceito (dentre outros):

  • A Baixa coesão.
  • B Alto acoplamento.
  • C Arquitetura monolítica.
  • D Microsserviços.
  • E Utilização preferencial de tecnologias com código fechado proprietário, cujo fornecedor possa ser responsabilizado em caso de problemas.

Assinale a alternativa que indica um dos principais desafios que precisa ser tratado em uma arquitetura de microsserviços.

  • A Redução do acoplamento entre camadas internas de um único sistema monolítico.
  • B Eliminação da integração contínua, pois cada serviço é independente.
  • C Aumento da complexidade de gerenciamento e monitoramento.
  • D Diminuição da latência de comunicação, pois as chamadas de serviços ocorrem sempre localmente.
  • E Eliminação do versionamento de APIs.

Assinale a opção que corresponde a uma vantagem da arquitetura serverless.

  • A baixo custo para aplicações de longo tempo de execução
  • B quick start (execução imediata da primeira função)
  • C baixa complexidade para desenvolvimento
  • D facilidade para o diagnóstico de problemas de desempenho
  • E escalabilidade automática

Com o crescimento de aplicações baseadas em microserviços, tornou-se comum o uso de ferramentas que automatizam a implantação e a gestão de múltiplos containers. O Docker Compose e o Kubernetes são duas soluções amplamente utilizadas nesse contexto, com propósitos semelhantes, mas características e níveis de complexidade distintos.
Assinale a afirmativa que descreve corretamente essas ferramentas.

  • A Ambos possuem a mesma finalidade, mas o Kubernetes depende do Docker Compose para executar múltiplos containers em ambiente de produção.
  • B O Docker Compose permite orquestração em larga escala com balanceamento de carga, escalonamento automático e autodescoberta de serviços, enquanto o Kubernetes é mais indicado para aplicações pequenas e testes locais.
  • C O Kubernetes é uma ferramenta exclusiva para execução de containers em ambientes com sistema operacional Windows, enquanto o Docker Compose é restrito ao Linux.
  • D O Kubernetes substitui totalmente o Docker Compose, sendo impossível utilizar Compose para testes locais de containers.
  • E O Docker Compose é usado principalmente para definir e executar containers localmente, enquanto o Kubernetes é uma plataforma de orquestração mais robusta, voltada para ambientes de produção distribuídos.