Artigo

[Dataprev] Apresentação e Comentários Desenvolvimento

Boa noite, pessoal! Como foram no concurso da Dataprev? Espero que bem!

Meu nome é Leon Sólon e serei o professor de desenvolvimento de software do Estratégia Concursos a partir de agora! Estarei em conjunto com o prof. Diego Carvalho e essa grande equipe de TI que se dedica para que todos tenham a melhor preparação para concursos da área.

Um breve currículo e vamos logo para o que interessa, comentários da prova da Dataprev de hoje.

Sou bacharel em Ciência da Computação pela Universidade de Brasília (UnB), Mestre em Computação Aplicada também pela UnB e com MBA em Gerência de Projetos de Tecnologia pela Unieuro. Aprovado nos concursos: Auditor-Fiscal da RFB em 2005 (cargo atual), Analista de Informática Legislativa da Câmara dos Deputados em 2007 (nomeado e exercício), Técnico em Informática do TST em 2005 (nomeado), Técnico em Informática do MPU em 2004 (nomeado e exercício) e Analista de Sistema do Serpro em 2004 (nomeado e exercício).

Dataprev - Estratégia Concursos

Dataprev – Estratégia Concursos

As provas para todos os cargos da Dataprev foram bem o que esperávamos, com questões relativamente fáceis em desenvolvimento e bastante diretas. Algumas muito subjetivas pro meu gosto, tipo de questão que não avalia bem se o candidato conhece a tecnologia. Comento nesse post as provas dos cargos de infraestrutura e de desenvolvimento. Fiz um OCR nas provas e pode ser que passou algum errinho na descrição das questões, me avisem se acharem algo que comprometa o entendimento. Vamos lá!

INFRAESTRUTURA

Questão 36

Com base na linguagem de programação Java, assinale a alternativa que apresenta, correta e respectivamente, as palavras que correspondem aos seguintes propósitos.

1. Indicar que uma classe não pode ser estendida
2. Determinar se um objeto é instância de determinada classe, superclasse ou interface
3. Especificar que um método não pode ser sobrescrito

a) 1. Extends / 2. Instanceof / 3. Final
b) 1. Final / 2. Cast / 3. Final
c) 1. Extends / 2. Typecast / 3. Abstract
d) 1. Final / 2. Instanceof / 3. Final
e) 1. Final / 2. Cast / 3. Override

Item 1: Uma classe que não pode ser estendida, ou seja, que não pode ser superclasse de nenhuma outra classe deve ser criada com a palavra-chave “final”.

Item 2: existe um operador em Java para testar qual a classe, superclasse ou interface de um objeto: instanceof. Chamado de operador para comaparação de tipos funciona assim: objetoY instanceof ClasseX. Esse operador retorna um valor booleano, true ou false.

Item 3: Mais um uso para a palavra-chave “final”. Quando não queremos que um método seja sobrescrito, ou seja, tenha sua implementação substituída pelo novo método, utilizamos “final”.

Resposta, portanto, é letra D

Questão 37.

É correto afirmar que, no protocolo HTTP 1.1,

a) códigos de resposta iniciados por 5 indicam situação de erro. A resposta 501, por exemplo, indica que o servidor está indisponível
b) alguns métodos HTTP detém a propriedade da idempotência na qual o resultado de uma requisição realizada com sucesso é independente do número de vezes que é executada. PUT, DELETE, GET, POST e HEAD são exemplos de métodos idempotentes.
c) a autenticação DIGEST aplica uma função de hash a uma senha antes de enviá-la pela rede. Tipicamente, utiliza-se a codificação BASE-64
d) o uso de conexões persistentes e a criação de recurso nativo para manutenção de estado (servidor retém informações sobre cada usuário entre requisições) são novidades acrescentadas na versão 1.1 do protocolo
e) o método POST é mais seguro que o GET na medida em que não armazena parâmetros no histórico do navegador tampouco em logs do servidor

Item a: o erro 501 na verdade informa que o servidor não entende ou não suporta o protocolo HTTP (errado)
Item b: a explicação de idempotência de métodos está correta, mas nos exemplos inclui o método POST, que não tem essa propriedade (errado)
Item c: a autenticação DIGEST utiliza como padrão o algoritmo MD5 e não a codificação BASE-64 (errado)
Item d: a primeira parte está ok, mas a versão 1.1 do HTTP não muda o fato de o protocolo ser STATELESS, ou seja, não há recursos nativos para manutenção de estados. Isso é simulado por aplicações web, mas nativamente o HTTP não possui essa característica, mesmo na versão 1.1
Item e: como nas requisições que utilizam o POST a URL não mostra os parâmetros que estão sendo enviados ao servidor, exite essa pequena vantagem em contraposição ao GET, que explicita tudo que é enviado na própria URL.

Resposta, letra E

Questão 39.

Correlacione o framework Java ou a tecnologia de desenvolvimento (Coluna 1) com sua definição (Coluna 2) e, em seguida, assinale a alternativa que apresenta a sequência correta.

COLUNA 1

1. AJAX
2. JSP
3. JSF 2
4. Hibernate

COLUNA 2

( ) Permitir incluir código JavaScript e Java em páginas para web, este último por meio de scriptlets, declarações e expressões
( ) Possui nativamente uma tag capaz de realizar solicitações HTTP assíncronas
( ) O objeto XMLHttpRequest é a base desse mecanismo. Usado para trocar informações com o servidor sem que haja necessidade de recarregar a página por completo.
( ) Neste framework, objetos podem estar em um dos seguintes estados: transiente, persistente e desatachado (detached)

a) 1/4/3/2
b) 3/4/1/2
c) 3/2/1/4
d) 2/3/1/4
e) 2/1/3/4

Coluna 2

(2. JSP) Descrição mostra as principais características e elemenos das páginas JavaServer Pages
(3. JSF 2) JavaServer Faces trouxe na versão 2 a possibilidade de realizar requisições assincronas de modo nativo, o que era possível nas versões anteriores somente com o uso de bibliotecas adicionais.
(1. AJAX) Asynchronous Javascript and XML se baseia no uso do objeto XMLHttpRequest para permitir requisições assíncronas aos servidores Web.
(4. Hibernate) Hibernate é utilizado como ferramenta de mapeamento objeto/relacional. Os estados possíveis dos objetos mapeados sãoÇ
– Persistente: o objeto está associado a um contexto de persistência e possui um identificador (mas pode ainda não existir fisicamente no BD)
– Transiente: objeto acabou de ser criado e ainda não está ligado a um contexto de persistência e não tem um identificador
– Desatachado: possui um identificador, mas não está mais ligado a um contexto de persistência

Resposta é a letra D

DESENVOLVIMENTO

Questão 21.

Vulnerabilidade em software é um conjunto de condições que podem levar à violação de uma política de segurança explicita ou implícita. Desse modo, assinale a alternativa que se aplica a uma vulnerabilidade por injection.

(A) É um link que aponta para outro arquivo e atua como o arquivo apontado. Geralmente, ocorre em programas que não checam se o arquivo que devem abrir e ou não um link.
(B) Ocorre em ambientes que suportam multiprogramação.
(C) Geralmente, ocorre quando mais dados do que o suportado tentam ser armazenados.
(D) A vulnerabilidade ocorre quando comandos são dinamicamente gerados.
(E) A vulnerabilidade ocorre quando as especificações definem como os dados devem ser representados, utilizando, muitas vezes, o printf() e o syslog();

A questão traz itens bem confusos e não pede que se selecione a que mais se aplica a vulnerabilidade por injection. A resposta “menos pior” é a letra D. SQL Injection, um exemplo de vulnerabilidade por injeção, ocorre quando comandos SQL são dinamicante criados e enviados ao SGBD. Por falta de tratamento da aplicação, códigos maliciosos podem alcançar o banco de dados e permitir acesso indevido.

Disse, a “menor pior” porque a letra B poderia ser considerado certa. Mesmo que a classificação mono e multiprogramada tenha relação mais direta com o tipo de SO e não tenha muito a ver com a vulnerabilidade por injection, é claro que é possível esse tipo de falhas de segurança em ambientes que suportam multiprogramação.

Resposta, portanto, é a letra D.

Questão 22.

Diferentes tipos de estrutura de dados são adequados a diferentes tipos de aplicação e algumas estruturas são altamente especializadas. destinando-se a algumas tarefas específicas. A escolha de uma estrutura de dados apropriada pode tornar um problema complicado em um de solução relativamente simples. Das estruturas de dados clássicas listadas abaixo, assinale a alternativa que apresenta a baseada no princípio LIFO.

(A) Lista.
(B) Vetores.
(C) Pilha.
(D) Fila.
(E) Arvore.

Questão bem fácil. LIFO – last in first out, ou ainda, o último a entrar na estrutura é o primeiro a sair. Sabemos, e vimos na aula do prof. Diego, que as pilhas tem essa característica. Resposta é a letra C.

Questão 40

As estruturas de dados. na maioria dos casos. baseiam-se nos tipos de armazenamento vistos dia a dia. ou seja. nada mais são do que a transformação de uma forma de armazenamento já conhecida e utilizada no mundo real adaptada para o mundo computacional. Uma estrutura de dados que utiliza somente um tipo de dado em sua definição é conhecida como dados homogêneos. Assinale a alternativa que apresenta o tipo de dado que tem uma estrutura linear que necessita de um indice para que seus elementos sejam endereçados.

(A) Matriz.
(B) Inteiro.
(C) Real.
(D) Vetor.
(E) Ponteiro.

Questão fácil. Estrutura que utilizam índices nas alternativas são matriz e vetor, mas somente o último é linear.

Resposta D

Questão 41.

A avaliação de desempenho de um algoritmo quando executado por um computador pode ser feita a posteriori ou a priori. Quando avaliada a posteriori. é correto afirmar que a avaliação de desempenho

(A) consiste em envolver, a execução do algoritmo sem medir o tempo de execução.
(B) consiste em avaliar sem a necessidade de executar o algoritmo, de forma analítica.
(C) consiste em avaliar o algoritmo de forma analítica, considerando os itens de entrada e os números de instruções executadas pelo algoritmo.
(D) envolve a execução propriamente dita do algoritmo. medindo-se o tempo de execução.
(E) não envolve a execução do algoritmo. porem exige-se o conhecimento da arquitetura da máquina e da linguagem de programação usada.

Uma avaliação a posteriori executa o algoritmo para medir o tempo de execução. A avaliação a priori não executa e avalia analiticamente com base na entrada e saída.

Resposta D

Questão 42.

Na programação orientada a objetos. implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento e os estados possiveis de seus objetos. assim como o relacionamento com outros objetos. Pode- se afirmar que quando duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que tem a mesma identificação (assinatura). mas comportamentos distintos. especializados para cada classe. trata-se de um(a)

(A) interface.
(B) herança.
(C) polimorfismo.
(D) encapsulamento.
(E) abstração.

Conceito clássico de polimorfismo. Uma superclasse AparelhoEletronico possui o método play(), e também as possuem suas classes derivadas AparelhoDeSom e TVDigitalMegaBlaster, mas os métodos play() de cada uma tem implementações diferentes.

Resposta C.

Questão 43.

Com Expression Language (EL), e possivel ter acesso a objetos armazenados pelo Servlet em escopos de página, requisição, sessão ou aplicação, escrevendo apenas o nome do objeto.

<%

Aluno a = new Aluno();
request.setAttribute(“aluno’, a);
%>
${aluno}

Assinale a alternativa que apresenta o que acontece ao se encontrar a seguinte tag:

EL como ${aluno}

(A) O container JSP procurara por uma variável em algum dos escopos (PageContext, HttpServletRequest, HttpSession e ServletContext). Caso encontre o objeto, o método toString é invocado.
(B) O container JSP especifica o objeto (requestScope) e invoca o método toString.
(C) O container JSP especifica o objeto (sessionScope) e invoca o método Void.
(D) O container JSP especifica o objeto (paramValues) e invoca o método Main.
(E) O container JSP procurará por uma variável no escopo (PageCcntext) e, caso encontre o objeto. o método Main e invocado.

Toda página JSP é uma Servlet que possui o método out.print(strigQualquer). Quando o código acima é invocado, o conteiner JSP primeiramente procura o atributo “aluno” em um dos escopos, do mais restrito ao mais geral. Se o objeto for encontrado ele deverá ter sua saída a partir do método da Servlet correspondente à páginha JSP out.print(). Como o método requer uma String, o método toString é invocado.

Resposta letra A.

Questão 44.

JavaScript é uma linguagem de programação baseada em scripts e padronizada pela ECMA Internacional. uma linguagem de programação que traz melhorias para a linguagem HTML. permitindo a execução de comandos do cliente. ou seja. em termos do navegador e não do servidor web. Sabendo-se que o JavaScript tem pouca semelhança com a linguagem de programação Java, assinale a alternativa que apresenta uma caracteristica que não é atribuida ao JavaScript.

(A) Linguagem interpretada.
(B) Linguagem flexivel.
(C) Ligações estáticas: os objetos devem existir durante o download.
(D) Acessibilidade do código.
(E) Ligações dinamicas: as referencias dos objetos são verificadas durante o download.

Questão média. Todas são características da linguagem JavaScript, com exceção da letra C. Por ser uma linguagem interpretada as ligações em javacript são dinâmicas, ou seja, os objetos não precisam está disponíveis antes do download, ao contrário de muitas linguagens compiladas.

Resposta C

Questão 45.

A tecnologia Servlet é a base do desenvolvimento de aplicativos web, usando a linguagem de programação Java. O Servlet oferece diversos beneficios que não estão necessariamente disponíveis em outras tecnologias. Dentre os benefícios abaixo, assinale a alternativa que apresenta uma caracteristica que não é atribuida ao Servlet.

(A) Desempenho.
(B) Portabilidade.
(C) Robustez.
(D) Simplicidade.
(E) Aceitação difundida.

Questão bem ruim para avaliar a qualidade do candidato, por conter conteúdo muito subjetivo ao invés de pedir características de funcionamento ou implementação, mas vamos aos itens.

Item a: servelt tem um bom desempenho, pois é uma classe java como outra qualquer
Item b: também é portável por ser escrita em Java e possuir especificações de implementação
Item c: são consideradas robustas e escaláveis
Item d: não são simples de usar em comparação com outras tecnologias, como JavaServer Pages e JSF.
Item e: muito utilizada até hoje “debaixo do capô” de várias tecnologias e continua parte do JEE na versão 7. Pode-se afirmar que é bem aceita.

Resposta, letra D

Questão 46.

Padrões de projetos sao soluções para problemas que alguém um dia teve e resolveu aplicando um modelo que foi documentado e que o usuário pode adaptar integralmente ou de acordo com a necessidade de sua soluçao. O sucesso para o desenvolvimento de aplicações com tecnologia orientada a objetos está intimamente ligado a arquitetura que será utilizada para construir a aplicaçâo. A tendencia indica que esta arquitetura estara baseada na organização da aplicação em camadas e na observação dos padrões utilizados pelo mercado. Das alternativas abaixo. assinale aquela que conceitua o padrão de 3 camadas para desenvolvimento web.

(A) Nesta estrutura. a base de dados foi colocada em uma maquina especifica, separada das máquinas que executavam as aplicações.
(B) Nesta abordagem, ha aplicativos instalados em estações clientes contendo toda a lógica da aplicação (clientes ricos ou gordos).
(C) Um grande problema neste modelo é o gerenciamento de versões, pois, para cada alteração. os aplicativos precisam ser atualizados em todas as maquinas clientes.
(D) Neste modelo. o aplicativo é movido para o servidor e um navegador web é usado como um cliente magro. O aplicativo é executado em servidores web, com os quais o navegador web se comunica e gera código HTML para ser exibido no cliente
(E) Nessa estrutura, entrada do usuário, verificação, lógica de negócio e acesso ao banco de dados estavam presentes em um mesmo lugar

Questão fácil. Modelo de 3 camadas no desenvolvimento web separa cliente magro no navegador web, servidor web e servidor de banco de dados. Letra A afirma que o SGDB precisa estar numa máquina específica, o que não é necessário, pois vários servidores diferentes podem conviver na mesma “máquina”. Letra B afirma que há clientes gordos em aplicações web com toda a lógica da aplicação, o que sabemos não ser verdade, pois nessa arquitetura a lógica de negócio fica no servidor web. A letra C está errada porque as alterações de versão não implicam em mudanças no lado cliente web. Letra E é o extremo oposto da lógica de separação em camadas.

Resposta é a letra D.

Questão 48.

Uma estratégia de teste de software deve acomodar teste de baixo nivel. necessário para verificar se um segmento de código-fonte foi corretamente implementado. bem como teste de alto nivel que valide funções importantes do sistema contra requisitos do cliente. Assinale a alternativa que apresenta o tipo de teste que testa se um ou mais componentes combinados funcionam de maneira satisfatória.

(A) Teste de Volume.
(B) Teste de Performance.
(C) Teste de Unidade.
(D) Teste de Integração.
(E) Teste de Integridade.

Letra D, teste de integração.

Questão 49.

Leia o trecho abaixo e. em seguida, assinale a alternativa que preenche corretamente a lacuna.

O Teste de _____ é, na verdade, uma série de diferentes testes. cujo propósito primordial é por. completamente a prova. o sistema baseado em computador. Apesar de cada teste ter uma finalidade diferente, todo o trabalho deve verificar se todos os elementos do sistema foram adequadamente integrados e realizam as funções atribuídas.

(A) Sistema
(B) Recuperação
(C) Segurança
(D) Desempenho
(E) Integração

Conceito de teste de sistema, letra A.


Pessoal, esses foram os comentários da prova da Dataprev! Nas outras provas não encontrei nada de desenvolvimento, mas se passou batido me avisem que acrescento no post. Fiquem à vontade para perguntar e apontar equívocos na correção. Boa sorte a todos!

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Boa noite, Diego! Seu xará, prof. Diego Carvalho, comentou a questão! https://www.estrategiaconcursos.com.br/blog/dataprev-comentarios-de-engenharia-de-software-da-prova-de-desenvolvimento/ Abraços!
    Leon Sólon da Silva em 23/11/16 às 19:43
  • Obrigado professor Léon pela prontidão na solução, voce poderia dar sua opinião na questão 37 (métodos ágeis) da prova de desenvolvimento, é que ela não consta neste artigo. Desde já, grato!
    Diego em 23/11/16 às 09:10
  • Na prova de Infraestrutura e Aplicações caiu questões de COBIT, e no edital não tinha.
    Tiag em 21/11/16 às 12:05
  • Parabéns ao Estratégia por essa ótima contratação e por estarem investindo em bons cursos de TI, que continuem assim!
    Alessandre em 21/11/16 às 08:56