Leia o cenário abaixo:\nEm um sistema de software, o desenvolvedor deseja garantir que todas as declarações do código estejam sendo testadas adequadamente. A ideia é identificar trechos de código que não estão sendo testados, para garantir que todo o comportamento esperado do sistema seja validado.\nCom relação à aplicação da cobertura de declaração em testes automatizados, observe as afirmativas a seguir:\n\nI. A cobertura de declaração assegura que todas as linhas de código foram executadas, mas não garante que a lógica do código foi testada corretamente.\nII. A cobertura de declaração é suficiente para garantir que todas as possíveis condições e caminhos lógicos do código foram testados.\nIII. Para garantir uma validação completa do comportamento do código, a cobertura de declaração deve ser complementada com a cobertura de ramo e de caminho, que avaliam a lógica e os diferentes cenários do código.\n\nEstá correto o que se afirma em:
Joana está desenvolvendo um sistema em C++ que será utilizado em diferentes sistemas operacionais. Para facilitar a portabilidade e automatizar a criação dos arquivos de compilação, ela decide usar o CMake. No diretório raiz do projeto, ela cria um arquivo chamado CMakeLists.txt e, a partir dele, gera os arquivos de build para diferentes ambientes, utilizando, em seguida, comandos específicos para compilação e execução. Com base na situação descrita e nos conhecimentos sobre o funcionamento do CMake, observe as afirmativas abaixo:\n\nI. O uso do CMakeLists.txt permite que Joana defina quais arquivos-fonte serão incluídos na compilação, bem como o nome do executável resultante.\nII. A execução do comando make após o CMake é possível porque o CMake gerou um Makefile compatível com o sistema da Joana.\nIII. O CMake substitui o compilador, realizando a compilação do projeto de forma independente, sem precisar do make ou do gcc.\n\nEstá correto o que se afirma em:
Durante a configuração de um projeto corporativo Java com múltiplos módulos, a equipe de desenvolvimento percebeu que o tempo de build estava excessivamente alto e que cada alteração em um módulo disparava a recompilação completa de todos os módulos dependentes, mesmo sem necessidade. O projeto usava Gradle, mas não havia uma configuração otimizada para builds incrementais. Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:I. A estrutura modular de um projeto Gradle, quando mal configurada, pode causar recompilações desnecessárias, impactando diretamente a performance do build.PORQUEII. A ausência de declaração explícita de dependências entre módulos impede que o Gradle execute builds incrementais com eficiência, pois ele não consegue identificar o que mudou de fato.A respeito dessas asserções, assinale a alternativa correta:
Durante a configuração de um projeto C++ com múltiplos arquivos-fonte e diretórios, o uso de CMake tornou-se essencial para automatizar a geração do projeto e controlar o processo de compilação de forma eficiente. O desenvolvedor deseja compilar um executável principal, organizar os arquivos em subdiretórios e incluir bibliotecas externas de forma modular, mantendo clareza e reutilização no projeto. Considerando práticas reais de uso do CMake nesse contexto, analise as afirmativas a seguir:I. O comando add_subdirectory() permite incluir subdiretórios que contenham seus próprios arquivos CMakeLists.txt, possibilitando a organização modular de bibliotecas ou partes da aplicação.
II. A instrução target_include_directories() pode ser usada para especificar diretórios de cabeçalhos para um alvo específico, evitando que os includes precisem ser definidos globalmente.
III. A função find_package() permite localizar bibliotecas externas instaladas no sistema, mas seu uso depende da existência de módulos de configuração apropriados para cada biblioteca.
IV. O comando add_executable() deve ser utilizado apenas dentro de subdiretórios, e não no diretório principal do projeto, onde apenas configurações globais devem ser declaradas.Está correto o que se afirma em:
Leia o trecho a seguir:No desenvolvimento de aplicações Java, é comum recorrer a ferramentas que auxiliam na automação da configuração do projeto e no gerenciamento de bibliotecas externas. Uma das soluções mais utilizadas para isso é o Maven, que facilita a inclusão automática de dependências, padroniza a estrutura dos projetos, permite a realização de builds e oferece suporte ao controle de versões.Com base no uso do Maven no contexto de desenvolvimento de projetos Java, observe as afirmativas a seguir:$I.$ O Maven permite automatizar o processo de build de aplicações, definindo fases como compilação, teste e empacotamento.$II.$ Com o Maven, todas as dependências de um projeto precisam ser adicionadas manualmente ao diretório de bibliotecas da aplicação.$III.$ A configuração principal de um projeto Maven é feita no arquivo $pom.xml$, que define dependências, plugins e outras configurações.Está correto o que se afirma em:
Durante o desenvolvimento de um sistema para uma pequena empresa de logística, a equipe identificou que o cálculo de prazo de entrega estava implementado de formas diferentes em diversos pontos do código. Algumas variações causavam resultados inconsistentes. Para resolver isso, o time decidiu aplicar refatoração: extraiu a lógica repetida para uma única função reutilizável, reorganizou os arquivos por responsabilidade e criou testes automatizados. Com relação a este contexto e sobre o conteúdo estudado, analise as asserções a seguir e a relação proposta entre elas: I. A decisão de centralizar a lógica de cálculo de prazo em uma única função refatorada melhora a qualidade do sistema, pois evita comportamentos divergentes e facilita futuras atualizações, PORQUE II. ao aplicar refatoração com base na identificação de código duplicado em pontos críticos, a equipe melhora a previsibilidade do sistema e reduz o tempo necessário para localizar e corrigir erros. A respeito dessas asserções, assinale a alternativa correta:
Durante a validação de uma função criada para automatizar uma rotina comum no sistema, foram definidos alguns testes com base em diferentes combinações de entrada. O trecho de código abaixo representa a lógica usada para atualizar o status de um pedido:def processar_pedido(pedido):
if pedido["pago"]:
if pedido["estoque"] > 0:
pedido["status"] = "Confirmado"
else:
pedido["status"] = "Aguardando Estoque"
else:
pedido["status"] = "Pagamento Pendente"Foram aplicados os seguintes testes:
• Teste 1: ("pago": True, "estoque": 5)
• Teste 2: ("pago": True, "estoque": 0)Com base nesses testes e no código apresentado, avalie as afirmativas a seguir:
I. A linha pedido["status"] = "Pagamento Pendente" não foi executada em nenhum dos testes.
II. O bloco if pedido["pago"]: foi testado tanto com o resultado verdadeiro quanto falso.
III. A cobertura de declaração ainda não é total, pois nem todas as instruções foram executadas.
IV. A adição de um teste com ("pago": False) permitiria alcançar $100%$ de statement coverage.
Está correto o que se afirma em:
Qual é o nome do comando que representa uma solicitação para que um desenvolvedor revise e, se for o caso, realize o merge de um branch que outro desenvolvedor criou?
Um desenvolvedor está trabalhando em uma aplicação que contém duas branches principais: main e feature/login. Ele está desenvolvendo uma nova funcionalidade na branch feature/login e, durante esse processo, percebeu que algumas alterações não foram devidamente confirmadas antes de trocar para a branch main. Após realizar algumas correções na branch main, ele decide voltar para a branch feature/login e retomar seu trabalho. Porém, ao tentar realizar o git merge feature/login de volta para a branch main, ele se depara com um conflito. Ele também nota que a branch feature/login está com alguns arquivos que não deveriam ser parte do commit, e ele precisa removê-los da área de stage. Com base neste cenário, sobre a sequência correta de comandos para resolver os problemas e retomar o desenvolvimento da maneira mais adequada, analise as afirmativas a seguir:
I. Retornar para a branch feature/login para corrigir a área de stage e retirar os arquivos indesejados.
II. Utilizar o comando git restore --staged <arquivo> para remover os arquivos da área de stage.
III. Após limpar a área de stage, retornar à branch main utilizando git checkout main.
IV. Com a branch main ativa, executar git merge feature/login para integrar as alterações.
Está correto o que se afirma em:
Qual comando da ferramenta Git é usado para criar snapshots (ou fotografias) dos arquivos de um sistema e armazená-las no sistema de controle de versões?
Leia o cenário a seguir:
Durante o desenvolvimento de uma aplicação colaborativa, os desenvolvedores A e B estão trabalhando em branches distintas, feature-a e feature-b, respectivamente. O desenvolvedor A realiza alterações no arquivo config.py, enquanto o desenvolvedor B faz modificações no mesmo arquivo, mas em um trecho diferente de código. Quando ambos tentam realizar o $git\ merge$ de suas branches na branch main, ocorre um conflito, pois ambos alteraram a mesma linha de código no arquivo config.py.
Com relação a este contexto e sobre o conteúdo estudado, avalie as asserções a seguir e a relação proposta entre elas:
I. Quando um conflito é detectado após um comando $git\ merge$, o desenvolvedor deve realizar o comando $git\ reset\ --hard$ para voltar ao estado anterior ao merge e recomeçar o processo de resolução do conflito.
PORQUE
II. O comando $git\ diff$ pode ser utilizado durante a resolução de um conflito para visualizar as diferenças entre a versão atual do arquivo e a versão que será integrada, permitindo que o desenvolvedor veja claramente as modificações feitas por outros colaboradores.
A respeito dessas asserções, assinale a alternativa correta:
Os serviços on-line exigem que o usuário realize um cadastro na plataforma, a fim de identificar e utilizar as informações de login para realizar acessos posteriores às soluções. Para criar uma conta no console AWS, alguns passos precisam ser seguidos. Assinale a alternativa que apresenta passos a ser seguidos para criar a conta após o acesso à plataforma.
Padrão arquitetural é um conjunto de decisões de projeto de software que define utilidade, tipos de elementos, tipos de relações, propriedades de elementos e restrições de como os elementos se relacionam. Por exemplo, o padrão Layers (camadas) agrupa entidades de softwares em camadas de funcionalidades e permite o seu uso entre elas. Quais são as principais arquiteturas padrões no âmbito de um projeto de software? Assinale a alternativa CORRETA, a seguir.
Os web services são tecnologias para computação ____________ baseada na web. Eles permitem que diferentes serviços distribuídos sejam executados em uma variedade de plataformas e ____________. Preencha as lacunas assinalando a alternativa CORRETA.
Um dos componentes da Arquitetura Orientada a Serviços (SOA) é o Enterprise Service Bus (ESB). Identifique se as afirmativas a seguir sobre o Enterprise Service Bus (EBS) são (V) verdadeiras ou (F) falsas. I. Os serviços dependem do componente da SOA denominado EBS para terem controle sobre a lógica que encapsulam. II. O ESB possibilita que o fornecedor registre/publique serviços no diretório, além de possibilitar que o consumidor encontre o serviço que gostaria de requisitar. III. O EBS trata aplicativos como serviços, estabelecendo padrãos de conectividade, trocas de mensagens e fornecendo apoio a outras tarefas. Assinale a alternativa que apresenta a sequência correta.
Sobre as características mais importantes dos serviços web que são projetados para suportar interoperabilidade entre máquinas pela rede, é correto afirmar que:
Os serviços Simple Object Access Protocol (SOAP) são baseados em uma estrutura multicomponente. O protocolo UniversalDescription, Discoveryand Integration (UDDI) é o diretório responsável por registrar informações dos serviços Web para que os clientes se comuniquem. Os dados armazenados e descritos pelo protocolo UDDI são segmentados em três principais categorias: páginas brancas, amarelas e verdes. Assinale a alternativa que apresenta as informações tratadas pelas páginas brancas.
Uma arquitetura orientada a serviços é um padrão de arquitetura de software de ______, cujas funcionalidades implementadas nos serviços/aplicações são disponibilizadas na forma de serviços para os ______ do serviço.
Os serviços Web são caracterizados por um conjunto de funções de aplicação relacionadas entre si. Para exemplificar a utilização de um Web service e a sua relação com o modelo de negócios, podemos considerar a comunicação entre a empresa X e Y. Considerando que a empresa X é o cliente e a empresa Y é o servidor, uma conexão A dinâmica deve permitir o uso de uma linguagem de programação capaz de suportar XML e HTTP do lado do cliente e implementar diferentes ambientes. É importante lembrar, porém, que os serviços Web trazem muitas vantagens, mas também desvantagens. Assim, assinale a alternativa que representa uma desvantagem dos serviços Web.
O Representational State Transfer (REST) utiliza URI, que são nomes aplicados para identificar recursos na Web, e é definido de diferentes formas, podendo ser visto como um estilo arquitetural para definir sistemas fracamente acoplados. Assinale a alternativa correta que compreende o estilo arquitetural REST:
O oferecimento de serviços de computação em nuvens conta com servidores remotos, o que implica a aquisição de infraestrutura de comunicação e de processamento pelo provedor. Dessa forma, a organização que contrata tais serviços costuma ter como um de seus benefícios, a economia de recursos, ficando isenta de investir em bens de capital e de arcar com custos de manutenção de infraestrutura.Em relação a outros possíveis benefícios geralmente trazidos aos contratantes, identifique se são (V) verdadeiras ou (F) falsas as afirmativas a seguir.I. ( ) A contratação de serviços de computação em nuvens permite que o controle da carga de trabalho seja realizado em tempo real e que o pagamento seja realizado com base nos recursos alocados.
II. ( ) A contratação de serviços de computação em nuvens propõe o uso de recursos e componentes para segurança, desempenho e monitoramento da nuvem, além de garantir a disponibilidade e o uso de serviços sob demanda.
III. ( ) Os serviços de computação em nuvens fazem uso de virtualização, assim sendo é facilitado o acesso dos contratantes a tais serviços, por meio de diferentes dispositivos e sistemas operacionais.Assinale a alternativa que apresenta a sequência CORRETA.
Os modelos de implementação de computação em nuvem influenciam diretamente na forma como o gerenciamento é conduzido e nas responsabilidades atribuídas à organização contratante e ao provedor de nuvem.Avalie as afirmações a seguir sobre os três modelos de computação em nuvem, e relacione adequadamente tais modelos às afirmações que os descrevem.1 – Nuvem híbrida.
2 – Nuvem privada.
3 – Nuvem pública.I – A organização gerencia seus recursos computacionais e pode optar por manter o data center num modelo gerenciado em sua infraestrutura interna ou hospedada por terceiros. Os responsável pelo oferecimento dos serviços, bem como, seus usuários pertencem à mesma organização.
II – A organização tipicamente terceiriza atividades não críticas, contratando provedores externos de serviços de computação em nuvens. Os serviços mais críticos são mantidos em nuvem privada.
III – O provedor se responsabiliza por manter, proteger e configurar os recursos, mas compartilha o ambiente entre múltiplos usuários em ambiente independente.Assinale a alternativa que correlaciona adequadamente os dois grupos de informação:
A computação em nuvem é para o cliente como um ambiente em que ele solicita recursos computacionais como serviço e é atendido mediante pagamento pelo uso. O cliente é parte integrante de toda uma cadeia complexa de elementos que envolvem custos para manutenção de hardware, software etc. Sobre esse assunto, assinale a alternativa correta: