Correção- STJ Professor Marcelo Pacote – [email protected] W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R Acesse nosso site em WWW.DOMINANDOTI.COM.BR Cursos Livros Fórum Simulados Turmas em Brasília, na sua cidade, e cursos online Edições publicadas, lançamentos e promoções Interação direta entre estudantes e com os professores Questões inéditas, ranking de notas e correções em vídeo Blog Dicas e macetes de estudo, indicações de bibliografia, etc. Materiais Versões atualizadas de notas de aula e listas de exercícios Curta o Dominando TI no e receba nossas dicas sobre concursos! W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/120) Julgue o item subsequente à luz dos conceitos de ferramentas de integração contínua. ( ) A finalidade das ferramentas de integração contínua é a criação de soluções integradas com foco em sistemas fortemente acoplados, com necessidade de criação de uma documentação contínua. Professor Marcelo Pacote – [email protected] 3 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/120) Julgue o item subsequente à luz dos conceitos de ferramentas de integração contínua. ( ) A finalidade das ferramentas de integração contínua é a criação de soluções integradas com foco em sistemas fortemente acoplados, com necessidade de criação de uma documentação contínua. Professor Marcelo Pacote – [email protected] 4 W W W. D O M I N A N D OT I .CO M . B R Integração Contínua - Roteiro 2. Obter token 8. [Opcional] Deploy 4. Compilação + testes unitários 7. Compilação e testes 3. Update 5. Commit Servidor de IC 1. Desenvolvimento + compilação+ testes unitários SCM Professor Marcelo Pacote – [email protected] 6. update 5 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/118 e 119) Julgue os seguintes itens, relativos a conceitos de bibliotecas, serviços e utilitários Java. ( ) JUnit é um framework utilizado para facilitar a geração de testes a fim de se verificar se os resultados gerados pelos métodos escritos em Java são os esperados. ( ) O JMS (Java Message Service) permite a troca de mensagens assíncronas entre um ou mais clientes e faz parte da especificação do Java EE. Professor Marcelo Pacote – [email protected] 6 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/118) Julgue os seguintes itens, relativos a conceitos de bibliotecas, serviços e utilitários Java. ( ) JUnit é um framework utilizado para facilitar a geração de testes a fim de se verificar se os resultados gerados pelos métodos escritos em Java são os esperados. Geração Criação Possibilidade de êxito em um recurso < 5% Professor Marcelo Pacote – [email protected] 7 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/119) Julgue os seguintes itens, relativos a conceitos de bibliotecas, serviços e utilitários Java. ( ) O JMS (Java Message Service) permite a troca de mensagens assíncronas entre um ou mais clientes e faz parte da especificação do Java EE. Professor Marcelo Pacote – [email protected] 8 W W W. D O M I N A N D OT I .CO M . B R Principais componentes e APIs – J2EE Fonte: http://java.sun.com/blueprints/guidelines/designing_enterprise_applications/platform_technologies/component/index.html Professor Marcelo Pacote – [email protected] 9 W W W. D O M I N A N D OT I .CO M . B R Java EE – Componentes e APIs (2/5) Elemento Descrição JDBC (Java Database Connectivity) API que permite o envio de instruções SQL (DDLs, DMLs) para bancos de dados relacionais. Baseada no esquema de drivers. Permite que componentes baseados em Java EE criem, enviem, recebam e leiam mensagens. Viabiliza JMS (Java comunicação assíncrona, segura e fracamente acoplada Message Service) entre componentes de uma aplicação distribuída. JNDI (Java Naming and Directory Interface) API para acesso a serviços de diretórios. É utilizada em aplicações que acessam recursos externos como pool de conexões, filas ou tópicos JMS e componentes EJB. Sua interface de serviço (SPI) é genérica e permite localizar usuários, máquinas, objetos, redes e serviços. Suporta LDAP, DNS, NIS e praticamente qualquer serviço de diretórios. Professor Marcelo Pacote - [email protected] 10 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/116 e 117) Julgue os próximos itens, relacionados ao funcionamento dos frameworks para a camada de persistência. ( ) JPQL (Java Persistence Query Language) é uma linguagem de manipulação de dados adotada para criar, alterar estrutura de tabelas e gatilhos utilizados na especificação JPA (Java Persistence API). ( ) O Hibernate define um objeto transient com uma instância de um objeto que tenha persistido e que esteja em transição para consulta e utilização pela aplicação. Professor Marcelo Pacote – [email protected] 11 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/116) Julgue os próximos itens, relacionados ao funcionamento dos frameworks para a camada de persistência. ( ) JPQL (Java Persistence Query Language) é uma linguagem de manipulação de dados adotada para criar, alterar estrutura de tabelas e gatilhos utilizados na especificação JPA (Java Persistence API). DDL DML Professor Marcelo Pacote – [email protected] 12 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/117) ( ) O Hibernate define um objeto transient com uma instância de um objeto que tenha persistido (detached) e que esteja em transição para consulta e utilização pela aplicação. Professor Marcelo Pacote – [email protected] 13 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/114 e 115) Julgue os itens que se seguem acerca de HTML5, CSS3 e JSon. ( ) JSON (JavaScript Object Notation) é um formato de arquivo de texto para troca de dados em que um objeto é um conjunto de pares nome/valor. ( ) A tag definida a seguir é obrigatória na especificação de uma página que utilize HTML5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5. //PT" "http://www.w3.org/TR/html5/strict.dtd"> Professor Marcelo Pacote – [email protected] 14 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/114) ( ) JSON (JavaScript Object Notation) é um formato de arquivo de texto para troca de dados em que um objeto é um conjunto de pares nome/valor. Exemplo de documento JSON { “menu” : “m1” , “acoes” : [ {“titulo” : “X” , “desc” : “A”}, {“titulo” : “Y” , “desc” : “B”}, {“titulo” : “Z” , “desc” : “C”}] } Professor Marcelo Pacote – [email protected] 15 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/115) Julgue os itens que se seguem acerca de HTML5, CSS3 e JSon. ( ) A tag definida a seguir é obrigatória na especificação de uma página que utilize HTML5. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5. //PT" "http://www.w3.org/TR/html5/strict.dtd"> Professor Marcelo Pacote – [email protected] 16 W W W. D O M I N A N D OT I .CO M . B R HTML5 - Estrutura básica Doctype Deve ser a primeira linha de uma página com HTML5 <!DOCTYPE html> O elemento <HTML> Trata-se do elemento raiz da árvore que compõe a página <html lang="pt-br"> Charset <meta charset="utf-8"> Professor Marcelo Pacote - [email protected] 17 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/113) ( )Considere uma página HTML cujo código seja o apresentado a seguir. <!doctype html> <html> <header> <style> </html> h2 { display: inline; } </style> </header> <body> <h1>Titulo</h1> <h2>Subtitulo</h2> </body> Nessa situação, será apresentado em um navegador o seguinte resultado: Professor Marcelo Pacote – [email protected] 18 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/113) ( )Considere uma página HTML cujo código seja o apresentado a seguir. <!doctype html> <html> <header> <style> </html> h2 { display: inline; } </style> </header> <body> <h1>Titulo</h1> <h2>Subtitulo</h2> </body> inline: mesma linha block: há quebra de linha Nessa situação, será apresentado em um navegador o seguinte resultado: Professor Marcelo Pacote – [email protected] 19 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/110 e 112) Julgue os próximos itens, referentes a criptografia, clean code e refatoração. ( ) O processo de refatoração deve sempre começar com a criação de um sólido conjunto de testes para o trecho de código a ser trabalhado. A criptografia de uma chave privada, usada para codificar e decodificar as mensagens, é uma solução para que possam ser distribuídas com segurança as chaves assimétricas. ( ) No contexto de clean code, as funções devem ter tamanho reduzido. Professor Marcelo Pacote – [email protected] 20 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/110) ( ) O processo de refatoração deve sempre começar com a criação de um sólido conjunto de testes para o trecho de código a ser trabalhado. Professor Marcelo Pacote – [email protected] 21 W W W. D O M I N A N D OT I .CO M . B R Clean Code – Funções (1/2) Funções devem ser pequenas Funções devem fazer apenas uma coisa Utilizar nomes descritivos “A quantidade ideal de parâmetros para função é zero!” Dificultam os testes e o entendimento da função Objetos como parâmetros (refatoração) Professor Marcelo Pacote – [email protected] 22 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/109) ( ) Ao se executar o código Java apresentado a seguir, o resultado obtido será 13. A ausência do operador compromete a avaliação da questão. O código não compila. Seguramente cabe recuso. Professor Marcelo Pacote – [email protected] 23 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/108) ( ) O framework Java Struts foi construído para padrão de projetos estruturados em camadas que separam a camada física da camada lógica do banco de dados. Professor Marcelo Pacote – [email protected] 24 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/108) ( ) O framework Java Struts foi construído para padrão de projetos estruturados em camadas que separam a camada física da camada lógica do banco de dados. STRUTS JSF Implementação do padrão MVC (Model View Controller) para Web. Professor Marcelo Pacote – [email protected] 25 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/106 e 107) ( ) O desenvolvimento orientado a testes é uma metodologia de desenvolvimento de casos de teste de classes de funcionamento de aplicações para dispositivos móveis com ênfase nas falhas de comunicação. ( ) O Git, sistema de controle de versões que mantém um histórico completo de todas as alterações, permite a recuperação das versões do projeto na busca de informações sobre o estado dos arquivos em versões anteriores. Professor Marcelo Pacote – [email protected] 26 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/106) ( ) O desenvolvimento orientado a testes é uma metodologia de desenvolvimento de casos de teste de classes de funcionamento de aplicações para dispositivos móveis com ênfase nas falhas de comunicação. Professor Marcelo Pacote – [email protected] 27 W W W. D O M I N A N D OT I .CO M . B R TDD – Motivação Trata-se de um ciclo rápido de testes, codificação e refatoração. Código de testes é escrito antes do código de produção. Os testes são escritos em função de uma interface pública Foco no comportamento e não na implementação Professor Marcelo Pacote – [email protected] 28 W W W. D O M I N A N D OT I .CO M . B R Controle de versões (versionamento de código) Controle de versão Recuperar versões anteriores Auditar modificações realizadas (quem, quando e o quê) Permitir desenvolvimento em paralelo Prevenir conflito entre desenvolvedores Conceitos básicos: repositório: local onde são armazenados os artefatos gerenciados cópia de trabalho (workspace): local onde o usuário pode fazer seu trabalho de forma isolada. Espelho dos arquivos do repositório. Professor Marcelo Pacote – [email protected] 29 W W W. D O M I N A N D OT I .CO M . B R GIT Sistema de controle de versões distribuído Maioria das operações ocorre localmente Integridade (SHA-1 hash gerado para todos os arquivos) Open Source Originalmente escrito por Linus Torvalds em 2005 Desenvolvido para manter o Kernel do Linux Professor Marcelo Pacote – [email protected] 30 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/103) ( ) O servidor de aplicação Tomcat tem um servidor de banco de dados denominado derby, em que são armazenados os usuários, a senha e os privilégios para administrar o servidor. Professor Marcelo Pacote – [email protected] 31 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/103) ( ) O servidor de aplicação Tomcat tem um servidor de banco de dados denominado derby, em que são armazenados os usuários, a senha e os privilégios para administrar o servidor. Pode ser utilizado qualquer banco de dados com suporte a JDBC. Por padrão, é utilizado um arquivo XML (tomcat-users.xml) Professor Marcelo Pacote – [email protected] 32 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/102) ( ) Na instalação padrão do servidor HTTP Apache, a porta padrão de funcionamento é 8084 conforme a seguinte especificação: Listen 8084 <IfDefine SSL> <IfDefine !NOSSL> <IfModule mod_ssl.c> Listen 8443 </IfModule> </IfDefine> </IfDefine> Professor Marcelo Pacote – [email protected] 33 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/102) ( ) Na instalação padrão do servidor HTTP Apache, a porta padrão de funcionamento é 8084 conforme a seguinte especificação: Listen 8084 <IfDefine SSL> <IfDefine !NOSSL> <IfModule mod_ssl.c> Listen 8443 80 é a porta padrão. </IfModule> </IfDefine> </IfDefine> Professor Marcelo Pacote – [email protected] 34 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/101) ( )O valor da variável e no fim da execução do seguinte algoritmo será 143. var a, b, c, d, e: Integer; C:= 0 3 4 5 6 7 8 9 10 begin A:= 0 1 1 2 3 5 8 13 21 a := 0; B:= 1 1 2 3 5 8 13 21 34 b := 1; e := a+b; D:= 0 1 1 2 3 5 8 13 21 for c := 3 to 11 do E:= 1 2 4 7 12 20 33 54 88 begin e := e + (a + b); d := a; a := b; e(n+1) = e(n) + e(n-1) + 1 b := b + d; end; end. Professor Marcelo Pacote – [email protected] 35 11 34 55 34 143 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/98 a 100) Julgue os itens subsequentes, acerca da linguagem de programação Delphi e da programação orientada a objetos. ( ) O encapsulamento, característica da programação orientada a objetos, é uma técnica utilizada para ocultar os detalhes da implementação de um objeto. ( ) O princípio da responsabilidade única estabelece que uma classe deva executar apenas uma tarefa; dessa forma, caso uma classe possua mais uma responsabilidade, deve-se considerar sua decomposição em duas ou mais classes. ( ) Métodos callback são formas de instanciar métodos utilizandose tecnologia de chamada em segundo plano escondido do plano sequencial da aplicação Professor Marcelo Pacote – [email protected] 36 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/98 a 100) ( ) Métodos callback são formas de instanciar métodos utilizandose tecnologia de chamada em segundo plano escondido do plano sequencial da aplicação Callback: método passado como parâmetro para outro método, que o invoca. Pode ser síncrono ou assíncrono. Professor Marcelo Pacote – [email protected] 37 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/94) ( ) Adapter é um padrão do tipo estrutural que lida com a interface para um objeto, ao passo que builder refere-se a como um objeto composto será criado e instanciado por uma classe. Professor Marcelo Pacote – [email protected] 38 W W W. D O M I N A N D OT I .CO M . B R Classificação segundo GoF Criação Estrutura Comportamento Builder Prototype Singleton Factory Method Abstract Factory Adapter Bridge Composite Decorator Facade Flyweight Proxy Interpreter Template Method Chain of Responsibility Command Iterator Mediator Memento Observer State Strategy Visitor Professor Marcelo Pacote – [email protected] 39 W W W. D O M I N A N D OT I .CO M . B R Padrões de Projeto (GoF) 1. Adapter (wrapper) Converter a interface de uma classe em outra interface esperada pelos clientes. 2. Façade Oferecer uma interface única (e simples) de nível mais elevado para um conjunto de interfaces de um subsistema. 3. Composite Compõe objetos em estrutura de árvore para representar hierarquias do tipo todo-parte. Permitir o tratamento de objetos individuais e composições desses objetos de maneira uniforme. 4. Bridge (handle/body) Desacoplar uma abstração de sua implementação para que os dois possam variar independentemente. Professor Marcelo Pacote – [email protected] 40 W W W. D O M I N A N D OT I .CO M . B R Padrões de Projeto (GoF) 8. Proxy (Surrogate) Prover um substituto ou ponto através do qual um objeto possa controlar o acesso a outro. 9. Chain of Responsibility Permitir que uma cadeia de objetos tenha oportunidade de tratar uma solicitação. Encadear objetos passando uma solicitação ao longo da cadeia até que um objeto a trate. 10. Flyweight Usar compartilhamento para suportar eficientemente grandes quantidades de objetos. 11. Builder Separar a construção de objeto complexo da sua representação, de modo que o mesmo processo de construção possa criar diferentes representações. Professor Marcelo Pacote – [email protected] 41 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/94) ( ) Adapter é um padrão do tipo estrutural que lida com a interface para um objeto, ao passo que builder refere-se a como um objeto composto será criado e instanciado por uma classe. Passível de recurso: O objetivo do padrão adapter é converter uma interface em outra esperada pelos clientes, logo ele lida diretamente com interfaces para um objeto. Ademais, o builder lida com objetos complexos, tipicamente composições de objetos mais simples. Potencial de sucesso do argumento: +- 10%. Professor Marcelo Pacote – [email protected] 42 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/92 e 93) Em relação a arquiteturas de integração, julgue os itens subsequentes. ( ) SOAP é um protocolo-padrão para definição de interface do serviço, suas operações, associações requeridas e fornecidas. ( ) A arquitetura orientada a serviços é forma de desenvolvimento de sistemas distribuídos em que os componentes de sistemas são serviços autônomos, razão por que, devido à interoperabilidade, as ligações entre os serviços devem ser rígidas para não provocar mudanças durante sua execução. Professor Marcelo Pacote – [email protected] 43 W W W. D O M I N A N D OT I .CO M . B R (STJ/2015/Cespe/An. Judiciário/Análise SI/92 e 93) Em relação a arquiteturas de integração, julgue os itens subsequentes. ( ) SOAP é um protocolo-padrão para definição de interface do serviço, suas operações, associações requeridas e fornecidas. ( ) A arquitetura orientada a serviços é forma de desenvolvimento de sistemas distribuídos em que os componentes de sistemas são serviços autônomos, razão por que, devido à interoperabilidade, as ligações entre os serviços devem ser rígidas para não provocar mudanças durante sua execução. WSDL Fracamente acoplados Professor Marcelo Pacote – [email protected] 44 W W W. D O M I N A N D OT I .CO M . B R Gabarito dos Exercícios (STJ/2015/Cespe/An. Judiciário/Análise SI/120) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/118 e 119) certo, certo (STJ/2015/Cespe/An. Judiciário/Análise SI/116 e 117) errado, errado (STJ/2015/Cespe/An. Judiciário/Análise SI/114 e 115) certo, errado (STJ/2015/Cespe/An. Judiciário/Análise SI/113) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/110 e 112) certo, certo (STJ/2015/Cespe/An. Judiciário/Análise SI/109) certo* (deve ser anulada) (STJ/2015/Cespe/An. Judiciário/Análise SI/108) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/106 e 107) errado, certo (STJ/2015/Cespe/An. Judiciário/Análise SI/103) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/102) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/101) certo (STJ/2015/Cespe/An. Judiciário/Análise SI/98 a 100) certo, certo, errado (STJ/2015/Cespe/An. Judiciário/Análise SI/94) errado (STJ/2015/Cespe/An. Judiciário/Análise SI/92 e 93) errado, errado Professor Marcelo Pacote - [email protected] 45 W W W. D O M I N A N D OT I .CO M . B R Tópicos relevantes para questões discursivas – Arquitetura de Software Professor Marcelo Pacote – [email protected] W W W. D O M I N A N D OT I .CO M . B R W W W. D O M I N A N D OT I .CO M . B R Tópicos para questões discursivas 1. Principais padrões de projeto 2. Abordagem prática/de mercado para Web Services 3. SOAP x REST 4. SOA - descrever cenários Professor Marcelo Pacote – [email protected] 47 W W W. D O M I N A N D OT I .CO M . B R Objetivos Estratégicos de SOA 1. Aumentar a Interoperabilidade 2. Aumentar a Federação 3. Maior alinhamento entre TI e Negócio 4. Aumento do número de opções de fornecedores 5. Aumento do ROI 6. Aumento da Agilidade Organizacional 7. Reduzir o “peso” da TI Professor Marcelo Pacote – [email protected] 48 W W W. D O M I N A N D OT I .CO M . B R Características fundamentais de SOA 1. business-driven 2. vendor-neutral 3. enterprise-centric 4. composition-centric Professor Marcelo Pacote – [email protected] 49 W W W. D O M I N A N D OT I .CO M . B R Os 8 princípios de design da orientação a serviços 1. Contrato de serviço padronizado 2. Fraco acoplamento dos serviços 3. Abstração 4. Reusabilidade 5. Autonomia 6. Statelessness 7. Discoverability 8. Composability Professor Marcelo Pacote – [email protected] 50 W W W. D O M I N A N D OT I .CO M . B R