Questões de Concurso Sobre arquitetura de software
Foram encontradas 8.270 questões
- "usamos um diretório para que novos sistemas consigam localizar automaticamente os serviços disponíveis";
- "cada serviço expõe sua especificação em um documento que outros sistemas leem para saber como invocá-lo".
Considerando os padrões adotados em uma arquitetura SOA, as duas funcionalidades descritas são desempenhadas, respectivamente, por
Considere que uma equipe de desenvolvimento está projetando uma API RESTful para um sistema de gerenciamento de tarefas. A API deverá permitir as operações de criação, leitura, atualização completa, atualização parcial e exclusão de tarefas. A equipe definiu o recurso tarefa e precisa mapear corretamente os métodos HTTP, as URIs e os códigos de status de resposta.
Considerando as restrições arquiteturais REST e as boas práticas de projeto de APIs RESTful, assinale a afirmativa correta.
Por meio de conceitos como Inversão de Controle (IoC) e Injeção de Dependências (DI), o Spring promove o baixo acoplamento entre componentes, enquanto o Spring Boot simplifica a configuração e a inicialização de projetos por meio de convenções e autoconfiguração.
Considere o seguinte trecho de código utilizando Spring Boot:
@RestController @RequestMapping("/produtos") public class ProdutoController {
@Autowired private ProdutoService produtoService;
@GetMapping("/{id}") public ResponseEntity<Produto> buscarPorId(@PathVariable Long id) { Produto produto = produtoService.buscarPorId(id); return ResponseEntity.ok(produto); }
@PostMapping public ResponseEntity<Produto> salvar(@RequestBody Produto produto) { Produto salvo = produtoService.salvar(produto); return ResponseEntity.status(HttpStatus.CREATED).body(salvo); } }
Sobre o código apresentado, considerando os conceitos do Spring Framework e o comportamento padrão do Spring Boot, assinale a afirmativa correta.
Nessa nova abordagem, os desenvolvedores passaram apenas a submeter código, que é executado automaticamente em resposta a eventos, como requisições de usuários ou alterações em banco de dados. Além disso, o custo do serviço passou a variar conforme a utilização.
Com base no cenário apresentado, assinale a opção que indica o modelo de serviço em nuvem utilizado pela sociedade empresária.
I. De acordo com as diretrizes de acessibilidade, a cor pode ser usada como o único meio visual para transmitir informações ou distinguir elementos em uma página, desde que as cores escolhidas possuam um contraste visual nítido entre si.
II. Segundo o critério de Não Armadilha de Teclado, se o foco puder ser movido para um componente da página usando o teclado, deve ser possível retirá-lo desse componente usando apenas a interface de teclado.
III. Quando uma página pode ser navegada sequencialmente e essa ordem afeta o significado, os componentes que podem receber foco devem fazê-lo em uma sequência que preserve a operabilidade e a compreensão do conteúdo.
Está correto o que se afirma em
Nesse contexto, assinale a opção que apresenta uma prática correta relacionada ao foco de navegação.
Elas servem para avaliar e garantir que produtos digitais (sites, apps, softwares) sejam intuitivos, eficientes e proporcionem uma boa experiência ao usuário, prevenindo erros e facilitando a interação.
Neste contexto, analise os itens a seguir e assinale (V) para os que pertencem às heurísticas de Nielsen e com (F) aqueles que não pertencem.
( ) O sistema deve oferecer "saídas de emergência" claras para ações indesejadas.
( ) O sistema deve ser projetado para evitar que erros ocorram, em vez de apenas mostrá-los.
( ) O sistema deve informar ao usuário o que está acontecendo em tempo real.
Os itens são, respectivamente,
As tecnologias que se associam as aplicações mencionadas são, respectivamente,
Nesse contexto, ferramentas surgiram para administrar clusters de nós computacionais e garantir alta disponibilidade e eficiência operacional.
Diante do exposto, analise as afirmativas a seguir.
I. O Kubernetes é uma plataforma de orquestração de contêineres que permite automatizar a implantação, o escalonamento e a gestão de aplicações em clusters de nós computacionais.
II. O Rancher é uma ferramenta nativa do Kubernetes utilizada para o gerenciamento de clusters.
III. Em um cluster Kubernetes, os nós de trabalho executam os pods, enquanto o plano de controle é responsável pelo gerenciamento do estado do cluster.
Está correto o que se afirma em
Sem alterar a implementação da API e atuando apenas na especificação OpenAPI, a equipe precisa configurar a documentação para que o Swagger UI reconheça formalmente esse mecanismo de segurança e permita seu uso nas operações protegidas.
Nesse contexto, assinale a opção que apresenta a medida tecnicamente mais adequada.
Com base no código e nas regras da linguagem, avalie as afirmativas a seguir.
I. Os aliases c1 e c2 definem nomes distintos, na resposta, para duas seleções de consulta ao mesmo cliente.
II. Se o campo itens for do tipo objeto ou lista de objetos, a operação será inválida por faltar subseleção para esse campo.
III. Caso a variável $limite não seja informada na execução da operação, será usado o valor padrão 10.
Está correto o que se afirma em
Durante a transição, parte da integração entre sistemas legados permaneceu baseada em contratos formais descritos em XML, enquanto os novos serviços passaram a expor APIs HTTP com troca de mensagens em JSON.
Com base nesse cenário, avalie as afirmativas a seguir.
I. A coexistência, no mesmo ambiente, de serviços que utilizam contratos formais em XML e de APIs HTTP com JSON é compatível com um processo de transição arquitetural, não sendo suficiente, por si só, para descaracterizar uma adoção de microsserviços.
II. Em uma arquitetura de microsserviços, a divisão do sistema em vários serviços garante baixo acoplamento e independência de evolução, mesmo que todos compartilhem o mesmo banco de dados e dependam de mudanças coordenadas no esquema relacional.
III. Os microsserviços podem ser compreendidos como uma abordagem específica de arquitetura orientada a serviços, de modo que nem toda solução orientada a serviços caracteriza, necessariamente, uma arquitetura de microsserviços.
Está correto o que se afirma em
Como consequência, regras semelhantes começaram a ser repetidas em diferentes controladores, e mudanças em uma mesma política funcional passaram a exigir alterações em vários pontos do sistema. Em uma revisão arquitetural, decidiu-se promover uma refatoração para reduzir esse problema mantendo a separação de responsabilidades e favorecendo a reusabilidade.
Nesse contexto, de acordo com o modelo MVC, assinale a opção que apresenta a medida mais adequada.
APIs expostas publicamente estão sujeitas a diferentes tipos de uso indevido, como excesso de requisições, tentativas de negação de serviço e exploração de recursos de forma abusiva. Para mitigar esses riscos sem comprometer a disponibilidade para usuários legítimos, mecanismos de controle de tráfego, como rate limiting, são adotados em arquiteturas back-end modernas, equilibrando segurança, desempenho e experiência do consumidor.
Considere uma API REST utilizada por múltiplos clientes externos, com picos de acesso imprevisíveis. A equipe precisa proteger a API contra abusos e sobrecarga, sem impedir o uso legítimo e mantendo previsibilidade no consumo dos recursos.
Nesse contexto, assinale a alternativa que descreve corretamente a função e o benefício técnico do uso de rate limiting em APIs back-end.
A avaliação de desempenho em sistemas back-end distribuídos exige a identificação precisa de gargalos que limitam escalabilidade e tempo de resposta. Em ambientes de alta concorrência, problemas de desempenho podem estar relacionados a CPU, memória, acesso a banco de dados, comunicação em rede ou sincronização entre componentes, sendo fundamental analisar o comportamento do sistema de forma sistêmica e baseada em evidências.
Considere uma aplicação back-end que passou por escalabilidade horizontal, com aumento do número de instâncias, mas continua apresentando alto tempo de resposta sob carga intensa. Monitoramentos indicam que o consumo de CPU e memória das instâncias estão baixos, enquanto o tempo médio de resposta das requisições permanece elevado.
Nesse contexto, assinale a alternativa que descreve corretamente a hipótese técnica mais plausível para explicar o problema observado e orientar a investigação do gargalo.
Em sistemas back-end expostos por meio de APIs, a evolução contínua das funcionalidades é inevitável. No entanto, mudanças não planejadas podem quebrar contratos existentes e afetar aplicações consumidoras. Por esse motivo, estratégias de versionamento de APIs são adotadas para permitir evolução controlada, preservando compatibilidade e reduzindo impactos em ambientes distribuídos com múltiplos clientes.
Considere uma API REST amplamente utilizada por aplicações internas e externas. Novos requisitos exigem alterações estruturais nas respostas e inclusão de novos comportamentos que não são compatíveis com versões anteriores da API, sem possibilidade de migração imediata de todos os consumidores.
Nesse contexto, assinale a alternativa que descreve corretamente a estratégia mais adequada para evoluir a API sem causar indisponibilidade ou quebra de compatibilidade para os clientes existentes
Em sistemas distribuídos e baseados em microsserviços, falhas parciais são esperadas e inevitáveis. Dependências externas podem tornar-se lentas ou indisponíveis, propagando falhas em cascata e degradando a experiência do usuário.
Para mitigar esse risco, padrões de resiliência são adotados com o objetivo de isolar falhas, proteger recursos e permitir recuperação controlada do sistema.
Considere uma API back-end que depende de um serviço externo de pagamento. Em situações de instabilidade desse serviço, a API começa a apresentar lentidão generalizada e falhas sucessivas, afetando usuários que não dependem diretamente da funcionalidade de pagamento.
Nesse contexto, assinale a alternativa que descreve corretamente a aplicação do padrão Circuit Breaker para aumentar a resiliência do sistema.
Considere uma API back-end que utiliza um banco de dados relacional como fonte primária de dados e um cache em memória (Redis) para acelerar consultas frequentes. Os dados podem ser atualizados por múltiplas operações concorrentes, e a aplicação deve equilibrar desempenho e consistência.
Nesse contexto, assinale a alternativa que descreve corretamente uma estratégia adequada de uso de cache para reduzir inconsistências sem comprometer significativamente o desempenho da aplicação.
Considere uma aplicação back-end estruturada em camadas, como apresentação (controllers), negócio (services) e acesso a dados (repositories). Essa organização é comum em frameworks modernos e visa melhorar a qualidade do software ao longo do tempo.
Nesse contexto, assinale a alternativa que descreve corretamente o principal benefício técnico da separação de responsabilidades em camadas no desenvolvimento back-end.