Prévia do material em texto
Questionário Aula 1 TUDO CERTO
PROGRAMAÇÃO ESTRUTURADA/Representação de Algoritmos
1) Observe o algoritmo em pseudocódigo para a solução de um problema matemático:
01 Algoritmo “xxx”
02 var
03 num1,num2, total, : real
04 início
05 leia(num1,num2)
06 total 00)
07 escreva(“Resultado = “, total)
08 fimalgoritmoUm algoritmo pode ter mais de uma solução para determinado problema.
Analise os algoritmos apresentados nas alternativas a seguir.
Selecione qual alternativa representa de forma correta uma solução para o problema
matemático apresentado.
• I.
• II.
• III.
• I e II.
• I e III.
2) Observe o algoritmo:
01 Algoritmo “saidatidados”
02 var
03 valor1, valor2: inteiro
04 c1, c2,r : real
05 início
06 leia(valor1, valor2)
07 c1
• O algoritmo calcula e imprime 10% da multiplicação de dois valores.
• O algoritmo calcula e imprime 10% da soma de dois valores.
• O algoritmo calcula e imprime 90% da soma de dois valores.
• O algoritmo calcula e imprime 90% da multiplicação de dois valores.
• Nenhuma das alternativas.
3) Considerando-se o conceito e as características da representação de algoritmos em
pseudocódigo, identifique qual alternativa não condiz com essa forma de representação.
• Os comandos de entrada e saída são representados por leia e escreva.
• A linguagem em pseudocódigo possui uma representação estruturada e regida por
regas.
• A linguagem em pseudocódigo é utilizada para representar algoritmos em
português.
• A linguagem utiliza os caracteres “//” para inserir comentários no algoritmo.
• A linguagem utiliza blocos geométricos para representar os comandos do
algoritmo.
4) Observe o algoritmo em pseudocódigo:
01 Algoritmo “Calculotidiaria”
02 var
03 dias: inteiro
04 valortidiaria, total : real
05 nometicliente: caractere
06 início
07 Escreva(“Informe o nome do cliente:”)
08 leia(nometicliente)
09 Escreva(“Informe o numero de dias:”)
10 leia(dias)
11 Escreva(“Informe o valor da diária do hotel:”)
12 leia(valortidiaria)
13 escreva(valortidiaria*dias)
14 fimalgoritmo
Ele calcula o valor de uma hospedagem em um hotel conforme o número de dias e o valor da
diária informado.
Os seguintes dados de entrada são considerados:
– Informe o nome do cliente: João Paulo Beltrano
– Informe o número de dias: 4
– Informe o valor da diária do hotel: 240,00Para melhor visualizar os dados da conta do
cliente, o gerente do hotel deseja a seguinte saída para o algoritmo:
– Valor de 4 dias de 240,00 de João Pedro é = 960,00Analise a linha 13 do algoritmo e selecione
a alternativa que representa a saída solicitada pelo gerente.
• Escreva(“Valor de dias de João Pedro é = ”)
• Escreva(“ Valor de 4 dias de 240,00 de João Pedro é = 960,00”)
• Escreva(“Valor de dias de João Pedro é = ”, valor_diaria*dias)
• Escreva("Valor de ",dias," dias de ",valor_diaria," de ",nome_cliente," é =
",valor_diaria*dias)
• Escreva(“Valor de dias de João Pedro é = ”, dias, valor_diaria, valor_diaria*dias)
5) A empresa Construção Tabajara Ltda está completando 50 anos. O dono da empresa
está em busca de auxílio para calcular os benefícios que seus funcionários receberão
como presente em alusão ao aniversário da empresa. As regras apresentadas pelo dono
são:
– 10% de bônus sobre o valor do salário-base do funcionário;
– 50,00 por filho;
– 10,00 por ano completo que o funcionário trabalhou na empresa.
Como resultado, deve ser exibido o salário-base do funcionário e o total do benefício que
receberá. Analise as alternativas e selecione a que representa a solução correta para o
problema apresentado.
a.
b.
c.
d.
e.
• Alternativa A
• Alternativa B
• Alternativa C
• Alternativa D
• Alternativa E
Questionário Aula 2 TUDO CERTO
PROGRAMAÇÃO ESTRUTURADA/ Estrutura Sequencial, Entrada e Saída de Dados
1) No controle de fluxo de execução, podemos utilizar algumas formas de organizar a
construção do algoritmo. Quais são essas formas de estruturas?
• Sequencial, seleção, repetição.
• Seleção, aritmética, fluxograma.
• Fluxograma, sequencial, de repetição.
• Repetição, aritmética, harmônica.
• Fluxograma, seleção e junção.
2) Quais são os três tipos possíveis de esquemas para apresentar um algoritmo?
• Fluxograma, código computacional e em colunas.
• Diagrama, fluxograma e desenho geométrico.
• Fluxograma, Pseudocódigo e Código Computacional.
• Código Computacional, Diagrama e Desenho geométrico.
• Pseudocódigo, Diagrama e Desenho geométrico.
3) No fluxograma, a estrutura de decisão é representada por qual figura geométrica?
• Quadrado.
• Triângulo. ERRADA
• Heptágono.
• Losango.
• Círculo.
4)Os comandos de entrada descritos em um pseudocódigo e em um código computacional
são, respectivamente, os comandos?
• if
• leia e escreva
• input e else if
• escreva e input
• leia e input
5) Os comandos de saída descritos em um pseudocódigo e em um código computacional
são, respectivamente, os comandos?
• else if
• if
• escreva e disp
• disp e fprint
• fprint e escreva
Questionário Aula 3 Tudo certo
PROGRAMAÇÃO ESTRUTURADA Estruturas de Decisão
1) Diversos problemas exigem que as condições sejam analisadas. Para isso, existem
alguns tipos de estrutura de controle, assinale a alternativa que traz os conceitos
corretos sobre a estrutura de controle simples.
• As sentenças if-end representam a estrutura de condição simples.
• As sentenças if-enf-if-end trazem a sintaxe da estrutura controle simples.
• As sentenças if-then-elseif-end trazem a representação da estrutura controle
simples.
• As sentenças if-else-end trazem a estrutura de controle simples.
• As sentenças else-if-else-end trazem a estrutura da estrutura de controle
simples.
2) A estrutura de controle composta, executa uma instrução conforme a análise da
condição, a qual pode ser verdadeira ou falsa. Assinale a alternativa correta de
acordo com a sintaxe na estrutura composta.
• Ela é composta pelas sentenças if-else if-end.
• Ela é composta pelas sentenças if-elseif – elseif-end.
• Ela é composta pelas sentenças elseif – else-end.
• Ela é composta pelas sentenças elseif – if-end-else if.
• Ela é composta pelas sentenças if else if – end – end.
3) Um algoritmo pode ser representado por diversas formas, marque a alternativa
que traz o tipo de representação que pode ser feito por meio de figuras geométricas,
as quais cada uma possui um significado coerente com a execução de um algoritmo.
• Pseudocódigo.
• Fluxograma.
• Java.
• MATLAB. ERRADO
• Linguagens formais de programação.
4) Em um determinado contexto, temos mais de uma condição a ser analisada, em que
a segunda condição só será analisada caso a primeira seja falsa. Assinale a alternativa
que traz a estrutura de controle e suas respectivas sentenças em pseudo-código que
devem ser utilizadas para solução desse problema.
• Estrutura de controle simples, com as sentenças “se-senão-se-fimtise”.
• Estrutura de controle simples e composta, com as sentenças “se-senão”.
• Estrutura de controle composta, com as sentenças “se-senão-senão-end”.
• Estrutura de controle encadeada, com as sentenças “senão-end”.
• Estrutura de controle encadeada, com as sentenças “se-senão-se-senão-fim
tisefimti se”.
5) Para testar a lógica de um programa, podemos utilizar, além das estruturas de
controle, os operadores lógicos. Em uma determinada situação, a instrução, para caso
a condição seja verdadeira, só poderá ser executada caso o número seja maior ou
igual que 30 e se o número for menor ou igual a 80. Assinale a alternativa que traz as
sentenças que solucionam esse problema.
• se(numero>30 e numero=30) e (numero
• se(numero>30 e numero
• se(numero >=30) e (numero
• se(numero>30 e numero=30) ou (numero
• se(numero>30 ou numeroQuestionário Aula 4
PROGRAMAÇÃO ESTRUTURADA - Estruturas de Repetição
1) As estruturas de repetição são utilizadas para que alguns trechos possam ser
repetidos ao longo da execução do algoritmo. Assinale a alternativa que traz uma
sintaxe correta de uma estrutura de repetição.
if-else;
if – then-else;
while-for-end;
while – end;
para-while-end-end;
2) Existem certas situações em que as estruturas de um algoritmo deverão ser
repetidas. Podemos utilizar os pseudocódigos e as sintaxes das linguagens de
programação. Dessa forma, assinale a alternativa, que traz a instrução na linguagem
para MATLAB e seu respectivo pseudocódigo.
while – se ERRADO
if – enquanto
for – para
for – se
while – para ERRADO
3) Assinale a alternativa que traz a estrutura de repetição que realiza o teste da
condição no início do laço. A alternativa deve trazer a estrutura em pseudocódigo e
em linguagem de programação para MATLAB.
enquanto...fim_enquanto/while...end.
enquanto...fimtienquanto/for...end.
para...fimtipara/for...end.
para...fimtipara/while...end.
para...enquanto...fim/while...for...end.
4)Assinale a alternativa que traz a estrutura de repetição controlada por variável, a
qual sabemos a quantidade de vezes que irá se repetir.
para...enquanto...end. ERRADO
para...de...até...passo...faça...fim_para. NÃO SEI MARQUEI ERRADO A ALTERNATIVA DE
CIMA
enquanto...de...para...até...faça...fimtipara.
enquanto...repita...até...fim. ERRADO
repita...até...fimtienquanto.
5)Vamos supor que precisamos repetir a execução de um laço três vezes. Esse laço
irá realizar a soma de um valor com o número 1. Assinale a alternativa que traz a
sintaxe correta da estrutura de repetição que deve ser executada.
enquanto (repita 3 vezes) faça.
repita...até (3).
para contador de 1 até 3 passo 1 faça.
enquanto (3) repita (3)...faça.
para 1 até 3 repita.
Questionário Aula 5
PROGRAMAÇÃO ESTRUTURADA - Aplicações de Vetores
1) Considere o seguinte objetivo: construir um algoritmo que leia um vetor G[13] que
é o Gabarito de um teste da loteria esportiva, contendo os valores 1 (coluna , 2 (coluna
, e 3 (coluna do meio). Ler, a seguir, para cada apostador, o número de seu cartão e
um vetor Resposta R[13]. Verificar, para cada apostador, o número de acertos e
escrever o número do apostador e seu número de acertos. Se tiver 13 acertos,
acrescentar a mensagem “Ganhador, parabéns!”. Analise a implementação a seguir,
feita para atender a essa necessidade:
algoritmo “loteria” var
G: vetor[1..13] de real
R: vetor[1..13] de real
indice, cartao, acertos: inteiro
procedimento lerG
inicio para indice de 1 ate 13 passo 1 faca
escreva(“Jogo(“,indice,”): “)
leia(G[indice])
fimpara
fimprocedimento
procedimento lerR
inicio
para indice de 1 ate 13 passo 1 faca
escreva(“Jogo(“,indice,”): “)
leia(R[indice])
se (R[indice] = G[indice]) entao
acertos
-As rotinas lerG e lerR são muito semelhantes, ambas leem um vetor, mas não realizam
exatamente o mesmo procedimento.
-A declaração G: vetor[1..13] de real R: vetor[1..13] de real pode ser substituída por G,
R: vetor[1..13] de real
-O algoritmo será repetido infinitamente.
-A variável "indice" poderia ser declarada como variável local nos procedimentos lerG
e lerR, sem que isso comprometesse a execução do programa.
-O valores digitados para os vetores de gabarito e de repostas não são consistidos,
portanto, poderiam ser digitados valores diferentes de 1, 2 ou 3, que deveriam
somente ser aceitos.
2) Considere o seguinte algoritmo em pseudocódigo: algoritmo “faz”
var
V: vetor[1..10] de real
procedimento T(var a,b : real)
var
aux : real
inicio
aux
O procedimento Z lê os elementos de um vetor. Errado
O procedimento Y ordena o vetor em ordem decrescente.
O procedimento Z ordena o vetor em ordem crescente. ERRADO
O procedimento X ordena o vetor em ordem decrescente.
O procedimento Y ordena o vetor em ordem crescente.
3) Uma professora deseja um programa para lhe auxiliar a calcular a média das notas
de seus alunos. Ela possui 25 alunos e três notas para cada aluno, sendo que a média
é calculada pela média aritmética simples das três notas. A partir das notas, ela precisa
saber o maior valor e a média de cada uma delas. Além disso, precisa saber a maior
média e a média das médias. Analise as alternativas a seguir e selecione aquela que
tem a declaração de variáveis mais completa e adequada para atender a necessidade
da professora.
-var Nota1, Nota2, Nota3, Media: vetor[1..25] de inteiro SomaN1, SomaN2, SomaN3,
SomaMedia, MediaN1, MediaN2, MediaN3, MediaMedia : inteiro MaiorN1, MaiorN2,
MaiorN3, MaiorMedia : inteiro indice : inteiro
-var Nota1, Nota2, Nota3, Media: vetor[1..25] de real SomaN1, SomaN2, SomaN3,
SomaMedia, MediaN1, MediaN2, MediaN3, MediaMedia : real indice : inteiro
-var Nota1, Nota2, Nota3, Media: vetor[1..25] de real SomaN1, SomaN2, SomaN3,
SomaMedia, MediaN1, MediaN2, MediaN3, MediaMedia : real MaiorN1, MaiorN2,
MaiorN3, MaiorMedia : real indice : inteiro
-var Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7, Nota8, Nota9, Nota10, Nota11,
Nota12, Nota13, Nota14, Nota15, Nota16, Nota17, Nota18, Nota19, Nota20, Nota21,
Nota22, Nota23, Nota24, Nota25, Media: vetor[1..3] de real Somatorio, Maior : real
indice : inteiro
-var Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7, Nota8, Nota9, Nota10, Nota11,
Nota12, Nota13, Nota14, Nota15, Nota16, Nota17, Nota18, Nota19, Nota20, Nota21,
Nota22, Nota23, Nota24, Nota25, Media: vetor[1..3] de inteiro Somatorio, Maior :
inteiro indice : inteiro
4) Considere as seguintes declarações de variáveis:
DECLARAÇÃO 1
var
x1,x2,x3 : vetor[1..4] de real
DECLARAÇÃO 2
var
x1,x2,x3,x4: vetor[1..3] de real
Analise as alternativas a seguir e selecione aquela que apresenta a CORRETA
explicação das variáveis declaradas respectivamente nas declarações
1 e 2.
(1) 4 variáveis do tipo vetor de 3 posições reais cada. (2) 3 variáveis do tipo vetor de 4
posições reais cada.
(1) 3 variáveis do tipo vetor de 4 posições reais cada. (2) 4 variávies do tipo vetor de 3
posições reais cada.
(1) 4 variáveis do tipo vetor de 3 posições inteiras cada. (2) 3 variávies do tipo vetor de
4 posições inteiras cada.
(1) 3 variáveis do tipo vetor de 4 posições inteiras cada. (2) 4 variávies do tipo vetor de
3 posições inteiras cada.
As declarações são equivalentes, produzindo a mesma reserva de espaço de memória.
5) Em um programa de seleção de candidatos, no início do dia, é liberada a lista de
códigos de inscrição dos 10 candidatos que serão entrevistados naquele dia. Em
seguida, as pessoas informam seu código de inscrição e verifica-se se está ou não na
lista. Para atender a essa necessidade, foi construído o algoritmo a seguir, que lê o
vetor de códigos de inscrição dos candidatos selecionados, na sequência lê um código
de inscrição e verifica-se se está ou não na lista, escrevendo essa conclusão.
algoritmo “procura”
var
candidatos: vetor[1..10] de inteiro
codigo : inteiro
procedimento ler
var
indice : inteiro
inicio
para indice de 1 ate 10 passo 1 faca
escreva(“Elemento(“,indice,”): “)
leia(candidatos[indice])
fimpara
fimprocedimento
procedimento escrever
var
indice : inteiro
inicio
para indice de 1 ate 10 passo 1 faca
escreval(“V(“,indice,”): “,candidatos[indice])
fimpara
fimprocedimento
funcao busca(c : inteiro): inteiro
var
indice, achou : inteiro
inicio
índice
-Na função busca, quando o código do candidato selecionado é encontrado, a
repetição termina e é retornada a informação adequada. b) O programa é repetido até
que seja digitado o código 0 para buscar um candidato.
-O programa é repetido até que seja digitado o código 0 para buscar um candidato.
-A função busca retorna um valor inteiro,0 quando achou e 1 quando não achou.
-O comando "para índice de 1 até 10 passo 1 faca" poderia ser substituído por "para
índice de 10 até 1 passo -1 faca" ERRADO
-O comando "candidatos: vetor [1..10] de inteiro" declara um vetor de 10 posições em
que cada elemento é do tipo inteiro e denominados candidatos. Errado
Questionário Aula 6
PROGRAMAÇÃO ESTRUTURADA – Variáveis Indexadas (Matrizes)
1) Indique a alternativa que representa corretamente a declaração de uma matriz de
3 linhas e 2 colunas no MATLAB.
m= {{1;2]; [3;4]; [5;6}};
m= {{1;2;3]; [4;4;6}};
m= [1;2;3;4;5;6];
m= [1, 2; 3, 4; 5, 6];
m= [1, 2, 3; 4, 5, 6];
2) Considerando duas matrizes m e n, marque a alternativa que representa
corretamente a operação de multiplicação de elementos na linguagem MATLAB.
r= m * n;
r= m ** n;
r= m .* n;
r= multi(m, n);
r= prod(m, n);
3) Considerando as duas matrizes m e n, indique a alternativa que apresenta o
resultado correto da concatenação dessas matrizes, cujo conteúdo é: 1 2 3 43 4 5 65 6
7 8
m= [1 2; 3 4; 5 6]; n= [3 4; 5 6; 7 8];
r= [m n];
r= [m; n];
r= [m + n];
r= [m & n];
r= concat(m, n);
4) Analise o seguinte algoritmo baseado na linguagem MATLAB e marque a alternativa
que representa o conteúdo da matriz m após a execução dos laços de repetição.
m= [1:5; 2:6] * 3;for i= 1 : size(m, 1) for j= 1 : size(m, 2) if mod(m(i,j), 2) == 0 m(i,j)=
m(i,j) * 2; end end end
1, 2, 3, 4, 5 2, 3, 4, 5, 6
3, 6, 9, 12, 15 6, 9, 12, 15, 18
3, 12, 9, 24, 15 12, 9, 24, 15, 36
6, 6, 18, 24, 30 12, 18, 12, 30, 18
6, 12, 18, 24, 30 12, 18, 24, 30, 36
5) Dado o seguinte algoritmo escrito na linguagem MATLAB, indique a alternativa que
representa o resultado correto.
m= [1, 2, 3; 4, 5, 6]n= find(m(2,1:3) < 5) >
1
1, 2
1, 2, 3
1, 2, 3, 4
1, 2, 3, 4, 5
Questionário Aula 7
PROGRAMAÇÃO ESTRUTURADA – Funções
1) No contexto de passagem de parâmetros para uma sub-rotina, existe a denominada
passagem de parâmetro por valor. Nesse caso:
O parâmetro pode ser passado para a sub-rotina, desde que ela seja uma subrotina de
tratamento de interrupção.
O endereço em que se encontra o valor a ser passado como parâmetro é fornecido
para a sub-rotina.
Um ponteiro para o endereço em que se encontra o valor a ser passado como
parâmetro é fornecido para a sub-rotina.
Um registrador que aponta para o valor a ser passado como parâmetro é fornecido
para a sub-rotina.
Uma cópia do valor do parâmetro é fornecida para a sub-rotina.
2) Em programação de computadores, uma subrotina pode ser uma função ou um
procedimento. Sobre funções e procedimentos, pode-se afirmar:
Que as funções retornam um único valor, e procedimentos não retornam valores.
Que as funções não retornam um único valor, e procedimentos retornam valores.
Nem função nem procedimento retornam valores.
Funções sempre retornam valor do mesmo tipo recebido, e procedimentos não.
Procedimentos retornam valores do mesmo tipo recebido, e função nunca retorna
tipo.
3) Considere o seguinte código de script de MATLAB.
1: matl = zeros (200,200)
2: for i = 0:200
3: for j = 0:200
4: matl (i , j) = i * i + j * j
5: end
6: end
Considerando esse código, o comando na linha 1 é:
exigido pelo padrão de estilo oficial do MATLAB, que indica necessidade de delimitação
dos limites de matrizes antes do seu uso.
prejudicial ao desempenho do código, pois MATLAB armazena matrizes em listas
ligadas, e a chamada causa uma dupla alocação de novos elementos.
necessário, pois MATLAB utiliza uma linguagem de tipagem forte que exige a
declaração do tipo de dado da matriz antes do seu uso.
útil para otimizar o código, pois MATLAB armazena matrizes em arranjos, e a pré-
alocação evita a realocação da matriz a cada chamada da linha 4.
demonstrativo do laço de 0:200.
4) Analise o código abaixo:
for i:=1 to MAXLIN do begin maior:=0; for
j:=1 to MAXCOL do if M[i,j]>maior then maior:=M[i,j];
Ao final da sua execução, ele deverá mostrar:
o maior elemento de cada linha da matriz.
o maior elemento de cada coluna da matriz.
a média dos elementos de cada coluna.
o produto de todos os elementos diferentes de zero.
quantos elementos são negativos.
5)Analise o código abaixo:
for i:=1 to MAXLIN do for j:=1 to MAXCOL do if M[i,j]
Ao final da sua execução, ele deverá mostrar:
o maior elemento de cada coluna da matriz.
a média dos elementos de cada coluna.
o produto de todos os elementos diferentes de zero.
quantos elementos são negativos.
posição ocupada (linha-coluna por um elemento cujo valor será lido pelo programa).
Questionário Aula 8
PROGRAMAÇÃO ESTRUTURADA – Passagem de Parâmetros por Valor
1) A utilização de um subprograma só é efetiva se forem claramente definidas a tarefa
a ser executada e a interação com o programa que o acionou. Para que isso seja
possível, é importante que toda a interação seja feita somente através dos
parâmetros. Analise as alternativas abaixo e selecione a FALSA.
Os parâmetros de entrada receberão o conteúdo de variáveis ou constantes.
Os parâmetros de saída definem os tipos de dados das informações que o
subprograma retornará. ERRADA
Na chamada de subprogramas, pode-se utilizar variáveis, constantes ou resultados de
expressões tanto para parâmetros de entrada quanto de saída.
A passagem de parâmetros por valor está relacionada aos parâmetros de entrada.
ERRADA
A passagem de parâmetros por referência está relacionada aos parâmetros de saída.
2) A resolução de problemas computacionais se torna a cada dia mais complexa. Dessa
forma, a divisão desse problema complexo em problemas menores se torna uma
alternativa mais eficaz durante esse processo, geralmente eles são denominados de
subprogramas. Assinale a alternativa que traz um conceito que não condiz com as
funcionalidades e o modo de utilização de um subprograma.
Um subprograma pode ser dividido em outros subprogramas caso seja necessário para
realizar a solução do problema.
É importante que ao utilizar um subprograma, o desenvolvedor esteja ciente quanto a
atividade que cada uma irá exercer dentro do programa como um todo. ERRADA
Um subprograma é responsável pelo controle de todo o programa, pois ele é
considerado o núcleo e a trará a solução do problema.
A interação entre as informações é norteada pelo uso da passagem de valores por
meio do uso dos parâmetros, que podem ser de entrada e/ou de saída.
Existem dois tipos de parâmetros, os de entrada e os de saída, os quais devem constar
na declaração do subprograma. ERRADA
3) Um subprograma traz consigo a resolução de questões particulares dentro de um
programa em geral. Dessa forma, sua execução correta demanda de uma certa
estrutura, ou seja, da inserção de dados e informações específicas. Assinale a
alternativa falsa.
A passagem de parâmetro é realizada quando há uma alteração dos parâmetros
durante o uso do subprograma.
O subprograma possui o endereço físico da variável quando a mesma é utilizada como
parâmetro real.
Quando um subprograma é solicitado durante a execução do programa, os parâmetros
por referência sofrem empilhamento. Certo
As variáveis locais são utilizadas dentro do programa como um todo, e podem ser
solicitadas a qualquer momento.
A passagem de valor para parâmetros definidos por valor aceita o uso de um valor
literal e de resultados de expressões.
4) Considere a passagem de parâmetros por valor, analise as afirmativas a seguir e
selecione a alternativa verdadeira.
A passagem de parâmetros por valor protege os dados originais, de quem chamou o
subprograma. Certo
Na passagem de parâmetros por valor, o subprograma passa a acessar a informação na
origem, apenas não pode modificá-la.
A passagemde parâmetros por valor é sempre eficiente, mesmo que seja necessário
receber um grande conjunto de dados.
Quando um parâmetro for passado por valor parâmetro de entrada e o nome do
identificador do parâmetro formal for igual ao de uma variável global, o subprograma
poderá alterar o dado/conteúdo da variável global. ERRADO
As passagens de parâmetros por valor e por referência apresentam apenas diferenças
sintáticas, mas, na execução, seu comportamento é idêntico.
5) O parâmetro proporciona que haja comunicação entre um subprograma e o
programa principal como um todo. Para isso, devemos seguir uma estrutura que visa
trazer todas as informações para que isso ocorra de forma correta, já que haverá uma
comunicação entre dois ou mais trechos do código. Assinale a alternativa que traz a
informação incorreta sobre este conceito.
A passagem de parâmetro por referência acontece quando o parâmetro formal é
repassado ao parâmetro real.
O parâmetro formal demonstra a modificação do seu valor em conjunto com o
parâmetro real quando uma passagem de parâmetro por referência está sendo
aplicada.
Na manipulação do subprograma, a passagem de parâmetro por mantém o valor do
parâmetro real.
A passagem de parâmetro por valor traz a informação referente ao valor que será
utilizado no subprograma.
Caso haja uma modificação no valor de uma variável auxiliar, a variável definida como
parâmetro real será modificada. Certo
Questionário Aula 1
PROGRAMAÇÃO ORIENTADA A OBJETO - Classes, Objetos e Métodos
1) Em programação orientada a objetos, qual o papel da classe?
Classes possuem um papel irrelevante na programação orientada a objetos.
As classes são a fundação, na qual linguagens orientadas a objetos se estruturam.
Classes são boas práticas de programação.
Dentro de uma classe são escritos todos comentários de uma aplicação.
Uma classe é, basicamente, um conjunto de planos que especifica como construir um
pacote.
2) Em relação à forma geral de uma classe, podemos afirmar:
Uma classe é criada com o uso da palavra-chave public.
É impossível usar comentários dentro de uma classe.
Uma classe é criada com a palavra-chave class.
Os parênteses são caracteres que delimitam o bloco da classe.
Podemos usar palavras reservadas de uma linguagem de programação para
nomearmos classes.
3) Sobre objetos, podemos afirmar que:
É uma abstração lógica.
Um objeto é composto por estado e comportamento.
Para criarmos uma classe, é necessário seguirmos a especificação de um objeto.
Considere o seguinte código: “Cliente cli = new Cliente();” a palavra “new” é o método
construtor da classe. ERRADO
Não há comunicação entre objetos dentro de um sistema orientado a objetos.
4) Analise o seguinte código:
public class Veiculo {
private String placa;
private String cor;
private int anoFabricacao;
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getAnoFabricacao() {
return anoFabricacao;
}
public void setAnoFabricacao(int anoFabricacao) {
this.anoFabricacao = anoFabricacao;
}
}
A classe Veiculo tem quatro variáveis de instância.
As palavras-chave this em this.cor, this.placa e this.anoFrabricacao informam ao
método que estamos nos referindo à variável de instância.
A palavra void é necessária para criação de todos os métodos.
As variáveis de instância da classe veículo poderão ser visualizadas por qualquer outra
classe da aplicação.
O código está incorreto, pois métodos e variáveis de instância não são elementos de
uma classe.
5) São implementados para realizarem algum tipo de tarefa:
Classes.
Objetos.
Atributos.
Métodos.
Comentários.
Questionário Aula 2
PROGRAMAÇÃO ORIENTADA A OBJETO - Atributos e Métodos de Classe
1) Marque a alternativa correta.
Uma variável estática representa informações em nível de classe.
Uma variável estática não muda seu valor.
Usamos variáveis de classe quando apenas um objeto da classe precisa utilizar uma
cópia desta variável.
Todo objeto tem sua própria cópia de todas as variáveis estáticas da classe.
Se vários objetos precisam acessar uma determinada variável em comum, à medida
que transformamos esta variável em estática, estamos desperdiçando espaço na
memória.
2) A declaração de uma variável de classe começa com qual palavra-chave?
public.
class.
void.
private.
static.
3) Em relação aos métodos estáticos ou de classes, marque a afirmativa correta.
Métodos são variáveis que tem a capacidade de receber uma quantidade maior de
informação.
Métodos estáticos não são membros de classes.
Métodos estáticos servem apenas para operações de inserção de dados.
Por serem estáticos, os métodos não podem ser chamados em outras classes.
Métodos estáticos são declarados colocando-se a palavra-chave static antes do tipo de
retorno.
4) Para um método de classe acessar membros de classe não estáticos, devemos:
Colocar a palavra-chave static no membro a ser acessado.
Colocarmos a palavra-chave protected no membro a ser acessado.
Um método estático não pode acessar membros de classe não estáticos.
Devemos declarar o método usando o get na frente do seu nome.
Devemos declarar o método usando o set na frente do seu nome.
5) Marque a afirmativa correta.
As variáveis e os métodos de classe estáticos existem apenas quando um objeto dessa
classe tenha sido instanciado.
A referência this pode ser usada em métodos estáticos.
Se um método estático tentar acessar um outro método não estático da classe usando
somente o nome do método, ocorrerá um erro de compilação.
Para fazermos a chamada de um método estático, é necessário apenas colocar o nome
do método seguido de parênteses.
Métodos e variáveis estáticas são associados a um objeto.
Questionário Aula 3
PROGRAMAÇÃO ORIENTADA A OBJETO - Atributos e Métodos de Classe
1) Em relação ao encapsulamento, marque a afirmativa INCORRETA:
Encapsular é organizar os programas em coleções de códigos e dados logicamente
relacionados.
Encapsulamentos são colocados em bibliotecas e disponibilizados para reuso em
programas além daqueles para os quais eles foram escritos.
Encapsular é deixar disponível para o usuário apenas o que lhe interessa, sem a
necessidade de expor detalhes do código.
Encapsular é deixar os métodos inacessíveis para os usuários da classe.
Existe outro tipo de encapsulamento, necessário para construir grandes programas, o
encapsulamento de nomeação.
2) Para encapsular um atributo, deixando-o visível apenas para a classe que o
contém, utilizamos qual palavra-chave?
Public.
Static.
Void.
Não é necessário informar modificador de acesso.
Private.
3) A unidade básica de encapsulamento, em Java, é:
Pacote.
Modificadores de acesso.
Classe.
Método.
Interface pública da classe.
4) Membros declarados com esse modificador de acesso são acessíveis em subclasses
da classe, em subclasses do mesmo pacote e na própria classe:
Protected.
Private.
Public.
Package.
Static.
5) Analise o seguinte código e aponte a afirmativa INCORRETA:
public class Aluno {
private String nome;
protected String Sobrenome;
public int matricula;
public String email;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSobrenome() {
return Sobrenome;
}
public void setSobrenome(String Sobrenome) {
this.Sobrenome = Sobrenome;
}
public int getMatricula() {
return matricula;
}
public void setMatricula(int matricula) {
this.matricula= matricula;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Todos os atributos desta classe poderão ser acessados apenas por seus respectivos
métodos.
Os métodos cujo nome é precedido da palavra get são métodos de retorno.
Toda classe que possui atributos privados não obriga que cada atributo tenha o
método que fará acesso ao mesmo.
É recomendado que todos atributos da classe aluno sejam implementados com o
modificador de acesso private.
Ao instanciarmos esta classe através de uma classe de controle, quando chamarmos os
membros através da variável de referência, apenas o atributo nome não estará visível.
Questionário Aula 4
PROGRAMAÇÃO ORIENTADA A OBJETO - Introdução a Herança
1) Na orientação a objetos temos um importante conceito, que é a herança. Marque
a alternativa que melhor define herança em orientação a objetos:
Herança refere-se ao comportamento dos objetos.
Quando o valor de um atributo pode ser compartilhado entre vários objetos.
Quando há a necessidade de utilizar uma classe que está em outro pacote, fazemos
uso da palavra-chave herança.
Dizemos que há herança quando duas ou mais classes dependem uma da outra.
A herança é um mecanismo para aprimorar as classes existentes.
2) Quando identificamos a possibilidade de usar herança em nosso projeto?
Quando temos a necessidade de reduzir código.
Quando existe relação entre classes.
Quando necessitamos aumentar a produtividade no desenvolvimento.
Quando temos uma relação e um ou vários atributos em comum entre duas ou mais
classes.
Quando classes possuem muitos atributos.
3) Em relação à herança podemos afirmar que:
Classes especializadas são aquelas específicas de um determinado domínio.
Em uma estrutura de herança, todas as classes necessitam possuir o método main().
A herança acontece quando, no desenvolvimento, temos a possibilidade de reuso de
componentes.
Em herança possuímos classes genéricas e especializadas.
Métodos não podem ser herdados por subclasses.
4) Analise o seguinte código de uma classe em java:
public class Agua extends Bebida {
private String ph;
public String getPh(){ return ph;
}
public void setPh(String ph){
this.ph=ph;
}
}
O código é inválido pois não possui um método main().
Não é necessária a criação de métodos de acesso como get e set, pois a classe possui
apenas um atributo.
A palavra-chave "extends" informa que a classe "Agua” é uma extensão da classe
"Bebida".
A classe "Agua", quando instanciada, terá acesso apenas ao atributo ph, através dos
métodos set e get.
A classe não poderá ser instanciada, pois é necessário que os métodos de acesso da
superclasse estejam implementados na subclasse.
5) Analise o código abaixo:
public class Animal {
private int idAnimal;
private String nome;
private int idade;
public String getNome(){
return nome;
}
public void setNome(String nome){
this.nome = nome;
}
public int getIdade(){
return idade;
}
public void setIdade(int idade){
this.idade = idade;
}
}
public class Mamifero extends Animal{
private String gestacao;
private String especVida;
public String getGestacao(){
return gestacao;
}
public void setGestacao(String gestacao){
this.gestacao = gestacao;
}
public String getEspecVida(){
return especVida;
}
public void setEspecVida(String especVida){
this.especVida = especVida;
}
}
public class Cachorro Mamifero{
private String raca;
public String getRaca(){
return raca;
}
public void setRaca(String raca){
this.raca = raca;
}
}
public class Homem extends Mamifero{
private String etnia; public String getEtnia(){
return etnia;
}
public void setEtnia(String etnia){
this.etnia = etnia;
}
}
A classe "Animal" é subclasse de "Mamifero".
A classe "Cachorro" está estendendo de "Mamifero".
A sintaxe da classe "Homem" está incorreta.
Por se tratar de herança, a classe "Homem" poderá herdar apenas membros da classe
"Mamifero".
Na estrutura implementada podemos afirmar que a classe "Homem" é subclasse; a
classe "Mamifero" é subclasse e superclasse e a classe "Animal" é superclasse.
Questionário Aula 5
PROGRAMAÇÃO ORIENTADA A OBJETO – Construtores e Herança
1) Em uma estrutura de herança, para instanciarmos uma classe-filha, utilizamos
qual construtor?
O construtor da superclasse.
O construtor da subclasse.
Ambos os construtores.
Nenhum, pois estamos trabalhando com estrutura de herança.
Apenas o construtor padrão.
2) Em relação a construtores, marque a afirmativa incorreta.
O construtor não possui tipo de retorno.
Ao nomearmos um construtor, devemos colocar o mesmo nome da classe a que
pertence.
Os modificadores de acesso do construtor podem ser: public, private e protected.
Toda classe em java possui, no mínimo, um construtor.
Construtores não podem ter argumentos.
3) A forma geral de uma declaração classe que herda uma superclasse é:
classe nome-subclasse extends nome-superclasse { //corpo da classe }
classe nome-subclasse extends nome-superclasse ( //corpo da classe ) Errada
nome-subclasse extends nome-superclasse { //corpo da classe }
classe nome-superclasse extends nome-subclasse{ //corpo da classe }
classe nome-subclasse nome-superclasse { //corpo da classe }
4) Quando tanto a superclasse quanto a subclasse definem construtores, o processo é
um pouco mais complicado, porque os dois construtores devem ser executados. Nesse
caso, devemos usar outra das palavras-chave do Java. Marque a alternativa que
apresente a palavra-chave a ser usada nesta situação.
extends.
O nome da classe.
this.
protected.
super.
5) Marque a alternativa incorreta.
Quando uma classe chama super(), está chamando o construtor de sua superclasse
imediatamente.
super( ) sempre referencia a superclasse imediatamente acima da classe chamadora.
super( ) deve ser sempre a primeira instrução executada dentro de um construtor de
subclasse.
Há uma segunda forma de super que age um pouco como this, exceto por referenciar
sempre a superclasse da subclasse em que é usada. Essa aplicação tem a forma geral a
seguir: super.membro.
A única forma de usar super é a seguinte: super().
Questionário Aula 6
PROGRAMAÇÃO ORIENTADA A OBJETO – Classes Abstratas
1) Marque a alternativa que melhor define classes abstratas.
Classes abstratas auxiliam quando algum comportamento é definido para a maioria ou
todos os objetos de um dado tipo.
Classes abstratas são aquelas que não possuem métodos.
Classes abstratas são classes que apenas definem como os objetos serão criados.
Classes abstratas são classes que definem seus atributos como privados.
Classes abstratas são conhecidas como interfaces.
2) Em classes abstratas, temos um padrão no qual uma área de conhecimento
particular de uma classe exige que outra pessoa providencie uma parte que está
faltando. Como esse padrão é conhecido?
Modificador de acesso.
Sobrescrita.
Passagem de parâmetros.
Subclasses.
Método gabarito.
3) Marque a alternativa que define métodos abstratos.
São métodos que não podem ser usados em outras classes.
São métodos sem implementação.
Métodos abstratos são aqueles escritos com a palavra private.
São métodos que não podem ser implementados por outras classes.
São métodos que não podem receber valores por parâmetros.
4) Em relação a classes abstratas, marque a alternativa incorreta.
Quando possuem métodos abstratos, devem ser declaradas abstratas.
Não se pode criar objetos de uma classe abstrata.
Cada método não implementado na classe abstrata é marcado com abstract.
O oposto de abstrato é concreto.
Classes abstratas fornecem a implementação de um oumais métodos.
5) Em relação à herança em orientação a objetos, marque a alternativa incorreta.
O conceito de herança refere-se a classes que herdam membros de outras classes.
Uma classe genérica é aquela que possui membros que são comuns entre duas ou
mais classes.
Subclasses também são conhecidas como classes filhas e estas podem herdar métodos
das superclasses.
Quando uma subclasse herda um método abstrato da superclasse, o mesmo não deve
ser implementado.
Um dos indicativos para criar herança é quando possuímos atributos semelhantes
entre duas ou mais classes.
Questionário Aula 7
PROGRAMAÇÃO ORIENTADA A OBJETO – Interfaces
1) Para que possamos ter um melhor entendimento do conceito de interfaces, é
importante termos um conhecimento sobre a unidade fundamental em linguagem de
programação orientado a objeto. Marque a afirmativa que cita esta unidade.
Método.
Atributos.
Modificadores de acesso.
Pacote.
Classes.
2) Marque a afirmativa que define interface.
São formulários que interagem com o usuário.
Interface define tipos em forma abstrata.
São elementos da classe.
Interface serve para organizar classes de uma aplicação.
Interfaces são classes que possuem apenas métodos e podem ser instanciadas.
3) Em uma estrutura de herança, uma classe usa membros de outra classe. Interfaces
fornecem membros para que outras classes possam fazer uso deles. Com isso, é
importante conhecermos o conceito de herança para podermos analisar suas
diferenças com implementação de interfaces. Marque a alternativa que melhor define
herança.
Herança é uma estrutura que possui uma superclasse e subclasses que herdam
membros desta superclasse.
Em uma estrutura de herança, as subclasses herdam apenas métodos da superclasse.
Ao herdar um método da superclasse, ele não poderá ser sobrescrito pela superclasse.
Uma superclasse não pode ser instanciada.
Para criarmos uma estrutura de herança, devemos limitar a duas o número de
subclasses.
4) Queremos criar uma interface com o nome Contrato e com o método sem retorno
chamado entrar Com Texto (). Marque a afirmativa que escreve corretamente o
código.
public class Contrato{ void entrarComTexto(String texto); }
public abstract class Contrato{ void entrarComTexto(String texto); }
public Interface class Contrato{ void entrarComTextoString texto;}
public interface Contrato{ void entrarComTexto(String texto); }
public interface Contrato{ void entrarComTexto(String texto){ text = texto;
System.out.println(texto); } }
5) Uma classe que implementa uma interface assume a responsabilidade de executar
as ações que a interface define. Dessa forma, para podermos obter as assinaturas dos
métodos da interface em uma classe, considere os códigos abaixo e marque a
afirmativa correta. A é nossa classe e B é nossa interface.
public class A extends B{ }
public implements A class B { } errada
public class A extends C implements B { }
public class A implements B { }
public interface B { }
Questionário Aula 8
PROGRAMAÇÃO ORIENTADA A OBJETO – Polimorfismo
1) O polimorfismo é um dos quatro pilares da programação de orientação a objetos.
Portanto, marque a opção que melhor descreva o conceito de polimorfismo.
Quando uma classe herda membros de outra classe.
Quando uma classe possui métodos abstratos.
Quando cada classe implementa o mesmo método de diferentes maneiras.
Quando uma subclasse usa um método da superclasse.
Quando uma classe possui um ou mais métodos sem retorno.
2) Para podermos entender melhor e trabalharmos com polimorfismo, é de extrema
importância sabermos alguns conceitos, como as “Interfaces”. Portanto, marque a
alternativa que melhor define interfaces em programação orientada a objetos.
São classes que possuem apenas atributos.
Interfaces são classes que não podem ser instanciadas.
Diferentemente de uma classe, um tipo de interface não fornece nenhuma
implementação.
Interfaces possuem variáveis de instância e métodos abstratos.
Interfaces são classes que possuem métodos que não podem ser implementados por
outras classes.
3) Em relação ao polimorfismo, marque a alternativa incorreta.
O polimorfismo permite que programemos no geral, e não no específico.
Programar no específico é quando o programa determina o tipo de objeto no
momento da execução.
Para trabalharmos com polimorfismo, podemos herdar métodos de uma superclasse
ou implementarmos uma interface.
A técnica de polimorfismo não permite que alteremos a implementação de um
método.
Novos tipos de objeto que podem responder às chamadas de método já existentes
podem ser incorporados ao sistema sem alterar o sistema básico.
4) Qual a relação do polimorfismo com interfaces e superclasses?
Há polimorfismo quando uma subclasse herda membros de uma superclasse.
Quando uma classe herda membros de uma interface, ativa um comportamento
polimórfico.
Quando um método existente em uma interface é usado por uma classe que não altera
a implementação do método, temos um comportamento de polimorfismo.
Quando uma classe implementa uma interface, ela se obriga a utilizar e implementar
todos os métodos da interface, com isso, temos um comportamento polimórfico.
Quando uma classe implementa uma interface, não há necessidade de utilizar todos os
seus métodos. Entretanto, para que haja um comportamento polimórfico, é necessário
implementar os métodos utilizados de acordo com sua necessidade.
5) Analise o código abaixo e marque a alternativa correta.
1) public interface InterfaceTeste { public void locomover(); }
2)public class Formiga implements InterfaceTeste{ public void locomover() {
System.out.println(“Caminha”); } }
3)public class Passaro implements InterfaceTeste { public void locomover() {} }
4)public class Peixe extendes InterfaceTeste { public void locomover() {
System.out.println(“Nada”); } }
O código 1 refere-se à criação de uma classe abstrata.
O código 2 está incorreto, pois o método locomover pertence à interface
"InterfaceTeste". Quando a classe "Formiga" implementou a interface, a mesma
alterou a implementação do método.
O código 3 está escrito de forma correta.
O código 4 está escrito de forma errada, pois, para utilizarmos uma interface, devemos
colocar a palavra-chave implements, não extends.
Sendo o código 1 a interface, podemos concluir que nos códigos 2, 3 e 4, temos um
comportamento polimórfico.
Questionário Aula 1
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – Introdução
1) O smartphone se tornou um fenômeno mundial. Atualmente, é quase impossível
pensar na sua vida sem o uso desses aparelhos, não é? Eles agrupam inúmeras
funções, as quais antes eram desempenhadas por equipamentos diferentes. De
acordo com essa afirmação, selecione a alternativa correta.
Os smartphones surgiram com o lançamento do iPhone, em 2007, pela Apple. Esses
dispositivos funcionavam com redes de segunda geração.
O Android foi o primeiro sistema operacional utilizado por smartphones (exceto o
iPhone).
O padrão de smartphones que você conhece hoje foi desenvolvido pela Nokia,
utilizando o sistema Android.
O padrão de smartphones utilizado hoje foi inicialmente desenvolvido pela Apple, com
o iPhone.
O iPhone foi lançado como uma tentativa da Apple de concorrer com o sistema
Android, do Google, amplamente utilizado por outras empresas.
2) A mobilidade trazida pelos smartphones e outros dispositivos móveis traz diversas
facilidades, as quais são aproveitadas no dia a dia. De acordo com a evolução da
tecnologia, é correto afirmar que:
na segunda geração de redes celulares, as chamadas de vídeo eram um dos principais
usos das plataformas.
na terceira geração de redes celulares, houve um aumentodo interesse devido ao
melhor acesso aos conteúdos multimídia.
o principal uso de rede na terceira geração de redes celulares foi a troca de mensagens
de texto por SMS.
as conexões na segunda geração de redes celulares já eram consideradas estáveis para
o uso de streaming.
as redes de terceira geração tinham a velocidade máxima em torno de 110Kbps, o
suficiente para uso geral.
3) O desenvolvimento da tecnologia acaba por definir conceitos, os quais serão ou não
adotados ao longo do tempo. Alguns se tornam projetos, outros são relegados ao
esquecimento por alguma inviabilidade. Muitos já fazem parte do dia a dia das
pessoas. A respeito da computação ubíqua, é possível afirmar que:
os smartphones não fazem parte desse conceito.
a expressão se refere à presença de computadores convencionais no dia a dia das
pessoas, respondendo a comandos de voz.
é a onipresença de computadores dos mais variados tipos interagindo com as pessoas
de maneira imperceptível.
foi um projeto de um cientista da Xerox, chamado Mark Weiser, o qual não foi
realizado por falta de interesse comercial.
os smartphones são incluídos no conceito de ubiquidade por terem comandos de voz.
4) Atualmente, o mercado está dividido basicamente entre duas plataformas: de um
lado o Android, desenvolvido pelo Google; e de outro, o iOS, do iPhone. Sobre o
desenvolvimento de aplicativos para essas plataformas, é correto afirmar que:
a linguagem de programação padrão, utilizada em ambas as plataformas, é o Java.
os sistemas operacionais mobile têm um ecossistema comum, permitindo que
aplicações sejam compartilhadas.
o desenvolvimento para iPhone/iOS é feito principalmente em C e Java.
uma aplicação desenvolvida para um dos sistemas precisa ser apenas recompilada
para que funcione no outro.
uma aplicação desenvolvida para um dos sistemas é totalmente incompatível com o
outro, precisando ser reescrita.
5) Para o desenvolvimento de aplicações, existem as aplicações nativas —
desenvolvidas com uma plataforma própria para o sistema operacional em que a
aplicação será executada, e as desenvolvidas com metodologias híbridas. O que é
correto afirmar sobre o desenvolvimento híbrido?
Utiliza uma plataforma comum, a web, para criar a aplicação; posteriormente
transformando-as em aplicações nativas.
São aplicações mais leves que as aplicações nativas, pois rodam por meio do
navegador.
São produzidas utilizando HTML, CSS e JavaScript, sendo executadas a partir da
Internet.
Para executar uma aplicação desenvolvida hibridamente, o usuário deverá utilizar um
navegador, seja Chrome ou Safari.
O desempenho de aplicativos desenvolvidos com essa tecnologia é lento e, por isso,
esse recurso quase não é utilizado.
Questionário Aula 2
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – App Inventor
1) O App Inventor é utilizado em diversos projetos direcionados ao sistema
operacional Android. Assinale a alternativa que contextualiza de forma correta o App
Inventor.
É uma ferramenta paga, utilizada com o objetivo de desenvolver aplicativos para o
sistema iOS.
É uma ferramenta complexa que possibilita o desenvolvimento de aplicativos para os
sistemas operacionais Android e iOS.
É uma ferramenta utilizada para desenvolvimento de aplicativos para o sistema iOs e
Windows Phone.
É uma ferramenta simples, utilizada para desenvolvimento de aplicativos e apenas
desenvolvedores experientes conseguem utilizá-la para o sistema operacional
Windows Phone.
É uma ferramenta lúdica utilizada para desenvolvimento de aplicativos para o sistema
operacional Android e que pode ser acessada por meio do próprio browser.
2) Assinale a alternativa que apresenta os dois ambientes disponibilizados para
desenvolvimento pela ferramenta App Inventor 2.
Designer e de blocos.
Paleta e propriedades.
Propriedades e designer.
Blocos e componentes.
Paleta e blocos.
3) Os componentes estão listados em uma seção, a qual mostra lista de botões,
campos de texto, mídias, dentre outros. Assinale a alternativa que apresenta o nome
dessa seção.
Componentes.
Paleta.
Multimédia.
Propriedades.
Visualizador.
4) Assinale a alternativa que apresente a seção na qual os componentes serão
inseridos com o intuito de compor o layout do aplicativo.
Componentes.
Paleta.
Visualizador.
Multimédia.
Propriedades.
5) Os blocos são uma das características mais interessantes do App Inventor, tendo
em vista que são eles que deixam a ferramenta mais lúdica. Assinale a alternativa que
apresenta a análise de condições e os blocos de instruções a serem executados caso
as análises precisem ser realizadas.
Controle.
Lógica.
Matemática.
Listas.
Variáveis.
Questionário Aula 3
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – App Inventor na Prática
1) O App Inventor tem dois ambientes de desenvolvimento, o de Designer e o de
Blocos. Assinale a alternativa que traz os componentes pertencentes a cada ambiente
citado, respectivamente.
SensorAcelerômetro e Controle.
CódigoDeBarras e EscolherImagem.
Cores e CaixaDeTexto.
Procedimentos e Matemática.
Legenda e EscolheLista.
2) O ambiente de desenvolvimento Designer tem algumas áreas, nas quais cada uma
tem uma função para que o desenvolvedor possa organizar o layout de seu aplicativo.
Assinale a alternativa que traz o nome dessas 5 áreas.
Interface de usuário, organização, mídia, mapas e propriedades.
Paleta, visualizador, componentes, propriedades e mídia.
Conectividade, armazenamento, propriedades, componentes e paleta.
Experimental, conectividade, temporizador, blocos, e propriedades.
Desenho e animação, mídia, social, visualizador e componentes.
3) Quais são os componentes que ao serem inseridos possibilitam que estes sejam
mostrados no layout da esquerda para a direita e do alto para baixo?
Notificador e Botão.
Deslizador e OrganizaçãoVertical.
OrganizaçãoHorizontal e OrganizaçãoVertical.
OrganizaçãoEmTabela e OrganizaçãoHorizontal.
SensorDeOrientação e SensorDeProximidade.
4) A Paleta é organizada por seções, na qual cada seção traz uma gama de
componentes relacionados a uma área mais ampla. Assinale a alternativa que traz a
associação correta entre a seção e o componente.
Interface do usuário – Pintura.
Sensores – Rectangle.
Armazenamento – IniciadorDeAtividades.
Desenho e Animação – Bola.
Social – Web.
5) O ambiente de blocos tem as instruções para que sejam fornecidas funcionalidade
aos componentes que serão inseridos no layout do aplicativo. Assinale a alternativa
que traz um conjunto de blocos desse ambiente de desenvolvimento.
Matemática.
CloudDB.
Ligação.
Gravador.
OrganizaçãoVertical.
Questionário Aula 4
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – IDE e emulador Android
1) Na atualidade, um desenvolvedor de software tem disponível para utilização uma
grande variedade de linguagens de programação e cada uma tem suas características.
Em dispositivos móveis, as plataformas de desenvolvimento normalmente utilizam
uma linguagem de programação como linguagem nativa. Considerando o sistema
operacional Android, qual é a sua linguagem de programação nativa?
Html
C#
Swift
Delphi
Java
2) Uma IDE poderosa ajuda o desenvolvedor de software na confecção do aplicativo,
gerenciando-o, organizando a estrutura do projeto e automatizando processos nos
quais o usuário, sem a ajuda dela, teria de realizar manualmente. Dentre as
plataformas a seguir, qual é a plataforma indicada pela Android para desenvolver
aplicativos?
Visual Studio
NetBeans
Android Studio
Eclipse
RAD Studio
3)Em um ecossistema de dispositivos muito variados (variação está relacionada aos
recursos ou até mesmo as suas características físicas, comotamanho e formas de
interação), é complexo prever em que tipo de dispositivo um determinado aplicativo
será executado. Ter diversos dispositivos reais para realização de testes pode não ser
uma opção viável, logo a emulação é uma opção muito utilizada. O Android
disponibiliza em seu SDK um emulador oficial. Selecione a opção que representa essa
ferramenta:
BlueStacks
Android Emulator
Android X84
GenyMotion
Virtual Box
4) Para identificar problemas em um código-fonte, as IDEs disponibilizam
funcionalidades para ajudar o desenvolvedor a encontrar tais falhas. Existem recursos
em que o aplicativo para o seu fluxo de execução em um determinado local e
disponibiliza ao usuário diversas funcionalidades, para que ele possa identificar
possíveis problemas na execução. Qual das opções a seguir representa a
funcionalidade descrita?
Verificador de sintaxe
Repositórios de versionamento
Plugins
Rendenização dos layouts
Break points
5) Recursos, em um dispositivo móvel, devem ser consumidos de forma responsável
por um aplicativo. Se um determinado aplicativo consumir recursos de memória e
processamento de um dispositivo de forma desmoderada pode comprometer o bom
funcionamento dele, frustrando o usuário frente à utilização do aplicativo e levando-
o a buscar outra ferramenta que atenda as suas necessidades. Indique qual opção a
seguir é uma ferramenta que auxilia o desenvolvedor a evitar situações como a
descrita anteriormente.
Monitor de recursos
Gradle
Dispositivos reais
Emuladores
Boas práticas de programação
Questionário Aula 5
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – Activity Gerenciador de Layout
1) Analise os códigos a seguir.
Qual a função da estrutura de comparação usada neste código?
• Abrir a conexão com a base de dados
• Inserir um registro no banco de dados
• Este comando é usado para alterar um registro na base de dados
• Este comando é usado para excluir um registro na base de dados
• Verificar a existência do registro procurado na base de dados
2) Ao trabalhar com o banco SQLite, a aplicação pode criar um ou mais banco de dados,
que ficam localizados em qual pasta relativa ao nome do pacote do projeto?
• /data/data/nome_pacote/
• /data/data/databases/nome_pacote/
• /data/nome_pacote/databases/
• /nome_pacote/data/data/databases/
• /data/data/nome_pacote/databases/
3) Qual é o método que abre o banco de dados SQLite?
• openDatabase()
• createDatabase()
• insertDatabase()
• closeDatabase()
• openOrCreateDatabase()
4) É um banco autocontido, compacto, com suporte nativo no Android e sem necessidade
de configuração ou instalação. Isto o torna a escolha natural para um ambiente em que
devemos prezar por desempenho, disponibilidade de memória e praticidade de uso.
A afirmação acima se trata de qual banco de dados:
• Oracle
• Sql Server
• MySql
• PostgreSql
• SqLite
5) Analise os códigos a seguir:
Qual a finalidade da variável val?
• É uma variável usada na consulta no banco.
• É uma variável usada na alteração no banco.
• Armazenar temporariamente os valores para exclusão no banco de dados.
• Armazenar temporariamente os valores para conectar no banco de dados.
• Armazenar temporariamente os valores para gravar no banco de dados.
Questionário Aula 6
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – Componentes Gráficos
1) Um Intent é um objeto que fornece vínculos de tempo de execução entre
componentes separados, como, por exemplo, entre duas atividades. O Intent
representa uma “intenção de fazer algo” do aplicativo. Você pode usar os intents para
uma ampla variedade de tarefas. Qual o método usado para navegar entre as telas de
uma aplicação?
findViewById()
setonClickListener()
putString()
getClasse()
startActivity()
2) Qual o método usado para receber os parâmetros vindos de uma outra activity?
findViewById()
startActivity(intent)
setonClickListener()
getClasse()
getIntent()
3) Um gerenciador de Layout é utilizado para organizar os componentes na tela
automaticamente. Escolha a resposta que associe corretamente os tipos de
gerenciadores com os suas respectivas definições.
I. LinearLayout
II. RelativeLayout
III. TableLayout
IV. AbsoluteLayout
( ) Organiza os componentes em linhas e colunas
( ) Posiciona os elementos por referência à outros elementos
( ) Permite selecionar os componentes fornecendo as coordenadas x e y
( ) Utilizados para organizar os componentes na vertical ou horizontal
III - II - I - IV
II - III - IV - I
II - III - I - IV
d) III - IV - II - I
e) III - II - IV - I
4) Os componentes gerenciadores de layout no Android, também chamados de
ViewGroups, são classes que orientam o posicionamento dos componentes visuais na
tela do dispositivo móvel. O gerenciador de layout :
FullLayout é usado quando um componente deve preencher toda a área da tela. Ele
reserva um espaço que será utilizado por um único componente. Se mais de um
componente for adicionado, haverá sobreposição ao anterior.
FlowLayout é utilizado quando os componentes devem ser apresentados na tela no
formato linear (um componente após o outro), de forma horizontal ou vertical
AbsoluteLayout permite adicionar componentes na tela, sendo que a posição destes
leva em consideração a posição de outro componente adicionado ou do gerenciador
de layout no qual ele se encontra.
FrameLayout permite dividir a área do container como se fosse uma grade formada
por linhas e colunas, cujo cruzamento constitui uma célula. Não é permitido definir
células vazias ou que uma célula ocupe mais de uma linha ou coluna.
TableLayout é utilizado para organizar os componentes no formato linha/coluna,
podendo ser utilizado para apresentar formulários de cadastros em aplicativos móveis.
5) Activity geralmente representa uma tela na aplicação. Cada activity é responsável
por controlar os eventos da tela e definir qual View será responsável por desenhar a
interface gráfica do usuário. Há métodos da classe Activity que podem ser utilizados
para controlar o estado da aplicação. Qual a função do método onResume()?
é responsável por carregar o layout e outras operações iniciais
é quando uma activity estava em segundo plano e volta a ter o foco
é chamada quando a activity fica totalmente encoberta por outra activity
é chamada quando a activity perde o foco
é chamada após a onStart() é nesse estágio que a interface está visível para o usuário
Questionário Aula 7
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – Banco de Dados
1) Qual a função da propriedade android:layout_width no componente Button?
determinar a altura do componente.
especifica o texto do botão.
atribui uma identificação para o componente.
define a cor do texto.
determinar a largura do componente.
2)Qual a função da propriedade android:text no componente Button?
determinar a largura do componente.
atribui uma identificação para o componente.
determinar a altura do componente.
define a cor do texto.
especificar o texto do botão.
3) Qual a função da propriedade android:text no componente Button?
determinar a largura do componente.
atribui uma identificação para o componente.
determinar a altura do componente.
define a cor do texto.
especificar o texto do botão.
4) Qual a função da propriedade android:checked no componente RadioButton?
determinar a largura do componente.
determinar a altura do componente.
atribui uma identificação para o componente.
define a cor do texto.
define o estado do componente para deixar marcado ou não.
5) Como trabalha o gerenciador de Layout chamado de LinearLayout?
ele organiza os componentes tomando como referência sempre outro componente.
ele organiza os componentes em tabelas.ele organiza os componentes determinando posição para os valores X e Y.
ele organiza os componentes de forma aleatória.
ele organiza os componentes em uma sequência que pode ser vertical ou horizontal.
Questionário Aula 8
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS – Consumo de serviços Web RESTful
1) O padrão RESTful se desenvolveu a partir do conceito de computação distribuída,
em que partes de um mesmo sistema se localizam em máquinas ou em locais físicos
diferentes. Partindo dessa premissa, qual alternativa a seguir está correta?
A aplicação móvel é responsável pela maior parte do processamento dos dados do
usuário e pelo armazenamento da maior parte das informações.
A aplicação móvel é responsável, majoritariamente, pelo conceito de frontend, que é a
parte que responde à interação com o usuário.
É necessário um dispositivo com grande poder de processamento para atender às
demandas atuais.
O uso de aplicativos móveis é pouco dependente do acesso à internet, tendo em vista
que as aplicações são instaladas no aparelho.
A comunicação entre aplicação e servidores é realizada de maneira síncrona,
consumindo grandes quantidades de dados a cada requisição.
2) Na maior parte das aplicações para dispositivos móveis, há necessidade inerente de
comunicação com servidores externos, que estão acessíveis por acesso à internet.
Sendo assim, o que é um REST? Marque a opção correta.
Um protocolo de rede.
Um conjunto de instruções predefinidas.
Um padrão de arquitetura de interconexão de aplicações.
Uma aplicação auxiliar que fará o intermédio entre o servidor e o dispositivo.
Um conjunto de bibliotecas inerentes às linguagens de programação.
3) Uma aplicação pode ser chamada de RESTful quando é baseada no padrão REST de
acesso a funcionalidades remotas por meio de APIs. Diante isso, é possível afirmar
que:
o método HTTP/GET é utilizado para buscar informações que já existem.
o método HTTP/POST é utilizado quando já existe a URI referente ao recurso a ser
inserido ou atualizado.
o método HTTP/PUT cria uma nova URI ao inserir recursos.
ambos os métodos HTTP/POST e HTTP/PUT têm a mesma funcionalidade.
o método HTTP/GET envia informações por meio do corpo da requisição.
4) Quando dados são transmitidos e recebidos utilizando-se as APIs RESTful, é
necessária uma notação comum a ambas as partes (ambos os lados) para que as
aplicações se comuniquem. Em se tratando de REST, qual alternativa apresenta uma
afirmativa correta?
O padrão REST requer o uso de documentos em padrão JSON para a transferência de
dados entre aplicações.
O retorno de uma chamada é tratado de acordo com a resposta fornecida no corpo da
mensagem.
É viável, apesar de incomum, a representação dos dados em formato XML para
transferência entre aplicações.
As APIs REST coincidem com as operações de CRUD (Create, Read, Update, Delete).
O retorno dos dados ocorre pelo corpo da requisição enviada, com palavras-chave
predefinidas entre servidor e aplicação.
5) As aplicações baseadas na arquitetura REST transmitem seus dados pela Web e pelo
protocolo HTTP. As chamadas a dados são denominadas requisições e seus pontos de
conexão remotos são nomeados de endpoints. Em relação à transmissão dos dados
sobre arquitetura REST, qual alternativa está correta?
O servidor mantém o estado da conexão, como por exemplo, qual usuário está
conectado, suas preferências, etc., por meio do endereço IP do usuário.
O servidor não mantém o estado da conexão. É necessário o envio da informação
completa e, após a resposta, o ciclo se encerra. Cada requisição é única.
O servidor mantém parcialmente os dados da conexão do usuário, mantendo uma
sessão, mas não preserva as preferências do usuário ou dados específicos.
Cada requisição é única e deve conter toda a informação necessária, incluindo o login e
a senha do usuário, o que torna o padrão particularmente vulnerável.
O padrão RESTful é voltado para redes de alto desempenho, não sendo indicado para
conexões instáveis.
Questionário Aula 1
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – UML
1) A Linguagem de Modelagem Unificada (UML) é composta por vários diagramas, os
quais têm por objetivo fornecer múltiplas visões do sistema a ser modelado,
analisando e modelando sob diversos aspectos. Tais diagramas são divididos em dois
grupos: Estruturais e Comportamentais. A partir deste cenário, aponte qual das
opções destaca somente diagramas “Estruturais”.
Diagrama de Classes Diagrama de Componentes Diagrama de Objetos
Diagrama de Classes Diagrama de Interação Diagrama de Objetos
Diagrama de Classes Diagrama de Componentes Diagrama de Atividades
Diagrama de Casos de Uso Diagrama de Componentes Diagrama de Objetos
Diagrama de Classes Diagrama de Componentes Diagrama de Comunicação
2) Dentre os diagramas que fazem parte da Linguagem de Modelagem Unificada
(UML), podemos citar um que está intimamente associado à linguagem de
programação que será utilizada na execução do projeto de software, assim como tem
a finalidade de indicar os componentes do software e seus relacionamentos. Aponte
qual das alternativas destaca o diagrama do qual estamos tratando.
Diagrama de Comunicação
Diagrama de Componentes
Diagrama de Temporização
Diagrama de Estrutura Composta
Diagrama de Classes
3) A utilização de diagramas da Linguagem de Modelagem Unificada (UML) faz com
que as empresas de análise e desenvolvimento de softwares tenham além de um
maior nível de organização e agilidades nos processos, um histórico dos projetos
realizados e a possibilidade de melhoria na gestão e qualidade de seus sistemas. Qual
das opções a seguir aponta uma situação que NÃO está relacionada ao cenário
exposto?
Custo médio de desenvolvimento de software.
Tempo médio despendido para a etapa de análise de requisitos.
As linguagens de programação que serão utilizadas em novos projetos.
s linguagens de programação que serão utilizadas em novos projetos. Necessidade de
pessoas para compor uma equipe de trabalho em razão de determinado projeto.
Necessidade de horas para modelagem do software.
4) Um dos grupos de Diagramas que fazem parte da Linguagem de Modelagem
Unificada (UML) são os chamados Diagramas Comportamentais, que têm por objetivo
fornecer múltiplas visões do sistema a ser modelado, analisando e modelando sob
diversos aspectos. A partir deste cenário, aponte qual das opções destaca somente
diagramas “Comportamentais”.
Diagrama de Máquinas de Estado Diagrama de Pacotes Diagrama de Sequência
Diagrama de Máquinas de Estado Diagrama de Casos de Uso Diagrama de Implantação
Diagrama de Objetos Diagrama de Casos de Uso Diagrama de Sequência
Diagrama de Máquinas de Estado Diagrama de Casos de Uso Diagrama de Sequência
Diagrama de Componentes Diagrama de Casos de Uso Diagrama de Sequência
5) A partir do uso dos diagramas da UML, as empresas de análise e desenvolvimento
de sistemas podem melhorar e evoluir em diversos aspectos, incluindo: uso de
prototipação, prazos, custos, documentação e questões de reusabilidade. Aponte qual
das opções a seguir define, de maneira geral, como podemos denominar o processo
que leva a todos estes aspectos positivos.
Análise de Requisitos
Metodologia de Software
Linguagem de Programação
Levantamento de Requisitos
Modelagem de Software
Questionário Aula 2
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Projetando Classes
1) Em programação orientada a objetos, qual o papel da classe?
Classes possuem um papel irrelevante na programação orientada a objetos.
As classes são a fundação, na qual linguagens orientadas a objetos se estruturam.
Classes são boas práticas de programação.
Dentro de uma classe são escritos todos comentários de uma aplicação.Uma classe é, basicamente, um conjunto de planos que especifica como construir um
pacote.
2) Em relação à forma geral de uma classe, podemos afirmar:
Uma classe é criada com o uso da palavra-chave public.
É impossível usar comentários dentro de uma classe.
Uma classe é criada com a palavra-chave class.
Os parênteses são caracteres que delimitam o bloco da classe.
Podemos usar palavras reservadas de uma linguagem de programação para nomearmos
classes.
3) Sobre objetos, podemos afirmar que:
É uma abstração lógica.
Um objeto é composto por estado e comportamento.
Para criarmos uma classe, é necessário seguirmos a especificação de um objeto.
Considere o seguinte código: “Cliente cli = new Cliente();” a palavra “new” é o método
construtor da classe.
Não há comunicação entre objetos dentro de um sistema orientado a objetos.
4) Analise o seguinte código:
public class Veiculo {
private String placa;
private String cor;
private int anoFabricacao;
public String getPlaca() {
return placa;
}
public void setPlaca(String placa) {
this.placa = placa;
}
public String getCor() {
return cor;
}
public void setCor(String cor) {
this.cor = cor;
}
public int getAnoFabricacao() {
return anoFabricacao;
}
public void setAnoFabricacao (int anoFabricacao) {
this.anoFabricacao = anoFabricacao;
}
}
A classe Veiculo tem quatro variáveis de instância.
As palavras-chave this em this.cor, this.placa e this.anoFrabricacao informam ao método
que estamos nos referindo à variável de instância.
A palavra void é necessária para criação de todos os métodos.
As variáveis de instância da classe veículo poderão ser visualizadas por qualquer outra
classe da aplicação.
O código está incorreto, pois métodos e variáveis de instância não são elementos de
uma classe.
5) São implementados para realizarem algum tipo de tarefa:
Classes.
Objetos.
Atributos.
Métodos.
Comentários.
Questionário Aula 3
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Diagramas de Casos de Uso
1) O que é um diagrama de casos de uso?
É uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é
que ele mostra os objetos que foram instanciados das classes.
É uma representação da estrutura e relações das classes que servem de modelo para
objetos.
É um diagrama comportamental (que especifica o comportamento do software).
É um diagrama que descreve as principais funcionalidades do sistema e a interação
dessas funcionalidades com os usuários do mesmo sistema.
É um diagrama que descreve os componentes do software, suas interfaces e suas
dependências.
2) Com qual figura geométrica um ATOR é representado no diagrama de casos de uso?
Com uma elipse.
Com um simbolo de uma pessoa, também chamado de "stick man".
Com uma seta pontilhada.
Com um círculo com bordas pontilhadas.
Com um triângulo e o nome do ator na parte superior.
3) Além dos relacionamentos comuns do diagrama de casos de uso, também contamos
com os relacionamentos <<extend>>. Para que este tipo de relacionamento é
utilizado?
Quando o caso de uso Y estende o caso de uso X, significa que quando o caso de uso X
for executado o caso de uso Y poderá (poderá – talvez não seja) ser executado também.
Quando o caso de uso Y generaliza o caso de uso Z isso significa que, além de fazer tudo
que nele está especificado, ele também executará tudo que está especificado no caso
de uso Z.
Quando um caso de uso X pertence ao caso de uso Y, fazendo com que todos os atributos
sejam removidos.
Quando o caso de uso A inclui o caso de uso B, significa que sempre que o caso de uso
A for executado, o caso de uso B também será executado.
Quando um caso de uso Z não disponibiliza a execução de um caso de uso Y.
4) O diagrama de casos de uso é geralmente utilizado no início do projeto em qual
atividade?
Na execução dos testes de software.
Implementação do software.
Definição dos requisitos e comunicação com o cliente.
Na entrega do software para o cliente.
Na fase de manutenção do software.
5) Para que serve a multiplicidade no diagrama de casos de uso?
Para demonstrar algum tipo de relação entre dois elementos por meio do uso de linhas
e setas.
Para definir uma funcionalidade do sistema do ponto de vista do usuário.
Para definir uma grande função do sistema.
Possibilita um certo grau de extensibilidade aos componente ou associações da UML.
Serve para especificar o número de vezes que um ator pode utilizar um determinado
caso de uso.
Questionário Aula 4
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Elaborar Diagrama de Classes
1) O que é um diagrama de classes?
É uma representação da estrutura e relações das classes que servem de modelo para
objetos.
É uma representação do sistema de forma geral.
É uma representação do fluxo de dados do sistema.
É uma representação dos componentes.
É uma representação do fluxo de ações.
2) Como uma classe é representada no diagrama de classes?
Com um círculo.
Com um retângulo.
Com um quadrado.
Com uma seta.
Com uma linha.
3) No diagrama de classes, o que é uma relação de associação?
São relacionamentos de utilização.
É um tipo de relacionamento entre um elemento geral (mais amplo) e outro mais
específico.
É um relacionamento entre um elemento (o todo) e outros elementos (as partes) onde
as parte só podem pertencer ao todo e são criadas e destruídas com ele.
São relacionamentos estruturais entre as instâncias das classes e permitem especificar
que objetos de uma classe são ligados a objetos de outras classes.
É um atributo da classe.
4) Leia a seguinte descrição: “… são utilizadas no diagrama de classes para informar a
quantidade de instâncias de objetos que uma classe pode ter em relação a outra
classe. Estamos nos referindo às(aos):
Atributos.
Multiplicidades.
Relações.
Retângulos.
Classes.
5) Quais destes são tipos de visibilidades definidos pela UML?
Público, Protegido, Privado e Interno.
Público, Protegido, Privado e Pacote.
Público, Protegido, Perfeito e Pacote.
Público, Protegido, Parcial e Pacote.
Público, Protegido, Desprotegido e Pacote.
Questionário Aula 5
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Elaborar diagrama de sequência
1) No contexto do diagrama de sequência, o que são linhas de vida?
Linha de vida ou Lifeline é um elemento nomeado que representa um participante
individual na interação do diagrama de sequência.
São elementos que permitem descrever a interação entre os objetos.
São elementos que indicam o período que o objeto está participando ativamente do
processo.
É uma ou mais sequências de processamento incluídas em uma moldura e executadas
em circunstâncias específicas.
São arquiteturas em que a apresentação, o processamento de aplicativos e as funções
de gerenciamento de dados estão fisicamente separados.
2) Qual o tipo de mensagem que não precisa de uma resposta para interação para
continuar?
Mensagem de resposta ou de retorno.
Mensagem self.
Mensagem assíncrona.
Mensagem de criação.
Mensagem de destruição.
3) Sobre os fragmentos combinados, qual deles permite o processamento simultâneo?
[opt]
[break]
[neg]
[critical]
[par]
4) Em um sistema de camadas no modelo MVC, qual camada é representada pelo
objeto do tipo Boundary (ou Fronteira)?
Model.
Controller.
Error.
Critical.
View.
5) Quais são os passos base para realizar antes da criação de um diagrama de
sequência?
1 - Escolher um diagrama de sequência. 2 - Identificar os objetos que fazem parte da
interação. 3 - Identificar o objeto que começa a interação. 4 - Identificar as mensagens
trocadas entre os objetos. 5 - Identificar a sequência destasmensagens.
1 - Escolher um caso de uso. 2 - Identificar os objetos que fazem parte da interação. 3 -
Identificar o objeto que começa a interação. 4 - Identificar as classes. 5 - Identificar os
objetos.
1 - Escolher um caso de uso. 2 - Identificar os objetos que fazem parte da interação. 3 -
Identificar o objeto que começa a interação. 4 - Identificar as mensagens trocadas entre
os objetos. 5 - Identificar a sequência destas mensagens.
1 - Escolher um caso de uso. 2 - Criar os objetos que fazem parte da interação. 3 -
Identificar o objeto que começa a interação. 4 - Identificar as mensagens trocadas entre
os objetos. 5 - Identificar a sequência destas mensagens.
1 - Escolher um caso de uso. 2 - Identificar os objetos que fazem parte da interação. 3 -
Identificar o objeto que começa a interação. 4 - Identificar as mensagens trocadas entre
os objetos. 5 - Remover a sequência destas mensagens.
Questionário Aula 6
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Elaborar o diagrama da máquina de
estados
1) O que é um diagrama de máquina de estados?
Um diagrama de estados, por vezes conhecido como diagrama de máquina de estados,
é um tipo de diagrama comportamental na Linguagem de Modelagem Unificada (UML).
O diagrama de máquina de estados é um diagrama estrutural da UML criado para
descrever os estados de uma classe.
O diagrama de máquina de estados é um diagrama presencial que demonstra as classes
do sistema.
O diagrama de máquina de estados é um diagrama criado no início do século XX para a
visualização de preços de veículos.
Foi um diagrama criado para definição de classes, mas hoje não é mais utilizado.
2) No diagrama de máquina de estados, como é representado um estado?
Com um ponto em que um estado composto ou uma máquina de estados é encerrado.
Com uma seta que flui de um estado a outro, indicando um estado em mudança.
Com um tipo de mensagem que move um objeto de forma ativa de estado para estado.
Com um retângulo com cantos arredondados, que indica a natureza atual de um objeto.
Com um símbolo de diamante, que indica uma condição dinâmica com resultados
potenciais ramificados.
3) Máquinas de estado possuem a condição GUARD que afeta o comportamento da
máquina, segundo alguma condição. Levando em consideração os conhecimentos que
você possui sobre as estruturas utilizadas em programação e a função da condição
GUARD, qual analogia pode ser feita em relação a sua função?
FOR LOOP – Repete uma transição ou ação por um número finito de vezes.
WHILE LOOP – Repete uma transição ou ação enquanto uma condição for verdadeira.
IF – ELSE – Realiza alguma atividade com base em um resultado de expressão booleana.
SWITCH – CASE – Realiza uma transição ou ação segundo uma determinada escolha feita
pela máquina.
FUNCTION - Realiza uma função com ação de transição ou ação.
4) Em uma transição de estado, como chamamos o elemento que invoca uma função,
executa E/S, executa uma ação ou altera uma variável?
Estado.
Guard.
Pseudoestado de escolha.
Barra de sincronização.
Trigger.
5) Em qual situação um diagrama de máquina de estados é bem empregado?
Para especificar como as classes se relacionam entre si.
Para entender como as instâncias das classes de um sistema (objetos) são utilizadas.
Para descrever os casos de uso de um sistema obtidos através de uma boa modelagem
de requisitos.
Para descrever o comportamento de um objeto através de vários casos de uso.
Para descrever detalhes dos componentes de um sistema.
Questionário Aula 7
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Conhecer e construir diagramas
de atividades
1) O que é um diagrama de atividades?
É um diagrama que descreve as principais funcionalidades do sistema e a sua interação
com os usuários do mesmo sistema.
É uma representação da estrutura e relações das classes que servem de modelo para
objetos.
É um diagrama comportamental (que especifica o comportamento do software) do
ponto de vista funcional).
É uma variação do diagrama de classes e utiliza quase a mesma notação. A diferença é
que ele mostra os objetos que foram instanciados das classes.
É um diagrama que descreve os componentes do software, suas interfaces e suas
dependências.
2) O que um elemento de atividade representa no diagrama?
Separa uma transição em várias transições executadas ao mesmo tempo.
Fluxo de uma atividade para outra.
Dependendo de uma condição, mostra as diferentes transições.
Diferenciação de unidades organizacionais.
Um comportamento a ser realizado.
3) Qual o principal objetivo de um diagrama de atividades?
Ilustrar graficamente como será o funcionamento do software, como será a execução
de alguma de suas partes e como será a atuação do sistema na realidade de negócio em
que ele está inserido.
Descrever os vários tipos de objetos no sistema e o relacionamento entre eles.
Auxiliar a comunicação entre os analistas e o cliente.
Descrever como grupo de objetos colaboram em um determinado comportamento.
Mostrar os possíveis estados de um objeto e as transações responsáveis pelas mudanças
de estado.
4) Para que servem os elementos de raias no diagrama de atividades?
Para representar o fluxo de trabalho de uma atividade para outra.
Para controlar os desvios do fluxo de controle.
Para diferenciar diferentes unidades organizacionais do sistema.
Para representar as atividades.
Para informar o fim de um fluxo de atividades.
5) Para que e quando você deve criar um diagrama de atividades?
Para documentar as classes e os objetos que o sistema terá durante a sua modelagem.
Para documentar o aspecto funcional (não estrutural) do software durante a
modelagem do sistema.
Para documentar e modelar os detalhes presentes na especificação de casos de uso
durante a modelagem do sistema.
Para documentar e planejar a sequência de testes que será realizada durante a
implementação do sistema.
Para utilizar na priorização de requisitos de software durante a fase de levantamento de
requisitos.
Questionário Aula 8
DESENVOLVIMENTO DE PROJETOS DE SISTEMAS – Diagrama de Interação
1) O que são e para que servem os diagramas de interação?
São modelos que têm por objetivo ordenar mensagens trocadas entre objetos e são
inúteis para sistemas orientados a objetos.
São modelos que têm por objetivo construir e documentar objetos e não enfatizam
ordenação de mensagens trocadas entre objetos.
São modelos que têm por objetivo descrever como grupos de objetos colaboram com
comportamentos e são utilizados para visualizar, especificar, construir e documentar
objetos ou, ainda, para fazer a modelagem de fluxos de controle de caso de uso.
São modelos que desorganizam estruturalmente as mensagens trocadas.
São modelos que deixam de ilustrar interações complexas de controle e comportamento
concorrente.
2) Qual a diferença entre diagrama de sequência e diagrama de comunicação?
Diagrama de sequência enfatiza a organização estrutural em que as mensagens são
trocadas. Diagrama de comunicação verifica se as mensagens trocadas estão na ordem
correta.
Diagrama de sequência enfatiza ordenação de mensagens trocadas entre objetos
enquanto diagrama de comunicação enfatiza organização dos objetos em uma
interação.
Diagrama de sequência dificulta saber como vários objetos colaboram no tratamento de
um método complexo, enquanto o diagrama de comunicação facilita essa ação.
Diagrama de comunicação enfatiza ordenação de mensagens trocadas entre objetos,
assim como o diagrama de sequência.
Diagrama de comunicação enfatiza ordenação de mensagens trocadas entre objetos,
enquanto diagrama de sequência enfatiza organização dos objetos em uma interação.
3) O que são e para que servem os diagramas de comunicação?
São modelos que têm por objetivodesconstruir objetos e não enfatizam ordenação de
mensagens trocadas entre objetos.
São grafos sem objetos e ligações e não ilustram interações complexas de controle e
comportamento concorrente.
São modelos com ligações que ilustram interações simples de controle e não
apresentam o comportamento concorrente.
São grafos com objetos e ligações por meio das quais fluem mensagens numeradas e
ilustram interações complexas de controle e comportamento concorrente.
São grafos com objetos e ligações através das quais fluem mensagens numeradas e
ilustram interações simples de controle e comportamento concorrente.
4) Assinale a alternativa correta no que se refere a diagramas de interação e sua
utilização.
Diagramas de interação são especialmente úteis para sistemas orientados a objetos
porque a funcionalidade nesses sistemas geralmente é distribuída em muitas classes
diferentes.
Diagramas de interação são especialmente inúteis para sistemas orientados a objetos
porque a funcionalidade nesses sistemas geralmente é distribuída em muitas classes
diferentes.
Diagramas de interação são especialmente úteis para sistemas orientados a objetos
porque dificultam a funcionalidade nesses sistemas que geralmente é distribuída em
muitas classes diferentes.
Diagramas de colaboração são especialmente úteis para sistemas orientados a objetos
porque não há funcionalidade nesses sistemas que são distribuídas em muitas classes
diferentes.
Diagramas de sequência são úteis para sistemas orientados a objetos, porém a
funcionalidade nesses sistemas geralmente não é distribuída em classes diferentes.
5) No que diz respeito aos diagramas estudados nesta Unidade de Aprendizagem, é
correto afirmar que:
o diagrama de sequência mostra os objetos das classes que participam da interação,
apresentando os vínculos entre eles, descrevendo mensagens que os objetos recebem
e enviam.
o diagrama de comunicação mostra os objetos das classes que não participam da
interação, apresentando os vínculos entre eles, descrevendo mensagens que os objetos
recebem e enviam.
O diagrama de comunicação mostra os objetos das classes que participam da interação,
apresentando os vínculos entre eles, descrevendo mensagens que os objetos recebem
e enviam.
O diagrama de sequência mostra os objetos das classes que não participam da interação,
apresentando os vínculos entre eles, descrevendo mensagens que os objetos recebem
e enviam.
O diagrama de sequência não mostra os objetos das classes que não participam da
interação, apresentando os vínculos entre eles, e não descreve mensagens que os
objetos recebem e enviam.
Questionário Aula 1
ENGENHARIA DE SOFTWARE - Conceitos da Engenharia de Software
1) O que foi a Crise de Software?
A Crise de Software permitiu o desenvolvimento de software de alta qualidade já que
houve um aumento da concorrência.
A Crise de Software foi um termo que surgiu nos anos 70. O termo expressava as
dificuldades do desenvolvimento de software frente ao rápido crescimento da demanda
por software.
A Crise de Software foi acompanhada pela Crise de Hardware, que acabou gerando
inúmeros desempregos na década de 70.
A Crise de Software foi um termo criado para expressar momentos em que um sistema
apresenta processamento lento.
A Crise de Software ocorreu após a Segunda Guerra Mundial quando nenhum software
era vendido.
2) Qual foi o motivo da criação da Engenharia de Software?
A Engenharia de Software foi criada porque nenhum software disponível antes da
Engenharia de Software conseguia realizar cálculos complexos.
A Engenharia de Software foi criada para permitir o uso de elementos da engenharia de
forma controlada e sistemática no desenvolvimento de software. Também para evitar a
Crise de Software.
A Engenharia de Software foi criada para acelerar o desenvolvimento de software no
Brasil.
A Engenharia de Software foi criada para facilitar o uso de software.
A Engenharia de Software foi criada para permitir que a produção de novos sistemas
tivesse mais elementos gráficos e amigáveis ao usuário.
3) Com a introdução da Engenharia de Software, o que mudou no processo de
desenvolvimento de software?
Iniciou-se o uso de técnicas e metodologias sistemáticas e controladas já presentes na
engenharia e amplamente utilizadas em outras áreas.
A Engenharia de Software melhorou o entendimento do desenvolvedor na leitura dos
requisitos de Software.
Aumentaram as vendas de sistemas de software na década de 80.
Permitiu que mais pessoas pudessem ter acesso a sistemas de software.
Removeu da criação de software as técnicas e metodologias sistemáticas e controladas
já presentes na engenharia e amplamente utilizadas em outras áreas.
4) João, dono de uma empresa de software, tem que criar um sistema para um cliente.
Até o momento, o cliente fez apenas uma ligação informando o tipo de software que
ele quer. Qual a primeira coisa que João deve fazer?
Ir para a sua empresa e começar a programar imediatamente.
Modelar algumas telas do sistema e perguntar ao cliente a sua opinião.
Contratar uma grande equipe de desenvolvedores para criar o software o mais rápido
possível.
Entender o negócio do cliente e realizar reuniões para mensurar o que ele precisa.
Informar para o cliente que em um mês o sistema estará em pleno funcionamento, além
de informar qual será o custo do sistema.
5) Qual é a base dos elementos da Engenharia de Software?
Métodos.
Ferramentas.
Foco na qualidade.
Processo.
Conceitual.
Questionário Aula 2
ENGENHARIA DE SOFTWARE - Ciclo de Vida do Software
1) O que é um ciclo de vida de software?
Ciclo de vida de software refere-se aos estágios de concepção, projeto, criação e
implementação de um software.
Ciclo de vida de software refere-se aos estágios de levantamento de requisitos.
Ciclo de vida de software refere-se ao tempo de implementação estimado pelo analista.
Ciclo de vida de software refere-se aos estágios de análise do software.
Ciclo de vida de software ocorreu antes da Crise do Software, em 1970.
2) Em qual fase do ciclo de vida de software são definidas as questões técnicas, como
banco de dados, localização, hardware e linguagens de programação?
Na fase de projeto.
Na fase de levantamento de requisitos.
Na fase de implementação.
Na fase de testes e manutenção.
Em nenhuma fase, estas questões são decididas pelo programador.
3) No ciclo de vida de software, o que é realizado na etapa de “levantamento das
necessidades”?
É realizada a implementação do sistema.
É realizada uma verificação de todas as necessidades do cliente.
É realizada a análise de requisitos.
São realizados testes no sistema para verificar quais as necessidades de implementação.
É a etapa onde o sistema é entregue para o usuário/cliente.
4) A figura ilustra um modelo de desenvolvimento de software no qual o fluxo é visto
como um fluir constante através das fases. Esse modelo utiliza como entrada as
informações obtidas nas fases anteriores e cada fase só inicia após o término da que
antecede (não existindo fases em paralelo).
Com base nessas informações, qual é o modelo apresentado na figura?
Modelo V.
Cascata.
Espiral.
Prototipagem.
Incremental.
5) Qual é o maior problema encontrado no modelo cascata?
Nenhum. O sistema cascata foi utilizado durante anos e até o momento não precisou de
correções.
É um modelo bastante simples.
O sistema prevê a revisão das fases e é totalmente iterativo.
Ele permite que existam divergências entre o que o cliente espera e o que é entregue
no final, já que existe pouca interação entre as etapas.
O modelo cascata é top-down e isso faz com que o software seja construído de maneira
incorreta.
Questionário Aula 3
ENGENHARIA DE SOFTWARE– Conhecer Requisitos
1) O que é um requisito de software?
Um requisito pode ser definido como uma condição ou uma capacidade com a qual o
sistema deve estar de acordo.
É uma declaração sobre políticas ou condições que devem ser satisfeitas.
É uma técnica para a medição de projetos de desenvolvimento de software, visando
estabelecer uma medida de tamanho, em Pontos de Função (PF), considerando a
funcionalidade implementada, sob o ponto de vista do usuário.
É uma técnica de desenvolvimento de software em que se utiliza camadas.
É um conjunto de elementos que um software entrega, podendo ser dados ou valores.
2) Qual é a característica de um requisito funcional?
Definem propriedades e restrições do sistema.
Descrevem explicitamente as funcionalidades e serviços do sistema.
É mais voltado para características que podem ser mensuradas e testadas facilmente.
Expressam informações relacionadas com a segurança do sistema.
Expressam informações relacionadas com a arquitetura do sistema.
3) Qual é a característica de um requisito não funcional?
É um tipo de requisito que o usuário geralmente conhece bem.
É um tipo de requisito fácil de estimar.
É um tipo de requisito que define propriedades e restrições do sistema. É mais voltado
para características que podem ser mensuradas e testadas facilmente.
É um tipo de requisito que geralmente descreve explicitamente as funcionalidades e
serviços do sistema.
É um tipo de requisito que é flexível e não impacta no desenvolvimento.
4) O que é uma regra de negócio?
Regras de negócio são premissas e restrições aplicadas a uma operação comercial de
uma empresa, que precisam ser atendidas para que o negócio funcione da maneira
esperada.
Definem propriedades e restrições do sistema.
É um tipo de requisito que geralmente descreve explicitamente as funcionalidades e
serviços do sistema.
É um requisito que o usuário não conhece muito bem durante a criação de um sistema.
É um tipo de requisito difícil de estimar.
5) Na engenharia de software, existe um processo genérico de levantamento e análise
que contém as seguintes atividades: compreensão do domínio, coleta de requisitos,
classificação, resolução de conflitos, definição das prioridades e verificação de
requisitos.
Uma das atividades mais importantes deste processo é a coleta de requisitos. Informe
quais das descrições a seguir melhor descrevem esta atividade:
Essa atividade considera o conjunto não estruturado dos requisitos e os organiza em
grupos coerentes.
Quando múltiplos stakeholders estão envolvidos, os requisitos apresentarão conflitos.
Essa atividade tem por objetivo solucionar esses conflitos.
Nesta atividade, os requisitos são verificados para descobrir se estão completos e
consistentes e se estão em concordância com o que os stakeholders desejam do sistema.
Em qualquer definição de requisitos, alguns serão mais importantes do que outros. Esse
estágio envolve interação com os stakeholders para a definição dos requisitos mais
importantes.
É o processo de interagir com os stakeholders do sistema para descobrir seus requisitos.
Questionário Aula 4
ENGENHARIA DE SOFTWARE - Lista de Requisitos
1) Os requisitos de software são classificados em três níveis de prioridade durante a
preparação da lista de requisitos, sendo essencial, importante e desejável. Das
alternativas abaixo, qual justifica esta classificação de requisitos em diferentes níveis
de prioridades?
Os recursos destinados para projetos são limitados e, em alguns casos, é necessário
deixar de lado alguns dos requisitos levantados para entregar o software com a
qualidade esperada, mas não completo.
A priorização de requisitos de software permite que o software desenvolvido execute
com melhor desempenho.
Devido ao tempo disponível para a criação de software, muitos projetos utilizam a
classificação dos requisitos em diferentes níveis de prioridade para que o projeto dure
mais tempo, agregando valor ao produto.
Devido à limitação de recursos e tempo, os requisitos são priorizados para que os mais
importantes sejam desenvolvidos primeiro e os menos importantes depois.
A priorização deve ocorrer para que o projeto finalize com custos mais altos que o
previsto.
2) O que é uma regra de negócio?
Descrevem em termos do negócio, o que deve ser entregue ou conseguido para fornecer
valor.
É aquilo que existe, independente do sistema/software.
Representação do fluxo de informação.
É um diagrama com tarefas associadas a cada papel de usuário.
Consistem de uma coleção de narrativas de situações no domínio que favorecem o
levantamento de informações, a identificação de problemas e a antecipação das
soluções.
3) O que é um requisito de negócio?
É um diagrama com tarefas associadas à cada papel de usuário.
É aquilo que existe independente do sistema/software.
Consistem de uma coleção de narrativas de situações no domínio que favorecem o
levantamento de informações, a identificação de problemas e a antecipação das
soluções.
São requisitos que descrevem, em termos do negócio, o que deve ser entregue ou
conseguido para fornecer valor.
Representação do fluxo de informação.
4) O que é um requisito de usuário?
São requisitos que estabelecem detalhadamente as funções e restrições do sistema.
São solicitações do próprio cliente sobre o produto, como quantidade, tipo ou data de
entrega.
São basicamente as declarações, em linguagem natural e diagramas, sobre os serviços
que o sistema oferece e as restrições para a sua operação. Escrito para os usuários.
São requisitos definidos pelas tarefas que eles realizam.
É uma base precisa para a estimativa dos recursos (custo, pessoal, prazos, ferramentas
e equipamentos).
5) Qual das abordagens listadas necessita que o analista ou engenheiro de software
seja inserido no ambiente da empresa/cliente para fazer o levantamento de
requisitos?
Observação in loco/etnografia.
Encontros.
Entrevista.
Ligação.
Contato.
Questionário Aula 5
ENGENHARIA DE SOFTWARE – Análise Estruturada
1) O que é um DFD?
É um diagrama de fluxo de dados, utilizado para mostrar as relações entre os dados,
processos que transformam esses dados e o limite entre o que pertence ao sistema e o
que está fora dele.
É uma ferramenta utilizada para modelar as bases de dados.
Trata-se de um conceito definido na década de 70 para expressar a dificuldade no
desenvolvimento de software.
O DFD é uma prática da Engenharia de Software para a criação de sistemas baseados
em testes de software.
É uma listagem de dados que mostram como os dados do sistema são formados.
2) Analise o DFD extraído do livro “Engenharia de Software: Os Paradigmas Clássicos
& Orientado a Objetos” página 337:
Agora, informe o que significa o elemento com o conteúdo “processtiorders
(processamento de pedidos)”:
O elemento representa um dado de entrada.
O elemento representa um dado de saída.
O elemento representa um fluxo.
O elemento representa uma função.
O elemento representa uma tela do sistema modelado.
3) Quais dos itens a seguir é uma limitação da análise estruturada quando comparada
com outros métodos existentes?
A Análise estruturada utiliza modelos computacionais, diferente da Orientada a Objetos,
que usa elementos do mundo real, chamados de objetos.
A análise estruturada é baseada em estruturas de dados que dificultam a
implementação do sistema.
Não é possível representar um sistema simples com a análise estruturada.
Não é possível realizar testes de software quando usamos a análise estruturada para
modelar um sistema.
A análise estruturada não utiliza ferramentas da engenharia de software, dificultando
sua utilização.
4)Qual dos itens a seguir é uma vantagem da análise estruturada quando comparada
com outras abordagens?A análise estruturada e o DFD permitem a estimativa de custo menor e de tempo maior
para um projeto.
Com a análise estruturada, o projeto atinge uma qualidade maior.
Através do diagrama de fluxo de dados, é possível se ter uma ideia mais clara do sistema
proposto.
Como a análise estruturada não se baseia em dados e processos, ela torna mais fácil a
modelagem de um sistema.
A análise estruturada obtém vantagem, pois não inclui a ferramenta DFD.
5) Em um dicionário de dados, o que os símbolos { } significam?
Significam que é constituído por determinado elemento.
Enquadram componentes opcionais.
Enquadram comentários.
Eles enquadram componentes que se repetem zero ou mais vezes.
Separam alternativas.
Questionário Aula 6
ENGENHARIA DE SOFTWARE - Teste de Software
1) Qual destas definições representa um teste de software?
O teste do software é a investigação do software a fim de fornecer informações sobre
sua qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de
utilizar o produto para encontrar seus defeitos.
Os testes de software são ações tomadas para que um projeto demore mais do que o
esperado, não sendo necessário em projetos críticos.
Os testes de software são realizados no início do projeto, antes da implementação do
software.
Testes de software buscam demonstrar a incapacidade dos desenvolvedores na criação
de soluções de qualidade.
Testes de software são um conjunto de atividades realizadas somente pelo cliente
quando recebe o produto.
2) O comportamento interno do componente de software trabalha diretamente sobre
o código-fonte do componente de software para avaliar aspectos como teste de
condição, teste de fluxo de dados, teste de ciclos, teste de caminhos lógicos e códigos
nunca executados. Das técnicas apresentadas a seguir, qual avalia esse
comportamento interno do componente de software?
Teste de caixa-preta.
Teste de caixa-branca.
Regressão.
Técnicas não funcionais.
Caixa-cinza.
3) Qual é a fase de teste em que se testam as menores unidades de software
desenvolvidas (pequenas partes ou unidades do sistema)?
Teste de aceitação.
Teste de sistema.
Teste de operação.
Teste de integração.
Teste de unidade.
4) O que é TDD na Engenharia de Software?
É um ciclo de vida desenvolvido para facilitar a criação de testes.
TDD é uma técnica de testes de software utilizada pelos usuários dos sistemas.
TDD é um modelo clássico da Engenharia de Software e não é mais utilizado.
TDD é um sistema usado para testar software de forma automatizada.
O TDD é uma técnica de desenvolvimento de software que se baseia na criação inicial
de testes de software antes mesmo do desenvolvimento.
5) O ciclo de vida de testes de software tem cinco fases: planejamento, preparação,
especificação, execução e entrega. Qual fase tem como objetivo elaborar e revisar os
casos e roteiros de testes?
Planejamento.
Preparação.
Execução.
Especificação.
Entrega.
Questionário Aula 7
ENGENHARIA DE SOFTWARE - Verificação, Validação e Testes de Software
1) A verificação e a validação compõem a fase em que os softwares são submetidos a
diversos testes; cada uma das atividades desempenhando funcionalidades diferentes.
Assinale a alternativa que traz a definição da funcionalidade referente à verificação e
à validação, respectivamente.
A verificação é responsável por realizar a análise do software diante dos requisitos
funcionais e não funcionais, de modo a garantir o desenvolvimento correto do software.
A validação assegura que o sistema atenda aos requisitos do cliente.
A validação está relacionada aos requisitos funcionais e não funcionais, enquanto a
verificação está relacionada aos requisitos do cliente.
A verificação é responsável por garantir que o produto está sendo desenvolvido de
maneira correta, e a validação se relaciona aos processos de produção.
A validação questiona se o produto está sendo desenvolvido de forma correta, enquanto
a verificação realiza diversos testes para localizar os erros.
Na verificação, o software deve constar da forma que foi especificado pelo cliente, e a
validação certifica que o desenvolvimento certo do produto está sendo realizado.
2) Assinale a alternativa que traz o tipo de teste funcional que verifica se o sistema
valida todas as transações e retorna todas as mensagens de erro no caso de receber
informações incorretas.
Teste funcional de requisitos.
Teste funcional de regressão.
Tratamento de erros.
Teste em paralelo.
Teste de controle.
3) Assinale a alternativa que consta o tipo de teste que analisa o desempenho do
sistema com dados reais, testando a performance com múltiplos acessos
simultaneamente.
Teste de unidade.
Teste de execução.
Teste de recuperação.
Teste de operação.
Teste de estresse.
4) Assinale a alternativa que traz o tipo de teste em que a arquitetura do software é
desenvolvida em paralelo à aplicação de diversos testes, em que o foco é a descoberta
de erros relacionados à interface.
Teste de unidade.
Teste de aceitação.
Teste de segurança.
Teste de integração.
Teste de validação.
5) Assinale a alternativa que traz, respectivamente, os tipos de testes responsáveis por
encontrar erros de estrutura de dados e as decisões lógicas de um software.
Caixa-preta e caixa-branca.
Unidade e execução.
Caixa- branca e caixa-preta.
Aceitação e caixa-preta.
Caixa-preta e sistemas.
Questionário Aula 8
ENGENHARIA DE SOFTWARE – Métricas de Software
1) Métricas de software são formas utilizadas para quantificar o esforço necessário
para o desenvolvimento de um sistema de software.
É correto afirmar que:
um indicador faz parte de uma métrica.
os custos, as funcionalidades e a quantidade de erros são considerados métricas
indiretas.
a métrica de pontos de função só pode ser calculada após o término do código.
linhas de código, esforço e memória são consideradas métricas diretas.
métricas de produtividade indicam quanto o software adere aos requisitos.
2) As métricas de software são amplamente utilizadas para fazer gerenciamento de
projetos de software. Sendo assim, assinale a alternativa que corresponde à utilidade
principal das métricas.
Servem para medir a produtividade da equipe e indicar a qualidade do produto.
Sinalizam quando uma mudança ocorreu no projeto de software.
São utilizadas para atestar a soma total de todos os produtos do projeto assim como de
seus requerimentos.
Mostram o trabalho que deve ser desenvolvido para entregar um produto/serviço
conforme o que foi acordado.
Servem para dividir as principais entregas do projeto em componentes menores.
3) Um processo de métricas de software pode ser caracterizado por cinco atividades.
Assinale a alternativa que corresponde à atividade utilizada para acumular os dados.
Coleta.
Interpretação.
Análise.
Realimentação.
Formulação.
4) Métricas de software podem ser diretas ou indiretas.
Sendo assim, assinale a alternativa correta.
Métricas diretas são aquelas que representam uma quantidade observada, tais como
custo, esforço, número de linhas de código, tempo de execução e número de defeitos.
Métricas diretas são aquelas que exigem análise e estão relacionadas à funcionalidade,
à qualidade, à complexidade e à manutenibilidade.
Métricas indiretas são aquelas que representam uma quantidade observada, tais como
custo, esforço, número de linhas de código, tempo de execução e número de defeitos.
Métricas diretas medem a efetividade da equipe.
Métricas diretas estão condicionadas ao gerente do projeto.
5) De acordo com as métricas de software, a análise dos pontos de função é uma forma
de medição das funcionalidades fornecidas por um software sob o ponto de vista:
do gerente do projeto.
dos usuários.do programador.
do analista do sistema.
do engenheiro de software.