Simulado para concurso gratuito

Analista em Computação com ênfase em programação de sistemas na tecnologia JAVA para PROCERGS de 2023

Em relação à engenharia de software, analise as assertivas abaixo e assinale V, se verdadeiras, ou F, se falsas. ( ) É uma disciplina de engenharia que visa a todos os aspectos da produção de software, desde as fases iniciais (especificação) até a manutenção do sistema (quando já está em uso). ( ) Tem relação com a qualidade dos resultados esperados, visando a cumprir orçamento e cronograma especificados nos projetos de software. ( ) A abordagem sistemática chamada processo de software descreve a sequência de atividades da produção de um software. A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

A) F – V – F.

B) F – F – V.

C) V – F – F.

D) V – V – F.

E) V – V – V.

Sobre a importância da engenharia de software, analise as assertivas abaixo e assinale a alternativa correta. I. A longo prazo, normalmente, é mais barato utilizar métodos e técnicas da engenharia de software para produzir sistemas de software. II. Devido à demanda crescente de softwares avançados, é preciso desenvolvê-los para serem ágeis e confiáveis, pois cada vez mais são demandados por indivíduos e sociedades. III. Na maioria dos sistemas de software, a menor parte do custo está relacionada com a modificação depois que ele está em uso.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Entrevistas são utilizadas para a realização do levantamento de requisitos como parte do processo da engenharia de requisitos. Analise as assertivas abaixo e assinale a alternativa correta. I. Nas entrevistas fechadas, elabora-se um determinado e predefinido conjunto de perguntas. II. As entrevistas abertas são realizadas de maneira menos estruturada que as fechadas e permitem que os envolvidos falem abertamente sobre determinadas questões. III. Na prática, a equipe de engenharia de requisitos costuma realizar uma mistura entre entrevistas abertas e fechadas por serem mais eficazes para obter a resposta de determinadas questões.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Há quatro atividades fundamentais comuns a todos os processos de software. Assinale a alternativa que as apresenta na sequência correta do desenvolvimento de um sistema de software.

A) Análise, codificação, evolução e validação.

B) Requisito, validação, implementação e manutenção.

C) Especificação, desenvolvimento, validação e evolução.

D) Codificação, testagem, análise e manutenção.

E) Implementação, testagem, manutenção e retirada.

No processo de validação de requisitos, diferentes tipos de verificação podem ser realizados nos requisitos que foram identificados. Analise as assertivas abaixo e assinale a alternativa correta em relação aos tipos de verificação de requisitos que existem. I. Validade: verifica se os requisitos são válidos. II. Consistência: verifica se os requisitos estão consistentes. III. Completude: verifica se os requisitos estão completos. IV. Vencimento: verifica se os requisitos estão vencidos. V. Resistência: verifica se os requisitos são resistentes à mudança.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I, II e III estão corretas.

D) Apenas I, IV e V estão corretas.

E) Apenas II, III e IV estão corretas.

Para realizar o levantamento de requisitos, a equipe de engenharia de requisitos utiliza técnicas para adquirir conhecimento sobre determinado negócio. A técnica que realiza o estudo da documentação disponível, visando a obter informações relevantes para o desenvolvimento de um sistema de software, é:

A) Análise de documentos.

B) Entrevista.

C) Observação (etnografia).

D) Pesquisa/questionário.

E) Reunião.

A orientação a objetos é um paradigma de programação que utiliza os conceitos de objetos e classes. Sobre o assunto, analise as assertivas abaixo e assinale a alternativa correta. I. Facilita a associação da máquina com o mundo real, uma vez que tudo pode ser representado na esfera digital. II. Os elementos do mundo real são representados por objetos que são criados por meio de classes. III. Os objetos armazenam dados e possuem comportamentos definidos por seus atributos.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

A orientação a objetos específica diversos conceitos, dentre eles, a coesão de classes. O conceito de coesão de classes define que cada classe:

A) Necessita pelo menos um método abstrato para ser considerada abstrata.

B) Precisa implementar o maior número possível de dependências, como forma de estruturar bem os relacionamentos com outras classes.

C) Obtém da superclasse os atributos e métodos para proporcionar reuso de código-fonte.

D) Requer atributos privados e métodos públicos para impor maior segurança.

E) Deve representar uma única entidade em relação ao domínio de um problema.

Sobre acoplamento de classes na orientação a objetos, analise as assertivas abaixo e assinale a alternativa correta. I. Descreve a interconectabilidade das classes. II. Como boa prática, o acoplamento entre as classes de um sistema de software deve ser forte. III. Espera-se que as classes de um sistema de software sejam independentes de outras classes e que as interfaces sejam pequenas e bem definidas.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Na orientação a objetos, o encapsulamento tem por objetivo:

A) Ocultar atributos e métodos das classes para que acessos externos sejam restritos.

B) Restringir o acesso aos métodos da classe visando a impor maior segurança.

C) Definir atributos como públicos para que possam ser acessados diretamente por outras classes.

D) Proteger os atributos para que apenas os métodos da própria classe possam acessá-los diretamente.

E) Impedir o acesso aos atributos da classe por meio de herança de segurança.

Sobre herança de classes na orientação a objetos, analise as assertivas abaixo e assinale a alternativa correta. I. É um relacionamento do tipo “é um” entre a subclasse e a superclasse. II. Uma subclasse é uma especialização de uma superclasse. III. Os atributos de uma superclasse são herdados pela subclasse que a estende.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Na orientação a objetos, o(a) _____ estabelece um relacionamento hierárquico entre uma superclasse e uma ou mais subclasses, permitindo que as subclasses obtenham todos os _____ e métodos da superclasse. A _____ possibilita que uma subclasse implemente um método com o mesmo nome de um método de uma superclasse, porém, necessariamente com a mesma assinatura. Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

A) abstração – dados – sobrescrita

B) herança – atributos – sobrescrita

C) herança – atributos – sobrecarga

D) polimorfismo – dados – sobrescrita

E) polimorfismo – atributos – sobrecarga

Sobre o padrão MVC (Model-View-Controller) de projeto, analise as assertivas abaixo: I. Model é responsável por invocar as regras de negócio e enviar as informações para serem exibidas pela View. II. View faz a captação das ações e a atualização das informações exibidas ao usuário. III. Controller mantém e realiza a alteração do estado dos valores que são fornecidos à View.

A) Apenas II.

B) Apenas I e II.

C) Apenas I e III.

D) Apenas II e III.

E) I, II e III.

Sobre injeção de dependência, analise as assertivas abaixo e assinale a alternativa correta. I. Recomenda-se implementar a injeção de dependência quando uma classe é dependente de outra. II. A injeção de dependência não permite desacoplar uma classe de suas classes dependentes, mas facilita o entendimento da implementação. III. Uma das formas de implementação é pela criação de um pool de objetos, no qual objetos são retirados para serem injetados em uma classe.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Sobre fundamentos de testes de software, o International Software Testing Qualifications Board (ISTQB) define que _____ é uma falha humana e produz resultado incorreto, enquanto _____ é o resultado de um código mal escrito que causa anomalia no funcionamento de um sistema. Já _____ é o funcionamento inesperado das funções do software. Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

A) erro – falha – defeito

B) erro – defeito – falha

C) defeito – erro – falha

D) defeito – falha – erro

E) falha – defeito – erro

Relacione a Coluna 1 à Coluna 2, associando os tipos de testes de software com as respectivas características. Coluna 1 1. Teste unitário. 2. Teste de integração. 3. Teste de regressão. 4. Teste de sistema. Coluna 2 ( ) Avalia o software do ponto de vista do usuário. ( ) Verifica se a comunicação entre os módulos está feita de modo correto. ( ) Reaplica os testes já realizados em novas versões do sistema. ( ) Confere a funcionalidade geral do sistema. ( ) Permite que cada funcionalidade do sistema seja analisada individualmente. A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

A) 2 – 3 – 2 – 1 – 4.

B) 4 – 1 – 3 – 2 – 3.

C) 4 – 2 – 3 – 4 – 1.

D) 1 – 3 – 2 – 4 – 4.

E) 2 – 1 – 1 – 3 – 4.

Sobre a criação de testes unitários na linguagem Java com o uso do framework JUnit, qual instrução deve ser utilizada para comparar o resultado esperado com o resultado obtido?

A) assertFind

B) assertCompare

C) assertIdentic

D) assertEquals

E) assertLike

Sobre Application Development Lifecycle Management (ADLM), analise as assertivas abaixo e assinale a alternativa correta. I. Os produtos ADLM focam na parte do desenvolvimento do ciclo de vida de software. II. Se concentra em atividades de planejamento e governança do ciclo de vida de desenvolvimento de software (SDLC). III. Engloba o gerenciamento do ciclo de vida da aplicação (ALM) como parte do seu escopo de atuação.

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

GIT é um sistema de controle de revisão distribuído que possui um conjunto de comandos para realizar operações de versionamento de arquivos. O comando _____ cria uma versão dos arquivos modificados no repositório local como uma espécie de fotografia, registrando a situação atual deles, e o comando _____ envia essas modificações para o repositório remoto. Já o comando _____ é utilizado para trazer as atualizações do repositório remoto fazendo merge automaticamente com os arquivos do repositório local. Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho acima.

A) add – send – fetch

B) add – send – pull

C) commit – push – fetch

D) commit – push – pull

E) start – give – get

Analise o seguinte trecho de código Java: int n= 4; for (int i= n-1; i > 1; i--){ n*= i + n; } Qual será o valor da variável n após a execução?

A) 48

B) 96

C) 192

D) 384

E) 840

Analise o seguinte trecho de código Java: int n= 017; System.out.println(n); O que acontecerá após a execução?

A) Imprime 017 na saída padrão.

B) Imprime 17 na saída padrão.

C) Imprime 15 na saída padrão por conversão implícita de octal para decimal.

D) Produz erro de compilação.

E) Produz erro em tempo de execução.

Analise o seguinte trecho de código Java: int n= 2, x; x= ++n + n++ + ++n + n++; System.out.println(x + n); O que será escrito na saída padrão após a execução?

A) 12

B) 16

C) 20

D) 22

E) 24

Analise o seguinte trecho de código Java: int n; System.out.println(++n); O que acontecerá após a execução?

A) Imprime null na saída padrão.

B) Imprime 0 na saída padrão.

C) Imprime 1 na saída padrão.

D) Produz erro de compilação.

E) Produz erro em tempo de execução.

Analise o seguinte trecho de código Java: String a = "aa"; String b = "bb"; a.concat(b); System.out.println(a); O que será escrito na saída padrão após a execução?

A) aa

B) bb

C) aabb

D) bbaa

E) aaaabb

Analise o seguinte trecho de código Java: import java.util.Set; import java.util.HashSet; public class Conjunto { public static void main(String[] args) { Set conjunto = new HashSet(); conjunto.add(2); conjunto.add(5); conjunto.add(1); conjunto.add(2); System.out.println(conjunto.toString()); } } O que será escrito na saída padrão após a execução?

A) [2, 5, 1, 2]

B) [2, 5, 1]

C) [1, 2, 2, 5]

D) [1, 2, 5]

E) Mensagem de erro de compilação.

Analise o seguinte trecho de código Java: import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class Iteracao { public static void main(String[] args) { Map produto = new HashMap(); produto.put(1, "Camisa"); produto.put(2, "Calça"); Analise as assertivas abaixo e assinale a alternativa correta para imprimir, na saída padrão, a relação apenas dos nomes dos produtos do HashMap produto. I. for (Map.Entry p:produto.entrySet()) { System.out.println(p.getValue()); } II. Iterator> produtos = produto.entrySet().iterator(); while (produtos.hasNext()) { Map.Entry p = produtos.next(); System.out.println(p.getValue()); } III. produto.forEach((value)-> { System.out.println(value); });

A) Todas estão corretas.

B) Todas estão incorretas.

C) Apenas I e II estão corretas.

D) Apenas I e III estão corretas.

E) Apenas II e III estão corretas.

Analise o seguinte trecho de código Java: import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ArrayLista { public static void main(String[] args) { List str = Arrays.asList("c", "a", "b"); str.sort(); System.out.println(str.toString()); } } O que será escrito na saída padrão após a execução?

Analise o seguinte trecho de código Java: StringBuilder sb = new StringBuilder("Memória"); sb.append(" ocupada."); Em qual local a JVM (Java Virtual Machine) armazenará a instância de sb?

A) Heap

B) Perm

C) Stack

D) Swap

E) Sweep

São anotações de proteção de acesso (Securing Access) ao Enterprise Java Beans (EJB) versão 3.2:

A) @DeclareBeans, @PermitFull, @DenyFull, @RolesAll e @Run.

B) @SecurityBeans, @PermitFull, @DenyFull, @RolesAll e @Run.

C) @DeclareRoles, @PermitAll, @DenyAll, @RolesAll e @RunAs.

D) @SecurityRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs.

E) @DeclareRoles, @PermitAll, @DenyAll, @RolesAllowed e @RunAs.

No Contexts and Dependency Injection (CDI) versão 2.0, da plataforma Java EE (Enterprise Edition), existem cinco tipos de escopo padrão, definidos no pacote javax.enterprise.context. Quais são?

A) @RequestScoped, @ApplicationScoped, @SessionScoped, @ConversationScoped e @Dependent.

B) @ResponseScoped, @InterfaceScoped, @CookieScoped, @ConversationScoped e @DependentScoped.

C) @Request, @Application, @Session, @Conversation e @Dependent.

D) @RequestScoped, @ApplicationScoped, @SessionScoped, @ConversationScoped e @DependentScoped.

E) @ResponseScoped, @InterfaceScoped, @CookieScoped, @ExchangeScoped e @Dependent.

Considere uma página XHTML com JSF versão 2.3. Qual alternativa exibe corretamente as tags para a definição de um formulário, um campo texto e um botão para submeter os dados?

A) f:frm, h:text e h:button

B) f:form, f:inputText e f:commandButton

C) h:frm, h:text e h:button

D) h:form, h:inputText e h:commandButton

E) h:form, h:text e h:button

Java API para RESTful Web Services (JAX-RS) versão 2.0 implementa recursos para responder operações do protocolo HTTP. São anotações dessa API:

A) @POST, @GET, @PULL e @DELETE.

B) @Path, @Produces, @Consumes e @Context.

C) @PathParam, @QueryParam, @MatrixParam e @DefaultParam.

D) @PathValue, @DefaultValue, @ContextValue e HeaderValue.

E) @FormParam, @FormValue, @FormContext e FormHead.

O trecho de código abaixo, em Java Persistence API (JPA) versão 2.2, apresenta a declaração de uma chave primária composta de uma entidade de um banco de dados. public class PessoalImplements Serializable { String nome; String sobrenome; } public class Pessoa { @______ PessoalId id; String endereco; Assinale a alternativa que preenche, correta e respectivamente, as lacunas do trecho de código acima.

A) Embeddable – Entity – EmbeddedId

B) Instance – Entity – Primary

C) Association – Table – Primary

D) Instance – Table – EmbeddedId

E) Embeddable – Entity – Primary

Analise o seguinte trecho de código Java que implementa uma servlet versão 3.0 para imprimir uma mensagem na tela. @WebServlet("/titulo") public class TituloServlet extends ______ { protected void ______ (______ request, ______ response) throws , IOException { PrintWriter out = response.getWriter(); out.println("Servlet em processamento."); out.close(); } } Assinale a alternativa que preenche, correta e respectivamente, as lacunas do código acima.

A) Servlet – doPut – ServletRequest – ServletResponse – ServletException

B) HttpServlet – doGet – HttpServletRequest – HttpServletResponse – ServletException

C) Servlet – get – Request – Response – Exception

D) HttpServlet – doGet – HttpServletRequest – HttpServletResponse – HttpServletException

E) Servlet – doPut – ServletRequest – ServletResponse – HttpServletException

Considerando o modelo ER apresentado pela Figura 1, analise as assertivas abaixo. I. A relação entre as entidades Empregado e Cargo é do tipo N:N, por meio da entidade associativa EmpregadoCargo. II. As entidades Cargo e CargoNivel possuem um relacionamento do tipo 0:N e todo registro na entidade Cargo deve ter um registro correspondente na entidade CargoNivel. III. A entidade EmpregadoCargo pode armazenar no máximo um registro para cada registro existente na entidade Empregado, devido ao relacionamento 1:N com essa entidade.

A) Apenas I.

B) Apenas I e II.

C) Apenas I e III.

D) Apenas II e III.

E) I, II e III.

Considerando o modelo ER apresentado pela Figura 1, analise expressão SQL abaixo. select car_id, max(emc_salario) from empregadocargo, cargo where empregadocargo.car_id = cargo.car_id group by car_id having max(emc_salario) > 1000 order by max(emc_salario) desc; Qual alternativa está correta ao executar essa expressão SQL?

A) Exibe car_id e o maior valor de emc_salario de cada car_id, cujos valores de emc_salario sejam maiores que 1000, em ordem decrescente de emc_salario.

B) Apresenta car_id e emc_salario, cujos valores de emc_salario sejam maiores que 1000, em ordem decrescente de emc_salario.

C) Mostra car_id e emc_salario dos 1000 primeiros maiores valores de emc_salario, em ordem decrescente de emc_salario.

D) Apresenta os 1000 primeiros registros, dos atributos car_id e max(emc_salario), ordenados decrescentemente por max(emc_salario).

E) A expressão não executa corretamente porque possui erro de sintaxe.

Considerando o modelo ER apresentado pela Figura 1, analise a expressão SQL abaixo e assinale a alternativa correta ao executar essa expressão SQL. select car_descricao, count(1) total from empregadocargo inner join empregado on empregadocargo.emp_id = empregado.emp_id inner join cargo on empregadocargo.car_id = cargo.car_id having count(1) > 0 order by 1;

A) Mostra a quantidade de empregados (total) de cada cargo (car_descricao) que já foi ocupado, ordenado pela quantidade.

B) Exibe quantos empregados (total) ocuparam cada cargo (car_descricao) com base no histórico dessa entidade.

C) Apresenta um único cargo (car_descricao) e a quantidade (total) de cargos que já foram ocupados pelos empregados.

D) Mostra todos os cargos (car_descricao) que já foram ocupados e a quantidade de empregados (total) de cada um, ordenados alfabeticamente pela descrição dos cargos (car_descricao).

E) A expressão não executa porque possui erro de sintaxe.

Considerando o modelo ER apresentado pela Figura 1, pretende-se implementar uma expressão SQL para apresentar o nome de todos os empregados (emp_nome), a descrição APENAS do último cargo (car_descricao) que cada um assumiu, bem como a data de início (emc_inicio) nesse último cargo. Sendo assim, analise as assertivas abaixo. I. select emp_nome, (select car_descricao from empregadocargo ec, cargo c where ec.car_id = c.car_id and sub.emp_id = emp_id and sub.emc_inicio = emc_inicio) car_descricao, emc_inicio from (select emp_id, max(emc_inicio) emc_inicio from empregadocargo group by emp_id) sub inner join empregado e on e.emp_id = sub.emp_id; II. select emp_nome, car_descricao, max(emc_inicio) emc_inicio from empregadocargo ec inner join empregado e on ec.emp_id = e.emp_id inner join cargo c on ec.car_id = c.car_id group by emp_nome; III. select distinct emp_nome, car_descricao, (select max(emc_inicio) from empregadocargo where emp_id = e.emp_id and car_id = c.car_id) emc_inicio from empregadocargo ec inner join empregado e on ec.emp_id = e.emp_id inner join cargo c on ec.car_id = c.car_id group by emp_nome;

A) Apenas I.

B) Apenas I e II.

C) Apenas I e III.

D) Apenas II e III.

E) I, II e III.

Analise o seguinte trecho de código em Javascript: function myFunction(parameter) { const a = parameter.map(p => { return p.value }) const b = a.reduce((c, d) => { return c *= d * 3 }, return b } console.log(myFunction([{ name: 'a', value: 3 }, { name : 'b', value: 18 }])) O que será impresso na saída padrão?

A) 9

B) 54

C) 81

D) 162

E) 486

Relacione a Coluna 1 à Coluna 2, associando os itens de melhores práticas de programação segura com as respectivas ações que devem ser implementadas para segui-las. Coluna 1 1. Gerenciamento de sessão. 2. Segurança de comunicação. 3. Segurança de banco de dados. 4. Configuração do sistema. Coluna 2 ( ) Implemente criptografia para a transmissão de todas as informações confidenciais. ( ) Gere um novo identificador em qualquer reautenticação no sistema. ( ) Defina quais métodos HTTP, Get ou Post o aplicativo suportará e se será tratado diferentemente nas páginas do aplicativo. ( ) Localize os identificadores somente no cabeçalho do cookie HTTP. ( ) Armazene as strings de conexão criptografadas e em um arquivo de configuração separado. A ordem correta de preenchimento dos parênteses, de cima para baixo, é:

A) 2 - 1 - 4 - 1 - 3.

B) 4 - 1 - 2 - 1 - 3.

C) 4 - 1 - 2 - 3 - 4.

D) 2 - 3 - 4 - 2 - 3.

E) 4 - 3 - 1 - 2 - 4.