Questões de Concurso Sobre desenvolvimento de software em engenharia de software

Foram encontradas 1.080 questões

Q2175441 Engenharia de Software
No desenvolvimento de software orientado a objetos, a técnica responsável por definir comportamentos para uma classe, identificando serviços e ações que ela oferece, é chamada de:
Alternativas
Q2172675 Engenharia de Software
O desenvolvimento de software é uma tarefa complexa e desafiadora que envolve, normalmente, um time de desenvolvedores que colaboram entre si. Para o sucesso desse desenvolvimento colaborativo, utilizam-se práticas e ferramentas que minimizarão problemas. A integração contínua é uma dessas práticas. Analise as assertivas abaixo e assinale a alternativa correta.
I. GitHub oferece fluxo de trabalho inicial de CI (Integração Contínua) para uma série de linguagens e estruturas. II. A Integração Contínua é uma prática que recomenda que os commits sejam adiados o máximo possível, evitando tráfego de rede. III. O GitHub permite personalizar e compartilhar fluxos de trabalho.
Alternativas
Q2172400 Engenharia de Software
Uma prática utilizada em projetos de desenvolvimento de software orientado a objetos é a inversão de controle. Uma das vantagens da inversão de controle é:
Alternativas
Q2172396 Engenharia de Software
No ciclo de vida ágil de desenvolvimento de software, a técnica de documentar requisitos do sistema a partir do ponto de vista do usuário é conhecida como:
Alternativas
Q2172174 Engenharia de Software
É um padrão de medidas muito útil para a verificaç̧ão da efetividade e da eficiência de diversas atividades do desenvolvimento de software. Também usadas para prover informações como estimativas do esforço necessário para o teste; e obtidas e interpretadas durante o processo de testes. É importante que sejam capturadas e utilizadas corretamente para que possam auxiliar na melhoria do processo de desenvolvimento do software através de informações objetivas e pragmáticas. A qual conceito o trecho se refere?
Alternativas
Q2172172 Engenharia de Software
Em 1979, Glenford Myers afirmava haver uma importância que as atividades de testes fossem executadas de forma paralela a todas as outras fases de desenvolvimento de software criando a regra 10 de Myers, que estabelece uma importante questão para os defeitos. Essa regra implica em: 
Alternativas
Q2172159 Engenharia de Software
Existem vários ciclos de vida de testes existentes no mercado. Independentemente do modelo de ciclo de vida de desenvolvimento de software escolhido, as atividades de teste devem começar nos estágios iniciais do ciclo de vida, aderindo ao princípio de testar do início. Um ciclo de vida muito utilizado é o Test Management (TMap) por ser bastante didático e fácil de analisar. Esse ciclo de vida do processo de teste é composto por diversas etapas ou fases, sendo quatro delas sequenciais ou em cascata, e duas paralelas. Analise a tabela abaixo e assinale a alternativa correta em relação à opção que indica as fases que são sequenciais e as fases que são paralelas.
Imagem associada para resolução da questão
Alternativas
Q2172156 Engenharia de Software
O SOLID é um acrônimo em inglês para cinco princípios de projeto que possuem o objetivo de fazer programas mais compreensíveis, flexíveis e sustentáveis. O acrônimo SOLID condensa cinco princípios fundamentais para a concepção de objetos que respondem aos problemas que afetam a escalabilidade e a longevidade de um sistema. Relativamente aos princípios e suas descrições, relacione a Coluna 1 à Coluna 2.
Coluna 1 1. Single Responsibility Principle (Princípio de responsabilidade única). 2. Open-Closed Principle (Princípio aberto/fechado). 3. Liskov Substitution Principle (Princípio de substituição de Liskov). 4. Interface Segregation Principle (Princípio de segregação de interface). 5. Dependency Inversion Principle (Princípio de inversão de dependência).
Coluna 2 ( ) Classe não deve ser obrigada a implementar métodos e interfaces que não serão utilizadas. ( ) Depende de abstrações e não de implementações. ( ) Uma classe deve ter uma e apenas uma razão para mudar. ( ) Objetos devem estar disponíveis para extensão, mas fechados para modificação. ( ) Uma subclasse deve ser substituível por sua superclasse.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
Alternativas
Q2172150 Engenharia de Software
O DevOps (desenvolvimento + operação) preza o estreitamento entre as áreas de desenvolvimento e infraestrutura através de ferramentas e metodologias, de modo que seja possível automatizar, monitorar, observar, testar e metrificar todas as etapas de desenvolvimento de software. Dentro dos processos de DevOps, que visam o aumento dessa qualidade e também a facilitação de colocar um projeto em produção, há um que é uma prática em que os times de desenvolvimento lançam novas funcionalidades de forma constante e automatizada. Quando uma nova funcionalidade é finalizada, automaticamente ela será disponibilizada no ambiente de testes e, posteriormente, no ambiente de produção e, em alguns casos, pode ir direto para produção. Assinale a alternativa que cita essa prática.
Alternativas
Q2171827 Engenharia de Software

São modelos de desenvolvimento que integram o processo do ciclo de vida de um software seguro:

I. Modelo espiral.

II. Modelo cascata.

III. Modelo interativo.

IV. Modelo ágil.

Quais estão corretas?

Alternativas
Q2171816 Engenharia de Software
Relacione a Coluna 1 à Coluna 2, associando as metodologias de desenvolvimento de sistemas com os seus respectivos conceitos.
Coluna 1 1. Metodologia estruturada. 2. Metodologia orientada a objetos.
Coluna 2 ( ) O modelo de desenvolvimento desenhado para atender às necessidades do desenvolvimento nessa metodologia é o Processo Unificado.
( ) A UML foi definida como padrão para documentação de projetos dessa metodologia.
( ) Nessa metodologia de desenvolvimento, o sistema é visualizado no modelo entrada-processosaída, onde os dados são considerados separadamente das funções.
( ) Nessa metodologia, o mundo real é composto por objetos os quais protegem a sua estrutura de dados junto ao seu comportamento funcional.
( ) Existe uma clara separação entre funções e dados, em que as primeiras são ativas e implementam a lógica da aplicação, enquanto os dados são entidades de informação passivas, normalmente estruturados em repositórios.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é: 
Alternativas
Q2171731 Engenharia de Software
No projeto em que você começará a trabalhar, você precisará de quatro engenheiros _____________ para programar o back-end (server) e front-end (client) da aplicação web. Além disso, precisará de mais um _____________ para automatizar o deploy e a integração contínua da aplicação que será toda em AWS e GitHub Actions.
Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.
Alternativas
Q2171707 Engenharia de Software
Relacione a Coluna 1 à Coluna 2, associando os itens de melhores práticas de programação segura com as respectivas ações que devem ser implementadas para segui-las.
Coluna 1 1. Gerenciamento de sessão. 2. Segurança de comunicação. 3. Segurança de banco de dados. 4. Configuração do sistema.
Coluna 2 ( ) Implemente criptografia para a transmissão de todas as informações confidenciais. ( ) Gere um novo identificador em qualquer reautenticação no sistema. ( ) Defina quais métodos HTTP, Get ou Post o aplicativo suportará e se será tratado diferentemente nas páginas do aplicativo. ( ) Localize os identificadores somente no cabeçalho do cookie HTTP. ( ) Armazene as strings de conexão criptografadas e em um arquivo de configuração separado.
A ordem correta de preenchimento dos parênteses, de cima para baixo, é:
Alternativas
Q2171685 Engenharia de Software
Sobre Application Development Lifecycle Management (ADLM), analise as assertivas abaixo e assinale a alternativa correta.
I. Os produtos ADLM focam na parte do desenvolvimento do ciclo de vida de software. II. Se concentra em atividades de planejamento e governança do ciclo de vida de desenvolvimento de software (SDLC). III. Engloba o gerenciamento do ciclo de vida da aplicação (ALM) como parte do seu escopo de atuação.
Alternativas
Q2171673 Engenharia de Software
Para realizar o levantamento de requisitos, a equipe de engenharia de requisitos utiliza técnicas para adquirir conhecimento sobre determinado negócio. A técnica que realiza o estudo da documentação disponível, visando a obter informações relevantes para o desenvolvimento de um sistema de software, é:
Alternativas
Q2167093 Engenharia de Software
A analista Ana configurou o pipeline MainPipe no GitLab CI/CD da PGM de Niterói. O MainPipe possui um único job, o BuildJob, que automatiza o processo de build da aplicação PGMApp. O build de PGMApp é realizado em um container Docker e demanda a execução de um banco de dados em outro container Docker. A fim de aproveitar os recursos de integração do GitLab CI/CD com o Docker, Ana especificou as imagens Docker necessárias ao build diretamente no arquivo .gitlab-ci.yml do MainPipe, no trecho associado ao BuildJob. Logo, Ana especificou a imagem Docker para o build e a imagem Docker para o banco de dados, respectivamente, nas subseções do .gitlab-ci.yml
Alternativas
Q2167091 Engenharia de Software
Um Time de Desenvolvimento de Software (TDS) segue um protocolo automatizado para gerar, testar e combinar pacotes de software gerados separadamente. Todo software combinado precisa passar por um processo que inclui uma requisição formal ao Time de Operações (TO) de um Centro de Dados para executar um conjunto de testes, com o intuito de verificar vulnerabilidades no software antes de entrar em produção. Considerando os conceitos de DevOps e DevSecOps, o TDS e o TO estão falhando no princípio:
Alternativas
Q2167016 Engenharia de Software
Analise as afirmativas abaixo sobre a ferramenta de versionamento Git e assinale a alternativa correta.
I. O Git trabalha com uma estrutura de árvores em três níveis: work directory, stage (ou index) e head. II. O comando git commit serve para enviar as alterações locais a um repositório remoto. III. O comando git pull é equivalente ao comando git fetch seguido do comando git merge. IV. O comando git reset serve para desfazer alterações, sem alterar a referência head. V. O comando git checkout pode ser utilizado para trocar de uma branch para outra.
Alternativas
Q2166330 Engenharia de Software

Analise o diagrama de sequência a seguir.

Imagem associada para resolução da questão


VALENTE, M. T. Engenharia de Software Moderna: princípios e práticas para desenvolvimento de software com produtividade. 2020.

De acordo com o diagrama, assinale a alternativa correta.

Alternativas
Q2119589 Engenharia de Software

O desenvolvimento de software envolve um conjunto de atividades de produção que estão sujeitas a falhas humanas. Para se reduzir o risco de entrega de um produto de software com falhas ou defeitos, é necessário que o processo de desenvolvimento de software seja acompanhado por uma atividade de garantia de qualidade. Na garantia de qualidade, um elemento crítico é a atividade de teste de software, destinada a descobrir os erros, falhas ou defeitos do software antes do seu uso, bem como mostrar que os requisitos do produto de software foram cumpridos e que ele faz o que é proposto a fazer. Considerando as abordagens e técnicas empregadas no teste de software analise as asserções a seguir.


I. Uma das abordagens do teste de software concentra-se nos requisitos funcionais do software, que procuram derivar conjuntos de condições de entrada, que permitam avaliar todos os requisitos funcionais do software. Os métodos empregados nessa abordagem procuram identificar funções incorretas ou ausentes, erros de interfaces, erros nas estruturas de dados ou no acesso a bancos de dados externos, erros de desempenho e erros de inicialização e término.


II. Uma técnica empregada para avaliação dos requisitos funcionais é o Teste de Caminho Básico, o qual possibilita o exame de detalhes procedimentais do projeto por meio da definição de um conjunto básico de caminhos de execução. A partir deste conjunto básico, são derivados casos de testes, garantindo executar cada instrução do programa pelo menos uma vez durante a atividade de teste.


III. O particionamento de equivalência é uma técnica que se concentra em testes de estruturas de controle. Essa técnica divide o domínio de entrada de um programa em classes de dados, a partir das quais os casos de testes são derivados. Ela baseia-se numa avaliação de classes de equivalência para uma condição de entrada, sendo que uma classe representa um conjunto de estados válidos e inválidos para as condições de entrada.


IV. A complexidade ciclomática é uma métrica de software que proporciona uma medida quantitativa da complexidade lógica de um programa. Essa métrica pode ser utilizada em algumas abordagens de testes de software, como no método de teste de caminho básico, onde o valor computado pode definir um limite máximo para o número de testes que deve ser realizado para garantir que todas as instruções sejam executadas ao menos uma vez.


São corretas apenas as asserções 

Alternativas
Respostas
481: C
482: D
483: A
484: C
485: E
486: A
487: B
488: D
489: C
490: E
491: C
492: B
493: A
494: C
495: A
496: A
497: A
498: B
499: D
500: D