Questões de Concurso Sobre engenharia de software

Foram encontradas 14.770 questões

Q4041478 Engenharia de Software
Um software consiste em instruções que, quando executadas, fornecem características, funções e desempenho desejados. Essa é uma possível definição de software. Entretanto, para se ter uma melhor compreensão do que seja software, é importante saber identificar as características que o tornam diferenciado de outras coisas que os seres humanos constroem. O gráfico a seguir representa uma taxa de defeitos em função do tempo: 


Imagem associada para resolução da questão


Essa relação, geralmente denominada “curva da banheira”, indica uma taxa de defeitos relativamente alta no início da vida, caindo para um nível estável após um período de tempo. Todavia, à medida que o tempo passa, a taxa aumenta novamente. A curva mostrada na figura representa a relação da taxa de defeitos em função do tempo para: 
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
Q4038040 Engenharia de Software
Considere os dois diagramas UML a seguir, referentes ao design pattern (padrão de projeto) Composite (composto) e assinale a alternativa que completa correta e respectivamente as três lacunas, considerando sua ordem numérica destacada no texto.

Imagem associada para resolução da questão


O padrão Composite, assim como outros padrões, é baseado fortemente no conceito de (1)__________________, o que pode ser observado em sua estrutura, em que a classe principal do padrão (classe Composite) é uma especialização de uma classe existente e não é a única especialização dessa classe. Além disso, um segundo conceito importante no padrão Composite, assim como em outros padrões, é (2)__________________, o que se observa na uniformidade das assinaturas de métodos invocados no segundo diagrama. Um terceiro conceito relevante nesse padrão, assim como em outros, é (3)__________________, observável no segundo diagrama, quando uma responsabilidade atribuída à instância de Composite – método ‘method1()’ – é repartida com instâncias agregadas da classe Leaf.
Alternativas
Q4038039 Engenharia de Software

Considere os quatro diagramas UML a seguir.



Imagem associada para resolução da questão



Assinale a alternativa que identifica corretamente os tipos de diagrama, considerando sua ordem numérica destacada na imagem.

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
Q4037403 Engenharia de Software

Assinale a alternativa que corresponde ao tipo de diagrama representado na imagem abaixo. 



Imagem associada para resolução da questão

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
Q4033733 Engenharia de Software
A abordagem Scrum é um método ágil cujo foco recai sobre o gerenciamento do desenvolvimento iterativo. A característica central e inovadora desse framework é a execução dos ciclos de sprint, que consistem em unidades de planejamento em que o trabalho é avaliado e o software é implementado. Em relação às características de funcionamento dos ciclos de sprint no modelo Scrum, assinale a alternativa correta.
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
Q4032648 Engenharia de Software

A UML (Unified Modeling Language) disponibiliza diferentes tipos de diagramas para representar aspectos estruturais e comportamentais de sistemas de software. Cada diagrama possui um propósito específico e é adequado para diferentes contextos de modelagem.


Diante disso, analise as afirmativas a seguir:


I. O diagrama de classes representa a estrutura estática do sistema, descrevendo classes, atributos, métodos e os relacionamentos entre elas.


II. O diagrama de sequência modela a interação entre objetos ao longo do tempo, evidenciando a troca de mensagens em ordem cronológica.


III. O diagrama de atividades é utilizado exclusivamente para modelar o comportamento interno de métodos de classes, não sendo adequado para representar fluxos de processos de negócio.


IV. O diagrama de casos de uso tem como objetivo descrever os requisitos funcionais do sistema sob a perspectiva dos atores externos que interagem com ele.


Estão CORRETAS:

Alternativas
Q4032647 Engenharia de Software

Os diagramas de casos de uso da UML descrevem os requisitos funcionais de um sistema sob a perspectiva dos atores externos que interagem com ele. Para expressar relações de dependência e reuso entre casos de uso, a UML define os estereótipos <<include>> e <<extend>>, que possuem semânticas distintas. Diante disso, assinale a alternativa que descreve CORRETAMENTE a diferença entre essas duas relações.

Alternativas
Respostas
361: A
362: D
363: B
364: A
365: E
366: D
367: A
368: C
369: E
370: A
371: A
372: D
373: C
374: C
375: B
376: E
377: C
378: C
379: D
380: C