Escolar Documentos
Profissional Documentos
Cultura Documentos
Handbook de
Questões de TI
comentadas para concursos
Além do gabarito
Volume 9
Desenvolvimento de Software
Parte 2
ESAF - Escola de Administração Fazendária
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Prefácio
Portanto, para ajudá-lo ainda mais em sua preparação para concursos organizados pela ESAF, o
Grupo Handbook de TI preparou para você o volume 9, que traz para você questões com grande
ênfase na área de desenvolvimento de sistemas.
Nele você vai encontrar questões de Engenharia de Software, CMMI, MPS.BR, Orientação a
Objetos, Governança de TI, Java, Segurança da Informação e muitos outros assuntos que sem-
pre guram nas provas para a área de desenvolvimento de sistemas.
Bons estudos,
Grupo Handbook de TI
Página 1 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Direitos Autorais
Os autores deste material não proíbem seu compartilhamento entre amigos e colegas próxi-
mos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material de
forma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites da
colaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comu-
nidade concurseira Handbook de TI.
Grupo Handbook de TI
Página 2 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Canais de Comunicação
Loja Handbook de TI
Serviço de Atendimento
Twitter do Handbook de TI
Página 3 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Entende-se por Governança de TI como um conjunto de estruturas e processos que visam
garantir que a TI suporte e maximize os objetivos e as estratégias do negócio. Assim, a
governança e o X (descobriremos quem é o X quando analisarmos as alternativas a seguir)
devem suportar os interesses dos stakeholders internos e externos de acordo com as ne-
cessidades especícas de cada um: os de dentro da empresa que têm interesse em gerar
valor a partir de investimentos de TI; os que prestam serviços de TI sejam eles internos (De-
partamento de TI) ou externos (fornecedores); e os que controlam riscos e responsabilidades.
(A) ERRADA
Ao estudar o OPM3, você perceberá que ele é baseado no guia PMBOK (padrão global)
e pode ser aplicado em organizações de diversos segmentos, tamanhos ou localizações ge-
ográcas. Notará também que o OPM3 desenvolve um ciclo continuado de aperfeiçoamento
do conhecimento, da avaliação e da melhoria de forma que, conforme você se move pelo
processo de melhoria, passa por uma mudança de pensamento que posicionará sua organiza-
ção de modo a permitir que ela obtenha tanto ganhos imediatos como sucesso em longo prazo.
Você perceberá também que o OPM3 permite que as organizações avaliem seu nível de
maturidade. No caso, existem 4 níveis (Padronizar, Medir, Controlar e Melhorar continu-
amente) para cada domínio de análise: Projetos que é o domínio, digamos, mais baixo;
Página 4 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(B) ERRADA
O CMMI (Capability Maturity Model Integration) é uma metodologia criada pela SEI
(Software Engineering Institute) com o objetivo de substituir as diversas CMMs (Capa-
bility Maturity Model) desenvolvidas especicamente para cada área de atuação, tais como:
desenvolvimento de sistemas, engenharia de software, aquisição de software e desenvolvi-
mento de processos. Apesar das CMMs serem úteis, elas são excessivamente diversicadas
e, por conta disso, foram consideradas problemáticas (redundância de conceitos, terminolo-
gia incomum, inconsistências, etc.)
De forma geral, o objetivo maior do CMMI é prover um conjunto de boas práticas para
melhoria dos processos das organizações e a habilidade de gerenciar, desenvolver e manter
os seus produtos (softwares). Essas práticas, já consideradas efetivas, são organizadas em
uma estrutura que visa auxiliar a organização, em particular os gerentes de projetos, a es-
tabelecer suas prioridades para a conquista de melhorias. Um guia para a implementação
dessas melhorias também é fornecido pelo CMMI.
Candidato, você precisa saber as diferenças entre as formas de representação que o CMMI
possui, uma contínua e outra por estágios (a existência de duas representações visa a oferecer
exibilidade para as organizações poderem utilizar diferentes meios para obterem melhorias
de acordo com as suas realidades).
Novamente, em nenhum momento zemos menção à Governança de TI, o que nos per-
mite eliminar esta alternativa.
(C) ERRADA
Não é difícil intuir que, devido a sua capacidade de gerenciar documentos, a GED é uma
Página 5 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(D) CORRETA
Vale reforçar que o COBIT não é um padrão denitivo. Ele serve como apoio para a imple-
mentação de controles na Governança de TI, ditando o o que fazer e não se preocupando
como fazer.
O COBIT foca em duas áreas chaves: fornece informações necessárias para suportar os
objetivos e os requisitos do negócio; e trata as informações como sendo o resultado combi-
nado de aplicações e recursos de TI que precisam ser gerenciados por processos de TI. Para
isso, o COBIT agrupa os processos de TI em quatro áreas ou domínios:
1. Planejamento e Organização;
2. Aquisição e Implementação;
3. Entrega e Suporte;
4. Monitoração e Avaliação.
Candidato, lembre-se disso: o COBIT deve ser utilizado como um amplo guia pela direção
e pelos responsáveis pelos processos de negócio da empresa, não restringindo apenas ao de-
partamento de TI!
(E) ERRADA
Os portais corporativos são, comumente, apresentados como uma evolução das intranets.
No entanto, os portais também podem ser vistos como uma aplicação web que agrega con-
teúdo, colaboração, conhecimento e aplicativos transacionais, todos em uma interface única.
Exemplos de funcionalidades que os portais normalmente possuem são:
• busca e indexação;
• categorização de conteúdo;
• colaboração;
• personalização;
• comunidades;
• integração de sistemas;
• segurança.
Página 6 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 7 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) ERRADA
Página 8 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(B) ERRADA
O modelo de uxo de dado inicia em um nível de abstração alto e sofre processos de re-
namento até chegar a um nível de detalhamento correspondente a sua necessidade. Para
cada iteração de renamento é criado um novo modelo atribuindo ao nome do documento
um número correspondente a quantidade de iterações.
(C) CORRETA
(D) ERRADA
Página 9 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
A primeira etapa é a denição dos requisitos juntamente com o cliente. Depois esta descrição
do cliente é então detalhada saindo de um nível de abstração de usuário para o nível de es-
pecicação. A especicação é então transformada em um modelo formal detalhado (modelo
matemático). Por m, a implementação do modelo e teste utilizando alguma linguagem de
programação.
(E) ERRADA
O modelo em cascata, também denominado clássico ou sequência linear, sugere uma abor-
dagem sequencial para o desenvolvimento de software, que inicia pela análise e modelagem
dos requisitos, projeto, codicação, teste até manutenção do sistema. A vantagem dessa
abordagem seqüencial é visto no gerenciamento do projeto, uma vez que suas atividades
possuem pontos de inicialização e nalização, assim, em principio esta modelagem é con-
ável e abrangem projeto de tamanhos variados. Por outro lado, por ter essa rigidez nas
atividades de processo às etapas iniciais como levantamento de requisito e análise devem ser
cuidadosamente implementadas, caso contrário, todas as outras etapas serão comprometidas.
Página 10 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
3. Assuntos relacionados: Web Services, Simple Object Access Protocol (SOAP), Univer-
sal Description, Discovery and Integration (UDDI), Web Services Description Language
(WSDL),
Banca: ESAF
Instituição: Agência Nacional de Águas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informação e Comunicação / Desenvolvi-
mento de Sistemas e Administração de Banco de Dados
Ano: 2009
Questão: 9
Na arquitetura de Web Services, o componente que compreende um serviço de diretórios
para armazenamento de descrições de serviços é
(a). o Protocolo de Acesso a Objetos Simples (SOAP).
(b). a Descrição, Descoberta e Integração Universal (UDDI).
(c). a Linguagem de Denição de Web Services (WSDL).
(d). a Linguagem de Marcação Hiper-Texto (HTML).
(e). a Arquitetura TCP/IP.
Solução:
(A) INCORRETA
(B) CORRETA
O UDDI (do Inglês Universal Description, Discovery and Integration) é um registro baseado
em XML e independente de plataforma como um meta serviço (um serviço que serve
serviços) para permitir consultas robustas em metadados. Ele fornece à indústria uma es-
pecicação para construção de registros de Web Services interoperáveis. O UDDI é um
padrão mantido pela OASIS (Organization for the Advancemente of Structured Information
Standards) e permite a publicação de listagens de serviços, a descoberta de serviços e que
aplicações interajam através da Internet. De todas as alternativas listadas nesta questão,
essa é a única relacionada à publicação e descoberta de serviços e, portanto, é a alternativa
correta.
(C) INCORRETA
A WSDL (do Inglês Web Services Description Language) é, como o próprio nome diz, uma
linguagem para descrição de Web Services. Ela é uma linguagem baseada em XML usada
para descrever serviços de rede como um conjunto de pontos que operam em mensagens que
contém tanto informação orientada a documentos quando informação baseada em procedi-
mentos. Um documento WSDL dene serviços como coleções de pontos nais. Em WSDL,
Página 11 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Sendo uma linguagem para descrição de Web Services sem a capacidade de armazenamento
de descrições de serviços, essa alternativa está incorreta.
(D) INCORRETA
Sendo uma linguagem para marcação de texto e sem qualquer característica dinâmica na-
tiva (até a versão 4), e não fazendo parte, diretamente, do conjunto de tecnologias de Web
Services, mas como uma forma de apresentação de documentos, HTML não representa uma
resposta correta para essa pergunta.
(E) INCORRETA
Página 12 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
I. Requisitos funcionais declaram as funções que o sistema deve fornecer, seu comporta-
mento, e ainda, o que o sistema não deve fazer.
II. Requisitos de domínio são, exclusivamente, funcionais, pois exibem as características
do domínio de aplicação do sistema.
III. Requisitos não-funcionais compreendem restrições sobre serviços ou funções do sistema.
Solução:
Primeiramente, requisitos são as propriedades e funcionalidades utilizadas na construção de
um sistema de software que implementa todas ou parte das necessidades de uma organiza-
ção. Os requisitos se dividem no que diz respeito ao grau de detalhamento (diferentes níveis
de descrição) em requisitos de usuário e requisitos de sistema. Resumidamente, requisitos de
usuários são descrições de funcionalidades com baixo nível de detalhamento. E os requisitos
de sistema são descrições detalhadas sobre o que o sistema deverá fazer. Os requisitos de
usuários e sistemas são classicados em requisitos funcionais, requisitos não funcionais ou
requisitos de domínio, mais detalhes sobre os mesmos são apresentados a seguir.
ITEM I
ITEM II
Página 13 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
ITEM III
Os requisitos não-funcionais são condições ou propriedades que o sistema deve possuir geral-
mente sobre qualidade. Estes requisitos não descrevem o comportamento do sistema como
os requisitos funcionais, eles apresentam atributos que devem ser esperado do sistema, como
conabilidade, tempo de resposta para determinado operação, desempenho, portabilidade,
políticas da empresa (linguagem de programação usada, padrões de projeto), portabilidade,
bem como restrições sobre capacidade de alguns dispositivos de hardware que são utilizados
pelo sistema. Esta assertiva esta correta.
Portanto, a letra B indica acertadamente os itens I e III como corretos, sendo a resposta
para a questão.
Página 14 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A Unied Modeling Language (UML) é uma linguagem de modelagem e serve para ser uti-
lizada no desenho de software orientado a objetos, sendo o seu uso bastante limitado em
outros paradigmas de programação. A fonte principal sobre o UML encontra-se em seu
sítio ocial (http://www.uml.org/). Lá é possível ter acesso às especicações atualizadas.
Muitos elementos compõem o modelo UML, eles são usados para a criação de diagramas,
que representam uma determinada parte ou ponto de vista do sistema.
A UML, na versão 2.0, é composta por treze tipos de diagramas. Eles podem ser classica-
dos como estáticos e dinâmicos. Nos estáticos, ao contrário dos dinâmicos, as características
do sistema não mudam com o tempo. Na Figura 1, podemos vericar essa classicação.
Os principais conceitos de orientação a objetos (classes, agregação, herança etc.) são rep-
resentados no diagrama de classes. Ele tem por objetivo descrever, de maneira estática, o
escopo da aplicação que está sendo desenvolvida.
Página 15 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
A herança pode ser simples ou múltipla. Na múltipla, uma subclasse está associada a
mais de uma superclasse. Já na simples, uma subclasse tem uma e somente uma superclasse
associada via generalização.
A UML permite que, uma herança possa ser dada em mais detalhes em quatro situações:
Vamos exemplicar alguns dos casos acima para que a situação que mais clara para o
leitor. Imagine que temos um tipo chamado Veículo com dois subtipos Carro e Caminhão.
Se Veículo for uma generalização disjunta de Carro e Caminhão, uma instância do tipo
Veículo só pode assumir um dos seus subtipos (Carro ou Caminhão ). Portanto, a alterna-
tiva correta é a letra (E). Outro detalhe é que se for uma herança do tipo completa, um
veículo necessariamente deve ser um dos seus subtipos.
Os outros termos citados nas alternativas (A), (B), (C) e (D) também possuem relação
com as representações em UML, mas nada tem a ver com o enunciado da questão.
Página 16 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) INCORRETA
Algoritmos que usam chaves assimétricas fazem parte da criptograa de chave pública.
As chaves assimétricas são usadas para a criação de um par de chaves criptográcas rela-
cionadas: uma chave pública e uma chave privada (secreta). Com o uso da criptograa de
chave pública é possível vericar a autenticidade de mensagens, através da criação de assi-
naturas digitais e, também, proteger a condencialidade e integridade da mensagem, através
da cifragem com o uso da chave pública e decifragem através da chave privada. O enunciado
do problema se refere a bancos de dados relacionais, não a criptograa e, portanto, essa
opção é incorreta.
(B) INCORRETA
Assim como as chaves assimétricas, chaves simétricas também são conceitos de criptograa.
No entanto, nos algoritmos de criptograa de chave simétrica, chaves semelhantes, normal-
mente idênticas, são usadas para cifrar e decifrar uma mensagem, donde decorre o nome
simétrica.
(C) CORRETA
Superchaves mais úteis, no entanto, são as superchaves mínimas. Nelas, não há atribu-
tos redundantes. Ou seja, não é possível remover qualquer atributo desse conjunto sem
quebrar a restrição da superchave identicar tuplas distintas.
Página 17 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(D) INCORRETA
Uma chave secundária é uma chave que, normalmente, não identica unicamente um reg-
istro e que pode ser utilizada para buscas simultâneas de vários registros. Normalmente
implementadas como índices em bancos de dados, são usadas para busca e recuperação de
dados.
(E) INCORRETA
Página 18 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
7. Assuntos relacionados: Banco de Dados, Nível de Abstração, Nível Físco, Nível de Visão,
Nível Lógico,
Banca: ESAF
Instituição: Agência Nacional de Águas (ANA)
Cargo: Analista Administrativo - Tecnologia da Informação e Comunicação / Desenvolvi-
mento de Sistemas e Administração de Banco de Dados
Ano: 2009
Questão: 18
O nível de abstração, que visa simplicar a interação entre usuários e o sistema de banco de
dados, é o
(a). físico.
(b). de visão.
(c). lógico.
(d). de esquema.
(e). de modelo.
Solução:
Um sistema de banco de dados é a junção de uma coleção de arquivos inter-relacionados
com um conjunto de programas que permitem aos usuários acessarem e modicarem tais
arquivos. Seu maior objetivo é proporcionar aos usuários uma visão abstrata dos dados, o
que signica ocultar determinados detalhes de como os dados são efetivamente armazenados
e gerenciados.
Para que o sistema tenha um bom nível de usabilidade, é preciso que os dados sejam re-
cuperados ecientemente. A necessidade de eciência levou os desenvolvedores a utilizar
estruturas de dados complexas para representar os dados na base de dados. Para ocul-
tar dos usuários essa complexidade, níveis de abstração foram denidos, simplicando a
interação com o sistema:
• Nível Físico. Nível mais baixo de abstração que descreve como os dados são ver-
dadeiramente armazenados. O nível físico descreve detalhadamente as complexas es-
truturas de dados de baixo nível;
• Nível Lógico. Nível intermediário de abstração que descreve quais dados são ar-
mazenados na base de dados, além dos relacionamentos existentes entre tais dados.
Neste nível, todo o banco de dados é descrito em termos de um pequeno número de
estruturas relativamente simples. Os administradores de bancos de dados usam os nível
lógico de abstração para decidir quais informações serão armazenadas;
• Nível de Visão. Nível mais alto de abstração, descreve apenas parte do banco de da-
dos. Apesar de utilizar estruturas simples, o nível lógico possui bastante complexidade,
haja vista a variedade de informações armazenadas. Muitos usuários não necessitam
de toda essa informação e, assim, o nível de visão proporciona diversas visões para a
mesma base de dados, simplicando a interação com o sistema.
O esquema de um banco de dados diz respeito aos objetos (tabelas, visões, índices, proced-
imentos armazenados, etc.) disponibilizados para um determinado grupo de usuários, não
guardando relação com os níveis de abstração. Semelhantemente, o modelo de um banco de
dados é a especicação das estruturas de dados e regras de negócio de um banco de dados,
Página 19 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 20 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Uma técnica de inteligência articial que trata o problema de ltragem de dados a partir
de um repositório de informação é a mineração de dados. No contexto da Web, as técnicas
e modelos de mineração de dados recebem como entrada uma variedade de dados, como
formulário, estruturas de sites e textos em geral. A mineração é um processo de análise de
dados publicados em sites com o intuito de procurar relações comuns (padrões), além de
sumarização de dados em novas formas que são compreensíveis e úteis para uma empresa.
A mineração de dados pode ser empregada em empresas para ajudar a descobrir padrões
e tendências referentes ao uso da Web. As etapas básicas de mineração de dados são a
exploração, modelagem ou construção do conhecimento e por m a validação dos padrões
encontrados. Existem varias técnicas de mineração de dados como: classicação, clustering,
sumarização, modelagem de dependência. Vamos apresentar uma breve descrição sobre essas
técnicas.
Página 21 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Concluindo, a mineração de dados pode ser usada como meio de oferecer um atendimento
especializado a um cliente. Portanto, a questão correta é a letra B.
Página 22 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) CORRETA
O modelo relacional usa o conceito de uma relação matemática como seu bloco de con-
strução básica e tem sua base teórica na teoria dos conjuntos e na lógica de predicados de
primeira ordem. No modelo relacional, o banco de dados é representado como uma coleção
de relações.
Quando uma relação é pensada como uma tabela de valores, cada linha na tabela repre-
senta uma coleção de valores de dados relacionados. Nessa representação, cada linha na
tabela representa um fato que corresponde a uma entidade ou relacionamento do mundo
real. O nome da tabela e os nomes das colunas são usados para auxiliar na interpretação
dos dados da coluna e todos os valores em uma coluna são do mesmo tipo de dado. Por isso,
essa é a solução correta para a questão.
(B) INCORRETA
Neste modelo, uma entidade é um objeto que existe no mundo e que é facilmente dis-
tinguível de outros. Uma entidade pode ser tanto concreta, como um livro, uma pessoa ou
um lugar, quanto abstrata, como um feriado. Uma entidade, por sua vez, é composta por
atributos. Um atributo é uma função que mapeia um conjunto de entidades em um domínio
em particular. Cada entidade é descrita por um conjunto de pares (atributo, valor) e existe
um par para cada um dos atributos da entidade.
Um relacionamento, por sua vez, é uma associação qualquer entre diversas entidades. Um
Página 23 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(C) INCORRETA
Modelos baseados em objetos têm sua origem nas linguagens orientadas a objetos. Nelas, um
objeto possui, tipicamente, dois componentes: estado (valor) e comportamento (operações).
Em linguagens de programação, objetos existem somente durante a execução do programa.
Já em bancos de dados orientados a objetos, a existência dos objetos pode ser estendida
de modo que sejam armazenados de forma permanente; portanto, os objetos continuam
a existir mesmo após o término do programa, podendo ser posteriormente recuperados e
compartilhados por outros programas. No modelo orientado a objetos, um conceito comum
é o de classe, que representa um conjunto de objetos com características ans e dene o
comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter
através de seus atributos.
Página 24 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(D) INCORRETA
Um compromisso feito quando bancos de dados que usam esse modelo são adotados é que as
consultas podem não ser tão ecientes quanto a alternativa em bancos de dados relacionais,
devido à forma típica como esses bancos de dados são implementados. Neles, os registros são
normalmente armazenados com identicadores únicos referenciados por ponteiros para suas
posições no disco. Como é necessário percorrer o disco seguindo os ponteiros, suas consultas
podem não ser tão ecientes.
(E) INCORRETA
Página 25 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Uma tabela em um banco de dados é denida por um nome e pelos seus campos (atributos)
e restrições.
Por exemplo:
Como pode ser observado, o nome da tabela é carro e possui os seguintes atributos: nome,
placa, marca e ano cada um com seu tipo de dado. Cada tipo de dado representa um domínio
(intervalo) de valores para um determinado atributo. Assim, um domínio é a coleção de val-
ores permitidos para um atributo.
A cláusula check na SQL pode ser aplicada a declarações de domínio. Quando aplicado
a um domínio, a cláusula check permite especicar um predicado que precisa ser satisfeito
para qualquer valor atribuído a uma variável cujo tipo é o domínio. Por exemplo, uma
cláusula check pode garantir que um domínio de idade permita apenas valores maiores do
que um valor especicado (pessoa maior de idade).
O domínio Idade possui uma restrição que garante que o atributo idade seja maior ou igual
a 18 anos. A cláusula constraint teste-valor-idade é opcional usada para atribuir o nome
teste-valor-idade a restrição. O nome é usado pelo sistema para indicar a restrição que uma
atualização violou. Outro exemplo sobre a cláusula check: um domínio pode ser restrito
para conter apenas um conjunto especicado de valores usando a cláusula in:
Página 26 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Desse modo, a cláusula check permite que atributos e domínios sejam restritos, descrevendo
um predicado que deve ser satisfeito por qualquer valor atribuído a uma variável de domínio.
Portanto, a questão correta é a letra A.
Página 27 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A XML é uma tecnologia para criar linguagens de marcação que descrevem dados de prati-
camente qualquer tipo de uma forma estruturada, podendo ser utilizada para a descrição de
dados em quase qualquer campo. Algumas linguagens de marcação baseadas em XML são a
MathML, desenvolvida pelo W3C para descrever notações e expressões matemáticas com a
sintaxe XML; a Chemical Markup Language (CML), linguagem que representa informações
moleculares e químicas; a Wireless Markup Language (WML), que permite que as páginas
Web sejam exibidas em dispositivos sem-o, como telefones celulares e PDAs; a Geography
Markup Language (GML), que descreve informações geográcas para utilização e reutiliza-
ção por diferentes aplicativos para diferentes propósitos; e Scalable Vector Graphics (SVG),
uma maneira de descrever dados de imagens vetoriais para utilização na Web.
Os documentos XML são geralmente armazenados em arquivos de texto que terminam com
a extensão .xml (embora isso não seja um requisito da XML) e devem conter apenas um
elemento raiz. Este elemento pode conter outros elementos. Apesar de um documento XML
estar bem denido por seu nome e por seu elemento raiz, uma declaração XML inicial na
primeira linha do documento é extremamente incentivada para identicar a versão utilizada.
O exemplo a seguir esclarece esses e outros conceitos:
<carta>
Página 28 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
<nome>Maria da Silva</name>
<logradouro>Rua das Roseiras</logradouro>
<cidade>Vila Nova</cidade>
<cep>98765</cep>
<flag sexo=''F''/>
</contato>
<saudação>Prezado Senhor:</saudação>
<fechamento>Atenciosamente</fechamento>
<assinatura>Sra. Maria da Silva</assinatura>
</carta>
----- Final de documento -----
Observa-se que o documento carta.xml inicia-se com uma declaração que indica a versão da
XML adotada. A linha seguinte exibe um comentário delimitado por <! e >, aos moldes
da HTML. O elemento raiz <carta> possui elementos lhos, devidamente aninhados, que
denem a estrutura do documento. O texto com marcação (os elementos) está contido entre
os sinais menor e maior (< e >), sendo que o texto entre uma marca de abertura e uma
marca de nalização são considerados dados de caracteres. Evidentemente, os elementos
lhos são considerados marcações, e não dados de caracteres.
Todas as marcas de abertura de XML devem ter uma marca correspondente de naliza-
ção (identicada por </), e todas as marcas de abertura e de nalização devem estar cor-
retamente aninhadas. Com a XML diferencia letras maiúscula de minúsculas, as marcas
de abertura e de nalização devem ter as letras maiúsculas e minúsculas correspondentes.
Desta forma, o elemento <carta> possui um correspondente </carta>. Quando o elemento
não possui conteúdo, pode ser fechado na própria marcação de abertura, como é o caso de
<ag sexo=F/>.
Dito isso, percebe-se que a armativa I da questão encontra-se em desacordo com a teo-
ria, pois um elemento é denido por uma marcação (que pode ser considerada o seu nome),
mas, não obrigatoriamente deve possuir um valor em termos de atributos e elementos
lhos. Semelhantemente, os atributos são denidos por um nome e um valor, porém não
Página 29 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
possuem elementos associados, o que invalida a armativa III. A armativa II está correta,
pois um documento XML é denido por um nome e por seu elemento raiz. Desta forma, a
resposta para a questão é o item b).
Página 30 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Um programa ou um software é constituído de um conjunto de instruções (operação sobre
um determinado dado) apresentadas de forma sequencial, tais instruções estabelecem o
comportamento que será executado e a ordem que as regras devem ser aplicadas. Para
tanto, os programas utilizam blocos elementares (estruturas) de código que se interligam
através de três mecanismos básicos de programação:
• Estrutura de sequência. Normalmente, instruções em um programa são executadas
uma após a outra na ordem em que são escritas. Esse processo é chamado de exe-
cução sequencial. Para alterar esse uxo de execução sequência o programa utiliza os
elementos seleção e repetição;
• Estrutura de seleção. Os programas utilizam instruções de seleção para escolher
os uxos de execução de acordo com condições denidas na estrutura de seleção. As
estruturas de seleção podem ser de dois tipos: simples e compostas. As estruturas
simples apenas selecionam se um determinado trecho de instruções será executado
ou não. Já as estruturas composta de seleção, interligam várias estruturas simples
formando uma estrutura mais complexa, esta forma de organização da estrutura de
seleção composta é chamada de aninhamento;
• Estrutura de repetição. Programas de computador em muitos casos precisão exe-
cutar uma determinada instrução ou mesmo um determinado conjunto de instruções
repetidas vez, para isso, utilizam a estrutura de repetição. A quantidade de vezes que
as instruções são repetidas é determinada pela estrutura de repetição.
Além das estruturas elementares que constituem um programa estruturado existe um con-
ceito chamado de modularização. A modularização de um programa estruturado é a divisão
de trechos de código que executam ações para um m especíco, para esse agrupamento
de trechos de código se dá o nome de função e/ou em alguns casos procedimento. Imagine
uma função como uma caixa preta de códigos que recebe entradas (parâmetros), executa
os cálculos e/ou ações e então retorna o resultado. Este conceito não forma um bloco de
controle apesar de ser vastamente usado na programação estruturada.
Como pode ser observado, os três blocos de formas de controle necessários para a pro-
gramação estruturada são a estrutura sequência, seleção e repetição fazendo a assertiva D
como correta.
Página 31 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Esta é uma questão que aborda como a linguagem Java aborda um dos principais conceitos
da programação orientada a objetos a herança. No entanto, antes de explicarmos o que é
herança, vamos rever os conceitos de classe, objeto, classe, atributos e métodos.
Um objeto pode ser denido como uma entidade com limites bem denidos e um signicado
para a aplicação. Tais entidades representar elementos físicos (como um carro, uma casa,
um cliente etc), elementos conceituais (como uma venda, uma matrícula etc), elementos
de software (uma lista, um array, um arquivo etc). Uma classe, por sua vez, consiste da
descrição de um grupo de objetos com propriedades e comportamento idênticos entre si.
As propriedades da qual são representadas pelos atributos dos objetos. Um objeto da classe
casa, por exemplo, poderia ter como propriedades 2 portas, 4 janelas, 100 metros quadrados
de área, entre outras. A combinação de valores dos atributos de um determinado objeto é o
que determina o seu estado. Para alterá-lo, é necessário utilizar os métodos. Vamos agora
ao conceito de herança.
A herança é um mecanismo que permite criar novas classes a partir de classes já existentes,
aproveitando-se das características (atributos e métodos) destas. Ou seja, com a herança é
possível criar classes derivadas (subclasses) a partir de classes bases (superclasses).
Recordados alguns dos conceitos básicos sobre orientação a objetos, vamos agora falar um
pouco sobre as alternativas trazidas na questão static, public, nal, protected e abstract
Página 32 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
que, na linguagem Java, são conhecidos como modicadores de acesso, que são keywords
introduzidas no código para determinar a forma como as classes, métodos e atributos podem
ser acessados pelas diversas partes do programa.
O modicador static, quando usado em um atributo, serve para criar uma variável de classe.
Isso signica dizer que este atributo será comum em todos os objetos da classe, de modo
que as modicações neste atributo feitas por um objeto se reitam em todos os demais. Já
os métodos, quando denidos como static, impede que estes sejam sobrescritos pelas sub-
classes. Com isso, esta é a resposta da questão.
Já o modicador de acesso public determina que a classe, método ou atributo podem ser
acessados por qualquer parte do programa, e a qualquer instante da execução deste.
Em Java, um pacote é uma coleção das classes relacionadas, que podem ser importadas
(por meio do comando import) em programas que necessitem das classes contidas no pa-
cote. Neste contexto, o modicador protected é o que determina que um método ou um
atributo podem ser acessados somente dentro do pacote em que estão contidos.
Por m, temos o modicador de acesso abstract, que servem para declara métodos ou classes
abstratas. Para recapitulação, métodos abstratos são aqueles que não são implementados
nas classes, cando esta tarefa a cargo das subclasses. Já uma classe abstrata é aquela
que não está completamente implementada, cando a cargo das subclasses implementar o
restante delas.
Página 33 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Exceções, como o nome sugere, são situações que fogem às regras e, no caso das linguagens de
programação, geralmente indesejáveis. Ocorrem no momento da execução de um programa
e precisam ser devidamente tratadas para não interromperem o processamento normal de
uma aplicação. Podem ocorrer por diversos motivos, como uma inadvertida divisão por zero,
uso de referências para objetos inexistentes, falta de memória, dentre outros.
Da mesma forma que os demais elementos desta linguagem, as exceções são objetos em Java,
sendo a classe Exception a superclasse de todas as exceções. Esta estruturação permite que
um programador dena suas próprias exceções, que herdam características pré-denidas na
classe Exception. Quando uma exceção ocorre, códigos escritos por um programador po-
dem tratá-la através de diretivas especializadas para este m (throws, try, catch e nally).
Para tanto, o tipo (classe) de exceção deve ser indicado, possibilitando-se, assim, que toda
e qualquer exceção seja individualmente tratada.
Página 34 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
ocorrido. A classe Scanner (um parser simples para textos com tipos primitivos) lança a ex-
ceção java.util.InputMismatchException para indicar que ou o token capturado não coincide
com o padrão do tipo esperado ou seu valor está fora da faixa esperada.
Página 35 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
JavaServer Pages (JSP) é uma tecnologia baseada em Java utilizada no desenvolvimento
de páginas Web com conteúdo dinâmico, similar às tecnologias Active Server Page (ASP) e
PHP. Ela faz parte de uma tecnologia maior referida como Java 2 Enterprise Edition (J2EE).
Além das tags HTML, que geram o conteúdo estático, uma página JSP também contém
elementos JSP especiais que permitem inserir conteúdo dinâmico por meio dos elementos
JSP. Os elementos JSP são processados pelo servidor Web antes da página HTLM ser envi-
ada de volta ao browser. Ou seja, quando o usuário faz uma requisição a uma página JSP,
o servidor executa os elementos JSP da página, inserindo os resultados dos mesmos junto a
parte estática da página, e envia a página HTML para o usuário. A tecnologia JSP pode ser
usada, por exemplo, para recuperar informação em um banco de dados, manipular arquivos,
obter informações sobre o visitante, etc.
I. Como forma de facilitar a programação Web, em uma página JSP existem 9 objetos
instanciados, conhecidos como Objetos Implícitos, que são:
page : representa a própria página JSP, ou melhor, uma instância da classe servlet
na qual a página foi convertida. É simplesmente um sinônimo para this;
cong : armazena os parâmetros de inicialização (conguração) do servlet da página
JSP;
request : solicitação que aciona o processamento da página;
response : responsável pela devolução do resultado ao usuário;
out : representa o uxo de saída (output) para a página em si;
pageContext : dados de contexto para a execução da página;
session : representa a sessão atual de um usuário individual;
Página 36 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
II. Como qualquer linguagem de programação Web, os comentários não aparecem na re-
sposta ao cliente. Logo, esta armativa é falsa.
III. O escopo de um objeto está relacionado com as páginas JSPs que podem acessar o
objeto. Os escopos disponíveis são: application, request, response, page e session. O
objeto que possui escopo session está disponível para todas as JSPs e os servlets, e
todos os objetos vinculados à session estão disponíveis para toda a sessão de usuário.
A principal utilização do escopo session é manter os estados de conexão entre cliente e servi-
dor, pois o protocolo HTTP não armazena informações de estado. Isso permite o usuário
navegar entre várias páginas na aplicação Web sem perda de informações referentes à sessão
de usuário. Um exemplo típico de utilização do escopo session é em autenticação de usuários,
onde é possível restringir acesso a determinadas páginas.
Portanto, esta armativa é verdadeira porque os objetos com o escopo session duram du-
rante toda a sessão negação do cliente.
Após a análise das armativas, chegamos a conclusão que as armativas I e III são ver-
dadeiras. Portanto, a alternativa correta é a (E). Note que o gabarito fornecido para esta
questão não confere com o gabarito ocial. Possivelmente, a banca que organizou a prova
deve ter cometido um equívoco na armativa I.
Página 37 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Denições
• Condencialidade é um termo que indica uma propriedade de uma informação que
indica que ela não estará disponível ou será divulgada a indivíduos, entidades ou proces-
sos sem alteração. Ou seja, a condencialidade garante que a informação seja acessível
apenas àqueles autorizados a ter acesso;
• Disponibilidade é o termo usado para indicar se um sistema está disponível para que
sua comunidade de usuários possa acessá-lo, seja para submissão, atualização, alteração
de trabalhos ou coleta de resultados. Se o acesso por usuários não for possível, diz-se
que o sistema está indisponível;
• Integridade é o termo usado para indicar que os dados não podem sofrer modicações
não autorizadas, ou não explícitas. Em outras palavras, um dado é íntegro se ele não
contiver erros;
• Autorização é o mecanismo responsável por garantir que apenas usuários autorizados
consumam os recursos protegidos;
• Não-repúdio é a garantia de segurança que impede uma entidade participante numa
dada operação de negar essa participação.
Técnicas
I. Somas de vericação:
Bons algoritmos de soma de vericação devem ser capazes de gerar, com grande proba-
bilidade, resultados diferentes sempre que os dados forem acidentalmente corrompidos.
Página 38 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Se os valores, no entanto, forem iguais, então deve ser alta a probabilidade dos dados
não terem sido corrompidos. Bits de paridade e vericações de redundância cíclica são
exemplos de funções de soma de vericação.
Seu nome se deve ao fato de haver a adição de um código de vericação que é redun-
dante (e, portanto, não adiciona informação) aos dados baseado em códigos cíclicos. O
termo CRC pode se referir, além do código de vericação, à função que o calcula. Essa
função aceita dados de qualquer tamanho como entrada, mas gera sempre saídas em
códigos com tamanho xo.
Página 39 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Conclusão
Como todas as técnicas apresentadas são relacionadas à vericação da integridade dos da-
dos, temos que a resposta correta a esta questão se encontra na alternativa c: as técnicas
supracitadas permitem detectar ataques (ou falhas) à integridade dos dados.
Página 40 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
É importante entender claramente o cenário descrito no enunciado desta questão. Imagine
que a tal mensagem M seja uma carta condencial entre todos os N usuário do grupo. Ou
seja, entende-se que apenas os N usuários desse grupo podem ter acesso à carta. O que se
pede nesta questão é o número de encriptações necessárias para que a carta seja enviada, de
forma segura, a partir de um usuário para todos os outros usuários do grupo.
A troca de mensagens condenciais com esse sistema funciona como descrito a seguir. Dig-
amos que JOSÉ precisa enviar uma mensagem condencial à MARIA. Ou seja, JOSÉ precisa
enviar uma mensagem que será lida apenas pela MARIA, mesmo que essa mensagem seja
interceptada durante o envio. JOSÉ precisa, então, enviar à MARIA a mensagem encrip-
tada com a chave pública de MARIA, que é disponível para todos. Quando MARIA receber
a mensagem encriptada, apenas ela poderá desencriptá-la, pois por premissa somente a
MARIA tem a sua própria chave privada.
No caso especíco desta questão, um usuário (digamos JOSÉ) precisa enviar uma mesma
Página 41 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
K+V ERA (M) à VERA, etc. Quando cada mensagem encriptada for recebida, a respectiva
chave privada será utilizada para desencriptá-la. Dessa forma, nenhuma mensagem enviada
pode ser lida por qualquer pessoa fora do grupo.
Tendo em vista o exposto acima, é fácil concluir que serão necessárias (N-1) encriptações
e outras (N-1) desencriptação para que todos os N usuários do grupo conheçam a mensagem.
Página 42 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
O COBIT (do Inglês Control Objectives for Information and related Technology) dene um
conjunto de boas práticas dirigido para a gerência da tecnologia da informação (TI) criado
pelo ISACA (do Inglês Information Systems Audit and Control Association) e pelo ITGI
(do Inglês Information Technology Governance Institute). Com a missão de pesquisar, de-
senvolver, publicar e promover um modelo de controle para governança de TI atualizado e
internacionalmente reconhecido para ser adotado por organizações e utilizado no dia-a-dia
por gerentes de negócios, prossionais de TI e prossionais de avaliação, o COBIT provê a
gestores, auditores e usuários de TI um conjunto de métricas, indicadores e boas práticas
para auxiliá-los nas maximização dos benefícios obtidos através do uso da tecnologia da
informação.
O modelo COBIT pretende alcançar seus objetivos mantendo seu foco em negócios, ori-
entado a processos, baseado em controles e orientado por medições.
Página 43 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Gerenciar projetos.
• Adquirir e implantar, que consiste em:
Identicar soluções automatizadas;
Adquirir e manter software aplicativo;
Adquirir e manter infraestrutura de TI;
Habilitar operação e uso;
Adquirir recursos de TI;
Gerenciar mudanças;
Instalar e homologar soluções e mudanças.
• Entregar e suportar, que consiste em:
Denir e gerenciar níveis de serviços;
Gerenciar serviços terceirizados;
Gerenciar o desempenho e a capacidade;
Assegurar a Continuidade dos Serviços;
Garantir a Segurança dos Sistemas;
Identicar e Alocar Custos;
Educar e Treinar os Usuários;
Gerenciar a Central de Serviço e os Incidentes;
Gerenciar a Conguração;
Gerenciar Problemas;
Gerenciar os Dados;
Gerenciar o Ambiente Físico;
Gerenciar as Operações.
• Monitorar e avaliar, que consiste em:
Monitorar e Avaliar o Desempenho de TI;
Monitorar e Avaliar os Controles Internos;
Assegurar a Conformidade com Requisitos Externos;
Prover Governança de TI.
Como exibido na Figura 3, as atividades-chaves do modelo COBIT são uma divisão dos ob-
jetivos e processos de TI realizadas pela tabela de responsabilidade. Mais especicamente,
a denição das atividades-chaves e as entregas do processo fazem parte do controle de pro-
cesso 4 (PC4) do modelo COBIT, que designa e comunica papéis e responsabilidades para
uma efetiva e eciente execução das atividades-chaves e sua documentação, bem como a
responsabilização pelo processo e suas entregas.
Página 44 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 45 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Uma ótima fonte para se obter mais informações sobre MPS.BR é website da Softex
(http://www.softex.br/mpsbr). Lá é possível encontrar a seguinte denição:
Perceba, portanto, que o acrônimo MPS.BR pode se referir tanto um programa quanto a
um modelo. O Modelo MPS é dividido em 3 partes, que serão descritas ao longo deste
comentário. São elas:
Página 46 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
relativo baixo custo, que permite as micro, pequenas e médias empresas ascenderem na es-
cala de qualidade e de produtividades, substituindo o modelo artesanal de desenvolvimento
de software pelas melhores práticas construídas pela Engenharia de Software. Nesse sentido,
o MPS.BR é geralmente visto como uma preparação para obtenção de certicações inter-
nacionais (CMMI e ISOs), sobretudo pelas empresas interessadas em exportação de software.
MR-MPS
• processo: cada processo tem um propósito e resultados esperados. São utilizados nesse
modelo de referencia os processos denidos na ISO/IEC 15504-2. Na prática, quanto
maior for o número de processos implantados cujos resultados esperados são de fato
obtidos por uma determinada empresa, maior será o seu grau de maturidade;
• capacidade do processo: é representada por um conjunto de atributos de processo
(AP) descritos em termos de resultados esperados. Na prática, à medida que uma em-
presa evolui nos níveis de maturidade, um maior nível de capacidade para desempenhar
o processo deve ser atingido. Os APs existentes são:
AP 1.1 - O processo é executado;
AP 2.1 - O processo é gerenciado;
AP 2.2 - Os produtos de trabalho do processo são gerenciados;
AP 3.1 - O processo é denido;
AP 3.2 - O processo está implementado;
AP 4.1 - O processo é medido;
AP 4.2 - O processo é controlado;
AP 5.1 - O processo é objeto de inovações;
AP 5.2 - O processo é otimizado continuamente.
• A: 4;
• B: 0;
• C: 2;
• D: 0;
• E: 3;
Página 47 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
• F: 54;
• G: 123.
Página 48 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
MA-MPS
MN-MPS
Este é o modelo de negócio do Programa MPS.BR. Nele estão descritas as regras para que o
programa se desenvolva adequadamente. É nele também que estão descritas as atuações das
diversas instituições participantes: instituições implementadoras, instituições avaliadoras,
consultores de aquisição, etc. A Figura 5 dá uma visão geral dessas interações.
Neste ponto, não é difícil de se observar que a alternativa correta desta questão é a letra D.
Página 49 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
• Guia Geral: contém a descrição geral do Modelo MPS e detalha o Modelo de Refer-
ência (MR-MPS);
• Guia de Aquisição: descreve um processo de aquisição de software e serviços corre-
latos;
• Guia de Avaliação: descreve o processo e o método de avaliação (MA-MPS), os
requisitos para avaliadores líderes, avaliadores adjuntos e Instituições Avaliadoras (IA);
• Guia de Implementação: série de dez documentos que fornecem orientações para im-
plementar nas organizações os níveis de maturidade descritos no Modelo de Referência
MR-MPS [SOFTEX, 2009c], [SOFTEX, 2009d], [SOFTEX, 2009e], [SOFTEX, 2009f],
[SOFTEX, 2009g], [SOFTEX, 2009h], [SOFTEX, 2009i], [SOFTEX, 2009j], [SOFTEX,
2009k] e [SOFTEX, 2009l].
Página 50 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
O MPS.BR é um programa para Melhoria de Processo do Software Brasileiro, e está em de-
senvolvimento desde dezembro de 2003, sendo coordenado pela Associação para Promoção
da Excelência do Software Brasileiro (SOFTEX). O programa conta com apoio do Ministério
da Ciência e Tecnologia (MCT), da Financiadora de Estudos e Projetos (FINEP) e do Banco
Interamericano de Desenvolvimento (BID).
No contexto do MPS.BR, foi denido o modelo de referência chamado MR-MPS, que dene
níveis de maturidade do processo de desenvolvimento de software. Cada nível do MR-MPS é
denido em termos da combinação entre processos e sua capacidade, que representa a habil-
idade do processo para alcançar os objetivos de negócio. Neste ponto, também é importante
mencionar que no MR-MPS, a denição dos processos segue a forma apresentada pela norma
ISO/IEC 12207, declarando o propósito e os resultados esperados de sua execução, o que
permite avaliar e atribuir graus de efetividade na execução dos processos.
Em termos bem simples, os níveis de maturidade denidos pelo MR-MPS estabelecem pata-
mares de evolução de processos. No total, o MR-MPS dene sete níveis de maturidade que
são apresentados a seguir em escala decrescente de maturidade:
• A (Em Otimização);
• B (Gerenciado Quantitativamente);
• C (Denido) ;
Página 51 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
• D (Largamente Denido);
• E (Parcialmente Denido);
• F (Gerenciado);
• G (Parcialmente Gerenciado).
Um aspecto muito importante da divisão em níveis proposta pelo MR-MPS é que, embora
ela seja baseada nos níveis de maturidade do Modelo CMMI, a quantidade de níveis (7) no
MR-MPS é maior que no CMMI (5). Segundo a SOFTEX, esta diferença tem por objetivo
possibilitar uma implementação e avaliação mais adequada às micros, pequenas e médias
empresas.
Página 52 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
O CMMI (Capability Maturity Model Integration ) é uma evolução do CMM (Capability Ma-
turity Model ) com o intuito de unicar os diversos modelos do CMM.
Representação contínua
Página 53 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
atividades que garantem que os processos associados com a Área de Processos serão efe-
tivos, repetíveis e duradouros. Genérica porque a mesma prática apresenta-se em múltiplas
Áreas de Processo. As práticas genéricas estão relacionadas à dimensão da capacidade ou
da maturidade.
Na representação contínua, as Áreas de Processos são organizadas por categoria, são elas:
Gerenciamento de Processos; Gerenciamento de Projetos; Engenharia e Suporte. É possível
classicar o nível de capacitação de cada processo em seis níveis, de zero a cinco:
Representação em estágio
• Nível 1 - Inicial: neste nível, os processos são caóticos e informais. A organização não
possui um ambiente estável. Apesar deste ambiente informal e caótico, organizações
neste nível muitas vezes produzem produtos e serviços que funcionam; entretanto,
freqüentemente excedem o orçamento e o cronograma de seus projetos;
• Nível 2 - Gerenciado: neste nível, os projetos da organização asseguraram que os req-
uisitos são gerenciados e que os processos são planejados, executados, medidos e con-
trolados. No nível 2, uma organização garante que atingiu todas as metas especícas e
genéricas das áreas de processos do nível 2 de maturidade;
• Nível 3 - Denido: neste nível, os processos são bem caracterizados e entendidos e estão
descritos em padrões, procedimentos, ferramentas e métodos. O conjunto de processos
padrão da organização é estabelecido e melhorado ao longo do tempo e são usados para
estabelecer a consistência em toda a organização. No nível 3, uma organização atingiu
todas as metas especícas e genéricas das áreas de processos denidas para os níveis
de maturidade 2 e 3;
Página 54 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(A) ERRADA
(B) CORRETA
(C) ERRADA
A alternativa C está errada, pois arma que existem práticas genéricas para os níveis 3
a 5, ignorando os níveis 1 e 2.
(D) ERRADA
Portanto a alternativa está errada ao armar que existem práticas genéricas para todos
os níveis de capacitação.
(E) ERRADA
Página 55 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 56 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Uma pesquisa realizada pela International Network Services concluiu que a ITIL é a abor-
dagem mais utilizada no mundo para o Gerenciamento de Serviços de TI.
A ITIL surgiu no nal da década de 1980 pela CCTA (Central Communications and Tele-
com Agency) e atual OGC11 (Oce of Government Commerce). O objetivo inicial era
disciplinar e permitir a comparação entre as propostas dos diversos proponentes a presta-
dores de serviços de TI para o governo britânico.
Em sua versão inicial, a ITIL era composta de aproximadamente 40 livros e, por isso,
era conhecida como biblioteca. A sua versão 2 foi completamente reorganizada e publicada
em 2002. Neste caso, as práticas foram reunidas em oito volumes. Já a ITIL versão 3 foi
publicada em maio de 2007. A versão 3 é composta de cinco volumes:
Página 57 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
O processo Gerenciamento do Nível de Serviço, na versão 2, pode ser divido nos seguintes
subprocessos:
Vamos esboçar aqui uma visão dos processos (atividades e objetivos) da versão 3 por livro.
Um aprofundamento de cada processo foge do escopo da resolução desta questão e, inclu-
sive, recomendamos o aprofundamento. Entretanto, entendemos que é vital que o candidato
tenha uma visão ampla dos processos do ITIL versão para enfrentar um concurso, pois
muitas questões são simples e diretas.
Estratégia de Serviço
• Denir o mercado;
• Desenvolver as ofertas;
• Desenvolver ativos estratégicos;
• Preparar para execução;
• Gerenciamento de Portfólio de Serviço (GPS);
• Gerenciamento da Demanda;
• Gerenciamento Financeiro.
Página 58 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Projeto de Serviço
• Gerenciamento do Nível de Serviço (GNS);
• Gerenciamento de Catálogo de Serviço;
• Gerenciamento de Disponibilidade;
• Gerenciamento de Segurança da Informação (GSI);
• Gerenciamento de Fornecedor;
• Gerenciamento de Capacidade;
• Gerenciamento de Continuidade de Serviço de TI.
Transição de Serviço
• Gerenciamento de Mudança;
• Gerenciamento de Conguração e de Ativo de Serviço (GCAS);
• Gerenciamento de Liberação e Implantação.
Operação de Serviço
• Gerenciamento de Incidente;
• Gerenciamento de Evento;
• Cumprimento de Requisição;
• Gerenciamento de Problema;
• Gerenciamento de Acesso.
Página 59 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 60 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A ITIL (Information Technology Infrastructure Library) é uma biblioteca constituída das
boas práticas de Gerenciamento de Serviços de TI. A estrutura da ITIL não apresenta uma
maneira de implementação de serviços de TI, porém, disponibiliza os assuntos que são im-
portantes para a execução/conclusão do mesmo. Para tanto, a ITIL fornece um modelo de
planejamento dos processos, papéis (ator) e atividades mostrando os relacionamentos entre
os vários processos de uma organização. Os processos indicados pela ITIL são genéricos po-
dendo ser empregados por vários tipos de empresas de TI, ou seja, não importa o tamanho
da empresa ou mesmo o tipo de serviço para aplicar a ITIL. Esses processos devem ser
adaptados ao estilo da empresa. A ITIL dene vários processos dentre eles a Central de
Serviços (Service Desk).
Página 61 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Como pode ser observado no resumo das principais atividades que a Central de Serviço
executa, podemos ver os registros das chamadas para utilizadas na construção de informações
gerenciais que serão usadas em processos de melhoria. Essas informações são essenciais nos
cálculos de indicadores de desempenho que são usados no processo de qualidade dos serviços
de TI. Logo, a questão correta é a letra E.
Página 62 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Criado por Alan Kay (autor da linguagem de programação Smalltalk), o termo Progra-
mação Orientada a Objetos diz respeito a um paradigma de análise, projeto e programação
de software baseado na interação entre diversas unidades chamadas de objetos. A ideia
fundamental é simular o mundo real através de programas de computador. Os objetos inter-
agem entre si através do envio de mensagens, sendo que o programador deve especicar quais
são as mensagens que cada objeto pode receber e que ações realizar ao receber mensagens
especícas.
Os objetos, instâncias de classes, possuem métodos cujos acessos podem ser (re)denidos
por modicadores de acesso. Em Java, esses modicadores podem ser private, protected,
public e static.
Quando aplicado a um método, o modicador de acesso private indica que ele só pode
ser acessado de dentro da classe que o criou, característica chamada de encapsulamento.
Assim, uma classe que herde de uma superclasse com métodos privados não conseguirá
utilizá-los diretamente. O modicador protected indica que o método apenas poderá ser
acessado dentro do pacote em que estiver contida sua classe. Já o modicador public indica
que o método pode ser acessado em qualquer lugar e a qualquer momento da execução do
programa. Por m, o modicador static indica que o método estático deve ser acessado
diretamente na classe e não em suas instâncias, ou seja, ele dene métodos de classe em vez
de métodos de instância.
Página 63 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 64 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) INCORRETA
Quando a visibilidade pública (public) é denida para algum elemento, isso signica que
Página 65 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
qualquer outro objeto de outra classe é capaz de acessar esse elemento. Já quando a palavra-
chave private é usada, é denido que apenas o implementador da classe (e a própria classe)
possui acesso aos membros privados. Qualquer cliente que tentar acessar um membro pri-
vado receberá um erro de compilação. A palavra-chave protected, por sua vez, funciona
de maneira semelhante à private, exceto que qualquer classe que herde da classe original
também terá acesso aos membros protegidos.
(B) INCORRETA
É verdade que a herança permite que uma classe herde o comportamento e os atributos
de outra classe. No entanto, não é verdade que com ela é possível herdar todos os com-
portamentos e atributos, pois, como discutido na alternativa anterior, a visibilidade privada
impede que subclasses herdem quaisquer características por ela afetadas. Outra informação
importante é que não existe forma direta de implementar herança múltipla em Java. Uma
forma de contornar essa restrição, no entanto, é através do uso de interfaces.
(C) INCORRETA
A parte inicial da alternativa, interface pode ser considerada como a forma com que um
objeto se apresenta para outros, no que diz respeito aos seus atributos e métodos, está
correta. Outras formas de compreender uma interface é como a especicação de um proto-
colo para comunicação entre classes ou como um contrato de comportamento entre as classes.
Em Java, quando uma interface é denida, a palavra-chave interface deve ser usada. Já
quando ela é implementada, a classe que a implementa deve usar a palavra-chave imple-
ments. Como uma interface não possui implementação, apenas especicação, não há nada
que impeça a combinação de interfaces. Isso, aliás, permite dizer uma coisa x é um a, um b
e um c, através da implementação de diversas interfaces. Como no exemplo abaixo (retirado
do capítulo 8 do livro Thinking in Java, revisão 4.0):
interface CanFight {
void fight();
}
interface CanSwim {
void swim();
}
interface CanFly {
void fly();
}
class ActionCharacter {
public void fight() {}
}
Página 66 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(D) CORRETA
A denição está correta. Uma vantagem do polimorsmo é que ele permite outra forma
de separação entre interface e implementação. Pois desacopla o que do como.
(E) INCORRETA
Em Java, para uma classe ser considerada abstrata é necessário que um ou mais méto-
dos dessa classe seja denido como abstract. Além disso, é necessário que a própria classe
seja denida como abstract, pois em caso contrário o compilador não a compilará.
Ainda em classes abstratas, quando uma subclasse de uma classe abstrata é denida, se
não houver denição dos métodos abstratos da classe pai, a subclasse também será consid-
erada abstrata e, portanto, não poderá ser instanciada.
Página 67 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) ERRADA
(B) ERRADA
Java é uma linguagem fortemente tipada. Isso signica que toda variável deve ter um
tipo declarado. Existem oito tipos primitivos em Java. Quatro deles são tipos de números
inteiros, dois são tipos números de ponto utuante, um tipo boolean (intervalo de valores
0 ou 1) e um é o tipo de caracteres char, usado para unidades de código no esquema de
codicação Unicode.
Os tipos de números inteiros servem para números sem parte fracionaria, sendo permitido
valores negativos. O Java fornece os quatro tipos de números inteiros a seguir:
Os tipos utuantes representam números com parte fracionária. Os dois tipos de ponto
utuante são mostrados a seguir:
Página 68 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
O tipo char representa todo o conjunto de caracteres denidos no código de caracter Uni-
code que é usado para denir a extensão das possibilidades de caracteres alfanuméricos e
símbolos. O código UNICODE dene que cada caractere tenha 2 bytes.
O tipo primitivo booleano é o tipo de dados mais simples da linguagem Java. Ele pos-
sui apenas dois valores, um correspondente a verdadeiro e outro a falso. O tipo boolean é
tipicamente usado como resultado de expressões condicionais como variáveis identicadoras
de estado.
(C) ERRADA
Como pode ser observado na tabela que apresenta os tipos de números inteiros acima, o
intervalo que o tipo de números inteiro pode assumir é -2,147,483,648 a 2,147,483,647.
(D) ERRADA
Java suporta comandos condicionais como seleção e laços para determinar o controle do
uxo do programa. Java dene os comandos de seleção (condicionais) if-else e switch, além
desse, a linguagem Java determina comandos de repetição (laços ou loop) que são: while,
for e do-while. Estas estruturas de controle utilizam os símbolos delimitadores (chaves)
como limite de sua operação. Por exemplo:
(E) CORRETA
A operação de casting é responsável por fazer a conversão de um tipo de dado em outro. Ex-
istem regras para esse tipo de conversão de tipo, pois podem causar perda de informações.
A operação casting em Java entre tipos primitivos permite converter o valor de um tipo
para outro tipo primitivo. Mais comumente ocorre com os tipos numéricos, e existe um tipo
primitivo boolean que não pode ser usado em uma operação de casting, pois os valores deste
tipo só podem ser verdadeiro ou falso.
Página 69 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Embora o conceito de conversão seja razoavelmente simples, o uso é complicado pelo fato
de que Java tem oito tipos primitivos e vários tipos de objeto. Há três formas de casting na
linguagem Java:
• Casting entre tipos primitivos, como por exemplo: int para oat ou para double;
• Casting de uma instância de uma classe para uma instância de outra classe;
• Casting tipos primitivos para objetos.
Como apresentado, realmente o tipo primitivo boolean da linguagem Java não pode ser um
dos operandos da operação de casting, fazendo a assertiva E como correta.
Página 70 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
27. Assuntos relacionados: Linguagens de Programação, Java, Pacotes Java, Interface com
Usuário,
Banca: ESAF
Instituição: Controladoria-Geral da União (CGU)
Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento de
Sistemas de Informação
Ano: 2008
Questão: 24
A linguagem Java possui uma API (Application Program Interface) que disponibiliza pa-
cotes e classes com diversas funcionalidades para auxiliar no desenvolvimento de aplicações.
O pacote que contém classes que auxiliam na criação de interfaces de usuário, incluindo
tratamento de grácos e imagens, é denominado
(a). java.util.
(b). java.applet.
(c). java.graphic.
(d). java.image.
(e). java.awt.
Solução:
(A) INCORRETA
O pacote java.util provê classes que tratam de coleções, eventos, data e hora, internacional-
ização, e classes de utilidade: um tokenizador, um gerador de números aleatórios e um vetor
de bits, não tendo qualquer relação com interfaces grácas.
(B) INCORRETA
import java.applet.Applet;
import java.awt.*;
Página 71 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h1>Um exemplo de applet Java</h1>
<p><applet code="HelloWorld.class" width="200" height="40">
Aqui deveria aparecer o string "Hello World".</applet></p>
</body>
</html>
Como o pacote java.applet provê uma forma para criação de applets Java e não provê,
necessariamente, funcionalidade para criação de interfaces de usuário, java.applet não é a
resposta correta.
(C) INCORRETA
Não existe pacote java.graphic na distribuição do J2SE e, portanto, esta alternativa está
incorreta.
(D) INCORRETA
Não existe pacote java.image na distribuição do J2SE e, portanto, esta alternativa está
incorreta.
(E) CORRETA
O pacote java.awt fornece classes para criação de interfaces de usuário e desenho de grácos
e imagens na tela. O exemplo de applet exibido acima faz uso, inclusive, do pacote awt para
exibição da string Hello, world! na janela do navegador. Seu resultado é exibido na Figura
7 e, por tratar de interfaces grácas, essa é a alternativa que responde corretamente a esta
questão.
Página 72 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A linguagem de programação Java surgiu de um projeto da empresa Sun Microsystems
em 1995 com a intenção de possibilitar a programação de qualquer equipamento eletrônico
dotado de um microprocessador. Com o slogan Write once, run everywhere (programe
um vez, execute em qualquer lugar), buscou-se (e ainda busca-se) ilustrar um dos maiores
benefícios desta linguagem que tem como característica marcante a possibilidade de criação
de código portável (bytecodes).
Desde sua concepção e popularização, a Java vem evoluindo e ampliando seus recursos,
ao mesmo tempo que as máquinas virtuais (JVM Java Virtual Machine) têm se tornado
mais ecientes. Um dos aprimoramentos da linguagem foi a introdução da reexão.
O pacote java.lang.reect da API Java proporciona classes e interfaces para se obter in-
formações reetidas a respeito de classes e objetos. A classe Method desse pacote, por
exemplo, fornece informações sobre métodos de uma classe ou de uma interface, além de
permitir o acesso dinâmico a tais métodos. Com isso, pode-se, para cada método examinado,
vericar os modicadores, o nome do método, o tipo de retorno, os parâmetros do método e
as exceções que o método pode lançar. Semelhantemente, através da classe Field do mesmo
pacote, é possível obter dados e informações sobre os atributos membros da classes, como
Página 73 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Analisando os itens da questão, observa-se que a primeira opção apresenta uma informação
incorreta ao armar que a classe Method do pacote java.lang.reect decodica informações
de modicador sobre classes, variáveis e métodos, quando na verdade a classe em questão
fornece informações apenas sobre métodos. Informações sobre variáveis são obtidas pela
classe Field e é através da classe Class que se obtém informações sobre as classes.
As demais armações estão de acordo com a teoria exposta. Desta forma, a resposta à
questão encontra-se no item a).
Página 74 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A chave para maximizar o reuso reside em antecipar novos requisitos e novas mudanças rel-
ativos aos requisitos existentes, projetando sistemas que conseguem evoluir adequadamente.
Para projetar sistemas que sejam robustos em face a mudanças, deve-se considerar como
o sistema pode precisar ser alterado em seu ciclo de vida. Um projeto que não considere
este aspecto arrisca-se a ser reprojetado no futuro. Estas mudanças podem envolver re-
denição e reimplementação de classes, modicações no cliente e reteste. O reprojeto afeta
muitas partes do sistema de software e modicações não-antecipadas são invariavelmente
caras.
Página 75 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
um subsistema. Assim, ele dene uma interface de alto-nível que torna um subsistema mais
fácil de ser utilizado. Em geral, apenas um único objeto Facade é necessário.
A alternativa A não descreve uma característica do padrão de projeto Facade, pois, neste,
não há representação de um objeto por outro, mas sim, de subsistemas inteiros por um objeto
que atua como interface. O denição do objeto Facade é feita por completo, não havendo
qualquer tarefa às classes do subsistema nesse tocante. Por este motivo, a armativa B está
incorreta. Semelhantemente, após a denição desse objeto Facade, o mesmo deve ter ciência
das classes que interfaceia para, no momento oportuno, instanciá-las adequadamente. A al-
ternativa C não está correta por contradizer tal característica. Por m, a assertiva E busca
introduzir o conceito de dependência, inexistente no padrão de projeto em questão e, desta
forma, não se alinha às características do Facade. Resta a alternativa D, que apresenta-se
em acordo com a teoria exposta, sendo a resposta para a questão.
Página 76 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Como o nome sugere, a UML é uma linguagem de modelagem. Oriunda da junção de três
métodos de modelagem (Booch, OMT e OOSE), é mantida pela OMG (Object Manage-
ment Group) e permite que os desenvolvedores visualizem o resultado de seus trabalhos em
diagramas padronizados, através de uma notação gráca bem denida.
A questão envolve, basicamente, a avaliação de terminologias. A UML não pode ser consid-
erada um processo, pois não dene etapas de execução. Nem tão pouco pode-se entendê-la
como um método ou uma metodologia, já que não existem diretrizes de como projetar ou
especicar sistemas. Essa primeira avaliação exclui as assertivas a), b) e e) como alternativas
para a questão. A opção c) descreve uma linguagem de programação, o que não é o caso da
UML.
O item d) dene precisamente a UML: uma linguagem visual para especicar, construir
e documentar os artefatos dos sistemas. Deve-se ter em mente que a UML é uma lin-
guagem composta por elementos grácos a serem utilizados na modelagem dos conceitos do
paradigma orientado a objetos.
Página 77 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Geralmente, os usuários avaliam um sistema pela sua interface (responsável pela interação
do usuário com o computador) e não pela sua funcionalidade. Para você ter uma idéia, a
interface pode determinar o sucesso ou o fracasso da utilização de sistema, por isso é ex-
tremamente importante que os engenheiros de softwares estejam preparados para projetar
uma interface com o usuário.
Uma boa abordagem que os engenheiros de software adotam é fazer com que o projeto
de interface seja centrado no usuário, onde o fator de sucesso é proveniente da análise das
atividades do(s) usuário(s). A Figura 8 exemplica o processo de projeto de interface (note
a existência de vários).
Página 78 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Saiba que quando você classica um sistema que está utilizando em fácil ou difícil, você
está, na verdade, analisando a usabilidade do programa. Quando o usuário precisa de uma
ferramenta, geralmente ele procura aquela que atenda a suas necessidades e que não lhe
traga problemas durante o seu trabalho, ou seja, ele procura um produto com um bom nível
de usabilidade, e para se obter esse nível de usabilidade é necessário levar em consideração
as características acima apresentadas.
Segundo a norma ISO CD 9241: usabilidade está relacionada com a forma como um produto
pode ser usado por um grupo de usuários para alcançar um determinado conjunto de objetivos
com ecácia (precisão e completeza com que os usuários atingem objetivos especícos), e-
ciência (precisão e completeza dos objetivos atingidos em relação aos recursos despendidos)
e satisfação (conforto e aceitabilidade na utilização do sistema) de uso em um determinado
contexto de aplicação.
Achou meio vaga a denição de Nielsen, né? Realmente, todas as características não
ajudou muito. Bom, para facilitar, nós apresentaremos as 10 características por ele consid-
eradas as mais importantes:
Página 79 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Candidato, se você ainda estiver se perguntando o que levaria uma empresa a investir em
usabilidade, recomendamos que leia o restante do comentário.
É preciso saber que a aceitabilidade de um produto está divida entre a aceitabilidade social
e a aceitabilidade prática. A aceitabilidade social diz respeito à quão bem recebido um pro-
duto será em uma sociedade, o que é fundamental na determinação do sucesso ou do fracasso
de um determinado produto, isso porque, quanto melhor aceito for um produto socialmente,
maior será o número de pessoas que o adquirirá. Entretanto somente a aceitabilidade social
não é suciente para sua aquisição. Sem a aceitabilidade prática, de nada vale a aceitabili-
dade social.
Portanto, aqueles que não investem em usabilidade correm riscos consideráveis, como o de
perder na comparação com um outro produto submetido às práticas de usabilidade. Além
disso, quando não se investe em usabilidade é quase certo que o produto apresentado tenha
que retornar aos laboratórios de desenvolvimento, para corrigir erros que poderiam ter sido
detectados através da prática dos métodos de usabilidade.
Página 80 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
(A) ERRADA
(B) ERRADA
(C) ERRADA
Página 81 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(D) ERRADA
(E) CORRETA
Esse processo de software é geralmente aplicado a sistema que possuem requisitos críticos
de segurança, isso porque o sistema deve ser livre de falhas. Isso é obtido pela modelagem
matemática.
Concluindo, todos os itens descritos acima, análise e denição de requisitos, análise estru-
turada e orientada a objeto e projeto de software são elementos da modelagem de processo
de software. O único processo de software descrito acima é o Desenvolvimento Formal de
Sistema. Logo, a questão correta é a letra E.
Página 82 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
O modelo de desenvolvimento em espiral é um processo de software que agrupa as melhores
características dos modelos de software cascata e prototipação. As propriedades combinadas
são o controle sequencial para descrever o uxo organizado de atividades que são execu-
tadas e a características de iteratividade que o modelo de prototipação trabalha iteração
com o cliente para o renamento dos requisitos e correção de requisitos mal interpretados.
Além dessas características, o modelo espiral adiciona uma nova atividade análise dos riscos
que é exigida em todos os estágios (ciclos) do projeto. Este novo elemento se executado
corretamente proporciona o desenvolvimento do projeto sem a ocorrência de fortes impactos
sobre seu uxo de execução do projeto com situações problemáticas. A partir destes elemen-
tos, o modelo espiral obtém o desenvolvimento rápido de novas versões do software/sistema
partindo de um conjunto de funcionalidades básicas até se tornar um software completo.
Para tanto, o modelo espiral segue um conjunto de 6 atividades como descrito e apresentado
na Figura 9.
Página 83 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Concluindo, para que este processo de software tenha sucesso ao nalizar um projeto é
necessário que em cada iteração ou nível evolucionário a etapa de análise de riscos deve ser
executada. Portanto, a questão correta é a letra E.
Página 84 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Requisitos são condições que descrevem o comportamento exigido do sistema de software
após a sua parcial ou completa implementação. Os primeiros requisitos de um sistema são
denidos pelo usuário a partir de uma declaração abstrata das funcionalidades requeridas
pelo mesmo. Outro tipo de requisito é o de sistema (requisitos de sistema) que incorpora
os requisitos de usuário, porém o detalhamento dos procedimentos executados são mais
especicados seguindo um padrão de organização das funções denidas. Os requisitos de
usuários e de sistemas podem ser denidos da seguinte forma:
Página 85 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Depois da apresentação conceitual sobre os tipos de requisitos podemos ter certeza que
o requisito de usuário deste problema é a descrição: O software deve oferecer um meio
de representar e acessar arquivos externos criados por outras ferramentas, por
ser denido de forma não-técnica e pouco detalhe. Logo, a questão correta é a letra B.
Página 86 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
35. Assuntos relacionados: Banco de Dados, SQL, Data Manipulation Language (DML),
Data Denition Language (DDL), Data Control Language (DCL),
Banca: ESAF
Instituição: Controladoria-Geral da União (CGU)
Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento de
Sistemas de Informação
Ano: 2008
Questão: 51
Em um banco de dados que utiliza a linguagem SQL para denição, manipulação e controle
de dados, é correto armar que os comandos
(a). CREATE, DROP e INSERT fazem parte da DML (Linguagem de Manipulação
de Dados).
(b). GRANT e REVOKE fazem parte da DCL (Linguagem de Controle de Dados).
(c). INSERT, UPDATE e SELECT fazem parte da DDL (Linguagem de Denição de
Dados).
(d). ALTER, DELETE e REVOKE fazem parte da DML (Linguagem de Manipulação
de Dados).
(e). CREATE, GRANT e DROP fazem parte da DCL (Linguagem de Controle de
Dados).
Solução:
Os Bancos de Dados, em geral, possuem diversos tipos de usuários, desde administradores
de bancos de dados (DBAs) até usuários casuais, passando por projetistas de bancos de
dados e programadores/analistas de sistemas. Para cada uma desta variedade de usuários,
o Sistema de Gerenciamento de Banco de Dados (SGBD) deve proporcionar linguagens e
interfaces apropriadas.
Em muitos SGBDs onde não há uma clara separação entre os níveis interno e conceitual,
uma linguagem chamada Linguagem de Denição de Dados (DDL Data Denition Lan-
guage) é utilizada pelo DBA e pelos projetistas para denir ambos os esquemas. Em SGBDs
onde é mantida uma separação clara entre os dois níveis, a DDL é utilizada para especicar
apenas o esquema conceitual e uma outra linguagem, a Linguagem de Denição de Ar-
mazenamento (SDL Storage Denition Language), é utilizada para especicar o esquema
interno. Para especicar visões de usuários e seus mapeamentos para o esquema conceitual,
a Linguagem de Denição de Visão (VDL View Denition Language). Entretanto, na
maioria dos SGBDs a DDL é utilizada para denir tanto o esquema conceitual quanto o
esquema externo.
Página 87 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Em SQL, a DML é composta pelos comandos INSERT, UPDATE e DELETE, que são
utilizados para inserir, atualizar e excluir registros de uma tabela, respectivamente. Já a
DDL possui os comandos básicos CREATE, ALTER e DROP que criam, alteram ou apagam
objetos (tabelas, índices e visões) do banco de dados. Para alguns autores, os comandos
CREATE VIEW e DROP VIEW comporiam a VDL de SQL.
Embora com apenas um único comando (o comando SELECT), a DQL (Data Query Lan-
guage Linguagem de Consulta de Dados) é a parte da SQL mais utilizada, permitindo que
consultas sejam efetuadas ao banco de dados.
Pela teoria exposta, percebe-se que a alternativa b) é a única que apresenta o correto agru-
pamento de comandos componentes de uma das partes da SQL, sendo a resposta para a
questão.
Página 88 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Nesta questão, o conceito apresentado de maneira incorreta é o descrito na alternativa e,
dado que a descrição apresentada descreve, de maneira errônea, o que é uma restrição de
domínio.
Uma restrição de domínio é uma restrição que especica que, dentro de cada tupla do banco
de dados relacional, o valor de cada atributo A deve ser um valor pertencente ao domínio
de A. Em outras palavras, uma restrição de domínio testa os valores inseridos no banco
de dados e as consultas realizadas para garantir que os valores inseridos sejam condizentes
com os domínios das variáveis armazenadas. O domínio de um atributo envolve seu tipo de
dados, o intervalo de valores possíveis que esse atributo pode possuir, seu tamanho máximo,
e se existe a possibilidade de valores nulos em A.
Os tipos de dados associados aos domínios incluem os tipos de dados numéricos padrão
(como inteiros e números reais de representados por ponto utuante), caracteres, booleanos,
strings de comprimento xo e variável, data, hora, timestamp e, em alguns casos, moeda. É
possível, também, como citado, especicar subconjuntos de valores de um tipo de dado ou
por uma enumeração de valores.
Um domínio, por sua vez, é um conjunto de valores atômicos. Por atômico entendemos que
cada valor no domínio é indivisível no que diz respeito ao modelo relacional. Um método
comum para a especicação de um domínio é denir um tipo de dados do qual os valores de
dados que formam o domínio sejam retirados. Também é útil especicar um nome para esse
domínio, de modo a ajudar na interpretação de seus valores. Alguns exemplos de domínio
são (com o nome do domínio à esquerda e sua descrição à direita):
Página 89 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 90 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A Linguagem Unicada de Modelagem (UML - Unied Modelling Language) é uma lin-
guagem de modelagem padronizada de propósito geral no campo da Engenharia de Soft-
ware. A UML inclui um conjunto de técnicas de notação gráca pra criar modelos visuais
de sistemas de software.
A UML não é uma metodologia de desenvolvimento. Ela é usada para especicar, visu-
alizar, modicar, construir e documentar os artefatos de um sistema de software orientado
a objetos. Oferece uma forma padronizada de visualizar a arquitetura de um sistema, in-
cluindo elementos tais como:
• Atores;
• Processos de negócio;
• Componentes (lógicos);
• Atividades;
• Denições de linguagem de programação;
• Esquemas de banco de dados;
• Componentes de software reutilizáveis.
• Diagramas Estruturais:
Diagrama de Classes;
Diagrama de Objetos;
Página 91 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Diagrama de Componentes;
Diagrama de Estrutura Composta;
Diagrama de Distribuição.
• Diagramas de Comportamento:
Diagrama de Caso de Uso;
Diagrama de Estado (ou Diagrama de Transição de Estados);
Diagrama de Atividade;
Diagramas de Interação;
Diagrama de Sequência;
Diagrama de Comunicação (ou Diagrama de Colaboração);
Diagrama de Visão Geral de Interação;
Diagrama Temporal;
(A) ERRADA
(B) CORRETA
Este diagrama mudou de nome, agora (UML 2.0) ele é chamado de diagrama de comu-
nicação (o nome já nos sugere que a alternativa está correta).
Ele apresenta as interações existentes entre objetos em uma situação especíca, o que o
torna um pouco similar ao diagrama de sequência. Enquanto um diagrama de colaboração
apresenta mais claramente quais objetos se relacionam entre si, um diagrama de sequência
enfatiza como as interações entre objetos ocorrem ao longo do tempo.
(C) ERRADA
(D) ERRADA
Página 92 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(E) ERRADA
Diagrama de Caso de Uso é um dos principais diagramas da UML (Unied Modeling Lan-
guage). Ele descreve, de forma gráca e intuitiva, relacionamentos e dependências entre um
grupo de casos de uso e os atores que interagem com o sistema. O ponto de vista assumido
para essa descrição é sempre o dos atores envolvidos.
Lembre-se que um ator é uma entidade externa ao sistema. Ele é representado graca-
mente por meio de um boneco e um rótulo com o seu nome. Geralmente, é um ator que
inicia um caso de uso. Alguns exemplos de atores são: usuários, outros sistemas que fazem
interface com o sistema que está sendo modelado e eventos externos.
Resumindo, esse tipo de diagrama descreve interações entre os atores e o sistema em si.
Página 93 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
A UML (Unied Modeling Language ) é uma linguagem visual para especicação, construção
e documentação de softwares baseados na modelagem orientada a objeto. A UML não é um
método de desenvolvimento, mas um modelo de linguagem utilizada para que a modelagem
de sistemas seja consistência, simples, compreensível e de fácil comunicação com outros sis-
temas.
O diagrama de casos de uso é composto por atores, por casos de uso e por relacionamentos.
Os atores representam o papel de uma entidade externa ao sistema como um usuário, um
hardware, ou outro sistema que interage com o sistema modelado. Os casos de uso são
processos ou funções que o sistema deve realizar de forma automática ou manual.
Os relacionamentos podem ocorrem entre casos de usos, entre atores e casos de uso e entre
atores. Os tipos de relacionamentos entre casos de uso são a extensão, a inclusão e a gen-
eralização. Os tipos de relacionamento entre atores e casos de usos é a associação. E para
relacionamento entre atores é a generalização.
No UML, as classes podem ser organizadas em uma hierarquia onde uma classe (super-
classe) é uma generalização de uma ou mais classes (subclasses). Uma subclasse herda os
atributos e operações da superclasse e pode adicionar novos métodos.
(A) CORRETA
Página 94 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
(B) ERRADA
O termo simetria não está relacionado a UML. Portanto, esta alternativa está errada.
(C) ERRADA
Esta alternativa está errada, pois não confere com a descrição solicitada no enunciado.
(D) ERRADA
Em uma herança múltipla, uma classe pode ter mais de uma superclasse. Tal classe herda de
todas a suas superclasses. O uso de herança múltipla pode levar a conitos quando atributos
e operações de superclasses diferentes tem o mesmo nome e semânticas diferentes.
Esta alternativa está errada, pois não confere com a descrição solicitada no enunciado.
(E) ERRADA
A associação é um mecanismo que permite objetos comunicarem entre si, isto é, um rela-
cionamento que descreve uma série de ligações, onde a ligação é denida como a semântica
entre as duplas de objetos ligados.
Esta alternativa está errada, pois não confere com a descrição solicitada no enunciado.
Página 95 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Um modelo de maturidade é uma coleção bem estruturada de elementos cujo objetivo é
descrever determinados aspectos da maturidade de uma organização. Para o desenvolvi-
mento de software, existe o CMM (Capabitlity Maturity Model), ou SW-CMM (Capabitlity
Maturity Model for Software), que pode ser entendido como o Modelo de Maturidade da
Capacidade. Desenvolvido pelo SEI (Software Engineering Institute) desde 1986, o CMM
descreve os princípios e práticas que formam a base da maturidade do processo de software,
tendo por objetivo auxiliar as organizações de software a melhorar a maturidade de seus
processos em termos de um caminho evolutivo partindo de processos caóticos e eventuais
em direção a processos de software maduros e disciplinados. Neste contexto, o CMM não
pode ser classicado como uma metodologia, já que indica apenas o que deve ser efeito para
alcançar a maturidade dos processos, sem indicar como efetuar as atividades necessárias
para atingir esse intento. Devido a este fato, é independente da tecnologia a ser utilizada.
Página 96 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Página 97 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Solução:
Os sistemas gerenciadores de bancos de dados utilizam diferentes linguagens para denir e
manipular o banco de dados, além de realizar outras atividades. Tais linguagens podem ser
classicadas diversas categorias, entre as quais as mais populares são:
• DDL (Data Denition Language) ou (Linguagem de Denição de Dados);
• DML (Data Manipulation Language) ou (Linguagem de Manipulação de Dados);
• DCL (Data Control Language) ou (Linguagem de Controle de Dados);
• DQL (Data Query Language) ou (Linguagem de Consulta de Dados);
• TCL (Transaction Control Language) ou (Linguagem de Controle de Transações).
Para denir e exemplicar cada uma das categorias, vamos nos ater aos bancos de dados
relacionais, pois são estes os mais populares e cobrados em provas de concursos. No entanto,
vale ressaltar que estas e outras categorias de linguagens de SGBDs existem para as demais
tecnologias de bancos de dados, como a hierárquica, a de rede, a orientada a objetos etc.
Página 98 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
A DML contém o conjunto de comandos utilizados para manipular os dados, o que deve ser
entendido como a criação de novos registros nas tabelas, além da atualização e da exclusão
de registros já existentes. Os comandos que compõe a DML são, basicamente, os seguintes.
Os comandos que compõe a DCL têm por nalidade, basicamente, permitir o controle de
aspectos não funcionais do banco de dados, como a segurança dos dados. São os comandos
DCL que permitem a criação e exclusão de usuários, a criação de pers de acesso, a alter-
ação de senhas, e as operações de concessão e revogação de acesso aos diversos elementos de
dados. Exemplos típicos de comandos DCL são mostrados a seguir.
GRANT (Autoriza ao usuário executar uma operação sobre algum elemento de dado)
REVOKE (Revoga do usuário o direito de executar uma operação)
ALTER PASSWORD (Altera a senha de um usuário)
CREATE ROLE (Cria um perfil de acesso)
DQL (Data Query Language)
AND (E lógico)
OR (OU lógico)
NOT (Negação lógica)
< (Menor que)
> (Maior que)
<> (Diferente de)
<= (Menor ou Igual que)
>= (Maior ou Igual que)
= (Igual a)
BETWEEN (Utilizado para especificar um intervalo de valores)
LIKE (Utilizado na comparação de padrões de cadeias de caracteres)
Página 99 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9 Edição 1
Por m, merecem destaque as funções de agregação, que adicionam à DQL a capacidade
de agregar os resultados de uma consulta em um único valor. As principais funções de
agregação são as seguintes:
Diante de toda a teoria exposta, podemos armar que a resposta da questão é a alternativa
E DDL (Data Denition Language).
Solução:
Um Sistema Gerenciador de Bancos de Dados (SGBD) é composto por vários módulos, com
atribuições especícas. A Linguagem de Denição de Dados (DDL Data Denition Lan-
guage), responsável por construções declarativas dos objetos da base de dados, precisa de
um processador de DDL (ou compilador) que lhe interprete os comandos. Tal compi-
lador processa as denições de esquema, especicados na DDL, e armazena descrições dos
esquemas (meta-dados) no catálogo do SGBD. Da mesma forma, a Linguagem de Manip-
ulação de Dados (DML Data Manipulation Language), que permite o processamento
ou manipulação dos dados armazenados, faz uso de um processador de DML dedicado
à tarefa de compilar os comandos DML em códigos-objeto para acesso à base de dados.
Essas requisições de acesso são gerenciadas pelo processador da base de dados em
tempo de execução (runtime database processor), que recebe as operações de atualização
ou obtenção de dados e, quando necessário, transporta tais dados para fora do banco de
dados, em atendimento às consultas efetuadas.
Um consulta expressa em uma linguagem de alto-nível, como a linguagem SQL, deve primeira-
mente ser escaneada, parseada e validada. O processo de escaneamento identica os tokens
da linguagem no texto da consulta, ao passo que o parser verica a sintaxe da pesquisa para
determinar se houve uma formulação segundo as regras gramaticais impostas. A etapa de
validação verica se os atributos e relações presentes na consulta são válidos e se fazem
sentido semanticamente face ao esquema do banco de dados. Em seguida, uma estratégia de
execução para recuperação do resultado da consulta precisa ser denida. Geralmente, uma
consulta possui diversas estratégias de execução. O módulo otimizador de consultas é
responsável por elaborar um plano de execução mais adequado para obter o resultado dese-
jado da forma mais eciente possível.
físico (ou esquema interno, ou nível interno), esquema conceitual (ou nível conceitual) e
esquema(s) externo(s) (ou nível de visão). O objetivo dessa arquitetura em três esquemas é
separar as aplicações de usuário da estrutura física do banco de dados.
Solução:
A integridade é a qualidade de garantir que os dados em um banco de dados estejam corre-
tos. Geralmente, as restrições de integridade são denições de valores permitidos de serem
atribuídos a determinadas variáveis. No momento de uma inserção de dados, ou mesmo de
uma atualização em dados já existentes, as restrições de integridade devem ser respeitadas
e, para tanto, vericações são efetuadas antes da inserção/atualização serem concretizadas.
A questão natural que surge é o momento da vericação e da consequente execução da op-
eração solicitada (inserção/atualização).
Neste contexto, o conceito de transação surge como uma opção de solução ao problema
da manutenção da integridade face a concorrência de operações. A transação, isto é, um
conjunto de operações sobre uma base de dados, deve possuir 4 características essenciais com
o intuito de auxiliar a garantia da integridade dos dados. Uma transação deve ser atômica,
ou seja, todas as operações (ou comandos) que a compõem são executadas de uma maneira
única (todas as operações são executadas com sucesso ou nenhuma delas é executada). Uma
transação deve ser isolada de outras transações e, consequentemente, ser executada de forma
independente das demais. Além disso, toda transação precisa ser durável, característica que
garante a execução de suas operações mesmo na presença de falhas (inclusive de forneci-
mento de energia elétrica). E, por m, mas não com menos importância, uma transação
deve ser consistente, ou seja, deve fornecer a garantia de consistência dos dados em relação
a um conjunto de regras de negócio previamente estabelecidas.
Para uma adequada execução, operações de controle sobre as transações são utilizadas.
São elas:
O comando DROP faz parte da DDL (Data Denition Language) de um banco de dados,
sendo responsável por apagar itens do catálogo do banco em conjunto com outras diretivas,
como pode ser observado, por exemplo, no comando DROP TABLE que serve para apagar
uma tabela do banco de dados, ou ainda no comando DROP DATABASE que serve para
apagar o próprio banco de dados.
43. Assuntos relacionados: Banco de Dados, Business Inteligence, Data Warehouse, On-line
Analytical Processing, On-Line Transaction Processing,
Banca: ESAF
Instituição: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento de
Sistemas de Informação
Ano: 2008
Questão: 15
Um depósito de dados organizado por assunto, não-volátil, integrado e variável em função
do tempo, utilizado para apoiar decisões de gerenciamento, é denominado
(a). datawarehouse.
(b). gestão do conhecimento.
(c). business Intelligence.
(d). mineração de dados.
(e). OLAP (OnLine Analytical Processing).
Solução:
Um candidato atento consegue acerta esta questão com alto grau de conança mesmo que
não conheça muito bem todos os termos envolvidos. Isso porque com uma boa leitura do
enunciado e das alternativas, não é muito difícil de perceber que a única alternativa que traz
um depósito de dados é a letra A. Para os concursos atuais, que abrangem uma vasta gama
de assuntos, esse tipo de análise pode signicar um diferencial importante na conquista de
uma vaga. Fique atento!
(A) CORRETA
• variante no tempo: um data warehouse mantém a chamada série histórica dos dados,
o que é muito importante para comparações e projeções. Pode-se entender essa séria
histórica (horária, diária, semanal, etc.) como uma sequência de fotograas das
informações (fatos) que compõem o data warehouse.
(B) ERRADA
Gestão de conhecimento não representa uma base de dados. Portanto, esta alternativa
deve ser rapidamente desconsiderada. Gestão de conhecimento é uma área de estudos, que
vem crescendo muito ultimamente, composta por várias técnicas e teorias que orientam como
o conhecimento de um grupo de pessoas ou instituições deve ser gerido.
(C) ERRADA
Business intelligence (BI) é um termo amplo e abstrato inventado pelo Gartner Group.
Ele se refere a métodos utilizados para auxiliar as corporações a tomarem suas decisões em
função de dados e informações obtidas por diversos sistemas de informação. Atualmente,
por sua capacidade de sumarizar grandes volumes de dados, o data warehouse é o núcleo das
principais soluções de BI do mercado. Duas outras ferramentas que podem ser utilizadas na
composição de uma solução de BI são: data mart e data mining. Perceba, portanto, que BI
não é em si uma base de dados, e sim um conceito muito mais amplo.
(D) ERRADA
(E) ERRADA
Um banco de dados OLAP pode ser armazenado de várias maneiras. Em uma arquite-
De qualquer forma, OLAP por si só não representa uma base de dados, mesmo apesar
desses termos serem correlacionados. É justamente por isso que esta alternativa não pode
ser considerada correta.
Solução:
(A) INCORRETA
(B) INCORRETA
Índices de hashing são índices que usam tabelas hash para indexação. Neles, as chaves
de pesquisa são organizadas como uma tabela hash, em que as chaves de pesquisa são asso-
ciadas às entradas onde essas chaves ocorrem. Uma tabela hash (ou tabela de dispersão),
por sua vez, é uma estrutura de dados que associa chaves de pesquisa a valores. Seu obje-
tivo é, a partir de uma chave simples, fazer uma busca rápida e obter o valor desejado. Por
mapearem uma chave de pesquisa a um determinado índice de forma direta, as tabelas hash
proporcionam um tempo médio de busca constante, ou seja, O(1). Em virtude de seu alto
desempenho, as tabelas hash são tipicamente utilizadas na indexação de grandes volumes de
informações em bancos de dados e na criação de esquemas associativos de acesso às memória
cache.
Após a construção do índice, quando uma consulta é realizada, a função hash é aplicada
à chave de pesquisa para identicação do slot onde as chaves ocorrem. As entradas das
ocorrências são, então, recuperadas.
Apesar de ecientes para buscar um único valor e como valores próximos são normalmente
mapeados para posições distantes na tabela, uma abordagem de tabelas hash para consultas
1
Fonte: Ecient Join-Index-Based Join Processing: A Clustering Approach, disponível em
http://www.cs.umn.edu/tech_reports_upload/tr1999/99-030.pdf
com intervalos se mostrará ineciente, visto que a conferência dos valores nos intervalos será
custosa.
(C) CORRETA
Índices em árvores B, como o nome diz, são índices que usam árvores B. Uma árvore B
é uma estrutura de dados baseada em árvores que mantém os dados ordenados e que per-
mite buscas, acesso sequencial, inserções e remoções em tempo logarítmico amortizado. Por
ser otimizada para sistemas que leem e escrevem grandes quantidades de dados, elas são
bastante utilizadas na implementação de bancos de dados e sistemas de arquivos.
As árvores B são uma generalização das árvores de busca binárias, pois cada nó pode possuir
mais de dois lhos. Mais formalmente, uma árvore B de ordem m (com m o número máximo
de lhos de um nó) é uma árvore que satisfaz as seguintes propriedades:
A altura de uma árvore B é, sempre, O(log n) e uma busca por um valor exato em uma
árvore B é, também, O(log n). No entanto, quando é necessário buscar por um intervalo,
como, internamente os nós das árvores B estão ordenados e a busca pelos limites é O(log n),
a recuperação dos valores do intervalo buscado é feita rapidamente, tornando as árvores B
a melhor estrutura de dados para criação do índice nesse caso e, portanto, a alternativa c é
a correta.
(D) INCORRETA
(E) INCORRETA
Índices funcionais são índices denidos pelo usuário do sistema de banco de dados. Com
eles, é possível que o usuário do banco de dados dena suas próprias funções de indexação.
Esse tipo de índice adiciona exibilidade ao banco de dados e pode ser usado com tipos
denidos pelo usuário. Por poderem ser implementados da forma que melhor convier ao
usuário e não um algoritmo propriamente dito, índices funcionais não são a solução para
esta questão.
Figura 10: desenvolvimento de uma árvore B de ordem 3 à medida que os elementos 1, 2,
3, 4, 5, 6 e 7 são adicionados.
45. Assuntos relacionados: Estruturas de Dados, Fila, Árvore, Lista Encadeada, Pilha,
Banca: ESAF
Instituição: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento de
Sistemas de Informação
Ano: 2008
Questão: 18
Navegadores Web armazenam as URLs (Uniform Resource Locators) visitadas recentemente
em uma determinada estrutura de dados. Com isso, permite que o usuário visite o último
site visitado, ao recuperar a URL na estrutura, usando uma operação de retorno (back). A
estrutura de dados apropriada para implementar este recurso é a
(a). la.
(b). árvore.
(c). lista encadeada simples.
(d). lista encadeada dupla.
(e). pilha.
Solução:
O problema acima, dos Navegadores Web, descrevem uma forma de armazenamento de
URL que possui como característica a funcionalidade de recuperar a última URL acessada.
A seguir iremos fazer uma breve descrição sobre as estrutura de dados mais conhecidas,
respectivamente, la, árvore, lista, e pilha.
(A) ERRADA
Uma la é simplesmente uma lista de informações que é acessada na ordem primeira a
entrar, primeiro a sair, sendo chamada de FIFO (First Int, First Out). Isto é, o primeiro el-
emento colocado na la é o primeiro a ser retirado, o segundo elemento colocado é o segundo
a ser recuperado e assim sucessivamente. Essa é a única forma de armazenar e recuperar
em uma la, não é permitido acesso a nenhum item especíco.
(B) ERRADA
Uma árvore é uma estrutura de dados que organiza seus elementos de forma hierárquica.
Cada elemento em uma árvore consiste de informação juntamente com um ponteiro para o
membro esquerdo e um ponteiro para o membro direito. A raiz é o primeiro elemento em
uma árvore. Cada elemento de dado é chamado de nó da árvore e qualquer parte da árvore
é chamada de uma subárvore. Um nó que não tem subárvore ligadas a ele é chamado de nó
terminal.
(C) ERRADA
Um lista encadeada é uma estrutura de dados onde cada elemento possui um ligação com
um/dois elementos. Cada elemento possui um dado e um/dois ponteiros para o(s) ele-
mento(s) subsequentes.
Uma lista encadeada pode acessar seu armazenamento de forma randômica, porque cada
(D) ERRADA
Uma lista duplamente encadeada consiste em dados e ponteiros para o próximo elemento e
para o item anterior. O fato de ter dois ponteiros em lugar de um tem a vantagem da lista
poder ser lida em ambas as direções.
(E) CORRETA
Uma pilha é o inverso de uma la porque usa o acesso no formato de último a entrar,
primeiro a sair, o que algumas vezes é chamado de LIFO (Last In, First Out). Para visu-
alizar uma pinha imagine uma pinha de pratos. O primeiro prato na mesa é o último a ser
usado e o último prato colocado na pilha é o primeiro a ser usado. Pilhas são usadas em
grande quantidade em software de sistema. As duas operações básicas da pilha são:
Portanto, a única estrutura de dados que possui uma funcionalidade de recuperar o último
elemento inserido é a estrutura pilha, desta forma, a letra correta é a E.
Solução:
No Java, ao contrário de algumas linguagens como o C, não é necessário que o programador
se preocupe com a vida de um objeto, se responsabilizando em liberar espaços de memória
antes que ela esgote. O mecanismo de coleta de lixo (garbage collection ) do Java faz uma
varredura periódica em busca de posições de memória não mais referenciadas e realiza a
liberação das mesmas.
Removendo todas as referências do objeto, possibilitaremos que ele seja destruído pelo co-
letor de lixo, mas essa destruição ocorrerá em algum ponto especíco de sua execução, que
é iniciada ao bel-prazer da JVM (Java Virtual Machine). Quando a JVM decidir que é
hora de executá-lo, ele será executado, pois deve ser usado com inteligência devido aos altos
recursos computacionais que são exigidos.
Não é possível forçar a execução do coletor de lixo via programação no Java. Os méto-
dos indicados nas alternativas (C) e (D) apenas noticam à JVM que a aplicação gostaria
que o coletor de lixo fosse executado, mas não garantem que ele realmente será executado
imediatamente.
Dado o exposto, sabemos que a execução do coletor de lixo não pode ser forçada e, portanto,
a alternativa correta é a alternativa (E).
47. Assuntos relacionados: Sistemas Distribuídos, Common Object Request Broker Architec-
ture (CORBA), Distributed Component Object Model (DCOM), Java Remote Method In-
vocation (Java RMI), Distributed Computing Environment (DCE), Remote Procedure Call
(RPC),
Banca: ESAF
Instituição: Secretaria do Tesouro Nacional (STN)
Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento de
Sistemas de Informação
Ano: 2008
Questão: 23
A tecnologia mais adequada para sistemas de objetos distribuídos que compreendem o su-
porte a diferentes linguagens de programação e plataformas de execução é
(a). CORBA.
(b). DCOM.
(c). Java RMI.
(d). DCE.
(e). RPC.
Solução:
Antes de apresentar a alternativa correta, cada uma das tecnologias acima listadas será de-
scrita. Por se tratar de um conceito mais genérico, o RPC será apresentado primeiro, com
as outras alternativas listadas pela questão apresentadas posteriormente.
RPC
RPC (chamada remota a procedimento, do Inglês Remote Procedure Call) é uma tecnolo-
gia de comunicação inter-processos que permite que programas de computador causem a
execução de funções ou rotinas em outro espaço de endereçamento, comumente em outro
computador em uma rede, sem a necessidade de programação explícita dessa interação re-
mota. Isso signica que, sendo a função local ou remota, sua chamada seria feita da mesma
forma. É importante notar que RPC se refere mais a um conceito (o de chamadas a proced-
imentos remotos) que a uma tecnologia especíca.
O processo de uma chamada remota a procedimento é iniciado com o envio, por parte
do cliente, de uma mensagem de requisição a um servidor remoto conhecido para execução
de um procedimento qualquer. Os parâmetros desse procedimento são, também, enviados
com a requisição. Supondo que o procedimento existe no servidor e que ele é executado com
sucesso, uma resposta é enviada ao cliente e a execução do processo do cliente continuar
normalmente. Há, no entanto, variações em diversas implementações de RPC, o que resulta
em protocolos incompatíveis entre si (e, portanto, na necessidade de diferenciação desses
protocolos).
acontece e só retorna a executar quando uma resposta é obtida. Além disso, chamadas
remotas, diferentemente de chamadas locais, podem falhar devido a problemas de rede e,
neste caso, as aplicações cliente devem tratar essas falhas sem a certeza de que as chamadas
remotas foram executadas com sucesso.
Para permitir que servidores sejam acessados por clientes diferentes, diversos sistemas RPC
foram criados e muitos utilizam uma linguagem de descrição de interface (IDL) para permi-
tir que diversas plataformas possam executar as chamadas remotas. Os outros protocolos
listados nesta questão são análogos ao RPC.
CORBA
CORBA (Common Object Request Broker Architecture) é um padrão denido pelo OMG
(Object Management Group) que permite que componentes de software escritos em lingua-
gens de programação diferentes e em diversos computadores possam trabalhar em conjunto.
Em outras palavras, o CORBA é uma infraestrutura multiplataforma para chamada remota
a procedimentos. O CORBA atua de modo que os objetos possam se comunicar de forma
transparente para o usuário, mesmo que seja necessário se comunicar com outro programa
em outro sistema operacional.
denição de interface (IDL, do Inglês Interface Denition Language) é usada para especi-
car as interfaces dos objetos que serão disponibilizados para o mundo externo à aplicação
local. Existem, então, mapeamentos de IDL para linguagens de programação especícas
como Java, ou C++. Há mapeamentos padrão para Ada, C, C++, Lisp, Ruby, Smalltalk,
Java, COBOL, PL/I e Python.
Para linguagens em que não há uma IDL padrão, é possível implementar uma através dos
uso de ORBs (Object Request Brokers) escritos para essas linguagens. O ORB é um módulo
intermediário entre cliente e objeto e é o responsável por aceitar requisições, enviá-las para
os objetos competentes e, assim que disponível, entregar a resposta para o cliente.
Um dos problemas na adoção do CORBA é que, por usar conexões TCP/IP em portas
não padrão, ele sofre com rewalls mais restritivos, que permitem apenas o tráfego HTTP
pela porta 80, por exemplo.
DCOM
A tecnologia COM dene como componentes de software e seus clientes interagem. Essa
interação é denida de modo que o cliente e o componente podem se conectar sem a neces-
sidade de um componente intermediário. É possível, então, que o cliente execute chamadas
a métodos do componente sem overhead adicional. Com o COM é possível realizar comuni-
cação entre processos de forma independente de linguagem de programação.
Há implementações do DCOM, nem todas gratuitas, para Windows, UNIX, Java e out-
ros sistemas.
2
http://msdn.microsoft.com/en-us/library/ms809340.aspx acessado em 25/05/2010.
Java RMI
O Java Remote Method Invocation, Java RMI, como o próprio nome diz é uma API para a
máquina virtual Java que permite a chamada remota a procedimentos de forma orientada a
objetos.3
Sua implementação original depende da máquina virtual Java e, portanto, permite chamadas
remotas apenas entre máquinas virtuais Java. Para permitir a execução fora da máquina
virtual Java, uma versão em CORBA foi, depois, criada. Em Java, essa API pode ser aces-
sada através do pacote java.rmi.
As aplicações RMI são formadas, normalmente, por dois programas separados: um cliente e
um servidor. Um servidor típico cria alguns objetos remotos, torna as referências a esse ob-
jetos acessíveis e aguarda que clientes invoquem métodos desses objetos. Um cliente típico,
por sua vez, obtém uma referência remota a um ou mais objetos em um servidor e invoca
métodos deles. Como em outras formas de chamadas a procedimentos remotos, o RMI provê
o mecanismo de comunicação.
DCE
O objetivo desta questão é selecionar a tecnologia mais adequada para sistemas de objetos
distribuídos que compreendem o suporte a diferentes linguagens de programação e platafor-
mas. Sendo as alternativas baseadas puramente em RPC relacionadas a programação não
orientada a objetos, essas alternativas podem ser descartadas. Nos restam, portanto, as
alternativas a, b e c. Ora, tendo sido o Java RMI inicialmente desenvolvida para execução
apenas na máquina virtual Java, podemos considerar que, mesmo a implementação atual
permitindo o uso de diferentes linguagens, que seu uso está mais reservado à linguagem Java,
permitindo o descarte de sua opção correspondente.
Solução:
O Heap Sort (ou Heapsort) é um algoritmo de ordenação que faz uso de uma estrutura de
dados chamada heap. Ele ordena localmente (in-place), signicando que apenas um número
constante de elementos do arranjo é armazenado fora do arranjo de entrada em qualquer
instante.
A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore binária
praticamente completa, sendo que cada nó dessa árvore corresponde a um elemento do ar-
ranjo que armazena o valor no nó. Um arranjo A, com uma quantidade de elementos denida
por comprimento[A], tem por raiz o elemento A[1]. Dado o índice i de um nó, o índice de
seu pai PARENT(i), do lho da esquerda LEFT(i) e do lho da direita RIGHT(i) podem
ser calculados de modo simples.
Existem dois tipos de heaps binários: heaps máximos e heaps mínimos. Os primeiros satis-
fazem a seguinte propriedade:
A[PARENT(i)] ≥ A[i]
isto é, o valor de um nó é no máximo o valor de seu pai. Desse modo, o maior elemento
em um heap máximo é armazenado na raiz, e a subárvore que tem raiz em um nó contém
valores menores que o próprio nó. Um heap mínimo, organizado de forma oposta, satisfaz a
seguinte propriedade:
A[PARENT(i)] ≥ A[i]
A Figura 12 ilustra uma estrutura heap máximo de 10 elementos para o arranjo A = [16,
14, 10, 8, 7, 9, 3, 2, 4, 1].
Figura 12: estrutura heap máximo de 10 elementos para o arranjo A = [16, 14, 10, 8, 7, 9, 3, 2,
4, 1].
MAX-HEAPFY(A, i)
l ← LEFT(i)
R ← RIGHT(i)
if l ≤ tamanho-do-heap[A] e A[l] > A[i]
then maior ← l
else maior ← i
if r ≤ tamanho-do-heap[A] e A[r] > A[maior]
then maior ← r
if maior 6= i
then trocar A[i] ↔ A[maior]
MAX-HEAPFY(A, maior)
Quando MAX-HEAPFY é chamada, supõe-se que as árvores binárias com raízes em LEFT(i)
e RIGHT(i) são heaps máximos, mas que A[i] pode ser menor que seus lhos, violando assim
a propriedade de heap máximo. A função de MAX-HEAPFY é possibilitar que o valor em
A[i] ocupe o lugar adequado na estrutura, de tal forma que a subárvore com raiz no índice
i se torne um heap máximo.
BUILD-MAX-HEAP(A)
tamanho-do-heap[A] ← comprimento[A]
for i ← b comprimento[A]/2 c downto 1
do MAX-HEAPFY(A, i)
Figura 13: uso do procedimento BUILD-MAX-HEAP para o arranjo A=[4, 1, 3, 2, 16, 9, 10,
14, 8, 7].
Observa-se que existe uma tendência de os valores do arranjo A carem ordenados após a
execução do procedimento. Mas não há tal obrigatoriedade, pois a propriedade de heap
máximo não tem relação com ordenação. Entretanto, é possível utilizar os dois procedi-
mentos previamente apresentados para ordenar o arranjo A. E é essa a função do algoritmo
Heap Sort.
HEAPSORT(A)
BUILD-MAXHEAP(A)
for i ← comprimento[A] downto 2
do trocar A[1] ↔ A[i]
tamanho-do-heap[A] ← tamanho-do-heap[A] 1
MAX-HEAPFY(A, 1)
Para os dados apresentados na questão, A = [13, 18, 10, 8, 11], tem-se a sequência de
processamento apresentada na Figura 14.
Figura 14: sequência de processamento do algoritmo de ordenação Heap ao arranjo 13, 18, 10,
8, 11.
Infelizmente, a questão não especica o signicado de passo, de sorte que ca difícil para
o candidato denir saídas. Questão prejudicada.
1. try{
2. sleep(1000);
3. } catch (InterruptedException ie){}
Solução:
Já que o enunciado referencia um bloco de código, uma boa forma de compreender essa
questão é através de um código que implemente o bloco correspondente em conjunto com a
infraestrutura necessária para compilação e execução. Considere, portanto, o código abaixo.
import java.lang.Thread;
É possível perceber que o bloco de código acima contém, em sua totalidade, o bloco de
código a ser analisado na questão. Ora, se salvarmos esse código em um arquivo Threaded-
Hello.java e tentarmos compilá-lo, o compilador Java o compilará sem problemas, visto que
não há erro sintático ou semântico no código. O que invalida a solução referenciada pela
opção a.
real 0m1.131s
A correta execução desse programa invalida, portanto, a opção e, já que não houve qual-
quer exceção levantada e o programa exibiu a saída correta (Hello World, neste caso). No
exemplo acima, o comando time exibe os tempos de execução de um programa e optou-se
por exibir apenas o tempo real de execução, de 1,131 segundos.
De modo geral, como não há garantias dadas pelo método sleep, é melhor selecionar a opção
que responde a pergunta sem restrições adicionais. No caso, a alternativa b é a correta.
Solução:
Para identicação da resposta correta é necessário conhecer o signicado das siglas listadas.
Assim, além de dizer a razão pela qual uma resposta é correta ou incorreta, o signicado
das siglas e o propósito do sistema por elas representados serão apresentados.
(A) INCORRETA
Seu objetivo é o de servir como meio de comunicação e integraçao entre as pessoas respon-
sáveis em executar e monitorar os programas governamentais, fornecendo as informações
necessárias e em tempo.
5
Manual de Operação do SIGPlan, disponível em http://www.sigplan.gov.br/arquivos/Download/ManualSigplan.pdf
e acessado em 25/05/2010.
(B) INCORRETA
O sistema de serviços gerais - SISG6 não é um sistema de informação, mas o sistema que
organiza as atividades de administração de edifícios públicos e imóveis residenciais, material,
transporte, comunicações administrativas e documentação.
Além de ser integrado pelos órgãos e unidades da Administração Federal incumbidos es-
pecicamente de executar as atividades relacionados ao sistema, os ministérios militares e o
estado-maior das forças armadas poderão aplicar, no que couber, as normas pertinentes ao
SISG.
O SISG compreende:
(C) CORRETA
Ele foi projetado com o intuito de resolver os problemas de natureza administrativa que
dicultavam a adequada gestão dos recursos públicos e a preparação do orçamento unicado
brasileiro. Assim, com a criação da STN, em 1986, a STN, em conjunto com o SERPRO,
desenvolveu tal sistema. Após a criação do sistema, o governo federal tem uma conta única
para gerir, de onde todas as saídas de dinheiro ocorrem com o registro de sua aplicação e
do servidor público que a efetuou.
• permitir o registro contábil dos balancetes dos estados e municípios e de suas supervi-
sionadas;
• permitir o controle da dívida interna e externa, bem como o das transferências negoci-
adas;
• integrar e compatibilizar as informações no âmbito do Governo Federal;
• permitir o acompanhamento e a avaliação do uso dos recursos públicos;
• proporcionar a transparência dos gastos do Governo Federal.
(D) INCORRETA
(E) INCORRETA
Para acesso aos dados do SIAPE, o Ministério do Planejamento, Orçamento e Gestão ide-
alizou o SIAPEnet, aplicativo que possibilita ao servidor efetuar consultas, atualização e
impressão de dados extraídos diretamente do SIAPE.
8
O que é SIASG. Disponível em http://www.comprasnet.gov.br/ajuda/siasg/que_e_siasg.stm e acessado em
25/05/2010.
9
O que é o SIAPEnet. Disponível em http://www.siapenet.gov.br/oque.htm e acessado em 25/05/2010.
Questao Resposta
1 D
2 C
3 B
4 B
5 E
6 C
7 B
8 B
9 A
10 A
11 B
12 D
13 C
14 A
15 E
16 C
17 B
18 D
19 D
20 C
21 B
22 C
23 E
24 B
25 D
26 E
27 E
28 A
29 D
30 D
31 A
32 E
33 E
34 B
35 B
36 E
37 B
38 A
39 E
40 E
41 C
42 B
43 A
44 C
45 E
46 E
47 A
48 E
49 B
50 C
Abstração, 65 Encapsulamento, 65
ACID, 89, 103 Engenharia de Software, 8, 13, 15, 46, 53, 75,
Agrupamento de Dados, 21 81, 83, 85, 94
Algoritmos, 122 Estruturas de Dados, 111
Algoritmos de Ordenação, 118
Atividades-Chaves, 43 Fila, 111
Tipos de Métodos, 63
Transaction Control Language (TCL), 98
Transformação Formal, 8
Tratamento de Exceção em Java, 34
Web Services, 11