Você está na página 1de 130

Grupo Handbook

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

Este é o volume 9 da Handbook de Questões de TI Comentadas para Concursos  Além do Gabar-


ito, que traz para você 50 questões elaboradas pela ESAF (Escola de Administração Fazendária).

A realização de concursos públicos no âmbito do Ministério da Fazenda e no de instituições


conveniadas é uma das principais atividades da ESAF. Essa banca vem sendo a responsável pela
organização de vários concursos de grande relevância na área de TI, como os da Receita Federal,
Secretaria do Tesouro Nacional, Controladoria Geral da União, entre outros.

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

Este material é registrado no Escritório de Direitos Autorais (EDA) da Fundação Biblioteca


Nacional. Todos os direitos autorais referentes a esta obra são reservados exclusivamente aos
seus autores.

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.

A série Handbook de Questões de TI Comentadas para Concursos  Além do Gabarito é uma


produção independente e contamos com você para mantê-la sempre viva.

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

O Grupo Handbook de TI disponibiliza diversos canais de comunicação para os concurseiros


de TI.

Loja Handbook de TI

Acesse a nossa loja virtual em http://www.handbookdeti.com.br

Serviço de Atendimento

Comunique-se diretamente conosco através do e-mail faleconosco@handbookdeti.com.br

Twitter do Handbook de TI

Acompanhe de perto promoções e lançamentos de produtos pelo nosso Twitter http://twitter.


com/handbookdeti

Página 3 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

1. Assuntos relacionados: Governança de TI, Organizational Project Management Maturity


Model (OPM3), CMMI, Gerenciamento Eletrônico de Documentos (GED), COBIT, Portais
Corporativos,
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: 1
O _________ é empregado na governança de recursos de Tecnologia da Informação (TI).

Assinale a opção que completa corretamente a frase acima.


(a). OPM3
(b). CMMI
(c). GED
(d). COBIT
(e). Portal corporativo

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.

Bom, agora nós analisaremos cada alternativa.

(A) ERRADA

OPM3 (Organizational Project Management Maturity Model, em português Modelo de Ma-


turidade em Gerenciamento de Projetos Organizacionais) fornece um mecanismo que permite
monitorar o progresso dos interesses estratégicos da organização através da execução precisa
e bem sucedida dos projetos. Em outras palavras, ele possibilita que a empresa utilize a
gestão de projetos para atingir suas metas nos prazos e dentro do orçamento.

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

Programas, domínio intermediário; e Portfólios, representado o domínio mais alto.

Candidato, lembre-se que maturidade é o desenvolvimento de sistemas e processos que são


repetitivos por natureza e garantem uma alta probabilidade de que cada um deles seja um
sucesso. Observe que, em nenhum momento zemos menção à Governança de TI, o que nos
dá condição para descartar esta alternativa.

(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).

Enquanto que a representação contínua dá liberdade para as organizações utilizarem a


melhor ordem entre as melhorias para que os objetivos de negócio sejam alcançados, a
representação por estágios disponibiliza uma sequência pré-determinada para que as mel-
horias sejam obtidas. Essa sequência não pode ser desconsiderada pelas organizações que
pretendem utilizar essa representação, pois cada estágio serve de base para o próximo.

Novamente, em nenhum momento zemos menção à Governança de TI, o que nos per-
mite eliminar esta alternativa.

(C) ERRADA

GED (Gerenciamento Eletrônico de Documentos) é uma tecnologia que provê um meio


de facilmente gerar, controlar, armazenar, compartilhar e recuperar informações existentes
em documentos. Os sistemas GED permitem que os usuários acessem os documentos de
forma ágil e segura.

Como bem sabemos, os conhecimentos de uma empresa residem na massa de documen-


tos que a mesma possui. É aqui que entra o GED, permitindo a preservação e a organização
deste patrimônio, assegurando a informação necessária, na hora exata, para a pessoa certa.

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

ferramenta indispensável para a Gestão do Conhecimento. Não é difícil concluir também


que a alternativa está ERRADA.

(D) CORRETA

O Control Objective for Information and related Technology (COBIT) é um framework


que fornece as melhores práticas para gerenciamento de processos de TI, atendendo as ne-
cessidades de gestão de uma organização, tratando os riscos do negócio, as necessidades de
controle e as métricas de desempenho. Esse framework serve de suporte para implementar
a Governança de TI numa organização garantindo que: a TI esteja alinhada com o negócio;
a TI permita o negócio e maximize os benefícios; os recursos de TI sejam usados com re-
sponsabilidade; e que os riscos de TI sejam gerenciados apropriadamente.

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!

Portanto, a alternativa está CORRETA.

(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.

A seguir, apresentamos alguns exemplos de portais corporativos (Candidato, decore o sig-


nicado destas siglas!):

Página 6 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• B2B (Business to Business): transações de comércio entre empresas. Por exemplo,


um banco transferindo recursos para;
• B2C (Business to Consumer): transações entre uma empresa e um consumidor.
Por exemplo, portais da Submarino e da Lojas;
• C2C (Consumer to Consumer): transações entre consumidores, intermediadas nor-
malmente por uma empresa. Por exemplo, o sites de leilão Ebay e Mercado Livre;
• B2G (Business to Governement): transações entre empresa e governo, como, por
exemplo, licitações e compras de fornecedores;
• B2E (Business-to-Employee): portais que atendem aos empregados. Oferecem
aos empregados uma interface única para que eles possam acompanhar as notícias da
empresa, gerenciar seus dados pessoais, solicitar serviços, etc.

Portanto, nada relacionado à Governança de TI.

Página 7 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

2. Assuntos relacionados: Engenharia de Software, Modelo de Processo de Software, Desen-


volvimento Evolucionário, Transformação Formal, Desenvolvimento em Cascata,
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: 8
O modelo de processo de software caracterizado por intercalar as atividades de especicação,
desenvolvimento e validação, denomina-se
(a). modelo de workow.
(b). modelo de uxo de dados.
(c). desenvolvimento evolucionário.
(d). transformação formal.
(e). modelo em cascata.

Solução:
(A) ERRADA

Um modelo de workow é responsável por analisar e modelar todo o tramite de informações


e atividades referentes a um processo de negócio de uma empresa para que possa ser denida
uma forma organizada de execução das tarefas que compõem o processo. A automação do
processo de negócio de uma empresa é o resultado nal da modelagem de workow, con-
sistindo na interligação de tarefas executadas por participantes do processo ou até mesmo
por sistemas computacionais denindo a ordem de execução e suas prioridades. Durante
todo o desenvolvimento de um workow várias etapas são executadas em uma determinada
ordem. O ciclo de vida de um workow (WFLC - Workow Life Cycle) dene a maneira
como estas etapas são desenvolvidas em determinado tempo sobre todo o desenvolvimento
do workow. Para tanto, são denidos três atividades principais:

• Construção e Estabilização: este processo representa a fase de análise e modelagem


do processo de negócio que a partir de uma linguagem gráca é denido o Workow,
utilizando conceitos como processo, atividade, tarefa, ator, etc. Nesta fase é utilizado
o processo de prototipagem para a detecção de erros de modelagem, por esse processo
ser iterativo pode detectar e corrigir os erros de denição do modelo;
• Detecção de Inconsistência: nesta fase é gerada uma versão operacional referente
à modelagem construída na fase anterior contendo todas as características e eventos
do modelo. A versão é executada para que possa vericar o uxo de informação que o
modelo representa analisando informações de entrada do processo, recursos utilizados,
participantes e resultado de saída do processo a m de detectar inconsistência da análise
da fase de construção do modelo. Ao encontrar anomalias no modelo o mesmo é
submetido à estabilização novamente para melhorar a qualidade do Workow;
• Reengenharia de processo de Negócio: os dados obtidos na fase anterior ao ex-
ecutar a versão operacional são usados a m de vericar a adequação do modelo de
processo de negócio para os objetivos da organização. Se este não for o caso, uma re-
visão do modelo do processo de negócio deve ser feita. O modelo atualizado é o ponto
de partida de uma nova iteração dos processos de estabilização e depuração.

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 dados é uma forma de representar os processos de um sistema, também,


o uxo das informações que entram nos processos e o resultado (saída) do processamento.
Um uxo de dados de um sistema pode ser visto como uma rede que interliga os processos
mostrando a movimentação dos dados (entrada/saída). Este tipo de modelagem é impor-
tante para que o analista entenda todo o tramite das informações no sistema. A modelagem
de uxo de dados utiliza componentes para sua representação que são:

• Processo: é parte do sistema representa uma seqüência de operações (procedimento)


que pode receber uma ou várias entradas, processar e retorna uma ou várias saídas;
• Fluxo: representa a movimentação dos dados, indicando onde as informações trafegam
como entrada e onde são saídas. O Fluxo é representado por uma seta que indica a
direção da movimentação dos dados;
• Depósito: Enquanto o uxo representa as informações em movimento o depósito
indica onde os dados estão armazenados (sem movimentação);
• Entidade Externa: É uma entidade (sistema externo) que se comunica com o sistema,
a sistema externo pode ser uma pessoa, empresa, organização.

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

O modelo evolucionário desenvolve todo o projeto de um sistema intercalando as suas ativi-


dades de especicação, desenvolvimento e validação. Este modelo trabalha com muitas
versões dos sistemas que são apresentadas para o cliente e então renadas, ou seja, as ver-
sões iniciais são construídas a partir de informações mais gerais e/ou abstratas e ao possa que
são nalizadas e expostas para o cliente sofrem avaliações e melhoramentos. As atividades
de desenvolvimento não são executadas separadamente para a construção do sistema, mas
sim, concorrentemente para que ter uma resposta do cliente e um melhoramento/agregação
das funcionalidades até chegar à versão nal.

Há dois tipos de desenvolvimento evolucionário:

1. Desenvolvimento exploratório: tem como objetivo denir com o cliente os requisi-


tos iniciais melhor compreendidos. O sistema sobre alterações à medida que o cliente
detecta a necessidade de novas funcionalidades;
2. Fazer protótipos descartáveis: tem como objetivo renar os requisitos dos sistemas
baseando em protótipos para melhorar os requisitos que estão mal compreendidos.

(D) ERRADA

A transformação formal é um modelo de processo de software que utiliza de métodos for-


mais para o desenvolvimento do software. Isto é, o processo de transformação formal executa
várias etapas (atividades) que sequencialmente transformam os requisitos de software em um
modelo matemático e posteriormente em um software. Este modelo tem como característica
uma modelagem limpa, livre de erro. Isso é obtido através de modelos matemáticos que
permitem uma vericação ou validação do modelo antes que o sistema seja implementado.

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.

As principais atividades de desenvolvimento são:

• Análise: as funcionalidades e as restrições do sistema são obtidas através de entrevistas


com usuários do sistema. Posteriormente os requisitos são denidos e então é gerado
um documento com a especicação das funcionalidade de forma detalhada;
• Projeto de software: O projeto de software reuni os requisitos (funcionais e não
funcionais) em sistemas de hardware ou de software, para então, construir a arquitetura
do sistema em um âmbito geral. O projeto de software envolve a identicação de todos
os componentes e seus relacionamentos necessários para o desenvolvimento do sistema;
• Implementação: O projeto de software é construído gerando um comum conjunto de
módulos (programas) ou um único de programas;
• Testes de sistemas: O sistema desenvolvido é submetido a testes que representam os
requisitos desejados pelos usuários do sistema a m de vericar erros e inconformidades
do sistema;
• Manutenção: Depois dos testes o sistema é instado e colocado em funcionamento. A
manutenção envolve corrigir erros que não foram descobertos na fase de testes e poste-
riormente de acordo com as necessidades dos clientes sofrer adições ou melhoramento
de funcionalidades.

Concluindo, o único processo de software que intercala as atividades de especicação, de-


senvolvimento e validação produzindo em cada iteração uma nova versão do software é o
modelo evolucionário de software. Portanto, a resposta correta é alternativa C.

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

O SOAP (originalmente do Inglês Simple Object Access Protocol) é um protocolo para


intercâmbio de informação estruturada na implementação de Web Services. Como formato
de mensagens, ele depende de XML e depende também de protocolos da camada de apli-
cação, como HTTP e RPC. Por ser um protocolo para troca de informação, o SOAP pode
prover a fundação da pilha de protocolos de Web Services, sobre o qual uma infraestrutura
maior pode ser construída. Sendo um protocolo de intercâmbio de informação e não um
serviço de diretórios, esta opção não responde corretamente a questão.

(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

a denição abstrata de pontos nais e mensagens é separada de sua implementação, o que


permite o reuso de denições abstratas: mensagens, que são descrições abstratas dos dados
transmitidos, e tipos de porta, que são coleções abstratas de operações.

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

A linguagem de marcação de hipertexto (HTML, do Inglês HyperText Markup Language) é


uma linguagem de marcação para páginas web. Ela provê meios para a criação de documen-
tos estruturados através da denição de semântica estrutural para cabeçalhos, parágrafos,
listas, links e assim por diante.

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

A pilha de protocolos TCP/IP é um conjunto de protocolos de comunicação usada na In-


ternet e outras redes similares. Seu nome advém de seus protocolos mais importantes: o de
controle de transmissão (TCP) e o da Internet (IP), os dois primeiros a serem denidos no
padrão.

Sendo um conjunto de protocolos para comunicação e não fazendo parte, explicitamente,


do conjunto de tecnologias de Web Services, a arquitetura TCP/IP não é a solução correta
para a questão.

Página 12 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

4. Assuntos relacionados: Engenharia de Software, Requisito de Software, Requisito Fun-


cional, Requisito de Domínio, Requisito Não-Funcional,
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: 12
Analise as seguintes armações sobre requisitos de sistemas de software:

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.

Assinale a opção correta.


(a). Apenas as armações I e II são verdadeiras.
(b). Apenas as armações I e III são verdadeiras.
(c). Apenas as armações II e III são verdadeiras.
(d). As armações I, II e III são verdadeiras.
(e). Nenhuma das armações é verdadeira.

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

Os requisitos funcionais são procedimentos que o sistema deve implementar determinando


as ações que serão tomadas a partir de entradas especícas. Além disso, em alguns casos
os requisitos funcionais declaram o que o sistema não devem fazer. Quando são requisitos
de usuários a especicação é construída a partir de declarações em um nível mais alto de
detalhes (de maneira geral), porém, os requisitos funcionais de sistema descrevem detal-
hadamente o comportamento do sistema determinando entradas, saídas e exceções. Esta
assertiva esta correta.

ITEM II

Os requisitos de domínio são requisitos que se originam do domínio de aplicação do sistema


e que reetem características/propriedades do domínio da aplicação. Podem ser requisitos

Página 13 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

funcionais ou não-funcionais e até mesmo restringir requisitos funcionais estabelecidos pelo


cliente. Por exemplo: realização de algum cálculo especíco. Os requisitos de domínio não
são exclusivamente requisitos funcionais, desta forma, esta assertiva esta incorreta.

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

5. Assuntos relacionados: Engenharia de Software, UML, Generalização,


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: 16
A restrição UML aplicada a um conjunto de generalizações, especicando que uma instância
pode ter apenas um dos subtipos determinados como tipo daquela instância, é conhecida
como
(a). Associação.
(b). Auto.
(c). Global.
(d). Local.
(e). Disjunção.

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.

Figura 1: classicação dos diagramas UML.

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

Em um diagrama de classe, as associações podem ter quatro tipos de operações:

• Generalização: o elemento mais geral (superclasse) se relaciona com um elemento


mais especíco (subclasse);
• Agregação: também conhecido como parte de ou composição. Descreve se uma das
classes associadas é parte de outra classe;
• Associação: duas classes não correlatas se relacionam, representado uma conexão
semântica entre os objetos;
• Dependência: relação de subordinação entre as classes, onde a mudança na classe
independente afetará a classe dependente.

No caso particular da generalização, ponto central da questão, se aplica o conceito de her-


ança. Duas classes são colocadas numa hierarquia sendo uma mais genérica (superclasse) e
a outra (subclasse) que herda os atributos e as operações da superclasse, podendo sobrepor
ou modicar algumas delas.

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:

• Superposição: um objeto da superclasse pode pertencer simultaneamente a mais do


que uma subclasse;
• Disjunção: não permite a superposição, ou seja, um objeto da superclasse pode per-
tencer a somente uma subclasse;
• Completa: um objeto da superclasse deve pertencer a alguma das subclasses;
• Incompleta: um objeto da superclasse pode não pertencer a nenhuma das subclasses.

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.

Já a superposição, podemos exemplicar da seguinte maneira: um tipo chamado Peça com


dois subtipos chamados Manufaturada e Torneada. Dado que há um generalização com
superposição, será possível que uma peça manufaturada e torneada seja representada como
um objeto.

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

6. Assuntos relacionados: Banco de Dados, Modelagem de Dados, Superchave, Chave Se-


cundária, Segurança da Informação, Criptograa, Chave Assimétrica, Chave Simétrica,
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: 17
Um conjunto de um ou mais atributos, tomados coletivamente, para identicar unicamente
uma tupla numa relação, é denominado
(a). chave assimétrica.
(b). chave simétrica.
(c). superchave.
(d). chave secundária.
(e). chave de tupla.

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

Uma superchave é qualquer subconjunto de atributos de um esquema de relação com a


propriedade de que duas tuplas, em qualquer estado de relação r de R, não tenham a mesma
combinação de valores para esse subconjunto de atributos. Em outras palavras, sejam e
tuplas distintas e seja SK um subconjunto de atributos de um esquema de relação. Neste
caso, para quaisquer e. Note, ainda, que toda relação possui ao menos uma superchave: a
padrão (default), o conjunto de todos os atributos da relação.

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

O conceito chave de tupla não é amplamente conhecido na literatura e há outra alter-


nativa que responde de maneira correta esta questão. Por esse motivo, esse conceito não
será discutido.

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

incluindo Modelo Conceitual, Modelo Lógico e Modelo Físico.

A armativa de acordo com a teoria apresentada encontra-se na opção B.

Página 20 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

8. Assuntos relacionados: Data Mining, Classicação de Dados, Agrupamento de Dados,


Sumarização de Dados, Modelagem de Dependência entre Dados,
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: 20
Para que uma empresa efetue a análise regular de dados gerados por visitantes do seu site
Web, a m de personalizar a propaganda para clientes individualmente, ela deve utilizar
(a). objetos distribuídos.
(b). mineração de dados.
(c). processamento analítico online (olap).
(d). diretório de informações.
(e). sistema de informação gerencial.

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.

• Classicação: construção de uma função que a partir de um conhecimento previa-


mente estabelecido consegue classicar um conjunto de dados em uma ou várias classes
predenidas;
• Clustering: utilizado para descoberta de agrupamento de dados que possuem car-
acterísticas em comum. Uma categoria ou classe é representada por um conjunto de
característica, desta forma, ao descobrir uma coleção de dados que possuem um grau de
similaridade estão encontrando um conjunto de dados pertencente a alguma categoria
não conhecida;
• Sumarização: essa técnica é utilizada para a construção de modelos que descrevem
um conjunto de dados num formato facilmente interpretado;
• Modelagem de dependência: técnica responsável por encontrar dependência entre
características de um conjunto de dados ou entre os valores deles.

Usando técnicas de mineração de dados, tais como clustering e modelagem de dependência,


um usuário em particular pode estar associado a outros usuários que exibem padrões de
comportamento e preferências semelhantes. Então, para esses usuários são oferecidos links
especícos por pertencerem a um mesmo perl. Uma empresa nesse caso pode ofertar pro-
moções de acordo com sua preferência, isso é obtido com base em informações fornecidas

Página 21 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

pelo agrupamento de usuários. Outro exemplo é, a partir de uma escolha de comprar de


um cliente, pode-se agir da seguinte forma: Clientes que compraram este livro também
comprariam... listar os livros relacionados com o tema.

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

9. Assuntos relacionados: Banco de Dados, Modelo Relacional, Modelo Entidade-Relacionamento,


Modelo Objeto-Relacionamento,
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: 22
O modelo de dados baseado numa coleção de tabelas que representam dados e as relações
entre eles é denominado modelo
(a). relacional.
(b). entidade/relacionamento.
(c). baseado em objetos.
(d). de dados semiestruturados.
(e). objeto/relacionamento.

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

O modelo de entidade-relacionamento é um modelo abstrato com a nalidade de descr-


ever, conceitualmente, as entidades e os relacionamentos de um domínio. Esse modelo, e
suas variações, é normalmente empregado para o projeto conceitual de aplicações de um
banco de dados, e muitas ferramentas de projeto de um banco de dados também aplicam
seus conceitos.

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

relacionamento trabalha para, por exemplo, pode relacionar empregador e empregados.

A principal ferramenta do modelo de entidade-relacionamento é o diagrama de entidade-


relacionamento. Nele, retângulos representam entidades, elipses representam atributos,
losangos representam relacionamentos e linhas ligam atributos a entidades e entidades a
relacionamentos. A Figura 2 exibe um exemplo de diagrama entidade-relacionamento. Nela,
existem duas entidades, Cliente e Conta. A entidade Cliente possui os atributos Nome,
Endereço e CPF, já a entidade Conta possui os atributos Número e Balanço. Ambas
são relacionadas pela relação Possui, que indica que um ou mais clientes podem possuir
uma ou mais contas (que, por sua vez, podem ser possuídas por um ou mais clientes).

Figura 2: exemplo de diagrama entidade-relacionamento.

(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.

Alguns conceitos importantes em orientação a objetos são:

• Encapsulamento: os aspectos internos e externos de um objeto são separados, im-


pedindo o acesso direto ao estado de um objeto (seus atributos), disponibilizando ex-
ternamente apenas métodos que alteram esses estados;
• Herança: permite a especicação de novos tipos ou classes que herdam parte de suas
estruturas e/ou operações de classes ou tipos previamente denidos, o que torna mais
fácil desenvolver os tipos de dados de um sistema de modo incremental e reutilizar
denições de tipos na criação de novos tipos de objetos;
• Sobrecarga de operador: se refere à propriedade de uma operação de ser aplicada
a diferentes tipos de objetos. Em tal situação, um nome de operação pode se referir a
várias implementações diferentes, dependendo do tipo de objetos aos quais é aplicada.
Essa característica também é conhecida como polimorsmo de operador.

Página 24 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Em bancos de dados tradicionais, a informação sobre objetos complexos é, normalmente,


distribuída em várias relações ou registros, levando à perda de correspondência direta entre
um objeto do mundo real e sua representação no banco de dados. O mesmo não ocorre em
bancos de dados orientados a objetos, que são capazes de manter estruturas de objetos com
complexidade arbitrária.

(D) INCORRETA

O modelo de dados semiestruturados é um modelo de bancos de dados em que não há


separação entre dados e esquema e sua estruturação depende do propósito da aplicação. Por
não haver essa separação, o esquema é normalmente associado em conjunto com os dados.
Em outros casos, o esquema existe apenas para denir restrições fracas aos dados.

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

O modelo objeto-relacionamento (OR) é baseado no modelo de entidade-relacionamento


(ER). No modelo OR, o mundo é visto como um conjunto de objetos e seus relacionamen-
tos. A diferença entre esse e o modelo de ER é que no modelo OR os atributos são tratados
como objetos e, com isso, os benefícios da orientação a objetos são unidos aos benefícios do
modelo relacional (ambos modelos descritos acima).

Essa resposta é incorreta porque o modelo objeto-relacional é usado para modelagem de


sistemas de bancos de dados, não para representar os dados.

Fonte: Symposium on Applied Computing Proceedings of the 1992 ACM/SIGAPP Sympo-


sium on Applied computing: technological challenges of the 1990's table of contents Kansas
City, Missouri, United States Páginas: 299 - 307 Ano de publicação: 1992 ISBN:0-89791-
502-X Disponível em: http://portal.acm.org/citation.cfm?id=143655

Página 25 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

10. Assuntos relacionados: Banco de Dados, SQL,


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: 23
Em SQL, a cláusula check aplicada a uma declaração de domínio
(a). permite especicar um predicado que deve ser satisfeito por qualquer valor atribuído
a uma variável de determinado domínio.
(b). especica um predicado que deve ser satisfeito por uma tupla em uma relação.
(c). proíbe a inserção de um valor nulo para as variáveis do domínio.
(d). verica se os atributos considerados formam uma chave candidata.
(e). não tem efeito, pois não se aplica esta cláusula a declarações de domínio.

Solução:
Uma tabela em um banco de dados é denida por um nome e pelos seus campos (atributos)
e restrições.

Por exemplo:

create table carro


(
nome char (20) not null,
placa char (7) not nul,
marca char (50) not nul,
ano integer
)

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).

create domain Idade numeric (5,2)


constraint teste-valor-idade
check (value >= 18)

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

create domain TipoConta char(10)


constrait teste-valor-idade
check(value in ('Corrente','Poupança') )

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

11. Assuntos relacionados: XML,


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: 24
Analise as seguintes armações a respeito do esquema conceitual XML:

I. Um elemento qualquer é denido por um nome e um valor.


II. Um documento XML é denido por um nome e um elemento.
III. Um atributo é denido por um nome de tipo, caracteres de dados e elementos associa-
dos.

Assinale a opção correta.


(a). Apenas a armação I é verdadeira.
(b). Apenas a armação II é verdadeira.
(c). Apenas a armação III é verdadeira.
(d). As armações I, II e III são corretas.
(e). Nenhuma das armações é verdadeira.

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:

----- Início de documento -----


<?xml version = ``1.0''?>

<!-- Documento: carta.xml -->

<carta>

<contato tipo = ``remetente''>

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>

<contato tipo = ``destinatário''>


<nome>Paulo Novaes</name>
<logradouro>Rua Quinze</logradouro>
<cidade>Corcova</cidade>
<cep>12345</cep>
<flag sexo=''M''/>
</contato>

<saudação>Prezado Senhor:</saudação>

<parágrafo>Comunicamos a recebimento de sua solicitação. Na oportunidade, informamos


</parágrafo>

<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/>.

Além de conteúdo (dados de caracteres) e de elementos lhos, um elemento pode possuir


atributos que o descrevam. Os atributos são aninhados dentro da marca de abertura do el-
emento e seus valores são colocados entre aspas ou apóstrofes. Assim, o elemento <contato
tipo = remetente> possui o atributo tipo cujo valor é remetente.

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

12. Assuntos relacionados: Programação, Programação Estruturada,


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: 26
Na programação estruturada, são necessários apenas três blocos de formas de controle para
implementar algoritmos. São eles:
(a). seleção, repetição e aninhamento.
(b). empilhamento, aninhamento e operação.
(c). sequência, aninhamento e seleção.
(d). sequência, seleção e repetição.
(e). função, operação e programa.

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

13. Assuntos relacionados: Linguagens de Programação, Orientação a Objeto, Herança,


Classes e Superclasses, Java, Modicadores de Acesso,
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: 29
Em Java, para que um método de uma superclasse não seja sobrescrito em suas subclasses,
aplica-se o modicador
(a). static
(b). public
(c). nal
(d). protected
(e). abstract

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).

As subclasses herdam todos os atributos e métodos de suas superclasses. Entretanto, as


subclasses não estão limitadas às características herdadas de sua superclasse, uma vez que
nas subclasses podem existir atributos e métodos que não existem na superclasse.

Em alguns casos, as subclasses também podem redenir os métodos herdados, oferecendo


implementações especializadas para os métodos quando necessário. Essa técnica é também
conhecida como sobrescrita ou override.

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.

O modicador de acesso private indica que um um atributos ou métodos só podem ser


acessados de dentro da classe que os criou. Este modicador de acesso é o que permite ao
Java implementar o conceito de encapsulamento.

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.

O modicador nal determina que a classe, método ou atributo se mantenham imutáveis no


decorrer do processamento do programa. Ao utilizarmos o modicador nal em um atributo,
estamos denindo uma constante. Já quando aplicamos este modicador a um método de
uma superclasse, impedimos que ele seja sobrescrito em suas subclasses.

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.

Diante do exposto, podemos armar que a resposta da questão é a alternativa C.

Página 33 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

14. Assuntos relacionados: Linguagens de Programação, Java, Tratamento de Exceção em


Java,
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: 30
Em uma aplicação Java, se o carregador de classes não conseguir localizar a classe do driver
de banco de dados para uma conexão JDBC, é lançada a exceção
(a). java.lang.ClassNotFoundException.
(b). java.io.FileNotFoundException.
(c). java.lang.SecurityException.
(d). java.io.IOException.
(e). java.util.InputMismatchException.

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.

A Linguagem Java possui um mecanismo de tratamento de exceções baseado em escopo,


o que permite utilizar um bloco de código separado daquele que gerou uma determinada
exceção para tratá-la adequadamente, propiciando maior organização ao projeto codicado.

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.

Uma exceção comumente lançada durante a execução de códigos em Java é a ClassNot-


FoundException, que adverte ao programador que uma determinada classe não está acessível
à JVM, isto é, nenhuma denição para uma classe com o nome especicado pôde ser en-
contrada. Esta exceção, classe integrante do pacote java.lang, pode ocorrer por inexistência
real da classe indicada ou por falta de referência à sua localização no ambiente de progra-
mação utilizado (variáveis de ambiente do sistema operacional). Desta forma, a assertiva A
apresenta-se como a resposta para a questão.

A exceção java.io.FileNotFoundException ocorre para sinalizar que a tentativa de aber-


tura do arquivo indicado falhou. Já a exceção java.lang.SecurityException indica a ten-
tativa negada de acesso a algum recurso do sistema, como um arquivo. Operações de
entrada/saída interrompidas ou falhas lançam a exceção java.io.Exception para indicar o

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

15. Assuntos relacionados: Linguagens de Programação, Java, JavaServer Pages (JSP),


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: 32
Analise as seguintes armações a respeito de JSP:

I. Em uma aplicação Web, há apenas um objeto page em cada JSP.


II. Comentários JSP aparecem na resposta ao cliente.
III. Os objetos com escopo session duram por toda a sessão de navegação do cliente.

Assinale a opção correta.


(a). Apenas a armação I é verdadeira.
(b). Apenas a armação II é verdadeira.
(c). Apenas a armação III é verdadeira.
(d). As armações I, II e III são verdadeiras.
(e). Nenhuma das armações é verdadeira.

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.

Após uma breve introdução de JSP, a seguir, analisamos as armativas da questão:

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

 application : representa a aplicação à qual a página pertence;


 exception : incluso nas páginas especícas para tratar exceções ou erros não cap-
turados.
Para cada página JSP processada existe um servlet correspondente, ou seja, o que um
faz outro também deve fazer. Como o objeto page faz referência ao servlet gerado,
existe um objeto page para cada JSP. Portanto, esta armativa é verdadeira.

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

16. Assuntos relacionados: Segurança da Informação, Integridade de Dados, Bits de Pari-


dade, Checksum, Cyclic Redundancy Check (CRC),
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: 36
Bits de paridade, somas de vericação e vericações de redundância cíclica (CRC) são úteis
para a detecção de ataques
(a). à Condencialidade.
(b). à Disponibilidade.
(c). à Integridade.
(d). à Autorização.
(e). ao Não-repúdio.

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:

Uma soma de vericação (ou checksum) é um dado computado a partir de um bloco


de dados digitais com o propósito de detectar erros nos dados que podem ter sido
adicionados durante a transmissão ou armazenamento dos dados. A integridade dos
dados pode ser vericada a qualquer momento posterior, bastando, para isso, calcular
novamente o valor da soma de vericação dos dados e compará-lo com o já armazenado.

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.

II. Vericação de redundância cíclica:

A vericação de redundância cíclica (ou CRC, do Inglês Cyclic Redundancy Check)


é um código detector de erros que gera um valor expresso em poucos bits a partir do
processamento de um bloco maior de dados, como um pacote de dados ou um arquivo.

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.

O CRC é calculado e anexado à informação a transmitir (ou armazenar) e vericado


após a recepção ou acesso, para conrmar se não ocorreram alterações. O CRC é
popular por ser simples de implementar em hardware binário, simples de ser analisado
matematicamente, e pela eciência em detectar erros típicos causados por ruído em
canais de transmissão. Um exemplo de função de CRC é a técnica de bits de paridade,
descrita abaixo.

III. Bits de paridade:

Em telecomunicações e computação, a paridade de um número indica se o seu número


de bits com valores um é par ou ímpar e, portanto, é determinada pelo valor de todos
os seus bits. Ela pode ser calculada através de uma soma com XOR (ou exclusivo) dos
bits, resultando em 0 para paridade par e 1 para paridade ímpar. Por depender de
todos os bits do número e ter seu valor modicado no caso de qualquer um dos bits do
número mudar, os bits de paridade podem ser usados para detecção de erros.

Como exemplo do cálculo da paridade, considere que se deseja calcular a paridade


do número binário 1010, que o símbolo  denota a operação XOR e que o símbolo 
denota a negação binária.

Supondo paridade par, ela será computada da seguinte forma:


 Número a ter paridade computada: 1010
 Cálculo da paridade (par): 1010 = 0
Já no caso da paridade ímpar:
 Número a ter paridade computada: 1010
 Cálculo da paridade (ímpar): (1010) = 1
Em qualquer um dos casos, caso o número fosse transmitido com o bit de paridade e
houvesse um erro de transmissão com a mudança de qualquer um dos bits, a vericação
de paridade detectaria que o número está errado e que outra transmissão é necessária.

Outros exemplos com paridade são exibidos na Tabela 16:

Página 39 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

7 bits de dados (número de 1s) 8 bits, incluindo paridade


- par ímpar
0000000 (0) 00000000 10000000
1010001 (3) 11010001 01010001
1101001 (4) 01101001 11101001
1111111 (7) 11111111 01111111

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

17. Assuntos relacionados: Criptograa, Criptograa Assimétrica, Criptograa Simétrica,


Chave Assimétrica, Chave Simétrica,
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: 38
Em um grupo de N usuários que utilizam criptograa assimétrica, o número de encriptações
necessárias para o envio de uma mensagem M condencial de um usuário desse grupo para
os demais (N-1) usuários do mesmo grupo é
(a). 1.
(b). N  1.
(c). N.
(d). 2N  1.
(e). N + 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.

Para obtermos esse número é necessário entender o mecanismo de criptograa assimétrica.


Na criptograa assimétrica, toda e qualquer parte envolvida tem duas chaves distintas e
dependentes entre si: uma pública e outra privada. Uma chave pública, como o seu próprio
nome já sugere, pode ser abertamente conhecida. É justamente por isso que esse mecan-
ismo também é chamado de criptograa de chaves públicas. Já uma chave privada só pode
ser conhecida pelo seu dono. Essas são duas premissas para que o sistema de criptograa
assimétrica funcione.

Em termos de representação compacta, a literatura geralmente utiliza a seguinte notação.


M ARIA (M) representa o resultado da encriptação da mensagem M com a chave pública de
K+
MARIA e K− M ARIA (M) representa o resultado da encriptação da mensagem M com a chave
privada de MARIA. Esses dois tipos de chaves se relacionam da seguinte forma. Uma
mensagem encriptada por K− M ARIA só pode ser desencriptada por KM ARIA , e vice-versa.
+

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

mensagem M a (N - 1) usuários (digamos MARIA, RITA, VERA, etc.). Dessa forma,


JOSÉ precisará realizar os seguintes envios: K+ M ARIA (M) à MARIA, KRIT A (M) à RITA,
+

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.

É interessante ressaltar que há outros mecanismos de criptograa para troca de mensagens.


Um exemplo clássico é o de criptograa simétrica, em que apenas uma chave é utilizada
tanto para encriptar quanto para desencriptar as mensagens. Como geralmente se deseja
trocar mensagens condenciais dentro de um determinado grupo restrito, o ponto crítico
desse mecanismo se encontra na distribuição das chaves simétricas entre usuários. Em certa
situações, justica-se enfrentar as diculdades desse ponto crítico, pois os algoritmos de crip-
tograa simétrica são por natureza mais simples e rápidos que os de criptograa assimétrica.
Como exemplo de algoritmos simétricos, podemos citar: DES, 3DES, RC2 e RC4, IDEA e
AES.

Página 42 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

18. Assuntos relacionados: Governança de TI, COBIT, Atividades-Chaves,


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: 1
O COBIT - Control Objectives for Information and related Technology fornece boas práticas
por meio de uma estrutura de domínio e processos e apresenta atividades de forma geren-
cial e lógica para a Governança de TI. O COBIT contém componentes interrelacionados,
provendo suporte para a governança, gerenciamento, controle e atendimento das necessi-
dades de diferentes organizações. O componente Atividades-Chaves do COBIT (versão 4.1)
está relacionado com
(a). Indicadores de Performance.
(b). Modelos de Maturidade.
(c). Controle de Objetivos.
(d). Responsabilidades e Contabilização.
(e). Controle de Práticas.

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.

Em sua estrutura, o COBIT cobre quatro domínios:

• Planejar e organizar, que consiste em:


 Denir um plano estratégico de TI;
 Denir a arquitetura da informação;
 Determinar as diretrizes de tecnologia;
 Denir os processos, a organização e os relacionamentos de TI;
 Gerenciar o investimento de TI;
 Comunicar metas e diretrizes gerenciais;
 Gerenciar os recursos humanos de TI;
 Gerenciar a qualidade;
 Avaliar e gerenciar os riscos de TI;

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

Figura 3: disponível em http://www.isaca.org/Content/NavigationMenu/Members_and


_Leaders1/COBIT6/Obtain_COBIT/cobit41_portuguese.pdf.

Sendo assim, as atividades-chaves estão relacionadas com as responsabilidades e contabiliza-


ção do modelo COBIT, representadas pela alternativa d.

Página 45 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

19. Assuntos relacionados: Engenharia de Software, MPS.BR, MR-MPS, MA-MPS, MN-


MPS,
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: 3
O MPS.BR tem como uma das metas denir e aprimorar o modelo de melhoria e avaliação
de processo de software, visando preferencialmente as micro, pequenas e médias empresas,
de forma a atender às suas necessidades de negócio e ser reconhecido nacional e interna-
cionalmente como um modelo aplicável à indústria de software. Os componentes em que o
MPS.BR está dividido são:
(a). ISO/IEC 12207, CMMI-DEV, ISO/IEC 15504.
(b). modelo de referência, guia geral, guia de aquisição, guia de implementação.
(c). guia geral, guia de aquisição, guia de implementação, guia de avaliação.
(d). modelo de referência, método de avaliação, modelo de negócio.
(e). guia geral, guia de avaliação e documentos do programa.

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:

O MPS.BR é um programa mobilizador, de longo prazo, criado em dezembro de 2003, co-


ordenado pela Associação para Promoção da Excelência do Software Brasileiro (SOFTEX),
que conta com apoio do Ministério da Ciência e Tecnologia (MCT), Financiadora de Estudos
e Projetos (FINEP), Serviço Brasileiro de Apoio às Micro e Pequenas Empresas (SEBRAE)
e Banco Interamericano de Desenvolvimento (BID).

Em resumo, o Programa MPS.BR busca fomentar a melhoria de processos do software


brasileiro. São duas as suas principais metas:

• meta técnica: que visa a criação e aprimoramento do Modelo MPS;


• meta de mercado: que visa a disseminação e adoção do Modelo MPS.

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:

• MR-MPS: Modelo de Referência para Melhoria de Processo de Software;


• MA-MPS: Modelo de Avaliação para Melhoria de Processo de Software;
• MN-MPS: Modelo de Negócio para Melhoria de Processo de Software.

É muito importante entender que o MPS.BR é baseado, e portanto compatível, com os


seguinte padrões internacionais: CMMI, ISO/IEC 12207 (Processo de Desenvolvimento de
Software) e ISO/IEC 15504 (evolução da ISO/IEC 12207). Dessa forma, o MPS.BR se car-
acteriza como uma solução brasileira para certicação de qualidade, cujo ponto forte é o seu

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

Apesar do modelo de referência do MPS.BR ser diferente do modelo de referência CMMI,


eles apresentam uma forte relação de similaridade. Enquanto o modelo CMMI classica o
grau de maturidade de empresas em 5 níveis, o MPS.BR o faz em 7 níveis, que vão do nível
A (maior maturidades) ao G (menor maturidade).

Além do conceito de maturidade, há no MR-MPS outros dois conceitos muito importantes:

• 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 Figura 4 apresenta de forma compacta a relação entre os níveis de maturidade, os pro-


cessos e os atributos de processos do MR-MPS. É muito importante destacar que a coluna
de Processos é cumulativa, portanto, ela apresenta apenas os processos exclusivos de cada
nível. Por exemplo, para uma empresa se enquadrar no nível G, ela precisa implementar
apenas 2 processos (GRE e GPR). Já para ser considerada no nível C, uma empresa deve
implementar todos os processos associados aos níveis anteriores (B-G) e também os proces-
sos exclusivos do nível C (GRI, DRU e GDE).

A título de curiosidade, atualmente a quantidade de instituições por nível de maturidade é


a seguinte:

• 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.

Figura 4: relação entre os níveis de maturidade, os processos e os atributos de processos do


MR-MPS.

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

De acordo com o próprio Guia de Avaliação:2009 do MPS.BR, o Processo e o Método de


Avaliação MA-MPS foram denidos de forma a:

• permitir a avaliação objetiva dos processos de software de uma organização/unidade


organizacional;
• permitir a atribuição de um nível de maturidade do MR-MPS com base no resultado
da avaliação;
• ser aplicável a qualquer domínio na indústria de software;
• ser aplicável a organizações/unidades organizacionais de qualquer tamanho.

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.

Figura 5: visão geral do MN-MPS.

Neste ponto, não é difícil de se observar que a alternativa correta desta questão é a letra D.

A alternativa A está errada porque apresenta padrões internacionais que inuenciam o


MPS.BR, e não subdivisões deste. O que poderia confundir o candidato seriam os di-
versos guias que aparecem nas alternativas B, C e E. Isso porque tais guias fazem parte da
documentação MPS.BR. Na verdade, o Modelo MPS é descrito por meio de guias, que são
agrupados da seguinte forma:

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

20. Assuntos relacionados: Desenvolvimento de Sistemas, Qualidade de Software, Modelo de


Maturidade, MPS.BR, CMMI, ISO/IEC 12207,
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: 4
No MPS.BR são denidos níveis de maturidade que são uma combinação entre processos e
sua capacidade. Os níveis de maturidade estabelecem patamares de evolução de processos,
caracterizando estágios de melhoria da implementação de processos na organização.

Assinale a opção que identica todos os níveis de maturidade do MPS.BR.


(a). A (Otimizado), B (Gerenciado Quantitativamente), C (Denido), D (Largamente
Denido), E (Parcialmente Denido), F (Gerenciado), G (Inicial).
(b). A (Otimizado), B (Parcialmente Otimizado), C (Denido), D (Largamente Denido),
E (Parcialmente Denido), F (Gerenciado), G (Parcialmente Gerenciado).
(c). A (Em Otimização), B (Gerenciado Quantitativamente), C (Denido), D (Larga-
mente Denido), E (Parcialmente Denido), F (Gerenciado), G (Parcialmente
Gerenciado).
(d). A (Em Otimização), B (Parcialmente Otimizado), C (Denido), D (Largamente
Denido), E (Parcialmente Denido), F (Gerenciado), G (Inicial).
(e). A (Otimizado), B (Executado), C (Denido), D (Largamente Denido), E (Par-
cialmente Denido), F (Gerenciado), G (Parcialmente Gerenciado).

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.

A resposta da questão é, portanto, a alternativa C.

Página 52 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

21. Assuntos relacionados: Engenharia de Software, Qualidade de Software, CMMI,


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: 11
A representação contínua do Modelo CMMI tem mais práticas especícas que a representação
em estágios, uma vez que tem dois tipos de práticas enquanto a representação em estágios
possui apenas um. Quanto às práticas em cada representação, é correto armar que
(a). existem práticas genéricas para os níveis de capacitação 1, 4 e 5 em ambas as
representações.
(b). na representação em estágios, somente aparecem práticas genéricas para os níveis
de capacitação 2 e 3.
(c). na representação contínua, as práticas genéricas existem para os níveis de capaci-
tação 3 a 5.
(d). na representação contínua, as práticas genéricas existem para todos os níveis de
capacitação.
(e). na representação em estágios, existem práticas genéricas para os níveis de capaci-
tação 3, 4 e 5.

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.

O CMMI é um modelo de referência que contém práticas necessárias para o desenvolvi-


mento de processos de software, a m de fornecer orientações (de o que fazer e não como
fazer) para melhoraria de processos da organização e da capacidade da mesma de gerenciar
o desenvolvimento, a aquisição e manutenção de produtos e serviços.

O CMMI possui duas representações: contínua e estágio. A representação contínua uti-


liza os níveis de capacitação para medir a melhoria de processos, e a representação em
estágios utiliza os níveis de maturidade. Essas representações permitem a organização, de
acordo com o interesse, escolher diferentes caminhos para a melhoria dos processos.

Representação contínua

A representação contínua tem como foco a capacidade do processo e oferece um caminho


exível para a implementação de melhorias. Permite que uma organização escolha áreas
especícas do processo para implementação de melhorias e implementação de níveis difer-
entes de capacidade para diferentes processos. Existem dois tipos de práticas, especícas a
uma determinada Área de Processo (PA) e as genéricas indiferentemente a todas as Áreas
de Processo.

As práticas especícas são atividades que são consideradas importantes na satisfação de


uma meta especíca associada. As práticas especícas se aplicam a uma determinada Área
de Processo e estão relacionadas à dimensão de um processo. As práticas genéricas são

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.

A representação contínua tem mais práticas especícas que a representação em estágios,


pois tem dois tipos de práticas especícas, básicas e avançadas, enquanto a representação
em estágios possui apenas um tipo de prática especíca.

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:

• Nível 0 - Incompleto: um processo é parcialmente realizado ou não realizado, e um ou


mais objetivos do processo não estão satisfeitos;
• Nível 1 - Realizado (ou Executado): um processo realizado atende todos os objetivos
especícos da área de processo e produz algum trabalho;
• Nível 2 - Gerenciado: um processo gerenciado é um processo realizado (nível 1) que
também é planejado e executado de acordo com as políticas pré-denidas;
• Nível 3 - Denido: um processo denido é um processo gerenciado (nível 2) e ajustado
de acordo com o conjunto de processos da organização;
• Nível 4 - Gerenciado quantitativamente: um processo neste nível é denido e controlado
com ajuda de técnicas estatísticas e quantitativas;
• Nível 5 - Otimizado: um processo otimizado é gerenciado quantitativamente, alterado
e adaptado para atender os objetivos dos negócios atuais.

Representação em estágio

A representação em estágios, que é mais utilizada, tem foco na maturidade da organiza-


ção e provê um caminho evolutivo para a melhoria do processo. As Áreas de Processos são
agrupadas por nível de maturidade, que devem ser atendidas na sua totalidade para permitir
um estágio denido de melhorias. A representação em estágios possui apenas um tipo de
prática especíca. A representação de estágio divide as Áreas de Processo em cinco níveis
de maturidade, como no CMM:

• 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

• Nível 4 - Gerenciado Qualitativamente: neste nível, são selecionados os subprocessos


que contribuem signicativamente para o desempenho geral do processo. Estes sub-
processos selecionados são controlados utilizando estatísticas e outras técnicas quanti-
tativas. No nível 4, 4, uma organização atingiu todas as metas especícas das áreas de
processos atribuídas aos níveis de maturidade 2, 3 e 4 e as metas genéricas atribuídas
aos níveis de maturidade 2 e 3;
• Nível 5 - Otimizado: neste nível, concentra-se no melhoramento contínuo do desem-
penho de processos através de melhorias tecnológicas incrementais e inovadoras. No
nível 5, uma organização atingiu todas as metas especícas das áreas de processos
atribuídas aos níveis de maturidade 2, 3, 4 e 5 e as metas genéricas atribuídas aos
níveis de maturidade 2 e 3.

De acordo com explicado anteriormente, analisamos as alternativas da questão:

(A) ERRADA

Na representação contínua, as práticas genéricas existem para os níveis de capacitação de 1


a 5, enquanto que na representação em estágios somente aparecem práticas genéricas para
os níveis de capacitação 2 e 3; não existem práticas genéricas para os níveis de capacitação
1, 4 e 5.

A alternativa está errada ao armar que na representação em estágio, os níveis 1, 4 e 5


possuem práticas genéricas.

(B) CORRETA

Conforme explicado na alternativa (A), na representação em estágios somente aparecem


práticas genéricas para os níveis de capacitação 2 e 3. Logo, a alternativa está correta.

(C) ERRADA

Conforme explicado na alternativa (A), na representação contínua, as práticas genéricas


existem para os níveis de capacitação de 1 a 5.

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

Na representação contínua, as práticas genéricas existem para os níveis de capacitação de 1


a 5. Não existe para o nível de capacitação 0.

Portanto a alternativa está errada ao armar que existem práticas genéricas para todos
os níveis de capacitação.

(E) ERRADA

Conforme explicado na alternativa (A), na representação em estágios somente aparece práti-


cas genéricas para os níveis de capacitação 2 e 3.

Página 55 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

A alternativa está errada ao armar existem práticas genéricas para os níveis 3, 4, e 5,


ao invés de somente os níveis 2 e 3.

Página 56 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

22. Assuntos relacionados: Governança de TI, ITIL, Projeto de Serviço, Gerenciamento de


Nível de Serviço,
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: 14
Na ITIL, o processo de Gerenciamento do Nível de Serviço é a base para o gerenciamento
dos serviços que a área de TI aprovisiona para a organização.

Assinale a opção que contém um subprocesso que pertence ao Gerenciamento do Nível


de Serviço.
(a). Monitoração do desempenho.
(b). Dimensionamento da aplicação.
(c). Planejamento do crescimento dos serviços.
(d). Projeção dos recursos.
(e). Garantia da existência de um plano de recuperação do serviço.

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.

Quando tratamos de ITIL, estamos tratando de um abrangente e consistente conjunto de


melhores práticas para a identicação de processos da área de TI e para o alinhamento
dos seus serviços às necessidades da organização. Ela foi criada a partir da necessidade de
padronizar os processos da área de TI e baseia-se na experiência de organizações privadas e
públicas de todo o mundo.

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:

• Estratégia do serviço (Service Strategy);


• Projeto de serviço (Service Design);
• Transição do serviço (Service Transition);
• Operação do serviço (Service Operation);
• Melhoria contínua do serviço (Continual Service Improvement).

O segundo livro 2  Projeto de Serviço ou Desenho de Serviço  descreve planos e objetivos


e cria projetos e especicações para execução através da operação e transição dos serviços.

Página 57 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Na fase de Desenho de Serviço, é produzido o Pacote de Desenho de Serviço (Service Design


Package  SDP) para cada serviço identicado, mudança de grande impacto, remoção de um
serviço ou mudança em um pacote de Desenho de Serviço. Este pacote é passado para para
a próxima fase (Transição de Serviço). Todos os aspectos e seus requisitos são esmiuçados
através de todas as fases subsequentes do ciclo de vida do serviço.

O processo de Gerenciamento do Nível de Serviço e que consta no livro de Projeto de


Serviço na versão 3 é a base para o gerenciamento dos serviços que a área de TI aprovisiona
para a organização. Ele deve assegurar que os serviços de TI, dentro dos níveis de serviços
acordados, serão entregues quando e onde as áreas usuárias o denirem.

O processo Gerenciamento do Nível de Serviço, na versão 2, pode ser divido nos seguintes
subprocessos:

• Revisão dos serviços disponibilizados;


• Negociação com os clientes;
• Revisão dos contratos de serviços com fornecedores externos;
• Desenvolvimento e monitoração dos acordos de nível de serviço;
• Implementação das políticas e dos processos de melhoria contínua;
• Estabelecimento de prioridades;
• Planejamento do crescimento dos serviços;
• Denição do custo dos serviços em conjunto com o gerenciamento nanceiro e da forma
de ressarcimento destes custos.

Essas atividades e objetivos permanecem e são os mesmos nas versões 2 e 3, porém, na


versão 3, as atividades de revisão do serviço fazem parte do livro de Melhoria Contínua do
Serviço. Podemos já ver no penúltimo item Planejamento do crescimento dos serviços que
a alternativa (C) é a alternativa correta, não importando se consideramos a versão 2 ou 3
do ITIL.

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.

Melhoria de Serviço Continuada


• 7 passos do processo de melhoria.

Para complementar, na Figura 6, um resumo interessante em forma de gráco.

Página 59 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Figura 6: processos do ITIL v3.

Página 60 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

23. Assuntos relacionados: ITIL, Central de Serviços,


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: 15
Na ITIL, a Central de Serviços (Service Desk) é a principal interface operacional entre a
área de TI e os usuários dos seus serviços. Assinale a opção que representa uma tarefa da
Central de Serviços.
(a). Identicar tendências de problemas.
(b). Controlar erros conhecidos.
(c). Revisar os principais problemas identicados.
(d). Gerenciar o trabalho das diversas equipes de suporte técnico.
(e). Produzir informações gerenciais, coletando medidas e calculando indicadores de
desempenho.

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).

A Central de Serviços ou Service-Desk representa a única interface de comunicação en-


tre os usuários e o a área de TI de uma organização. A proposta deste departamento é
fornecer suporte para os usuários, ou seja, é receber todos os requerimentos de suporte ou
serviço prestado pela área de TI. Desta forma, a Central de Serviço pode encaminhar o
problema para os técnicos especialistas que executaram o serviço solicitado, desta forma,
os técnicos não perderiam tempo nas chamadas e também não seriam mais interrompidos
durante algum procedimento de suporte. Além disso, a Central de Serviços gera conheci-
mento de TI a partir das solicitações e conclusões de serviços, a m de, construir uma base
de conhecimento que indicaram tendências e melhorias de qualidade dentro da área de TI
contribuindo para a valorização da organização.

Resumidamente a Central de Serviços incorpora uma série de atividades para a execução e


melhoramento da empresa, são elas:

• Implementa interface de comunicação as chamadas e respostas aos requerimentos;


• Registros das propriedades das chamadas, priorização de acordo com o nível do re-
querimento e acompanhamento do processo de desenvolvimento indicando o status e
andamento das requisições;

Página 61 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• Construção e disponibilização de informações gerenciais, além, de propor melhorias de


determinado serviço e treinamento de usuários;
• Monitoração completa do serviço desde conhecimento até a nalização;
• Disponibilização de Indicadores de desempenho para gestão e suporte.

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

24. Assuntos relacionados: Programação, Orientação a Objeto, Tipos de Métodos,


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: 21
Com relação aos conceitos de programação orientada a objetos, é correto armar que
(a). métodos abstratos são aqueles que não devem ser redenidos em classes derivadas,
devem ser herdados tal como foram denidos.
(b). métodos estáticos são aqueles que, ao serem executados, não acessam atributos de
instância da classe.
(c). métodos nais, também conhecidos como nalizadores ou destrutores, são chama-
dos na destruição de uma instância.
(d). métodos construtores são métodos chamados sobre um objeto quando ele é criado.
Em Java, os construtores têm o mesmo nome da classe da qual são membros e o
tipo retornado por eles é especicado na sua denição.
(e). métodos de classe são aqueles que executam operações que afetam objetos indi-
viduais da classe.

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.

Em conjunto com os modicadores de acesso, podem ser utilizados os modicadores abstract


e nal. O primeiro, serve para declarar métodos abstratos, isto é, métodos que deverão ser
implementados nas subclasses. O segundo, indica que o método não pode ser alterado no
decorrer do processamento (constante).

Página 63 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Os métodos construtores são métodos especiais executados no momento da criação de um


objeto. Não possuindo valor de retorno, representam uma oportunidade de inicializar dados
de forma organizada e sempre têm o nome da classe à qual pertencem. Paralelamente, os
métodos destrutores têm o objetivo de destruir o objeto e devolver ao sistema a memória
alocada.

Relativamente à questão, o item a) apresenta uma armação contrária à teoria, já que os


métodos abstratos devem ser denidos nas classes derivadas através de herança. O item c)
busca confundir o candidato ao associar os termos destrutores e nalizadores ao modicador
nal, insinuando que este último tenha a função de nalizar (destruir) a instância de uma
classe. O item d) expõe uma teoria parcialmente correta sobre construtores, exceto pelo fato
de armar que tais métodos possuem valor de retorno. O item e) inverte as denições de
método de classe e método de instância, armando que o primeiro possui o comportamento
do segundo. O item b) faz uma armativa que está de acordo com a teoria exposta, haja
vista que os métodos estáticos não acessam atributos de instâncias (objetos) da classe, mas
sim atributos da classe, sendo a resposta para a questão.

Página 64 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

25. Assuntos relacionados: Programação, Orientação a Objeto, Encapsulamento, Herança,


Polimorsmo, Abstração,
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: 22
A programação orientada a objetos é baseada em diversos conceitos, tais como encapsula-
mento, herança, polimorsmo e abstração. Com relação a esses conceitos, é correto armar
que
(a). o conceito de encapsulamento é alcançado por meio da denição da visibilidade
pública aos atributos e métodos.
(b). herança é um mecanismo que permite que uma classe herde todo o comportamento
e os atributos de outra classe. Em Java, pode-se implementar tanto a herança
única quanto a herança múltipla.
(c). 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. Em Java, uma mesma
classe não pode implementar mais de uma interface.
(d). polimorsmo é o uso de um mesmo nome para identicar diferentes implemen-
tações dos métodos. Seu uso é comum na denição de construtores, em que os
mesmos podem ser implementados em diferentes versões para as diferentes formas
de se instanciar a classe.
(e). para uma classe ser considerada abstrata, todos os seus métodos devem ser ab-
stratos. Em Java, para se denir uma classe abstrata deve-se utilizar a palavra
chave abstract no início de sua declaração.

Solução:
(A) INCORRETA

O encapsulamento permite esconder os detalhes funcionais de uma classe a objetos que


podem enviar mensagens para ela. E, em linguagens de programação, pode signicar duas
coisas distintas:

• Um mecanismo de uma linguagem de programação para restrição de acesso aos com-


ponentes de um objeto;
• Uma construção da linguagem que facilita o agrupamento de dados com métodos que
operam naqueles dados.

Como forma de restrição de acesso, seu propósito é o de manter a integridade de um objeto


pela prevenção de que usuários possam alterar seu estado interno, pois existe a possibilidade
dessa modicação levar o objeto a um estado inválido.

No contexto da linguagem Java, há três palavras-chave explícitas para implementação da


restrição de acesso (os especicadores de acesso): public, private e protected.

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.

Portanto, apesar da denição da visibilidade de membros de uma classe fazer parte da


implementação do encapsulamento, o uso de apenas a visibilidade pública não garante en-
capsulamento.

(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

class Hero extends ActionCharacter


implements CanFight, CanSwim, CanFly {
public void swim() {}
public void fly() {}
}

public class Adventure {


public static void t(CanFight x) { x.fight(); }
public static void u(CanSwim x) { x.swim(); }
public static void v(CanFly x) { x.fly(); }
public static void w(ActionCharacter x) { x.fight(); }
public static void main(String[] args) {
Hero h = new Hero();
t(h); // O trata como CanFight
u(h); // O trata como CanSwim
v(h); // O trata como CanFly
w(h); // O trata como ActionCharacter
}
}

(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

26. Assuntos relacionados: Linguagens de Programação, Java,


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: 23
Com relação à linguagem de programação Java, é correto armar que
(a). o operador instanceof é utilizado para chamar o método construtor de uma classe
e criar um novo objeto.
(b). são tipos primitivos de dados: boolean, byte, short, char, int, long, string, oat e
double.
(c). o tipo de dado int suporta apenas números de - 32.768 a 32.767.
(d). a instrução do-while não faz parte das instruções de controle de uxo da linguagem.
(e). os valores booleanos não podem ser usados em uma operação de casting.

Solução:
(A) ERRADA

O operador instanceof determina se um tipo particular de objeto é de uma determinada


classe, ou seja, o instanceof compara um objeto para um tipo (classe) especicado. Você
pode usá-lo para testar se um objeto é uma instância de uma classe ou uma instância de
uma subclasse, ou uma instância de uma classe que implementa uma interface especíca.

O operador verica se uma referência de objeto é uma instância de um tipo, e retorna


um valor booleano. A forma geral de uso do operador é: <objeto> instanceof <classe>,
que retornará verdadeiro para os objetos instanciados a partir da classe avaliada. Note que
instanceof sempre retornará falso se <objeto> é nulo.

(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:

Tipo Armazenamento Necessário Intervalo de Valores


int 4 bytes -2,147,483,648 a 2,147,483,647
short 2 bytes 32,768 a 32, 767
long 8 bytes -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807
byte 1 byte -128 a 127

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

Tipo Armazenamento Necessário Intervalo de Valores


oat 4 bytes +/-3.4E-38 a +/- 3.4E+38
double 8 bytes +/-1.7E-308 a +/-1.7E+308

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:

Seleção Seleção Repetição Repetição Repetição


if(<condição>) switch (<opção>) for( <condição>) while(<condição>) do
{ { { { {
<comando1> case <const1|var1> : <comando1> <comando1> <comando1>
<comandon> case <const2|var2> : <comandon> <comandon> <comandon>
} } } } }
else while(<condição>);
{
<comando1>
<comandon>
}

As chaves são utilizadas quando existe a necessidade de aplicar os comandos de controle


sobre vários comandos. Quando são aplicados a apenas um comando o uso das chaves não
é obrigatória.

(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

O pacote java.applet, da distribuição padrão do Java, é usado para a criação de applets


Java. Um applet Java é uma aplicação fornecida aos usuários em formato de bytecode Java
e são normalmente executados em navegadores com o intuito de prover interatividade a
aplicações web. Os applets Java são normalmente escritos na linguagem Java, mas nada os
impede de serem escritos em linguagens que possuam compiladores para bytecode da Java
Virtual Machine (JVM), como Jython, Ruby ou Eiel.

Um exemplo de código de applet Java é exibido abaixo:

import java.applet.Applet;
import java.awt.*;

public class HelloWorld extends Applet {


public void init() { }
public void stop() { }
public void paint(Graphics g) {
g.drawString("Hello, world!", 20,10);
}
}
Sendo salvo como HelloWorld.java e compilado, o seguinte trecho HTML é capaz de carregá-
lo:

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>

Após a compilação e o carregamento em um navegador, este applet exibirá a string Hello,


world!.

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.

Figura 7: hello, world em applet.

Página 72 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

28. Assuntos relacionados: Linguagens de Programação, Java, Pacotes Java,


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: 26
Um dos aprimoramentos feitos na linguagem Java foi a introdução da reexão. Com relação
a esse recurso, é incorreto armar que
(a). a classe Method do pacote java.lang.reect decodica informações de modicador
sobre classes, variáveis e métodos.
(b). o uso da reexão se torna mais útil quando se está trabalhando com serialização
de objeto.
(c). a classe Field do pacote java.lang.reect gerencia e localiza informações sobre
variáveis de classe e de instância.
(d). por meio da reexão, um programa Java pode carregar uma classe sobre a qual
ele nada conhece, encontrar as variáveis, métodos e construtores dessa classe e
trabalhar com eles.
(e). a reexão é necessária com o uso de JavaBeans, em que a capacidade de um objeto
consultar outro a respeito do que ele pode fazer é útil ao se criar aplicativos mais
complexos.

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.

Reexão (ou introspecção) é a capacidade de um programa investigar e avaliar caracterís-


ticas sobre si mesmo. É comumente utilizada por programas que precisam examinar ou
modicar (em tempo de execução) o comportamento de aplicações que estejam executando
na JVM. Desta forma, um programa Java pode carregar uma classe sobre a qual nada con-
hece, encontrar as variáveis, os métodos e os construtores dessa classe, e utilizá-los.

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

modicadores, tipo e nome.

Outras técnicas e métodos de programação tiram proveito da Reexão. A Serialização é


o processo de codicação (e posterior decodicação) de objetos em um stream de bytes,
comumente utilizado para tarefas de persistência, comunicação via sockets, RMI (Remote
Method Invocation), dentre outras. Em Java, esta técnica benecia-se enormemente da re-
exão, pois em tempo de execução é possível inspecionar adequadamente os objetos a serem
serializados. Outro exemplo é a criação de aplicativos JavaBeans, cuja API possui diversas
interfaces e classes em seu pacote java.beans. Além dessas interfaces e classes, a tecnologia
faz uso de modelos de eventos, de serialização de objetos e de reexão. Com a reexão ca
prático examinar qualquer objeto dinamicamente para determinar (e potencialmente invo-
car) seus métodos.

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

29. Assuntos relacionados: Engenharia de Software, Padrões de Projeto, Padrão Facade,


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: 29
Ao longo das últimas décadas, a engenharia de software fez progressos signicativos no
campo de padrões de projeto  arquiteturas comprovadas para construir software orientado
a objetos exível e fácil de manter. Com relação ao padrão Facade, é correto armar que
(a). fornece um objeto representante ou um marcador de outro objeto para controlar
o acesso ao mesmo.
(b). dene o esqueleto de um algoritmo em uma operação, postergando a denição de
alguns passos para subclasses.
(c). dene uma interface para criar um objeto, mas deixa as subclasses decidirem qual
classe a ser instanciada.
(d). fornece uma interface unicada para um conjunto de interfaces em um subsistema.
(e). dene uma dependência um para muitos entre objetos, de modo que, quando um
objeto muda de estado, todos os seus dependentes são automaticamente noticados
e atualizados.

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.

Os padrões de projeto auxiliam o desenvolvedor a evitar problemas dessa natureza garantindo


que um sistema pode ser modicado de determinadas maneiras. Cada padrão de projeto
permite que alguns aspectos da estrutura do sistema variem independentemente de outras
aspectos, tornando assim o sistema mais robusto a certos tipos de mudanças.

Estruturar um sistema em subsistemas auxilia na redução da complexidade. Um obje-


tivo comum em padrões de projeto é minimizar as comunicações e as dependências entre
os subsistemas. Uma forma de atingir tal objetivo é introduzir um objeto Facade que pro-
porcione uma interface única e simplicada para as facilidades mais gerais de um subsistema.

Considerando o orientação a objetos (OO), os objetos podem variar tremendamente em


tamanho e em número. Eles podem, em uma palavra, criar representações de tudo para
o hardware subjacente e/ou para as aplicações. Decidir o que deve ser um objeto é uma
tarefa delicada. O padrão de projeto Facade descreve como representar subsistemas com-
pletos como objetos, provendo uma interface unicada para um conjunto de interfaces em

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

30. Assuntos relacionados: Linguagem de Modelagem, UML,


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: 31
A linguagem de Modelagem Unicada (UML) emergiu como notação de diagramação de
padrão, de fato e de direito, para a modelagem orientada a objetos. Desta forma, a sentença
que conceitua apropriadamente a UML, segundo o OMG-Object Management Group, é
(a). um método para especicar e modelar os artefatos dos sistemas.
(b). um processo de especicação e modelagem de sistemas orientados a objeto.
(c). uma linguagem para implementar os conceitos da orientação a objetos.
(d). uma linguagem visual para especicar, construir e documentar os artefatos dos
sistemas.
(e). um método comum para a representação da orientação a objetos.

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

31. Assuntos relacionados: Interface com Usuário, Usabilidade,


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: 40
Como características de usabilidade ou facilidade de uso, uma interface com o usuário deve
possuir, entre outros, atributos tais como: facilidade de aprendizado, velocidade de operação,
robustez, facilidade de recuperação e facilidade de adaptação. Para o atributo robustez, o
resultado da avaliação de uma interface deve determinar
(a). o nível de tolerância do sistema aos erros do usuário.
(b). até que ponto o sistema está integrado a um único modelo de trabalho.
(c). quanto tempo leva um novo usuário para se tornar produtivo com o sistema.
(d). com que eciência o sistema se recupera a partir dos erros cometidos pelos usuários.
(e). em que grau a resposta do sistema combina com a prática de trabalho do usuário.

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).

Figura 8: processo de projeto de interface com usuário.

E o que seria usabilidade no escopo de interface com o usuário?

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.

Já segundo Nielsen (2000): usabilidade é o conjunto de todas as características que per-


mitem ao usuário interagir com o computador satisfatoriamente.

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:

• facilidade de aprendizado: fornece condições que permitem que o usuário aprenda a


interagir com o sistema de forma natural, independentemente de seu nível de habilidade
e conhecimento. Desta forma, a interface deve se apresentar de acordo com o que é
mais apropriado ao comportamento humano. Descartamos aqui a alternativa C;
• facilidade de utilização (adaptação): está intrinsecamente relacionada à exibili-
dade do sistema, isto é, à capacidade de adaptação ao nível de conhecimento e habili-
dade dos usuários do sistema. Por exemplo, alguns aspectos relacionados à exibilidade
são: iniciação do diálogo, o multi-threading, a possibilidade de migração de tarefas, e
a adaptabilidade. Já podemos descartar as alternativas B e E;
• interface intuitiva: os comandos para a execução de tarefas devem estar claramente
visíveis, a m de se evitar a necessidade de memorização de funções (não confunda com
a memorização de atalhos, que é opcional para a realização de tarefas);
• diálogo simples e natural: uso de expressões e conceitos que façam parte do con-
hecimento do usuário. Portanto, evite o emprego de termos técnicos da computação,
assim como, informações irrelevantes competem com o que realmente é necessário para
a realização da tarefa em questão;
• feedback ao usuário: a interface dever oferecer mecanismo para informar ao usuário
como o sistema está se comportando internamente, de forma que o usuário não que.
Por exemplo, informar o tempo restante para a conclusão da tarefa requisitada;
• retenção de conhecimento: quanto tempo um usuário pode car afastado do sis-
tema (sem interação) e ainda assim lembrar dos principais comandos disponíveis, sem
necessitar consultar manuais de operação?
• velocidade na execução das tarefas: quanto maior a velocidade de processamento
da máquina utilizada e a performance dos algoritmos, maior será a usabilidade do
sistema;
• satisfação subjetiva: como o usuário sente-se ao utilizar o sistema? Por exemplo, o
grau de satisfação do usuário estará diretamente relacionado à diversão proporcionada
por um sistema de entretenimento;

Página 79 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• mensagens de erros consistentes: mensagem que realmente informem ao usuário o


que foi feito errado, onde está o erro e ofereça a possibilidade de corrigi-lo;
• robustez: em poucas palavras é a preparação do sistema para evitar/tolerar erros
do usuário. O desenvolvimento da interface deve ser um processo criterioso a m de
minimizar todas as possibilidades de erro. Como é praticamente impossível prever
todas as ações do usuário que podem ocasionar erros, torna-se muito importante que o
sistema possua mensagens de erro consistentes. Para um sistema ser robusto ele deve
atender o princípio da:
• observabilidade: habilidade do usuário avaliar o estado interno do sistema referente
a sua representação perceptível, por exemplo, a navegabilidade;
• possibilidade de recuperação: habilidade do usuário tomar ação corretiva uma
vez que um erro seja reconhecido, como, por exemplo, Undo e Lixeira no caso de
arquivos removidos acidentalmente. Note que robustez não é somente possibilidade de
recuperação, por isso descartamos da alternativa D;
• compreensibilidade: como o usuário percebe a relação de comunicação com o sis-
tema, isto é, o grau de estabilidade;
• conformidade de tarefas: qualidade com que um serviço do sistema dá suporte a
todas as tarefas que o usuário deseja realizar;

Do exposto acima, podemos concluir facilmente que a alternativa A está CORRETA.

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.

A aceitabilidade prática relaciona-se a fatores tais como a utilidade, o custo, a compati-


bilidade e a conabilidade. O fator utilidade, por sua vez, relaciona-se à funcionalidade
oferecida pelo produto, assim como a usabilidade que esse produto oferece. Dessa forma,
pode-se perceber que sem usabilidade a aceitabilidade do sistema é abalada, pois o pro-
duto, embora possivelmente ofereça diversas funcionalidades, não oferece uma forma fácil
de acessá-la, o que pode torná-lo inútil. Sendo o produto inútil, a aceitabilidade prática não
se efetua e, por sua vez, a aceitabilidade do sistema também não.

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

32. Assuntos relacionados: Engenharia de Software, Modelo de Processo de Software, Desen-


volvimento Formal,
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: 42
Um modelo de processo de software é uma representação abstrata de um processo de soft-
ware. Assinale a opção que identica um dos modelos de processo de software.
(a). Análise e denição de requisitos.
(b). Projeto de sistemas e de software.
(c). Análise e projeto estruturado.
(d). Análise e projeto orientado a objetos.
(e). Desenvolvimento formal de sistemas.

Solução:
(A) ERRADA

A análise e a denição de requisitos são etapas/atividades de processos de software que


tem como objetivo identicar as necessidades (funcionalidades) que o sistema deve imple-
mentar, além de suas restrições. O ator responsável por essa atividade é o analista de
sistema. O analista através de entrevistas, questionários e análise de documento identica
as funcionalidade juntamente com o cliente ou usuário nal. Depois de reunidas as infor-
mações são avaliadas/interpretadas e organizadas em um Documento Conceitual do Sistema.
A organização das informações implica na estruturação dos requisitos correspondentes o seu
tipo (requisitos funcionais, requisitos não funcionais, requisitos de domínio).

(B) ERRADA

O projeto de software é o processo de transformar os documentos conceituais do sistema


em uma especicação de uma solução. O projeto de software utiliza a especicação e os
modelos de requisitos gerados na fase de análise para se denir o problema. Com os docu-
mentos referentes aos requisitos interpretados em mãos o projetista indicará soluções para
o problema. A solução que satiszer completamente os requisitos sobre as funcionalidades
requeridas pelo cliente é construída.

(C) ERRADA

A análise estrutura, como todos os métodos de análise de requisitos de software, é uma


atividade de construção de modelos. Usando uma notação que é própria para atividade de
análise estruturada, são criados modelos que representam o uxo e informações de domínio.
O analista divide o sistema em uma parte que representa suas funcionais (comportamentais)
e em uma parte que representa o domínio do sistema. Durante a análise estrutura são cri-
adas representações grácas e diagramas como o Diagrama de Fluxo de Dados e o Modelo
Comportamental.

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

A Análise Orientada a Objeto (AOO) baseia-se em conceitos de objetos, atributos, classes


e membros. A AOO deni os objetos de um problema a partir dos atributos que descrevem
um objeto para incluí-lo no modelo de análise. São os atributos que denem o objeto - que
esclarecem aquilo que o objeto signica no contexto do problema.

O método de análise de requisitos de software OO (Orientado a Objeto) possibilita que


o analista modele um problema ao representar classes, objetos, atributos e operações como
os componentes da modelagem OO. O projeto orientado a objeto (POO) cria uma repre-
sentação do domínio de problema do mundo real e modela um domínio de solução que é o
software. O POO interliga objetos de dados e operações de processamento de uma forma que
a informação e o processamento seja um único elemento (objeto), e não só o processamento
com no projeto estruturado.

(E) CORRETA

O Desenvolvimento Formal de Sistema (DFS) abrange um conjunto de atividades que levam


a especicação matemática formal de software de computador. O DFS especica, desenvolve
e executa vericações do sistema baseado na aplicação de uma rigorosa notação matemática.
A construção do produto software é baseada na especicação matemática do sistema e po-
dem ser vericado apresentado argumentos matemáticos e mostrando que eles atendem a
suas especicações. Apesar de não vir a ser uma abordagem de uso geral, o modelo de
transformação formal oferece a promessa de software livres de defeitos.

Atividades envolvida no processo de software desenvolvimento formal são:

• Denição dos requisitos: denição das funcionalidades desejadas;


• Especicação formal: detalhamento dos requisitos funcionais;
• Transformação formal: mapeamento dos requisitos (detalhados) em um modelo
matemático;
• Integração e teste de Sistema: implementação do modelo e teste utilizando alguma
linguagem de programação.

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

33. Assuntos relacionados: Engenharia de Software, Modelo de Processo de Software, Modelo


Espiral,
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: 44
No modelo de desenvolvimento em espiral, cada ciclo da espiral representa uma fase do
processo de software. Nesse modelo, a atividade que obrigatoriamente estará presente em
todos os ciclos é:
(a). Planejamento de desenvolvimento.
(b). Análise de requisitos.
(c). Teste de unidade.
(d). Análise, Projeto, Implementação e Teste.
(e). Análise de riscos.

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.

Figura 9: representação do modelo de desenvolvimento em espiral.

Página 83 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• Planejamento: determinação dos objetivos, alternativas e restrições;


• Análise de riscos: análise de alternativas e identicação/resolução dos riscos;
• Modelagem: modelagem das funcionalidades que serão adicionadas nesse estágio (ci-
clo) do projeto;
• Construção: implementação do sistema em um linguagem de programação resultando
numa versão de software e aplicação de testes sobre essa nova versão;
• Implantação: instalação da versão corrente de um determinado estágio do projeto e
retorno da satisfação do cliente;
• Comunicação: avaliação dos resultados da engenharia.

O modelo espiral é um método de desenvolvimento de sistemas e software de grande porte.


Como o software evoluí à medida que as atividades avançam, o desenvolvedor e o cliente
renam melhor os requisitos e reagem aos riscos de cada nível evolucionário.

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

34. Assuntos relacionados: Engenharia de Software, Requisitos de Usuário, Requisitos de


Sistema,
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: 45
Requisitos são capacidades e condições às quais o sistema  e em termos mais amplos, o
projeto  deve atender. Entre as diversas classicações e tipos de requisitos, encontramos
requisitos do usuário, requisitos de sistema e especicação de projeto de software.

Assinale a opção que trata de requisitos de usuário.


(a). O usuário deve dispor de recursos para denir o tipo de arquivos externos.
(b). O software deve oferecer um meio de representar e acessar arquivos externos cria-
dos por outras ferramentas.
(c). Cada tipo de arquivo externo pode ter uma ferramenta associada que pode ser
aplicada a ele.
(d). Cada tipo de arquivo externo pode ser representado com um ícone especíco na
tela do usuário.
(e). Devem ser fornecidos recursos para o ícone que representa um arquivo externo, a
ser denido pelo usuário.

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:

• Requisitos do usuário: são descrições em linguagem natural (ou formulário e dia-


gramas) sobre o que o sistema deve fazer. Esses requisitos explicam as funcionalidades
que o sistema deve fornecer, além, das restrições sobre o que o sistema não deve fazer.
As descrições do usuário devem apresentar o comportamento do sistema numa ótica de
usuário sem muitos detalhes técnicos;
• Requisitos de sistema: são as declarações apresentadas pelo usuário renadas até
chegar em uma descrição mais detalhada. Os requisitos de sistema são utilizados pelos
engenheiros de software para a elaboração do projeto de sistema. Portanto, os requisitos
de sistema devem determinar o que o sistema faz e não como ele será implementado.

Os requisitos de usuário de sistema podem ser divididos em requisitos funcionais e não-


funcionais. Resumidamente, os requisitos funcionais descrevem as funcionalidades que o
sistema deve apresentar. Já os requisitos não-funcionais referem-se às propriedades dese-
jadas do sistema, por exemplo, tempo de resposta, conabilidade do sistema. É claro, que
estes requisitos devem ser expostos em uma linguagem de usuário e não em termos técnicos
quando relacionados aos requisitos de usuários. Em contra-partida, caso sejam requisitos de

Página 85 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

sistema devem possuir um nível de detalhamento mais técnico.

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.

Os SGBDs oferecem um conjunto de operações para manipulação de dados, como pesquisa,


inserção, exclusão e modicação, através de uma linguagem conhecido por Linguagem de
Manipulação de Dados (DML  Data Manipulation Language).

A SQL (Structured Query Language  Linguagem de Consulta Estruturada) representa


uma combinação de DDL, VDL e DML, além de diretivas para especicar restrições e out-
ras características. A SDL foi um componente da SQL em versões antigas, mas foi removida
da linguagem para mantê-la apenas nos níveis conceitual e 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.

Um outro grupo de comandos de SQL serve para controlar aspectos de autorização de


acesso de dados por usuários. Este grupo é chamado de DCL (Data Control Language
 Linguagem de Controle de Dados) e é composto pelas diretivas GRANT e REVOKE. A
primeira, autoriza um usuário a executar operações e a segunda remove ou restringe o acesso.

Tem-se ainda a DTL (Data Transaction Language  Linguagem de Transação de Dados)


que controla as transações em SQL e é composta por BEGIN WORK, COMMIT e ROLL-
BACK. A primeira diretiva inicia uma transação e as outras duas nalizam, sendo que
COMMIT conclui a execução dos comandos e ROLLBACK desfaz as operações executadas.

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

36. Assuntos relacionados: Banco de Dados, ACID,


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: 54
O termo integridade se refere à precisão ou correção de dados. Em um banco de dados
relacional, as restrições de integridade têm importância crucial, pois fornecem uma forma
de garantir que as mudanças realizadas pelos usuários não resultem na perda de consistência
dos dados. Com relação às restrições de integridade, é incorreto armar que uma restrição
de
(a). variável de relação especica os valores válidos para uma determinada variável de
relação, e é vericada quando essa variável de relação é atualizada.
(b). tipo especica os valores válidos para um determinado tipo, e é vericada durante
invocações do seletor correspondente.
(c). atributo especica os valores válidos para um determinado atributo, e nunca deve
ser violada.
(d). banco de dados especica os valores válidos para um determinado banco de dados,
e é vericada no instante de COMMIT.
(e). domínio especica que o valor de um atributo não pode pertencer a mais de um
domínio.

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

• Número de CPF: o conjunto de onze dígitos válidos do número de CPF;


• Média de pontos: possíveis valores de médias computadas para um determinado
aluno. As médias devem ser não-negativas e inferiores à média máxima atingível.

Em SQL é possível criar um domínio através do comando CREATE DOMAIN. No exemplo


abaixo, é exibido um comando para a criação do domínio NUMERO_CPF em SQL:

CREATE DOMAIN NUMERO_CPF AS CHAR(11);

Página 90 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

37. Assuntos relacionados: UML, Diagrama de Componentes, Diagrama de Colaboração,


Diagrama de Objetos, Diagrama de Atividades, Diagrama de Caso de Uso,
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: 5
Em UML (Unied Modeling Language), o diagrama cujo foco é a organização estrutural de
objetos que enviam e recebem mensagens, exibindo assim, tais objetos e as ligações entre
eles, bem como as respectivas mensagens, é o diagrama de
(a). componentes.
(b). colaboração.
(c). objetos.
(d). atividades.
(e). caso de uso.

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.

Os diagramas UML podem representar duas visões de um modelo de sistema: a Visão


Estática (ou Estrutural) e a Visão Dinâmica (ou Comportamental). A primeira enfatiza as
estruturas estáticas do sistema utilizando objetos, atributos, operações e relacionamentos.
A segunda concentra-se no comportamento dinâmico, apresentando colaborações entre os
objetos, bem como suas mudanças de estado. Em sua versão 2.0, a UML possuía os seguintes
diagramas:

• 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;

Bom, chegou a hora de abordarmos cada diagrama apresentado nas alternativas.

(A) ERRADA

Na verdade, um diagrama de componente mostra os componentes do software (por exemplo,


componentes CORBA, Java Beans ou seções do sistema que são claramente distintas) e os
artefatos de que eles são feitos, como arquivos de código-fonte, bibliotecas de programação
ou tabelas de bancos de dados relacionais.

(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.

Por este diagrama apresentar todas as características do enunciado, esta é a alternativa


CORRETA.

(C) ERRADA

O diagrama de objetos é uma variação do diagrama de classes, utilizando inclusive a mesma


notação. A única diferença é que o diagrama de objetos mostra os objetos que foram in-
stanciados (os atributos dos objetos possuem valores) das classes. Desse modo, o diagrama
de objetos representa um perl do sistema em um determinado momento de sua execução.

De forma simplicada, podemos entender o diagrama de objetos como uma instância do


diagrama de classes.

(D) ERRADA

Um diagrama de atividades é um diagrama de estados em que todos ou a grande maio-


ria dos estados representam execuções de ações (atividades internas ao sistema). Portanto,

Página 92 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

ele é um gráco de uxo (lembre-se disso, Candidato!) que evidencia os controles e as


execuções das atividades. Seus principais elementos são:

• início: círculo preenchido;


• estado ou atividade: retângulo com bordas arredondadas;
• transição: seta;
• decisão ou desvio: losango - uma entrada e mais de uma saída;
• intercalação ou merge: losango - mais de uma entrada e uma saída;
• separação ou fork: barra horizontal - uma entrada e mais de uma saída;
• junção ou join: barra horizontal - mais de uma entrada e uma saída.

(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.

Já um caso de uso é um conjunto de atividades do sistema que produz um resultado concreto


e tangível. Ou seja, ele dene uma grande função do sistema. Gracamente, casos de uso
são representados por elipses com seus respectivos rótulos.

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

38. Assuntos relacionados: Engenharia de Software, UML, Hierarquia de Generalização,


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: 6
Em hierarquias de generalização UML, a característica na qual uma classe herda tanto
propriedades e relacionamentos de sua superclasse imediata quanto de suas superclasses
não-imediatas (aquelas em um nível mais alto na hierarquia) é denominada
(a). transitividade.
(b). simetria.
(c). assimetria.
(d). herança múltipla.
(e). associação.

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.

Em uma hierarquia de generalização, as subclasses herdam todas as propriedades de sua


superclasse.

A seguir analisamos as alternativas da questão:

(A) CORRETA

Uma das características de hierarquia de generalização é a transitividade, onde uma classe


em uma hierarquia herda propriedades e relacionamentos de todos os seus ancestrais. Isto
é, herda tanto propriedades e relacionamentos de sua superclasse imediata quanto de suas

Página 94 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

superclasses não-imediatas (aquelas em um nível mais alto na hierarquia). Portanto, a al-


ternativa está correta.

(B) ERRADA

O termo simetria não está relacionado a UML. Portanto, esta alternativa está errada.

(C) ERRADA

Outra característica da hierarquia de generalização é a assimetria, onde dadas duas classes


A e B, se A for uma generalização de B, então B não pode ser uma generalização de A. Ou
seja, não pode haver ciclos em uma hierarquia de generalização.

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

39. Assuntos relacionados: CMM, Níveis de Maturidade,


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: 9
O nível 5 CMM (Capability Maturity Model) é caracterizado por
(a). representar um estado caótico.
(b). não seguir qualquer padronização.
(c). possuir apenas produto gerenciado quantitativamente.
(d). possuir apenas processo gerenciado qualitativamente.
(e). garantir melhoria contínua e gerenciamento do processo.

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.

Este modelo é organizado em 5 níveis de maturidade: Inicial, Repetível, Denido, Gerenci-


ado e Otimizado (ou Otimizando). A seguir as principais características de cada nível:

• Inicial. O processo de software é caracterizado como eventual (ad hoc) e, ocasional-


mente, até mesmo caótico. Poucos processos estão denidos e o sucesso depende de
esforços individuais;
• Repetível. Processos básicos de gerenciamento de projeto estão estabelecidos para
avaliar custos, cronogramas e funcionalidades. A disciplina de processos necessária está
denida para possibilitar a repetição de sucesso em projetos com aplicações similares;
• Denido. O processo de software tanto para atividades de gerenciamento quanto para
atividades de engenharia está documentado, padronizado e integrado a um processo de
software padrão da organização. Todos os projetos utilizam uma versão aprovada e
personalizada do processo de software padrão da organização para o desenvolvimento
e a manutenção de softwares;
• Gerenciado. Medidas detalhadas do processo de software e da qualidade do produto
são coletadas. Tanto o processo de software quanto os produtos são quantitativamente
entendidos e controlados;
• Otimizando. Melhorias contínuas de processo são possibilitadas pelos retornos quan-
titativos oriundos do próprio processo e, inclusive, de ideias e tecnologias inovadoras.

Página 96 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Os itens a) e b) da questão apresentam características essencialmente pertencentes ao nível 1


CMM, sendo que o nível 2 ainda não possui uma padronização propriamente dita para todos
os processos da organização. Os itens c) e d) são apresentados separadamente para confundir
o candidato: a gerência da qualidade (tanto do processo quanto do produto) é traduzida
em um resultado quantitativo, não havendo lógica nos termos gerenciamento quantitativo
e gerenciamento qualitativo no contexto do CMM. Os nível 1, 2 e 3 não implementam
gerência da qualidade, tarefa que passa a ser desempenhada a partir do nível 4 CMM. O
nível 5 CMM caracteriza-se pela busca da melhoria contínua dos processos através de seu
gerenciamento. A assertiva que condiz com a teoria exposta é a do item e).

Página 97 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

40. Assuntos relacionados: Banco de Dados, Categorias de Linguages de Banco de Dados,


Data Denition Language (DDL), Data Manipulation Language (DML), Data Control Lan-
guage (DCL), Data Query Language (DQL), Transaction Control Language (TCL), SQL,
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: 11
Um SBGD (Sistema Gerenciador de Bancos de Dados) possui um compilador para uma
determinada linguagem, cuja função é o processamento de declarações, a m de identicar
as descrições dos componentes do esquema conceitual do Banco de Dados. Tal linguagem é
de
(a). consulta estrutura (SQL).
(b). denição de armazenamento (SDL).
(c). manipulação de dados (DML).
(d). denição de visão (VDL).
(e). denição de dados (DDL).

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.

DDL (Data Defnition Language)

Em termos conceituais, a DDL contém o conjunto de comandos utilizados para descrever


e criar a estrutura do banco de dados. Os comandos que compõe a DDL são os que per-
mitem criar novas tabelas, views, índices, e outros elementos de dados. Exemplos típicos de
comandos DDL são mostrados a seguir.

CREATE TABLE (Cria uma tabela)


DROP TABLE (Exlui uma tabela)
ALTER TABLE ADD COLUMN (Adiciona uma coluna a uma tabela)
CREATE INDEX (Cria um índice)
ALTER INDEX (Altera um índice)
CREATE VIEW (Cria uma view)

Página 98 de 127
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

DML (Data Manipulation Language)

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.

INSERT (Cria um novo registro de dados)


UPDATE (Atualiza um registro de dados)
DELETE (Exclui um registro de dados)
DCL (Data Control Language)

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)

A DQL é formada pelo conjunto de comandos e operadores que permitem a realização


de consultas no banco de dados. No âmbito dos bancos de dados relacionais, o único co-
mando DQL é o SELECT. No entanto, a DQL engloba uma vasta quantidade de cláusulas
e operadores, que permite consultar o banco de dados de inúmeras formas.

As principais cláusulas da DQL são as seguintes:

FROM (Utilizada para especificar a tabela que se vai selecionar os registros)


WHERE (Utilizada para especificar as condições que devem reunir os registros que
serão selecionados)
GROUP BY (Utilizada para separar os registros selecionados em grupos específicos)
HAVING (Expressar a condição que deve ser satisfeita por cada grupo selecionado)
ORDER BY (Ordena os registros selecionados)
DISTINCT (Selecionar dados sem repetição)
Com relação aos operadores lógicos e de comparação, merecem destaque os seguintes:

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:

AVG (Calcula a média dos valores de um campo determinado)


COUNT (Calcula o número de registros da seleção)
SUM (Calcula a soma de todos os valores de um campo determinado)
MAX (Calcula o valor mais alto de um campo determinado)
MIN (Calcula o menor valor de um campo determinado)

TCL (Transaction Control Language)

Finalizando as categorias de linguagens, temos a TCL, cujos comandos permitem controlar


a execução das transações em um SGBD. Os comandos TCL mais comuns são os seguintes:

BEGIN TRANSACTION (Define o início de uma transação de banco de dados)


COMMIT (Confirma todas as mudanças permanentemente)
ROLLBACK (Descarta todas as mudanças nos dados desde que o último COMMIT)
SET TRANSACTION (Modifica opções da transação, como o nível de isolamento)

Diante de toda a teoria exposta, podemos armar que a resposta da questão é a alternativa
E  DDL (Data Denition Language).

Página 100 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

41. Assuntos relacionados: SGBD, Otimizador de Consultas, Data Manipulation Language


(DML), Data Denition Language (DDL),
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: 13
Em um SGBD (Sistema Gerenciador de Bancos de Dados), as requisições de manipulação
de dados são processadas por um componente capaz de determinar uma maneira eciente
de implementá-las. Tal componente é o
(a). processador da linguagem de manipulação de dados (DML).
(b). gerenciador tem tempo de execução.
(c). otimizador.
(d). processador da linguagem de denição de dados (DDL).
(e). esquema físico.

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.

As quatro primeiras alternativas apresentadas como possíveis respostas à questão apresen-


tam elementos que constituem um SGBD, sendo que o item c) exibe a resposta correta,
conforme à teoria explanada. A alternativa e) exibe não um elemento de SGBD, mas sim
um componente da arquitetura de um banco de dados baseada em três esquemas: esquema

Página 101 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

Página 102 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

42. Assuntos relacionados: Banco de Dados, ACID,


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: 14
Se uma restrição de integridade, classicada como restrição de banco de dados, ocorrer no
momento de um COMMIT de uma transação, imediatamente é executado um
(a). DROP.
(b). ROLLBACK.
(c). BEGIN_TRANSACTION.
(d). END_TRANSACTION.
(e). LOCKING.

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).

A concorrência de operações em um banco de dados, isto é, a execução simultânea de


operações sobre uma mesma parte da base de dados disponível, é situação corriqueira a ser
tratada por SGBDs (Sistemas de Gerenciamento de Banco de Dados). Essa concorrência
sobre a base de dados, se mal gerenciada, pode provocar inconsistências nos dados alterados.

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:

• BEGIN_TRANSACTION: sinaliza o início da execução de uma transação;


• END_TRANSACTION: determina o término das operações de uma transação.
Contudo, a partir deste ponto é necessário vericar se as modicações introduzidas pela

Página 103 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

transação podem ser permanentemente aplicadas à base de dados (comando COMMIT)


ou se a transação deve ser abortada (comando ROLLBACK) devido a algum problema
ocorrido;
• COMMIT (ou COMMIT_TRANSACTION): indica o término da transação com
sucesso, isto é, todas as alterações na base de dados foram executadas e não serão
desfeitas;
• ROLLBACK (ou ABORT): sinaliza que a transação terminou sem sucesso e nen-
huma modicação na base de dados foi efetuada.

Nas opções de resposta fornecidas na questão, os itens b), c) e d) citam operações de


transações dentre as quais encontra-se a operação ROLLBACK, resposta para a pergunta,
conforme a teoria explanada até aqui. Mesmo de posse da resposta, cabe um comentário
sobre os outros dois termos citados dentre as opções de resposta: DROP e LOCKING.

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.

LOCKING (ou congelamento) é um mecanismo presente em SGBDs para tentar garan-


tir o controle de concorrência. Nada mais é do que a ação, tomada mediante uma transação,
de indisponibilizar temporariamente parte da base de dados para as demais transações. É
uma atitude que deve ser evitada por propiciar a ocorrência de deadlocks, isto é, impasses
gerados por várias transações que disputam recursos e acabam provocando uma dependência
circular, sem conseguirem atingirem o nal de suas execuções.

Página 104 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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!

Vamos ao comentário de cada alternativa.

(A) CORRETA

Um data warehouse (ou armazém de dados) é um sistema computacional utilizado para


armazenar uma grande quantidade de informações relacionadas às atividades de uma orga-
nização. Em geral, essas informações são obtidas a partir de vários sistemas independentes
e são consolidadas em uma base de dados própria, separada das bases de dados operacionais
da organização. O desenho da base de dados de um data warehouse favorece a geração de
relatórios, a análise de grandes volumes de dados e a obtenção de informações agregadas
que podem facilitar tomadas de decisão.

As principais características de um data warehouse que devemos manter sempre em mente


são as seguintes (justamente as que aparecem no enunciado):

• orientação a assunto: pois geralmente tomadas de decisão requerem agregação de


diversas informações em função de um determinado assunto;
• integração de dados: como já dito, geralmente um data warehouse integra dados
de diversos sistemas, por exemplo de diversos setores da organização. Em geral, essa
integração possibilita visões mais amplas das informações, o que é bastante importante
para o direcionamento das decisões pela administração das organizações;
• não-volátil: a base de dados é fundamentalmente de leitura. Ou seja, os dados apenas
são alterados em casos eventuais de correções ou adaptações;

Página 105 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• 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

Mineração de dados (data mining) se refere a processos analíticos de exploração de grandes


quantidades de informações (geralmente associadas a business intelligence) para se buscar
padrões consistentes e/ou relacionamentos entre vários tipos de dados. Perceba novamente
que não temos nesta alternativa um base de dados. Ou seja, esta alternativa também deve
ser prontamente descartada.

(E) ERRADA

OLAP (Online Analytical Processing) é um tipo de abordagem que viabiliza consultas


ecientes em uma análise multidimensional de dados, por isso muito utilizada em imple-
mentações de data warehouse. Esse termo é usado em contraste com o OLTP (Online
Transaction Processing), que é uma abordagem largamente utilizada em ambientes transa-
cionais.

Em um ambiente transacional, há constante entrada de dados e consultas simples. Além


disso, em um ambiente transacional, quase sempre é exigido que a resposta ao usuário seja
imediata. Um bom exemplo é quando você acessa um site bancário para realizar uma trans-
ferência ou conferir um extrato. Uma demora de alguns segundos é inaceitável. Enquanto
as abordagens OLTP são extremamente adequadas em diversas situações, elas se mostram
inadequadas em outras. Um exemplo típico é a situação de acesso a informações gerenciais,
como a produção de relatórios de vendas, contábeis e nanceiros. É justamente nesse tipo
de cenário que a abordagem OLAP é importante. Os bancos de dados que utilizam OLAP
são projetados em modelos de dados multidimensionais que possibilitam executar consultas
complexas em um tempo muito menor, baseando-se principalmente em desnormalizações e
em agregações.

Um banco de dados OLAP pode ser armazenado de várias maneiras. Em uma arquite-

Página 106 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

tura ROLAP (Relacional), os dados são armazenados em bases de dados relacionais. Já em


uma arquitetura MOLAP (Multidimensional), os dados são armazenados em cubos dimen-
sionais, em geral em formatos proprietários. HOLAP (Híbrido) tenta combinar as vantagens
de MOLAP e ROLAP, extraindo o que há de melhor de cada abordagem, ou seja, a alta per-
formance do MOLAP e a melhor escalabilidade do ROLAP. Outras siglas são utilizadas para
representar arquiteturas, mas são pouco utilizadas: WOLAP (Baseado em Web), DOLAP
(Desktop) e RTOLAP (Real-Time).

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.

Página 107 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

44. Assuntos relacionados: Banco de Dados, Indexação de Registros,


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: 17
Em termos de Bancos de Dados, a indexação mais adequada para o acesso eciente aos
registros, em consultas que considerem intervalos, para um pequeno número de linhas, cor-
responde ao uso de índices
(a). de junção.
(b). de hashing.
(c). em árvores B.
(d). booleanos.
(e). funcionais.

Solução:
(A) INCORRETA

Um índice de junção é uma estrutura de dados usada para o processamento de consul-


tas de junção (join queries) em bancos de dados. Os índices de junção usam técnicas de
pré-computação para aumentar o desempenho do processamento online de consultas e são
úteis para conjuntos de dados que são atualizados com pouca frequência. Como essa opção
apresenta uma restrição aos bancos de dados (e como há uma opção melhor, como será
visto), essa alternativa é incorreta.1

(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

Página 108 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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:

1. Cada nó possui, no máximo, m lhos;


2. Cada nó (exceto a raiz), possui, no mínimo, m/2 lhos;
3. A raiz possui pelo menos dois lhos quando não for um nó folha;
4. Todas as folhas aparecem no mesmo nível;
5. Um nó não folha com k lhos possui k-1 chaves.

Como exemplo, a Figura 10 exibe o desenvolvimento de uma árvore B de ordem 3 à medida


que os elementos 1, 2, 3, 4, 5, 6 e 7 são adicionados a ela. Como exibido, sem-
pre que um nó não é capaz de armazenar mais elementos, aquele nó é dividido e a árvore,
rebalanceada, de modo que suas propriedades ainda sejam mantidas.

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

Índice booleano não é um conceito amplamente divulgado na literatura. No entanto,


existem índices chamados índices bitmap que armazenam seus dados como vetores de bits
e respondem a consultas através da execução de operações lógicas bit a bit nesses vetores
de bits. Esse tipo de índice foi projetado para casos em que os valores de uma variável se
repetem com grande frequência. Devido a forma como são construídos, o índice de bitmap
possui vantagens de desempenho para esse caso, mas não na busca de intervalos.

(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.

Página 109 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

Página 110 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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

Página 111 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

porção de informação carrega consigo um ponteiro ao próximo elemento de dados na lista.


Uma lista simplesmente encadeada requer que cada elemento de informação contenha um
ponteiro com o próximo elemento da lista. Cada elemento de dado geralmente consiste em
uma estrutura que inclui campos de informação e ponteiro de ligação com o próximo ele-
mento.

(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:

• push: coloca um elemento no topo da pilha;


• pop: remove (recupera) um elemento do topo da pinha, ou seja, o último elemento da
lista.

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.

Página 112 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

46. Assuntos relacionados: Programação, Java, Garbage Collection,


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: 21
O que fazer para forçar a coleta de lixo de um objeto, em Java? Indique a opção correta.
(a). Invocar nalize().
(b). Remover todas as referências ao objeto.
(c). Invocar Runtime.gc().
(d). Invocar System.gc().
(e). A coleta de lixo não pode ser forçada.

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.

A alternativa A cita o método nalize(). Esse método é equivalente ao método destru-


tor de C++ e não é responsável em forçar a coleta de lixo. Ele é chamado diretamente pelo
coletor de lixo logo antes que o objeto seja destruído. É útil quando precisamos liberar al-
guns recursos anteriormente à efetivação da eliminação. Por exemplo, se precisarmos fechar
uma conexão antes da destruição do objeto, isso será possível denindo o método nalize()
de tal maneira que realize a tarefa de fechar a conexão.

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).

Página 113 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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 conceito de RPC já é apresentado na RFC 707, de 1976 e a primeira implementação


popular dessa tecnologia foi a da Sun Microsystems (hoje chamado ONC RPC), usada na
implementação do NFS (Network Filesystem).

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).

É importante notar que o processo cliente é bloqueado enquanto o processamento remoto

Página 114 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

A Figura 11 descreve o funcionamento básico do RPC. Nela, a execução se dá da esquerda


para a direita, iniciando com a chamada local do programa usuário. Depois, no stub do
usuário (cliente), é realizada a conversão dos argumentos para transmissão pelas rotinas (de
tempo de execução) do RPC. Enquanto a mensagem é transmitida e a rotina é executada
no servidor, o programa cliente ca em espera. Quando a mensagem chega ao servidor,
as rotinas do RPC a recebem, a repassam para o stub do servidor, que a repassa para o
programa que serve as rotinas para processamento. Com o m do processamento, o processo
simétrico é realizado. A função do stub do cliente é iludir o cliente em pensar que está
chamando uma função do servidor. O stub do servidor, de forma semelhante, ilude o pro-
grama que serve as rotinas para que pareça que ele foi chamado pelo cliente. A transmissão
de mensagens pelos stubs é realizadas para que o funcionamento do RPC aconteça de forma
transparente para os programas cliente e servidor.

Figura 11: funcionamento básico do 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.

Mais especicamente o CORBA é um mecanismo de software para normalização da semân-


tica de chamadas a métodos no mesmo espaço de endereçamento (na aplicação local) ou
em um espaço de endereçamento remoto. Para especicação das interfaces, a linguagem de

Página 115 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

O mapeamento de linguagem exige que o desenvolvedor do software (usuário do CORBA,


nesse caso) crie um código IDL que represente as interfaces para seus objetos. Tipicamente,
uma implementação do CORBA é acompanhada de um compilador de IDL que converte o
código IDL do usuário em arquivos objeto para serem ligados pela aplicação.

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

O DCOM (Distributed Component Object Model) é uma tecnologia proprietária criada


pela Microsoft para comunicação entre componentes de software distribuídos em redes de
computadores. O DCOM, quando criado, era chamado Network OLE e estende a tecnolo-
gia COM (Component Object Model), também da Microsoft.2

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.

As extensões adicionadas ao COM pelo DCOM são, basicamente:

• A serialização/deserialização de argumentos e valores de retorno de métodos;


• Coleta de Lixo (Garbage Collection) distribuída, o que permite que referências mantidas
por clientes de interfaces sejam liberadas quando, por exemplo, a conexão é perdida.

O protocolo do DCOM foi baseado no DCE/RPC (conra a discussão de RPC na seção


DCE), que dene regras claras sobre a serialização. O DCOM e o CORBA são padrões
concorrentes e, como o CORBA, o DCOM sofre do mesmo problema de conexão através de
rewalls restritivos.

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.

Página 116 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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 ambiente de computação distribuído (DCE, do Inglês Distributed Computing Environ-


ment) é um sistema de software desenvolvido no início da década de 1990 que provê um
framework para desenvolvimento de aplicações cliente-servidor. Em particular, o DCE pos-
sui uma tecnologia que provê RPC, chamado DCE/RPC. O DCE/RPC é, basicamente, uma
implementação de RPC para o DCE.

Discussão das alternativas

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.

Resta-nos, portanto, a escolha entre as técnicas concorrentes DCOM e CORBA, ambas


acessíveis por diversas linguagens de programação e, de certa forma, disponíveis em diver-
sas plataformas. No entanto, a popularidade do COM (e, consequentemente, do DCOM)
é maior apenas em sistemas Windows e, com a introdução do framework .NET, é possível
substituir componentes DCOM por componentes implementados em .NET 4 . Além disso, o
DCOM é uma tecnologia proprietária da Microsoft.

Da discussão do parágrafo anterior podemos selecionar o CORBA, alternativa a como a


resposta da questão. Outros aspectos que o tornam a opção mais adequada para a questão
são o fato dele ser um padrão aberto denido por um consórcio e de haver implementações
funcionais para diversos sistemas operacionais e linguagens de programação.
3
http://java.sun.com/docs/books/tutorial/rmi/overview.html
4
Using Web Services Instead of DCOM - http://msdn.microsoft.com/en-us/library/aa302336.aspx.

Página 117 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

48. Assuntos relacionados: Algoritmos de Ordenação, Heapsort,


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: 24
Considere a execução do algoritmo de ordenação Heap (ou Heap Sort), em sua versão em-
local (in-place), ao arranjo 13, 18, 10, 8, 11. Qual é a saída gerada, após a execução dos três
(3) primeiros passos do algoritmo?
(a). 13, 18, 10, 11, 8
(b). 18, 13, 10, 11, 8
(c). 8, 13, 10, 11, 18
(d). 13, 10, 11, 8, 18
(e). 18, 13, 10, 8, 11

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]

sendo que sua raiz contém o menor elemento do arranjo.

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].

Página 118 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Figura 12: estrutura heap máximo de 10 elementos para o arranjo A = [16, 14, 10, 8, 7, 9, 3, 2,
4, 1].

Quando um novo elemento é adicionado ao arranjo, é necessário manter a propriedade de


heap, o que pode ser feito com as sub-rotinas MAX-HEAPFY e MIN-HEAPFY. Para o caso
de um heap máximo, tem-se:

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.

É possível utilizar o procedimento MAX-HEAPFY para transformar um arranjo A[1..n],


com n=comprimento[A], em um heap máximo. O procedimento BUILD-MAX-HEAP efe-
tua tal operação:

BUILD-MAX-HEAP(A)
tamanho-do-heap[A] ← comprimento[A]
for i ← b comprimento[A]/2 c downto 1
do MAX-HEAPFY(A, i)

A Figura 13 ilustra o uso do procedimento BUILD-MAX-HEAP para o arranjo A=[4, 1, 3,


2, 16, 9, 10, 14, 8, 7].

Página 119 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

Página 120 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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.

Página 121 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

49. Assuntos relacionados: Algoritmos, Linguagens de Programação, Java,


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: 25
Considere o seguinte fragmento de código, para o método run() de uma determinada linha
de execução (thread), em Java.

1. try{
2. sleep(1000);
3. } catch (InterruptedException ie){}

Se considerarmos que a linha de execução não é interrompida, é correto armar que


(a). o código não compila.
(b). a linha de execução entra em estado Pronto, após 1000 milissegundos.
(c). a linha de execução entra em estado Pronto, em exatamente 1000 milissegundos.
(d). a linha de execução entra em estado Pronto, em pelo menos 1000 milissegundos.
(e). o código compila, mas não executa, lançando uma exceção do tipo ThreadExcep-
tion.

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;

class Foo extends Thread {


public void run() {
try {
sleep(1000);
} catch (InterruptedException ie){}
System.out.println("Hello World!");
}
}

public class ThreadedHello {


public static void main(String[] args) {
Foo foo;
foo = new Foo();
foo.run();
}
}

É 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

Página 122 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

não há erro sintático ou semântico no código. O que invalida a solução referenciada pela
opção a.

Após a compilação do bloco de código, também é possível executá-lo. O exemplo abaixo


exibe a chamada ao programa compilado e a saída por ele gerada:

$ time java ThreadedHello


Hello World!

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.

Resta-nos, portanto, as opções b, c e d. Para isso, a melhor fonte é a referência da lin-


guagem Java, que diz que o método sleep da classe Thread causa a suspensão temporária
da thread em execução pelo número de milisegundos especicado pelo argumento passado
para o método. Disso decorre que, terminado o tempo de suspensão, a thread retornará ao
estado Pronto em 1000 milissegundos. O problema com as opções c e d são os qualicadores
adicionados a este tempo. Por depender da precisão do timer do computador que executará
esse bloco de código e do escalonador de processos, é impossível garantir que a mudança
para o estado Pronto ocorrerá em exatamente 1000 milisegundos, invalidando a alternativa
c. De forma semelhante, a precisão do timer ou o escalonador podem fazer com que o tempo
de suspensão da thread seja menor que 1000 milisegundos, invalidando a alternativa d.

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.

Página 123 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

50. Assuntos relacionados: Sistemas de Informações Gerenciais,


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: 28
O sistema de informação utilizado pelo Governo Federal para controlar e acompanhar a
execução orçamentária, patrimonial e nanceira é denominado
(a). SIGPLAN.
(b). SISG.
(c). SIAFI.
(d). SIASG.
(e). SIAPE.

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

SIGPLAN5 é o sistema de informações gerenciais e de planejamento e contribui na elab-


oração, monitoramento, avaliação e revisão dos programas do Plano Plurianual. Ele foi
concebido para apoiar a execução dos programas governamentais e é utilizado pelos órgãos
setoriais, presidência da república, casa civil, ministérios e outras entidades.

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.

Algumas de suas características mais importantes são:

• Acompanhamento da execução física em tempo real: por ele a administração pública


federal pode realizar um efetivo gerenciamento das ações governamentais, em particular
no que diz respeito ao desempenho físico;
• Gestão de restrições: possibilita ao gerente a antecipação e sistematização das re-
strições, o que facilita a mobilização e a busca por soluções por parte do governo e seus
parceiros;
• Integração de informações: sua base de dados contém informações sobre a execução das
ações, seu gerenciamento e monitoramento, e informações orçamentárias e nanceiras
sobre cada programa, sendo composta de dados provenientes de diversas fontes.

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.

Página 124 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

(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:

I. o órgão central, responsável pela formulação de diretrizes, orientação, planejamento e


coordenação, supervisão e controle dos assuntos relativos a Serviços Gerais;
II. os órgãos setoriais, unidades incumbidas especicamente de atividades concernentes ao
SISG, nos Ministérios e órgãos integrantes da Presidência da República;
III. os órgãos seccionais, unidades incumbidas da execução das atividades do SISG, nas
autarquias e fundações públicas.

(C) CORRETA

O SIAFI7 , ou sistema de integrado de administração nanceira, é um sistema contábil que


tem por nalidade realizar todo o processamento, controle e execução nanceira, patrimonial
e contábil do governo federal brasileiro. Ele é gerido pela Secretaria do Tesouro Nacional,
STN.

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.

Seus principais objetivos são o de:

• prover mecanismos adequados ao controle diário da execução orçamentária, nanceira


e patrimonial aos órgãos da Administração Pública;
• fornecer meios para agilizar a programação nanceira, otimizando a utilização dos
recursos do Tesouro Nacional, através da unicação dos recursos de caixa do Governo
Federal;
• permitir que a contabilidade pública seja fonte segura e tempestiva de informações
gerenciais destinadas a todos os níveis da Administração Pública Federal;
• padronizar métodos e rotinas de trabalho relativas à gestão dos recursos públicos, sem
implicar rigidez ou restrição a essa atividade, uma vez que ele permanece sob total
controle do ordenador de despesa de cada unidade gestora;
6
Decreto No 1.094, de 23 de março de 1994. Disponível em
http://www.planalto.gov.br/ccivil_03/Decreto/Antigos/D1094.htm e acessado em 25/05/2010.
7
Conheça o SIAFI - A História do SIAFI. Disponível em
http://www.tesouro.fazenda.gov.br/sia/index_conheca_sia.asp e acessado em 25/05/2010.

Página 125 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

• 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

O Sistema Integrado de Administração de Serviços Gerais - SIASG8 , é um conjunto in-


formatizado de ferramentas para operacionalizar internamente o funcionamento sistêmico
das atividades inerentes ao Sistema de Serviços Gerais - SISG, quais sejam: gestão de ma-
teriais, edicações públicas, veículos ociais, comunicações administrativas, licitações e con-
tratos, do qual o Ministério do Planejamento, Orçamento e Gestão é órgão central normativo.

(E) INCORRETA

O Sistema Integrado de Administração de Recursos Humanos, SIAPE9 , é um sistema on-


line, de abrangência nacional, que constitui-se, hoje, na principal ferramenta para gestão do
pessoal civil do governo federal. Como ele é realizado mensalmente o pagamento de cerca
de um milhão e trezentos mil servidores ativos, aposentados e pensionistas em 214 órgãos
da administração pública federal direta, instituições federais de ensino, ex-territórios, autar-
quias, fundações e empresas públicas.

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.

Página 126 de 127


www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

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

Página 127 de 127 Handbook de TI Além do Gabarito


Índice Remissivo
Distributed Component Object Model (DCOM),
114
Distributed Computing Environment (DCE),
Árvore, 111 114

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

Garbage Collection, 113


Banco de Dados, 17, 19, 23, 26, 87, 89, 98, 103,
105, 108 Generalização, 15
Bits de Paridade, 38 Gerenciamento de Nível de Serviço, 57
Business Inteligence, 105 Gerenciamento Eletrônico de Documentos (GED),
4
Categorias de Linguages de Banco de Dados, Governança de TI, 4, 43, 57
98
Central de Serviços, 61 Heapsort, 118
Chave Assimétrica, 17, 41 Herança, 32, 65
Chave Secundária, 17 Hierarquia de Generalização, 94
Chave Simétrica, 17, 41
Checksum, 38 Indexação de Registros, 108
Classes e Superclasses, 32 Integridade de Dados, 38
Classicação de Dados, 21 Interface com Usuário, 71, 78
CMM, 96 ISO/IEC 12207, 51
CMMI, 4, 51, 53 ITIL, 57, 61
COBIT, 4, 43
Java, 32, 34, 36, 68, 71, 73, 113, 122
Common Object Request Broker Architecture
Java Remote Method Invocation (Java RMI),
(CORBA), 114
114
Criptograa, 17, 41
JavaServer Pages (JSP), 36
Criptograa Assimétrica, 41
Criptograa Simétrica, 41 Linguagem de Modelagem, 77
Cyclic Redundancy Check (CRC), 38 Linguagens de Programação, 32, 34, 36, 68, 71,
73, 122
Data Control Language (DCL), 87, 98
Lista Encadeada, 111
Data Denition Language (DDL), 87, 98, 101
Data Manipulation Language (DML), 87, 98, MA-MPS, 46
101 MN-MPS, 46
Data Mining, 21 Modelagem de Dados, 17
Data Query Language (DQL), 98 Modelagem de Dependência entre Dados, 21
Data Warehouse, 105 Modelo de Maturidade, 51
Desenvolvimento de Sistemas, 51 Modelo de Processo de Software, 8, 81, 83
Desenvolvimento em Cascata, 8 Modelo Entidade-Relacionamento, 23
Desenvolvimento Evolucionário, 8 Modelo Espiral, 83
Desenvolvimento Formal, 81 Modelo Objeto-Relacionamento, 23
Diagrama de Atividades, 91 Modelo Relacional, 23
Diagrama de Caso de Uso, 91 Modicadores de Acesso, 32
Diagrama de Colaboração, 91 MPS.BR, 46, 51
Diagrama de Componentes, 91
128MR-MPS, 46
Diagrama de Objetos, 91
Handbook de Questões de TI Comentadas para Concursos Volume 9  Edição 1

Níveis de Maturidade, 96 Web Services Description Language (WSDL),


Nível de Abstração, 19 11
Nível de Visão, 19
Nível Físco, 19 XML, 28
Nível Lógico, 19

On-line Analytical Processing, 105


On-Line Transaction Processing, 105
Organizational Project Management Maturity
Model (OPM3), 4
Orientação a Objeto, 32, 63, 65
Otimizador de Consultas, 101

Pacotes Java, 71, 73


Padrão Facade, 75
Padrões de Projeto, 75
Pilha, 111
Polimorsmo, 65
Portais Corporativos, 4
Programação, 31, 63, 65, 113
Programação Estruturada, 31
Projeto de Serviço, 57

Qualidade de Software, 51, 53

Remote Procedure Call (RPC), 114


Requisito de Domínio, 13
Requisito de Software, 13
Requisito Funcional, 13
Requisito Não-Funcional, 13
Requisitos de Sistema, 85
Requisitos de Usuário, 85

Segurança da Informação, 17, 38


SGBD, 101
Simple Object Access Protocol (SOAP), 11
Sistemas de Informações Gerenciais, 124
Sistemas Distribuídos, 114
SQL, 26, 87, 98
Sumarização de Dados, 21
Superchave, 17

Tipos de Métodos, 63
Transaction Control Language (TCL), 98
Transformação Formal, 8
Tratamento de Exceção em Java, 34

UML, 15, 77, 91, 94


Universal Description, Discovery and Integra-
tion (UDDI), 11
Usabilidade, 78

Web Services, 11

Página 129 de 127


www.handbookdeti.com.br

Você também pode gostar