Questões de Concurso Sobre engenharia de software

Foram encontradas 14.896 questões

Q3753506 Engenharia de Software
A “ (...) GitHub CLI é uma ferramenta de código aberto para uso do GitHub na linha de comando do computador. Quando você está trabalhando na linha de comando, você pode usar GitHub CLI para economizar tempo e evitar mudar o contexto.”
Fonte: GITHUB. Documentação do GitHub: versão em português brasileiro. Disponível em: https://docs.github.com/pt. Acesso em: 22 jul. 2025.

Considerando o excerto, assinale a alternativa que indica a opção CORRETA sobre a atualização do fork remoto a partir do próprio pai:
Alternativas
Q3753502 Engenharia de Software
Usando como referência o framework Spring versão 6.2.11, assinale a alternativa CORRETA em relação ao escopo dos beans: 
Alternativas
Q3753498 Engenharia de Software
Considerando os conceitos e as práticas relacionados aos métodos de desenvolvimento ágeis, todas as alternativas estão corretas, EXCETO:
Alternativas
Q3753496 Engenharia de Software
Princípios de projeto são recomendações concretas que desenvolvedores de software devem seguir para atender às propriedades de coesão, acoplamento, ocultamento de informação e extensibilidade de um projeto. Considere o código a seguir:

class Financeiro {  void calculaImpostoDeRenda() {  // cálculo do imposto  }  void geraRelatorioPDF() {  // código para gerar PDF  } }


Segundo os princípios de projeto conhecidos como S.O.L.I.D., o código mencionado acima viola o princípio:
Alternativas
Q3753494 Engenharia de Software
Refatorações (refactorings) são transformações de código que melhoram a manutenibilidade de um software, sem afetar o seu funcionamento.
Adaptado de VALENTE, Marco Túlio. Engenharia de software moderna: princípios e práticas para desenvolvimento de software com produtividade. Rio de Janeiro, 2020.

Considere a situação na qual, apesar de estar implementado em uma classe A, um método f possui mais dependências para elementos de uma classe B. Isso provoca uma diminuição da coesão da classe A e um aumento no acoplamento entre A e B.
A refatoração, com maior potencial para melhorar a coesão e acoplamento do sistema na situação acima, é 
Alternativas
Q3753483 Engenharia de Software
Considere a seguinte situação hipotética:
Uma equipe de desenvolvimento está adotando pipelines de Integração Contínua (CI) para aprimorar suas entregas e reduzir falhas em produção. Considerando esse contexto, analise as afirmações a seguir sobre práticas e conceitos relacionados ao uso de pipelines de CI. Classifique cada uma como verdadeira (V) ou falsa (F):

( ) O uso de pipelines CI garante que não existam falhas em produção, já que todos os testes automatizados foram aprovados antes da transição.

( ) A prática de build once, deploy many busca assegurar a consistência entre os ambientes de desenvolvimento, homologação (staging) e produção.

( ) A execução de testes de unidade e de testes de integração no pipeline é considerada uma prática recomendada no contexto DevOps.

( ) A execução paralela de jobs em CI reduz o tempo total de processamento, mas pode introduzir variações nos resultados quando existem dependências mal gerenciadas entre as etapas.

( ) A CI inclui a configuração e a implantação de um aplicativo em um pipeline de produção, dispensando a compilação e o teste.


Assinale a alternativa CORRETA:
Alternativas
Q3753414 Engenharia de Software
Analise as afirmações abaixo sobre as capacidades e os tipos de avaliação que tais ferramentas podem oferecer:

I.A avaliação somativa é realizada por meio de um sistema de classificação automática que executa o programa do aluno com um conjunto de casos de teste, atribuindo uma nota quantitativa com base nos resultados.
II.A avaliação formativa, por sua vez, concentra-se em fornecer feedback durante o processo de desenvolvimento, oferecendo aos alunos informações sobre casos de teste que falharam e estatísticas de desempenho para auto-monitoramento, mas geralmente carece de mecanismos para apoiar o aprendizado antes da avaliação final.
III.A análise do código-fonte em uma avaliação automática abrange múltiplos aspectos, incluindo a sintaxe, a semântica (o comportamento do programa), a eficiência (uso de recursos) e a manutenibilidade (clareza e organização do código).

Assinale a alternativa correta: 
Alternativas
Q3753114 Engenharia de Software
Analise as seguintes proposições relacionadas ao Docker Compose:

I – O controle é complexo. II – A colaboração é eficiente. III – O desenvolvimento das aplicações é prolongado. IV – A portabilidade entre ambientes é fácil.

Assinale a alternativa CORRETA sobre características da ferramenta Docker compose:
Alternativas
Q3753113 Engenharia de Software
Considere o seguinte excerto:

“(...) É uma prática de software que exige commits frequentes de códigos para um repositório compartilhado. Fazer commits de códigos com frequência detecta erros com mais antecedência e reduz a quantidade de código necessária para depuração quando os desenvolvedores chegam à origem de um erro. As atualizações frequentes de código também facilitam o merge de alterações dos integrantes de uma equipe de desenvolvimento de software. Assim, os desenvolvedores podem se dedicar mais à gravação de códigos e se preocupar menos com erros de depuração ou conflitos de merge.”

Fonte: GITHUB. Documentação do GitHub: versão em português brasileiro. Disponível em: https://docs.github.com/pt. Acesso em: 22 jul. 2025.

Assinale a alternativa que indica CORRETAMENTE o conceito descrito:
Alternativas
Q3748916 Engenharia de Software
Uma empresa está desenvolvendo um sistema de gestão para certo representante comercial. O projeto adota práticas ágeis e utiliza o framework React no front‑end, integrando‑se a uma API construída em Node.js. Durante o desenvolvimento, um dos desenvolvedores do time de front‑end alterou componentes da interface diretamente no código principal do repositório remoto. As modificações causaram conflitos e comprometeram partes da aplicação que estavam sendo testadas por outros membros da equipe. Além disso, esse desenvolvedor teve dificuldades para entender a estrutura do React, tentando manipular o DOM diretamente, em vez de adotar outras estratégias.
Ainda a respeito da situação hipotética apresentada, assinale a opção que apresenta a prática correta de versionamento que o desenvolvedor deveria ter adotado para evitar conflitos no código.
Alternativas
Q3748914 Engenharia de Software
Uma empresa está desenvolvendo um sistema utilizando a metodologia Scrum. O projeto está no meio da sprint 3, com duração de duas semanas. Durante esse período, um desenvolvedor percebeu que uma das interfaces planejadas não está mais em conformidade com as novas diretrizes do cliente e decide contatá‑lo diretamente para realizar as alterações no requisito antes do fim da sprint. Ao saber disso, o Scrum Master intervém e explica ao desenvolvedor que o procedimento adotado não está em conformidade com o framework Scrum, pois compromete a organização e a estabilidade da sprint.
Com base nessa situação hipotética, e considerando os princípios da metodologia Scrum, assinale a opção correta.  
Alternativas
Q3748909 Engenharia de Software
Assinale a opção que apresenta o modelo de computação em nuvem que oferece um ambiente completo para o desenvolvimento de software, incluindo sistemas operacionais, bancos de dados, linguagens de programação, frameworks, bibliotecas e ferramentas de automação.  
Alternativas
Q3742498 Engenharia de Software
UML (Unifi ed Modeling Language) é uma sigla empregada como uma notação padrão para modelagem de objetos do mundo real, uma linguagem de desenvolvimento de software que se destina a fornecer um modo padrão de visualizar o "desenho" de um sistema. Neste sentido, observe a figura, que ilustra um dos principais diagramas empregados na UML.


Imagem associada para resolução da questão



Essa figura representa uma ferramenta conhecida por Diagrama de:
Alternativas
Q3729845 Engenharia de Software
Durante a análise de um sistema, foram observados diversos problemas de usabilidade que impactam negativamente a experiência do usuário. Entre os problemas identificados, destacam-se:

1 - Os usuários frequentemente relatam dificuldade para encontrar funcionalidades importantes, devido a menus pouco claros e labels ambíguos.
2 - Quando ocorre um erro, o sistema apresenta mensagens genéricas, que não ajudam o usuário a compreender o problema ou a corrigi-lo.
3 - Diferentes telas apresentam estilos de botões, cores e nomenclaturas distintos, gerando confusão.
4 - Algumas telas exibem muitos elementos ao mesmo tempo, tornando difícil a identificação do que é prioritário.
5 - Ações importantes não geram feedback imediato, deixando o usuário incerto sobre o resultado da operação.

Assinale a alternativa que relaciona corretamente os problemas listados à respectiva heurística de Nielsen violada.
Alternativas
Q3729842 Engenharia de Software
A normalização de dados é uma tarefa comum antes da implementação de uma IA ou algoritmo de Machine Learning. É por meio da normalização que se garante uma mesma escala entre os dados, comumente entre 0 e 1 ou –1 e 1.

Sendo X o vetor de dados originais, e X′ o vetor de dados normalizados, assinale a alternativa que descreve corretamente uma normalização válida.
Alternativas
Q3729839 Engenharia de Software
A Universidade X está integrando uma árvore de decisão, baseada em entropia, para prever a evasão dos alunos. Em um cenário de testes, o número de reprovações se mostrou um atributo importante. Para tal, criou-se a árvore, conforme a figura.
Imagem associada para resolução da questão
Considerando o nó inicial e seus filhos, assinale a alternativa correta quanto ao resultado que reflete a equação do ganho.
Alternativas
Q3729838 Engenharia de Software
Complexidade ciclomática é uma métrica de software, fundamentada na teoria dos grafos, que fornece uma medida quantitativa da complexidade lógica de um programa. 
Imagem associada para resolução da questão
Com base no grafo apresentado, assinale a alternativa que indica a complexidade ciclomática correta.
Alternativas
Q3729837 Engenharia de Software
Modelos de linguagem de grande porte (Large language Models, LLMs) estão na base de algumas das ferramentas mais importantes da atualidade (por exemplo, o ChatGPT). Um marco decisivo para a IA foi o artigo de Vaswani et al. (2017), “Attention is All You Need”, que introduziu a arquitetura Transformer e redefiniu o estado da arte em processamento de linguagem natural.

Assinale a alternativa que descreve corretamente uma função de Atenção (Attention).
Alternativas
Q3729834 Engenharia de Software
Em seu livro “Engenharia de Software” (2011), Sommerville escreve:

“O teste é destinado a mostrar que um programa faz o que é proposto a fazer e para descobrir os defeitos do programa antes do uso. Quando se testa o software, o programa é executado usando dados fictícios. Os resultados do teste são verificados à procura de erros, anomalias ou informações sobre os atributos não funcionais do programa.”
Fonte: SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Prentice Hall, 2011. p. 144.

Tendo em vista os processos relacionados a teste no desenvolvimento de software, assinale V (verdadeiro) ou F (falso) em cada afirmativa a seguir.
( ) Os testes de desenvolvimento incluem testes unitários, nos quais se testam objetos e métodos específicos; testes de componentes, nos quais se testam diversos grupos de objetos; e testes de sistema, nos quais se testam sistemas parciais ou completos.
( ) O teste de aceitação é um processo de teste no qual a equipe decide se o software é bom o suficiente para ser implantado e usado em seu ambiente operacional.
( ) O desenvolvimento dirigido a testes é uma abordagem de desenvolvimento na qual os testes são escritos antes do código que será testado.

A sequência correta é
Alternativas
Q3729832 Engenharia de Software
Segundo Sommerville, o gerenciamento de versão é o processo de acompanhamento de diferentes versões de componentes de software ou itens de configuração e os sistemas em que esses componentes são usados. Ele também envolve a garantia de que as mudanças feitas por diferentes desenvolvedores para essas versões não interfiram umas nas outras.
Fonte: SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo, Person Prentice Hall, 2011.

O Git é um sistema de controle de versão, criado em 2005 por Linus Torvalds, bastante utilizado em projetos de desenvolvimento de software. Considere que um desenvolvedor deseja ver o histórico de commits em formato gráfico simplificado no terminal para identificar a linha de tempo e os branches e assinale a alternativa que descreve o comando a ser utilizado.
Alternativas
Respostas
1061: A
1062: D
1063: B
1064: C
1065: D
1066: A
1067: C
1068: B
1069: C
1070: D
1071: B
1072: B
1073: C
1074: E
1075: C
1076: E
1077: B
1078: D
1079: C
1080: E