Questões de Concurso Comentadas sobre engenharia de software

Foram encontradas 13.121 questões

Q4041489 Engenharia de Software
Com o objetivo de reaproveitar a especificação de comportamentos comuns, os Casos de Uso podem se relacionar através de generalização, inclusão e extensão. O objetivo do relacionamento de extensão é ser utilizado para representação: 
Alternativas
Q4041488 Engenharia de Software
A UML (Unified Method Language) é uma linguagem universal desenvolvida para facilitar a comunicação entre desenvolvedores, analistas e usuários. O artefato da UML capaz de complementar o Caso de Uso por meio de uma representação gráfica do fluxo de interação em um cenário específico é denominado diagrama de: 
Alternativas
Q4041486 Engenharia de Software
Na análise de pontos (APF), a unidade de medida é o ponto de função e sua contagem é feita a partir do ponto de vista dos requisitos lógicos do usuário. Nesse contexto, os dados de código não devem influenciar o tamanho funcional da aplicação, e as operações que existirem exclusivamente para a manutenção desses dados não devem ser consideradas funções de transação para efeitos de contagem. Sendo assim, os dados de código que não devem influenciar o tamanho funcional da aplicação são conhecidos como dados:  
Alternativas
Q4041485 Engenharia de Software
O roteiro de métricas de software do SISP (Sistema de Administração dos Recursos de Tecnologia da Informação) tem como propósito apoiar os órgãos e as entidades no processo de medição de software em projetos não previstos no Manual de Práticas de Contagem (CPM). Um desses tipos é a Adaptação em Funcionalidades sem Alteração de Requisitos Funcionais. São consideradas nessa categoria as demandas de manutenção adaptativa associadas a solicitações que envolvem aspectos não funcionais, sem alteração em requisitos funcionais. Um tipo de manutenção que se enquadra nesse conceito é: 
Alternativas
Q4041483 Engenharia de Software
 Um conflito inerente entre Desenvolvimento e Operações de TI gera uma espiral descendente, que reduz a qualidade da entrega e cria problemas que se acumulam. Essas “dívidas técnicas” tornam-se cada vez mais difíceis de serem resolvidas com o passar do tempo. Para evitar seu acúmulo e melhorar o rendimento das equipes, é preciso identificar continuamente restrições do sistema de trabalho. Nas transformações DevOps típicas, a contramedida utilizada para corrigir a restrição de demora de semanas ou meses para configuração de ambientes de produção ou teste é:
Alternativas
Q4041481 Engenharia de Software
Muitos problemas surgem de forma recorrente a cada novo projeto, sendo possível estabelecer soluções pré-convencionadas para reaproveitamento futuro. A solução, no entanto, somente será eficaz se for apropriada ao contexto do problema, pois no mundo do software, a predefinição de padrões pode ser muito granularizada para aplicação prática repetitiva. Muitas vezes é necessário fornecer uma infraestrutura mínima, específica para implementação, que pode conter vários padrões, sendo denominada: 
Alternativas
Q4041480 Engenharia de Software
Mudanças são inevitáveis quando um software é construído e podem causar confusão quando os membros de uma equipe estão trabalhando num projeto. Se as alterações não forem controladas, elas controlarão o processo. Por isso a importância da gestão de configuração de software. Em um sistema de controle desse tipo de gestão, quatro importantes conjuntos de elementos devem existir. Um deles deve conter uma coleção de procedimentos e tarefas que definem uma abordagem eficaz de gestão de alterações (e atividades relacionadas) para todas as partes envolvidas em gestão, engenharia e uso do software. Este conjunto é composto pelos elementos:  
Alternativas
Q4041477 Engenharia de Software
Nos primórdios da World Wide Web, os sites eram formados por nada mais do que um conjunto de arquivos de hipertexto ligados, que representavam informações utilizando textos e gráficos limitados. Com o decorrer do tempo, a evolução da linguagem HTML tornou possível a oferta de capacidade computacional juntamente com as informações. Assim, tecnologias Web 3.0 evoluíram para sofisticadas aplicações voltadas para o mundo corporativo e para o consumidor. Tais softwares, mesmo quando superados tecnologicamente, podem ser responsáveis ainda hoje por funções críticas do negócio e — ainda que a tecnologia seja relativamente moderna — quando comparada a outros tipos. A baixa qualidade, a falta de documentação e o histórico de alterações mal gerenciado, quando presentes, normalmente resultam em projetos inextensíveis, gerando dores de cabeça na organização, principalmente quando sistemas indispensáveis ao negócio estão envolvidos. Dentro de tal contexto, quando o software atende às necessidades do usuário de forma confiável, sem que nenhuma mudança significativa seja necessária, a medida correta a ser tomada é: 
Alternativas
Q4038043 Engenharia de Software
Analise as afirmativas a seguir a respeito da ferramenta de versionamento Git e assinale a alternativa correta.

I. Git é um sistema de controle de versão distribuído, o que significa que cada desenvolvedor possui uma cópia completa do repositório, incluindo todo o histórico de mudanças.
II. Uma branch (ramificação) permite que você trabalhe em uma cópia do código separadamente do resto do projeto. Isso é útil para desenvolver novas funcionalidades, corrigir bugs ou experimentar novas ideias sem afetar o código principal.
III. Criar um clone de um repositório significa copiar um repositório inteiro da sua máquina local para um servidor.
IV. O pull é o processo de enviar suas mudanças locais para um repositório remoto.
Alternativas
Q4038037 Engenharia de Software
Assinale a alternativa que contém apenas papéis previstos no framework ágil Scrum.
Alternativas
Q4038030 Engenharia de Software
Considere as seguintes descrições, correspondentes ao conteúdo da seção “intenção” do catálogo de design patterns (padrões de projeto), e assinale a alternativa que completa correta e respectivamente as três lacunas, considerando sua ordem numérica destacada no texto.

1. _______________: incorpora responsabilidades adicionais a um objeto dinamicamente. Esse padrão fornece uma alternativa flexível à produção de subclasses para estender a funcionalidade.
2. _______________: provê um substituto ou espaço reservado a outro objeto, para controlar o acesso a este.
3. _______________: fornece uma interface unificada para um conjunto de interfaces em um subsistema. Esse padrão define uma interface de nível mais alto, que torna o subsistema mais fácil de usar.
Alternativas
Q4036202 Engenharia de Software
Um Analista está desenvolvendo um sistema para gerenciar informações financeiras em uma agência de fomento. Durante os testes, ele percebe que algumas consultas ao banco de dados e procedimentos automáticos não estão funcionando corretamente. Para garantir que o sistema execute as operações conforme esperado, ele precisa realizar o processo de identificar, analisar e corrigir erros nos algoritmos e programas utilizados. Diante disso, qual é o nome desse processo?
Alternativas
Q4033741 Engenharia de Software

Um dos maiores benefícios dos sistemas de controle de versão distribuídos é a capacidade de alternar rapidamente entre diferentes contextos de trabalho. Considere o seguinte cenário:


Um desenvolvedor estava trabalhando ativamente em um repositório local, inserindo código na branch novo-botao-save. Antes de concluir a funcionalidade, recebeu um chamado urgente para corrigir um bug crítico na tela de login que já estava em produção. Para resolver o problema partindo de uma base de código estável, ele guardou temporariamente suas alterações inacabadas e utilizou o comando git _______ master para mudar seu diretório de trabalho para a branch principal (master). Logo em seguida, para manter o isolamento da correção, ele criou e acessou simultaneamente uma nova branch chamada correcao-bug-login por meio do comando git _______ -b correcao-bug-login. Após realizar as correções necessárias e registrar o commit localmente, ele finalizou sua tarefa atualizando o repositório remoto com a nova branch utilizando o comando git _______ origin correcao-bug-login.


Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

Alternativas
Q4033740 Engenharia de Software
Durante o processo de versionamento de um software utilizando o Git, um desenvolvedor executou um commit em seu repositório local. Imediatamente após a ação, ele percebeu que havia executado o comando muito cedo: esqueceu de adicionar um arquivo importante à área de preparação (stage) e escreveu a mensagem descritiva de forma equivocada. Como o commit ainda não foi enviado para o repositório remoto, o desenvolvedor deseja refazê-lo, incorporando o arquivo esquecido e corrigindo a mensagem, de modo a sobrescrever o registro anterior sem criar um commit adicional no histórico. Após adicionar o arquivo pendente ao stage, qual é o comando a se executar para atingir esse objetivo diretamente, sem a necessidade de comandos adicionais?
Alternativas
Q4033739 Engenharia de Software
O teste de aceitação é uma fase inerente ao desenvolvimento de sistemas customizados, ocorrendo após os testes de release. Consiste em um processo formal de avaliação conduzido pelo cliente para determinar se o software atende às necessidades do negócio e se o pagamento pelo produto deve ser efetuado. Com base nas etapas que compõem o processo de teste de aceitação, assinale a alternativa INCORRETA.
Alternativas
Q4033738 Engenharia de Software
O teste unitário atua na base do controle de qualidade de software, focando na verificação de componentes individuais, como métodos e classes de objetos. A respeito das técnicas e dos desafios associados ao projeto de testes unitários para sistemas orientados a objetos, assinale a alternativa INCORRETA.
Alternativas
Q4033736 Engenharia de Software

A modelagem de sistemas orientados a objetos permite visualizar a arquitetura do software sob diferentes perspectivas, facilitando a comunicação e a documentação técnica. Com base nas categorias clássicas de modelos de sistemas (interação, estrutural e comportamental) e no uso dos diagramas da UML, analise as assertivas abaixo:



I. Modelos de interação representam a comunicação entre o sistema e seu ambiente operacional ou entre os componentes internos do próprio sistema. O Diagrama de Sequência pertence a essa categoria, tendo como objetivo modelar a ordem cronológica das trocas de mensagens entre os objetos instanciados para a execução de um cenário específico.


II. Modelos estruturais descrevem a organização estática do software e a estrutura dos dados que serão processados pela aplicação. O Diagrama de Classes pertence a essa categoria, sendo o seu objetivo primordial representar graficamente as relações entre os dados, os desvios condicionais e o paralelismo das operações lógicas executadas pelos módulos do sistema.


III. Modelos comportamentais ilustram o comportamento dinâmico do sistema durante a sua execução. O Diagrama de Atividades enquadra-se nessa classificação, possuindo como objetivo detalhar o fluxo de controle de um processo de negócio ou computacional, evidenciando a sequência de ações, os desvios condicionais e o paralelismo das operações.



Quais estão corretas?

Alternativas
Q4033735 Engenharia de Software

A modelagem orientada a objetos utilizando a Unified Modeling Language (UML) é uma ferramenta essencial na fase de análise e projeto de Software. O Diagrama de Classes, em particular, estabelece a estrutura estática do sistema por meio de classes, seus atributos, operações e os relacionamentos entre os objetos. Sobre as características, o nível de detalhamento e a semântica dos relacionamentos nesse diagrama, analise as assertivas abaixo e assinale V, se verdadeiras, ou F, se falsas.



( ) Para evitar os conflitos de interpretação entre os requisitos do cliente e o código que será efetivamente implementado pelos desenvolvedores, o nível de detalhamento do diagrama de classes (incluindo visibilidade de atributos, tipos de dados rigorosos e assinaturas completas de métodos) deve ser mantido invariavelmente alto desde as fases iniciais da modelagem conceitual.


( ) Na UML, o relacionamento de agregação estabelece um vínculo semântico restrito no qual ocorre uma coincidência de tempo de vida entre os objetos modelados. Nesse tipo de associação, se o objeto contêiner (o “todo”) for destruído da memória, as instâncias exclusivas que formam as suas “partes” também deverão obrigatoriamente ser destruídas, visto que não podem existir de forma independente no sistema.


( ) A relação de generalização permite a modelagem de herança estrutural e comportamental. Na construção do diagrama de classes UML, é totalmente válido modelar uma classe filha com herança múltipla (recebendo características de múltiplas superclasses), ainda que a equipe de desenvolvimento vá implementar o sistema em uma linguagem que não suporta herança múltipla de classes nativamente, como a linguagem Java.



A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

Alternativas
Q4033734 Engenharia de Software

A elaboração do Documento de Requisitos exige uma separação clara entre os níveis de abstração e a natureza técnica das necessidades de um projeto. Descrições em linguagem natural e diagramas gerais são essenciais para validar a ideia com stakeholders, mas frequentemente são ambíguas e inadequadas para guiar diretamente o desenvolvimento. Essas descrições compõem os requisitos _____________. Para solucionar essa ambiguidade, elabora-se uma especificação técnica detalhada, que serve como contrato e guia exato para a equipe técnica, denominada requisitos _____________. Independentemente do nível de detalhamento documental, as necessidades também se dividem quanto à sua natureza: as descrições dos serviços exatos que o software deve fornecer e como deve reagir a entradas específicas formam os requisitos _____________. Em contrapartida, as restrições que afetam as propriedades emergentes do sistema como um todo são os requisitos ______________.


Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

Alternativas
Q4033732 Engenharia de Software

Um modelo de processo de software é uma representação abstrata que descreve uma abordagem para o desenvolvimento. Na prática, compreender as diferenças estruturais desses modelos é essencial para a escolha da metodologia adequada a cada projeto. Considerando os modelos genéricos de processo de software, analise as assertivas abaixo:



I. No modelo em cascata, o fluxo de trabalho é estruturado de forma linear e sequencial, exigindo que cada etapa fundamental seja concluída e validada individualmente antes que a fase subsequente possa ser iniciada.


II. O modelo espiral caracteriza-se pela execução de iterações de desenvolvimento focadas na rápida entrega de código e na prototipação informal, dispensando a realização de análises de riscos formais para formar uma espiral de entregas e validações rápidas.


III. O modelo de desenvolvimento incremental baseia-se na divisão do sistema em incrementos funcionais (partes autônomas), permitindo que os requisitos mais críticos ou de maior prioridade para o negócio sejam desenvolvidos e entregues nas primeiras iterações do ciclo de vida.



Quais estão corretas?

Alternativas
Respostas
241: C
242: B
243: B
244: D
245: A
246: C
247: A
248: D
249: B
250: D
251: A
252: E
253: A
254: A
255: D
256: C
257: C
258: B
259: E
260: C