Questões de Concurso Comentadas sobre conceitos básicos em engenharia de software em engenharia de software

Foram encontradas 295 questões

Q3449444 Engenharia de Software

Considere as seguintes sentenças sobre Engenharia de Software:


I - Engenharia de software é uma disciplina de engenharia que se preocupa com todos os aspectos da produção de software.


II - Software é o código fonte contido em um ou mais programas, escritos em uma determinada linguagem. Sua documentação não é considerada software.


III - As ideias básicas da engenharia de software são aplicáveis apenas aos sistemas de softwares desenvolvidos recentemente.


De acordo com Sommerville (2011), é correto o que se afirma:


 (SOMMERVILLE, Ian. Engenharia de Software. 9 ed. São Paulo: Pearson Prentice Hall, 2011.)

Alternativas
Q3336174 Engenharia de Software

Em relação a fase de geração de código de um compilador, considere as afirmativas abaixo:



I - O problema de gerar código objeto ótimo para determinado programa fonte é indecidível. 


II - A geração de um programa em linguagem de máquina realocável, frequentemente denominado módulo objeto, permite que os subprogramas sejam compiladores separadamente. Um conjunto de módulos objeto realocáveis podem ser carregados para execução por um editor de ligação.


III - A arquitetura do conjunto de instruções da máquina alvo tem um impacto significativo sobre a dificuldade de construir um bom gerador de código que produza código de alta qualidade. As arquiteturas de máquina alvo mais comuns são: a RISC (reduced instruction set computer), a CISC (complex instruction set computer) e as baseadas em pilha.


IV - Uma arquitetura RISC (reduced instruction set computer) normalmente possui muitos registradores, instruções de três endereços, modos de endereçamentos simples e uma arquitetura do conjunto de instruções relativamente simples.



Assinale a alternativa que apresenta apenas afirmações corretas:

Alternativas
Q3336173 Engenharia de Software

Uma das fases de um compilador é a geração de código. A respeito dessa fase considere as afirmativas abaixo:



I - Um gerador de código é composto por três tarefas principais, a saber: seleção de instrução, alocação e atribuição de registrador e escalonamento de instruções.


II - A seleção de instruções compreende a escolha de instruções apropriadas da arquitetura alvo para implementar os comandos da representação intermediária. Uma solução para esse problema é realizar a seleção de instruções por reescrita de árvore.


III - O escalonamento de instruções envolve a decisão a respeito da ordem em que a execução das instruções deve ser escalonada. Uma abordagem para resolver esse problema é o uso do algoritmo Sethi–Ullman.


IV - A alocação e atribuição de registrador decidem quais valores devem ser mantidos em registradores e quais registradores usar. Para resolver esse problema pode-se adotar estratégias de alocação de registradores por coloração de grafos.



Assinale a alternativa que apresenta apenas afirmações corretas:

Alternativas
Q3336172 Engenharia de Software

Em relação à etapa de geração e otimização de código intermediário de um compilador, analise as alternativas a seguir, assinalando V, se verdadeiras, ou F, se falsas.



( ) Uma representação intermediária normalmente é alguma combinação de uma notação gráfica e código de três endereços.


( ) Uma representação intermediária pode ser uma linguagem de alto nível ou pode consistir em estruturas de dados internas que são compartilhadas pelas fases do compilador.


( ) Árvores de sintaxe é uma das possíveis representações intermediárias utilizadas por um compilador. As árvores de sintaxe normalmente durante as análises léxica e semântica.


( ) A fase de otimização de código independente das arquiteturas de máquina alvo faz algumas transformações no código intermediário com o objetivo de produzir um código melhor. Em geral, melhor significa mais rápido. Pode-se, também, otimizar outros objetivos, tais como: menor consumo de memória ou de energia.


( ) Uma das desvantagens da aplicação da fase de geração de código intermediário é a possibilidade de realização de otimização e a tradução do código para diversas máquinas.



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

Alternativas
Q3331087 Engenharia de Software
O ciclo de vida de um sistema computadorizado abrange todas as fases descritas abaixo, EXCETO:
Alternativas
Q3318011 Engenharia de Software
Marque a alternativa que apresenta o termo o qual se refere a uma das principais ferramentas que contribuem na colaboração entre os projetistas e na troca de informações entre as disciplinas. É o que permite que softwares de diferentes fabricantes possam "conversar" entre si usando uma linguagem comum e aberta: 
Alternativas
Q3313537 Engenharia de Software
Quando um programa é desenvolvido, seus criadores escolhem um tipo de licença de uso para esse software. Existe um padrão em que o software possui algumas limitações em relação ao acesso de funcionalidades ou limite de tempo de utilização, geralmente contado em dias, a partir do momento que o software é instalado e, para ter acesso a essas ferramentas bloqueadas ou usar por tempo indeterminado, o usuário é obrigado a comprar o produto.
Esse tipo de licença é conhecido por 
Alternativas
Q3152387 Engenharia de Software
Texto para responder à questão.

Certo engenheiro de software faz parte do time de desenvolvimento responsável pelo novo sistema de controle de ponto da empresa em que trabalha. Sua equipe possui profissionais de diferentes níveis de senioridade, porém esse engenheiro é o membro mais sênior do time.


Terminado o projeto, o engenheiro, conversando com um colega de equipe, externalizou seu desejo de realizar uma reunião que consistiria em um processo não formal de revisão no qual o autor de cada componente do software o apresentaria aos demais membros da equipe, que tomariam notas a respeito de pontos importantes, defeitos, melhorias e até mesmo sugestões. Como a intenção era gerar um ambiente sem hierarquia e sem a necessidade de um moderador, as conversas e verificações teriam foco no entregável em vez de avaliar documentações. Um de seus colegas de equipe indicou, corretamente, que há um processo na engenharia de software que seria ideal para essas circunstâncias, a qual denomina-se

Alternativas
Q3136139 Engenharia de Software
O histograma é uma forma gráfica de apresentar a distribuição de frequências de uma variável. Quando o limite superior é controlado ou quando não podem ocorrer valores acima de certo limite, é caracterizado o seguinte tipo de histograma:
Alternativas
Q3136068 Engenharia de Software
Sistemas de Suporte à Decisão (DSS) são ferramentas utilizadas para auxiliar a tomada de decisão em organizações, agregando e processando dados de múltiplas fontes para gerar insights úteis. Considerando os componentes de um DSS, qual das opções abaixo descreve corretamente uma característica desses sistemas?
Alternativas
Q3104104 Engenharia de Software
Julgue o item a seguir, em relação a práticas DevOps, CD (continuous delivery) e CI (continuous integration). 
No modelo gitflow, a branch principal para o ambiente de produção, que deve conter as versões estáveis do código que originam as builds, é denominada feature.
Alternativas
Q3100181 Engenharia de Software
Analise as seguintes asserções e a relação proposta entre elas:

I. Softwares são programas de computador e documentação associada. Os produtos de software podem ser desenvolvidos para um determinado cliente ou para um mercado.
PORQUE
II. O bom software deve proporcionar a funcionalidade e o desempenho necessários, e precisa ser manutenível, usável e com dependabilidade. Esses são alguns atributos de um bom software.

A respeito dessas asserções, assinale a alternativa correta.
Alternativas
Q3091820 Engenharia de Software
Ao avaliar a aplicabilidade dos princípios de Engenharia de Software em um projeto de desenvolvimento iterativo e de longa duração, qual dos seguintes princípios exige maior investimento inicial, mas garante economia a longo prazo ao lidar com mudanças inevitáveis nos requisitos? 
Alternativas
Q3091813 Engenharia de Software
Qual dos seguintes princípios de Engenharia de Software ajuda a compreender sistemas complexos através de representações simplificadas, como diagramas ou descrições textuais resumidas? 
Alternativas
Q3086161 Engenharia de Software
Sobre os conceitos de contêineres e orquestração de contêineres, assinale a opção que descreve corretamente a função do Kubernetes.
Alternativas
Q3063502 Engenharia de Software

Julgue o próximo item, a respeito de arquitetura e engenharia de software


O objetivo dos requisitos não funcionais é definir como serão implementados em um software, por exemplo, conexões a banco de dados e tipos de dispositivos onde o software será executado. 

Alternativas
Q3047964 Engenharia de Software
Containers são uma tecnologia que permite empacotar e isolar aplicações e seus ambientes em unidades consistentes e portáteis. Eles são usados para desenvolver, implantar e executar aplicações de maneira eficiente e previsível, independentemente do ambiente em que estejam sendo executados.
Uma boa prática para o desenvolvimento e gerenciamento de containers em um ambiente de produção é
Alternativas
Q3029841 Engenharia de Software
O Time de Soluções Inovadoras (TISI) de uma organização está utilizando práticas do Kanban no processo de desenvolvimento de soluções de software.
Com o uso do Kanban, o TISI visa a: 
Alternativas
Q3022614 Engenharia de Software
Considere as afirmações a seguir sobre documentação de programas:

1) Normalmente, o tempo para documentar um programa é ordens de magnitude maior do que o tempo dedicado a recuperar informações de um programa não documentado.
2) A documentação de um programa deve fornecer toda informação necessária durante o desenvolvimento, teste, manutenção, instalação, operação e uso do programa.
3) Definir que a interface do usuário deve ser intuitiva e acessível é parte dos requisitos funcionais.
4) Definir que o sistema deve permitir que os usuários possam fazer login com um nome de usuário e senha é parte dos requisitos funcionais.

Estão corretas apenas: 
Alternativas
Q2847790 Engenharia de Software
Desenvolvimento seguro é um conjunto de práticas que visam incorporar a segurança em todas as fases do ciclo de vida do desenvolvimento de software. As técnicas de análise de segurança de aplicações desempenham um papel crucial na identificação e mitigação de vulnerabilidades.
Assinale a opção que indica a técnica usada para analisar o código-fonte de uma aplicação em busca de vulnerabilidades, sem executar essa aplicação. 
Alternativas
Respostas
41: A
42: E
43: A
44: C
45: D
46: C
47: D
48: E
49: D
50: E
51: E
52: B
53: C
54: A
55: C
56: C
57: C
58: E
59: C
60: B