handbook_questoes_vol9 - cópia

130
Questões de TI comentadas para concursos Handbook de Além do gabarito Desenvolvimento de Software Parte 2 ESAF - Escola de Administração Fazendária Volume 9 Grupo Handbook

Upload: -

Post on 26-Mar-2016

248 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: handbook_questoes_vol9 - Cópia

Questões de TI comentadas para concursos

Handbook de

Além do gabarito

Desenvolvimento de SoftwareParte 2

ESAF - Escola de Administração Fazendária

Volume 9

Grupo Handbook

Page 2: handbook_questoes_vol9 - Cópia

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çõesconveniadas é uma das principais atividades da ESAF. Essa banca vem sendo a responsável pelaorganizaçã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, oGrupo 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 aObjetos, 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 127www.handbookdeti.com.br

Page 3: handbook_questoes_vol9 - Cópia

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 BibliotecaNacional. Todos os direitos autorais referentes a esta obra são reservados exclusivamente aosseus 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 deforma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites dacolaboraçã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 é umaprodução independente e contamos com você para mantê-la sempre viva.

Grupo Handbook de TI

Página 2 de 127www.handbookdeti.com.br

Page 4: handbook_questoes_vol9 - Cópia

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 concurseirosde 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 [email protected]

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 127www.handbookdeti.com.br

Page 5: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

1. Assuntos relacionados: Governança de TI, Organizational Project Management MaturityModel (OPM3), CMMI, Gerenciamento Eletrônico de Documentos (GED), COBIT, PortaisCorporativos,Banca: ESAFInstituiçã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 DadosAno: 2009Questã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 visamgarantir que a TI suporte e maximize os objetivos e as estratégias do negócio. Assim, agovernanç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 gerarvalor 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 permitemonitorar o progresso dos interesses estratégicos da organização através da execução precisae bem sucedida dos projetos. Em outras palavras, ele possibilita que a empresa utilize agestã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çoamentodo conhecimento, da avaliação e da melhoria de forma que, conforme você se move peloprocesso 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 dematuridade. 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 127www.handbookdeti.com.br

Page 6: handbook_questoes_vol9 - Cópia

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ãorepetitivos por natureza e garantem uma alta probabilidade de que cada um deles seja umsucesso. Observe que, em nenhum momento �zemos menção à Governança de TI, o que nosdá 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 especi�camente 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 diversi�cadase, 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 paramelhoria dos processos das organizações e a habilidade de gerenciar, desenvolver e manteros seus produtos (softwares). Essas práticas, já consideradas efetivas, são organizadas emuma 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çãodessas melhorias também é fornecido pelo CMMI.

Candidato, você precisa saber as diferenças entre as formas de representação que o CMMIpossui, 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 melhoriasde acordo com as suas realidades).

Enquanto que a representação contínua dá liberdade para as organizações utilizarem amelhor ordem entre as �melhorias� para que os objetivos de negócio sejam alcançados, arepresentaçã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 quepretendem 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 meiode facilmente gerar, controlar, armazenar, compartilhar e recuperar informações existentesem documentos. Os sistemas GED permitem que os usuários acessem os documentos deforma á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çãodeste 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 127www.handbookdeti.com.br

Page 7: handbook_questoes_vol9 - Cópia

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émque a alternativa está ERRADA.

(D) CORRETA

O Control Objective for Information and related Technology (COBIT) é um frameworkque 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 decontrole e as métricas de desempenho. Esse framework serve de suporte para implementara 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 de�nitivo. 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 osobjetivos 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. Paraisso, 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çãoe 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-ni�cado destas siglas!):

Página 6 de 127www.handbookdeti.com.br

Page 8: handbook_questoes_vol9 - Cópia

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, porexemplo, licitações e compras de fornecedores;

• B2E (Business-to-Employee): portais que atendem aos empregados. Oferecemaos empregados uma interface única para que eles possam acompanhar as notícias daempresa, gerenciar seus dados pessoais, solicitar serviços, etc.

Portanto, nada relacionado à Governança de TI.

Página 7 de 127www.handbookdeti.com.br

Page 9: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 8

O modelo de processo de software caracterizado por intercalar as atividades de especi�cação,desenvolvimento e validação, denomina-se

(a). modelo de work�ow.

(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 work�ow é responsável por analisar e modelar todo o tramite de informaçõese atividades referentes a um processo de negócio de uma empresa para que possa ser de�nidauma forma organizada de execução das tarefas que compõem o processo. A automação doprocesso de negócio de uma empresa é o resultado �nal da modelagem de work�ow, con-sistindo na interligação de tarefas executadas por participantes do processo ou até mesmopor sistemas computacionais de�nindo a ordem de execução e suas prioridades. Durantetodo o desenvolvimento de um work�ow várias etapas são executadas em uma determinadaordem. O ciclo de vida de um work�ow (WFLC - Work�ow Life Cycle) de�ne a maneiracomo estas etapas são desenvolvidas em determinado tempo sobre todo o desenvolvimentodo work�ow. Para tanto, são de�nidos três atividades principais:

• Construção e Estabilização: este processo representa a fase de análise e modelagemdo processo de negócio que a partir de uma linguagem grá�ca é de�nido o Work�ow,utilizando conceitos como processo, atividade, tarefa, ator, etc. Nesta fase é utilizadoo processo de prototipagem para a detecção de erros de modelagem, por esse processoser iterativo pode detectar e corrigir os erros de de�niçã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 eventosdo modelo. A versão é executada para que possa veri�car o �uxo de informação que omodelo 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áliseda fase de construção do modelo. Ao encontrar anomalias no modelo o mesmo ésubmetido à estabilização novamente para melhorar a qualidade do Work�ow;

• 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 veri�car a adequação do modelo deprocesso 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 pontode partida de uma nova iteração dos processos de estabilização e depuração.

Página 8 de 127www.handbookdeti.com.br

Page 10: handbook_questoes_vol9 - Cópia

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 processosmostrando 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 modelagemde �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 trafegamcomo entrada e onde são saídas. O Fluxo é representado por uma seta que indica adireção da movimentação dos dados;

• Depósito: Enquanto o �uxo representa as informações em movimento o depósitoindica 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. Paracada iteração de re�namento é criado um novo modelo atribuindo ao nome do documentoum 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 especi�cação, desenvolvimento e validação. Este modelo trabalha com muitasversões dos sistemas que são apresentadas para o cliente e então re�nadas, ou seja, as ver-sões iniciais são construídas a partir de informações mais gerais e/ou abstratas e ao possa quesão �nalizadas e expostas para o cliente sofrem avaliações e melhoramentos. As atividadesde desenvolvimento não são executadas separadamente para a construção do sistema, massim, concorrentemente para que ter uma resposta do cliente e um melhoramento/agregaçãodas funcionalidades até chegar à versão �nal.

Há dois tipos de desenvolvimento evolucionário:

1. Desenvolvimento exploratório: tem como objetivo de�nir com o cliente os requisi-tos iniciais melhor compreendidos. O sistema sobre alterações à medida que o clientedetecta a necessidade de novas funcionalidades;

2. Fazer protótipos descartáveis: tem como objetivo re�nar os requisitos dos sistemasbaseando 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 executavárias etapas (atividades) que sequencialmente transformam os requisitos de software em ummodelo matemático e posteriormente em um software. Este modelo tem como característicauma modelagem limpa, livre de erro. Isso é obtido através de modelos matemáticos quepermitem uma veri�cação ou validação do modelo antes que o sistema seja implementado.

Página 9 de 127www.handbookdeti.com.br

Page 11: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

A primeira etapa é a de�nição dos requisitos juntamente com o cliente. Depois esta descriçãodo cliente é então detalhada saindo de um nível de abstração de usuário para o nível de es-peci�cação. A especi�cação é então transformada em um modelo formal detalhado (modelomatemático). Por �m, a implementação do modelo e teste utilizando alguma linguagem deprogramaçã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 modelagemdos requisitos, projeto, codi�cação, teste até manutenção do sistema. A vantagem dessaabordagem seqüencial é visto no gerenciamento do projeto, uma vez que suas atividadespossuem 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 nasatividades de processo às etapas iniciais como levantamento de requisito e análise devem sercuidadosamente 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 entrevistascom usuários do sistema. Posteriormente os requisitos são de�nidos e então é geradoum documento com a especi�cação das funcionalidade de forma detalhada;

• Projeto de software: O projeto de software reuni os requisitos (funcionais e nãofuncionais) em sistemas de hardware ou de software, para então, construir a arquiteturado sistema em um âmbito geral. O projeto de software envolve a identi�cação de todosos componentes e seus relacionamentos necessários para o desenvolvimento do sistema;

• Implementação: O projeto de software é construído gerando um comum conjunto demódulos (programas) ou um único de programas;

• Testes de sistemas: O sistema desenvolvido é submetido a testes que representam osrequisitos desejados pelos usuários do sistema a �m de veri�car erros e inconformidadesdo sistema;

• Manutenção: Depois dos testes o sistema é instado e colocado em funcionamento. Amanutençã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 melhoramentode funcionalidades.

Concluindo, o único processo de software que intercala as atividades de especi�cação, de-senvolvimento e validação produzindo em cada iteração uma nova versão do software é omodelo evolucionário de software. Portanto, a resposta correta é alternativa C.

Página 10 de 127www.handbookdeti.com.br

Page 12: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 9

Na arquitetura de Web Services, o componente que compreende um serviço de diretóriospara 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 De�niçã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 paraintercâmbio de informação estruturada na implementação de Web Services. Como formatode 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 podeprover a fundação da pilha de protocolos de Web Services, sobre o qual uma infraestruturamaior pode ser construída. Sendo um protocolo de intercâmbio de informação e não umserviç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 baseadoem XML e independente de plataforma como um �meta serviço� (um serviço que serveserviços) para permitir consultas robustas em metadados. Ele fornece à indústria uma es-peci�cação para construção de registros de Web Services interoperáveis. O UDDI é umpadrão mantido pela OASIS (Organization for the Advancemente of Structured InformationStandards) e permite a publicação de listagens de serviços, a descoberta de serviços e queaplicaçõ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 alternativacorreta.

(C) INCORRETA

A WSDL (do Inglês Web Services Description Language) é, como o próprio nome diz, umalinguagem para descrição de Web Services. Ela é uma linguagem baseada em XML usadapara descrever serviços de rede como um conjunto de pontos que operam em mensagens quecontém tanto informação orientada a documentos quando informação baseada em procedi-mentos. Um documento WSDL de�ne serviços como coleções de pontos �nais. Em WSDL,

Página 11 de 127www.handbookdeti.com.br

Page 13: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

a de�nição abstrata de pontos �nais e mensagens é separada de sua implementação, o quepermite o reuso de de�nições abstratas: mensagens, que são descrições abstratas dos dadostransmitidos, 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 armazenamentode 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 de�niçã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 WebServices, mas como uma forma de apresentação de documentos, HTML não representa umaresposta 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 decontrole de transmissão (TCP) e o da Internet (IP), os dois primeiros a serem de�nidos nopadrã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 corretapara a questão.

Página 12 de 127www.handbookdeti.com.br

Page 14: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 12

Analise as seguintes a�rmaçõ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ísticasdo 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 a�rmações I e II são verdadeiras.

(b). Apenas as a�rmações I e III são verdadeiras.

(c). Apenas as a�rmações II e III são verdadeiras.

(d). As a�rmações I, II e III são verdadeiras.

(e). Nenhuma das a�rmações é verdadeira.

Solução:

Primeiramente, requisitos são as propriedades e funcionalidades utilizadas na construção deum 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íveisde descrição) em requisitos de usuário e requisitos de sistema. Resumidamente, requisitos deusuários são descrições de funcionalidades com baixo nível de detalhamento. E os requisitosde sistema são descrições detalhadas sobre o que o sistema deverá fazer. Os requisitos deusuários e sistemas são classi�cados em requisitos funcionais, requisitos não funcionais ourequisitos 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 determinandoas ações que serão tomadas a partir de entradas especí�cas. Além disso, em alguns casosos requisitos funcionais declaram o que o sistema não devem fazer. Quando são requisitosde usuários a especi�cação é construída a partir de declarações em um nível mais alto dedetalhes (de maneira geral), porém, os requisitos funcionais de sistema descrevem detal-hadamente o comportamento do sistema determinando entradas, saídas e exceções. Estaassertiva esta correta.

ITEM II

Os requisitos de domínio são requisitos que se originam do domínio de aplicação do sistemae que re�etem características/propriedades do domínio da aplicação. Podem ser requisitos

Página 13 de 127www.handbookdeti.com.br

Page 15: handbook_questoes_vol9 - Cópia

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 pelocliente. Por exemplo: realização de algum cálculo especí�co. Os requisitos de domínio nãosã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 comoos requisitos funcionais, eles apresentam atributos que devem ser esperado do sistema, comocon�abilidade, 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 utilizadospelo sistema. Esta assertiva esta correta.

Portanto, a letra B indica acertadamente os itens I e III como corretos, sendo a respostapara a questão.

Página 14 de 127www.handbookdeti.com.br

Page 16: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

5. Assuntos relacionados: Engenharia de Software, UML, Generalização,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 16

A restrição UML aplicada a um conjunto de generalizações, especi�cando que uma instânciapode ter apenas um dos subtipos determinados como tipo daquela instância, é conhecidacomo

(a). Associação.

(b). Auto.

(c). Global.

(d). Local.

(e). Disjunção.

Solução:

A Uni�ed 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 emoutros paradigmas de programação. A fonte principal sobre o UML encontra-se em seusítio o�cial (http://www.uml.org/). Lá é possível ter acesso às especi�caçõ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 classi�ca-dos como estáticos e dinâmicos. Nos estáticos, ao contrário dos dinâmicos, as característicasdo sistema não mudam com o tempo. Na Figura 1, podemos veri�car essa classi�cação.

Figura 1: classi�caçã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, oescopo da aplicação que está sendo desenvolvida.

Página 15 de 127www.handbookdeti.com.br

Page 17: handbook_questoes_vol9 - Cópia

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 elementomais especí�co (subclasse);

• Agregação: também conhecido como �parte de� ou composição. Descreve se uma dasclasses associadas é parte de outra classe;

• Associação: duas classes não correlatas se relacionam, representado uma conexãosemântica entre os objetos;

• Dependência: relação de subordinação entre as classes, onde a mudança na classeindependente 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) ea outra (subclasse) que herda os atributos e as operações da superclasse, podendo sobreporou modi�car algumas delas.

A herança pode ser simples ou múltipla. Na múltipla, uma subclasse está associada amais de uma superclasse. Já na simples, uma subclasse tem uma e somente uma superclasseassociada 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 doque 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 exempli�car alguns dos casos acima para que a situação �que mais clara para oleitor. 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 tipoVeí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, umveículo necessariamente deve ser um dos seus subtipos.

Já a superposição, podemos exempli�car da seguinte maneira: um tipo chamado Peça comdois subtipos chamados Manufaturada e Torneada. Dado que há um generalização comsuperposição, será possível que uma peça manufaturada e torneada seja representada comoum objeto.

Os outros termos citados nas alternativas (A), (B), (C) e (D) também possuem relaçãocom as representações em UML, mas nada tem a ver com o enunciado da questão.

Página 16 de 127www.handbookdeti.com.br

Page 18: handbook_questoes_vol9 - Cópia

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, Criptogra�a, Chave Assimétrica, Chave Simétrica,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 17

Um conjunto de um ou mais atributos, tomados coletivamente, para identi�car unicamenteuma 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 criptogra�a 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 criptogra�a dechave pública é possível veri�car a autenticidade de mensagens, através da criação de assi-naturas digitais e, também, proteger a con�dencialidade e integridade da mensagem, atravésda cifragem com o uso da chave pública e decifragem através da chave privada. O enunciadodo problema se refere a bancos de dados relacionais, não a criptogra�a e, portanto, essaopção é incorreta.

(B) INCORRETA

Assim como as chaves assimétricas, chaves simétricas também são conceitos de criptogra�a.No entanto, nos algoritmos de criptogra�a 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 apropriedade de que duas tuplas, em qualquer estado de relação r de R, não tenham a mesmacombinação de valores para esse subconjunto de atributos. Em outras palavras, sejam etuplas distintas e seja SK um subconjunto de atributos de um esquema de relação. Nestecaso, para quaisquer e. Note, ainda, que toda relação possui ao menos uma superchave: apadrã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 semquebrar a restrição da superchave identi�car tuplas distintas.

Página 17 de 127www.handbookdeti.com.br

Page 19: handbook_questoes_vol9 - Cópia

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 identi�ca unicamente um reg-istro e que pode ser utilizada para buscas simultâneas de vários registros. Normalmenteimplementadas como índices em bancos de dados, são usadas para busca e recuperação dedados.

(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ãoserá discutido.

Página 18 de 127www.handbookdeti.com.br

Page 20: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 18

O nível de abstração, que visa simpli�car a interação entre usuários e o sistema de banco dedados, é 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-relacionadoscom um conjunto de programas que permitem aos usuários acessarem e modi�carem taisarquivos. Seu maior objetivo é proporcionar aos usuários uma visão abstrata dos dados, oque signi�ca ocultar determinados detalhes de como os dados são efetivamente armazenadose gerenciados.

Para que o sistema tenha um bom nível de usabilidade, é preciso que os dados sejam re-cuperados e�cientemente. A necessidade de e�ciência levou os desenvolvedores a utilizarestruturas 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 de�nidos, simpli�cando ainteraçã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 deestruturas relativamente simples. Os administradores de bancos de dados usam os nívelló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 necessitamde toda essa informação e, assim, o nível de visão proporciona diversas �visões� para amesma base de dados, simpli�cando 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ãoguardando relação com os níveis de abstração. Semelhantemente, o modelo de um banco dedados é a especi�cação das estruturas de dados e regras de negócio de um banco de dados,

Página 19 de 127www.handbookdeti.com.br

Page 21: handbook_questoes_vol9 - Cópia

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 a�rmativa de acordo com a teoria apresentada encontra-se na opção B.

Página 20 de 127www.handbookdeti.com.br

Page 22: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

8. Assuntos relacionados: Data Mining, Classi�cação de Dados, Agrupamento de Dados,Sumarização de Dados, Modelagem de Dependência entre Dados,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 20

Para que uma empresa efetue a análise regular de dados gerados por visitantes do seu siteWeb, 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 arti�cial que trata o problema de �ltragem de dados a partirde um repositório de informação é a mineração de dados. No contexto da Web, as técnicase modelos de mineração de dados recebem como entrada uma variedade de dados, comoformulário, estruturas de sites e textos em geral. A mineração é um processo de análise dedados publicados em sites com o intuito de procurar relações comuns (padrões), além desumarizaçã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õese tendências referentes ao uso da Web. As etapas básicas de mineração de dados são aexploração, modelagem ou construção do conhecimento e por �m a validação dos padrõesencontrados. Existem varias técnicas de mineração de dados como: classi�cação, clustering,sumarização, modelagem de dependência. Vamos apresentar uma breve descrição sobre essastécnicas.

• Classi�cação: construção de uma função que a partir de um conhecimento previa-mente estabelecido consegue classi�car um conjunto de dados em uma ou várias classesprede�nidas;

• Clustering: utilizado para descoberta de agrupamento de dados que possuem car-acterísticas em comum. Uma categoria ou classe é representada por um conjunto decaracterística, desta forma, ao descobrir uma coleção de dados que possuem um grau desimilaridade estão encontrando um conjunto de dados pertencente a alguma categorianão conhecida;

• Sumarização: essa técnica é utilizada para a construção de modelos que descrevemum conjunto de dados num formato facilmente interpretado;

• Modelagem de dependência: técnica responsável por encontrar dependência entrecaracterí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 decomportamento e preferências semelhantes. Então, para esses usuários são oferecidos linksespecí�cos por pertencerem a um mesmo per�l. 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 127www.handbookdeti.com.br

Page 23: handbook_questoes_vol9 - Cópia

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 deum cliente, pode-se agir da seguinte forma: �Clientes que compraram este livro tambémcomprariam...� listar os livros relacionados com o tema.

Concluindo, a mineração de dados pode ser usada como meio de oferecer um atendimentoespecializado a um cliente. Portanto, a questão correta é a letra B.

Página 22 de 127www.handbookdeti.com.br

Page 24: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 22

O modelo de dados baseado numa coleção de tabelas que representam dados e as relaçõesentre 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 deprimeira ordem. No modelo relacional, o banco de dados é representado como uma coleçãode 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 natabela representa um fato que corresponde a uma entidade ou relacionamento do mundoreal. O nome da tabela e os nomes das colunas são usados para auxiliar na interpretaçãodos 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, esuas variações, é normalmente empregado para o projeto conceitual de aplicações de umbanco de dados, e muitas ferramentas de projeto de um banco de dados também aplicamseus 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 ouum lugar, quanto abstrata, como um feriado. Uma entidade, por sua vez, é composta poratributos. Um atributo é uma função que mapeia um conjunto de entidades em um domínioem particular. Cada entidade é descrita por um conjunto de pares (atributo, valor) e existeum 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 127www.handbookdeti.com.br

Page 25: handbook_questoes_vol9 - Cópia

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 arelacionamentos. 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�. Ambassão relacionadas pela relação �Possui�, que indica que um ou mais clientes podem possuiruma 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, umobjeto 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 estendidade modo que sejam armazenados de forma permanente; portanto, os objetos continuama existir mesmo após o término do programa, podendo ser posteriormente recuperados ecompartilhados por outros programas. No modelo orientado a objetos, um conceito comumé o de classe, que representa um conjunto de objetos com características a�ns e de�ne ocomportamento dos objetos através de seus métodos, e quais estados ele é capaz de manteratravé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 especi�cação de novos tipos ou classes que herdam parte de suasestruturas e/ou operações de classes ou tipos previamente de�nidos, o que torna maisfácil desenvolver os tipos de dados de um sistema de modo incremental e reutilizarde�nições de tipos na criação de novos tipos de objetos;

• Sobrecarga de operador: se refere à propriedade de uma operação de ser aplicadaa diferentes tipos de objetos. Em tal situação, um nome de operação pode se referir avárias implementações diferentes, dependendo do tipo de objetos aos quais é aplicada.Essa característica também é conhecida como polimor�smo de operador.

Página 24 de 127www.handbookdeti.com.br

Page 26: handbook_questoes_vol9 - Cópia

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 entreum objeto do mundo real e sua representação no banco de dados. O mesmo não ocorre embancos de dados orientados a objetos, que são capazes de manter estruturas de objetos comcomplexidade 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. Pornão haver essa separação, o esquema é normalmente associado em conjunto com os dados.Em outros casos, o esquema existe apenas para de�nir restrições fracas aos dados.

Um compromisso feito quando bancos de dados que usam esse modelo são adotados é que asconsultas podem não ser tão e�cientes quanto a alternativa em bancos de dados relacionais,devido à forma típica como esses bancos de dados são implementados. Neles, os registros sãonormalmente armazenados com identi�cadores únicos referenciados por ponteiros para suasposições no disco. Como é necessário percorrer o disco seguindo os ponteiros, suas consultaspodem não ser tão e�cientes.

(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 tratadoscomo objetos e, com isso, os benefícios da orientação a objetos são unidos aos benefícios domodelo relacional (ambos modelos descritos acima).

Essa resposta é incorreta porque o modelo objeto-relacional é usado para modelagem desistemas 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 KansasCity, 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 127www.handbookdeti.com.br

Page 27: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

10. Assuntos relacionados: Banco de Dados, SQL,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 23

Em SQL, a cláusula check aplicada a uma declaração de domínio

(a). permite especi�car um predicado que deve ser satisfeito por qualquer valor atribuídoa uma variável de determinado domínio.

(b). especi�ca 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). veri�ca 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 é de�nida 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 aplicadoa um domínio, a cláusula check permite especi�car um predicado que precisa ser satisfeitopara qualquer valor atribuído a uma variável cujo tipo é o domínio. Por exemplo, umacláusula check pode garantir que um domínio de idade permita apenas valores maiores doque um valor especi�cado (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 iguala 18 anos. A cláusula constraint teste-valor-idade é opcional usada para atribuir o nometeste-valor-idade a restrição. O nome é usado pelo sistema para indicar a restrição que umaatualização violou. Outro exemplo sobre a cláusula check: um domínio pode ser restritopara conter apenas um conjunto especi�cado de valores usando a cláusula in:

Página 26 de 127www.handbookdeti.com.br

Page 28: handbook_questoes_vol9 - Cópia

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, descrevendoum 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 127www.handbookdeti.com.br

Page 29: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

11. Assuntos relacionados: XML,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 24

Analise as seguintes a�rmações a respeito do esquema conceitual XML:

I. Um elemento qualquer é de�nido por um nome e um valor.

II. Um documento XML é de�nido por um nome e um elemento.

III. Um atributo é de�nido por um nome de tipo, caracteres de dados e elementos associa-dos.

Assinale a opção correta.

(a). Apenas a a�rmação I é verdadeira.

(b). Apenas a a�rmação II é verdadeira.

(c). Apenas a a�rmação III é verdadeira.

(d). As a�rmações I, II e III são corretas.

(e). Nenhuma das a�rmaçõ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 dedados em quase qualquer campo. Algumas linguagens de marcação baseadas em XML são aMathML, desenvolvida pelo W3C para descrever notações e expressões matemáticas com asintaxe XML; a Chemical Markup Language (CML), linguagem que representa informaçõesmoleculares e químicas; a Wireless Markup Language (WML), que permite que as páginasWeb sejam exibidas em dispositivos sem-�o, como telefones celulares e PDAs; a GeographyMarkup 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 coma extensão .xml (embora isso não seja um requisito da XML) e devem conter apenas umelemento raiz. Este elemento pode conter outros elementos. Apesar de um documento XMLestar bem de�nido por seu nome e por seu elemento raiz, uma declaração XML inicial naprimeira linha do documento é extremamente incentivada para identi�car 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 127www.handbookdeti.com.br

Page 30: handbook_questoes_vol9 - Cópia

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 que todos os dados em questão serão disponibilizados no prazo previsto.

</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 daXML adotada. A linha seguinte exibe um comentário delimitado por <!� e �>, aos moldesda HTML. O elemento raiz <carta> possui elementos �lhos, devidamente aninhados, quede�nem a estrutura do documento. O texto com marcação (os elementos) está contido entreos sinais menor e maior (< e >), sendo que o texto entre uma marca de abertura e umamarca 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 (identi�cada 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 marcasde 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 elementonã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 possuiratributos 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 <contatotipo = �remetente�> possui o atributo tipo cujo valor é �remetente�.

Dito isso, percebe-se que a a�rmativa I da questão encontra-se em desacordo com a teo-ria, pois um elemento é de�nido 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 de�nidos por um nome e um valor, porém não

Página 29 de 127www.handbookdeti.com.br

Page 31: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

possuem elementos associados, o que invalida a a�rmativa III. A a�rmativa II está correta,pois um documento XML é de�nido por um nome e por seu elemento raiz. Desta forma, aresposta para a questão é o item b).

Página 30 de 127www.handbookdeti.com.br

Page 32: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

12. Assuntos relacionados: Programação, Programação Estruturada,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 26

Na programação estruturada, são necessários apenas três blocos de formas de controle paraimplementar 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 sobreum determinado dado) apresentadas de forma sequencial, tais instruções estabelecem ocomportamento que será executado e a ordem que as regras devem ser aplicadas. Paratanto, os programas utilizam blocos elementares (estruturas) de código que se interligamatravés de três mecanismos básicos de programação:

• Estrutura de sequência. Normalmente, instruções em um programa são executadasuma 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 oselementos seleção e repetição;

• Estrutura de seleção. Os programas utilizam instruções de seleção para escolheros �uxos de execução de acordo com condições de�nidas na estrutura de seleção. Asestruturas de seleção podem ser de dois tipos: simples e compostas. As estruturassimples apenas selecionam se um determinado trecho de instruções será executadoou não. Já as estruturas composta de seleção, interligam várias estruturas simplesformando uma estrutura mais complexa, esta forma de organização da estrutura deseleçã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çõesrepetidas vez, para isso, utilizam a estrutura de repetição. A quantidade de vezes queas 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ãode trechos de código que executam ações para um �m especí�co, para esse agrupamentode trechos de código se dá o nome de função e/ou em alguns casos procedimento. Imagineuma função como uma caixa preta de códigos que recebe entradas (parâmetros), executaos cálculos e/ou ações e então retorna o resultado. Este conceito não forma um bloco decontrole 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 Dcomo correta.

Página 31 de 127www.handbookdeti.com.br

Page 33: handbook_questoes_vol9 - Cópia

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, Modi�cadores de Acesso,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 29

Em Java, para que um método de uma superclasse não seja sobrescrito em suas subclasses,aplica-se o modi�cador

(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 conceitosda 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 de�nido como uma entidade com limites bem de�nidos e um signi�cadopara 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), elementosde software (uma lista, um array, um arquivo etc). Uma classe, por sua vez, consiste dadescriçã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 classecasa, por exemplo, poderia ter como propriedades 2 portas, 4 janelas, 100 metros quadradosde área, entre outras. A combinação de valores dos atributos de um determinado objeto é oque determina o seu estado. Para alterá-lo, é necessário utilizar os métodos. Vamos agoraao 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, assubclasses não estão limitadas às características herdadas de sua superclasse, uma vez quenas subclasses podem existir atributos e métodos que não existem na superclasse.

Em alguns casos, as subclasses também podem rede�nir os métodos herdados, oferecendoimplementações especializadas para os métodos quando necessário. Essa técnica é tambémconhecida como sobrescrita ou override.

Recordados alguns dos conceitos básicos sobre orientação a objetos, vamos agora falar umpouco sobre as alternativas trazidas na questão � static, public, �nal, protected e abstract

Página 32 de 127www.handbookdeti.com.br

Page 34: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

� que, na linguagem Java, são conhecidos como modi�cadores de acesso, que são keywordsintroduzidas no código para determinar a forma como as classes, métodos e atributos podemser acessados pelas diversas partes do programa.

O modi�cador static, quando usado em um atributo, serve para criar uma variável de classe.Isso signi�ca dizer que este atributo será comum em todos os objetos da classe, de modoque as modi�cações neste atributo feitas por um objeto se re�itam em todos os demais. Jáos métodos, quando de�nidos como static, impede que estes sejam sobrescritos pelas sub-classes. Com isso, esta é a resposta da questão.

O modi�cador de acesso private indica que um um atributos ou métodos só podem seracessados de dentro da classe que os criou. Este modi�cador de acesso é o que permite aoJava implementar o conceito de encapsulamento.

Já o modi�cador de acesso public determina que a classe, método ou atributo podem seracessados por qualquer parte do programa, e a qualquer instante da execução deste.

O modi�cador �nal determina que a classe, método ou atributo se mantenham imutáveis nodecorrer do processamento do programa. Ao utilizarmos o modi�cador �nal em um atributo,estamos de�nindo uma constante. Já quando aplicamos este modi�cador a um método deuma 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 modi�cador protected é o que determina que um método ou umatributo podem ser acessados somente dentro do pacote em que estão contidos.

Por �m, temos o modi�cador de acesso abstract, que servem para declara métodos ou classesabstratas. Para recapitulação, métodos abstratos são aqueles que não são implementadosnas classes, �cando esta tarefa a cargo das subclasses. Já uma classe abstrata é aquelaque não está completamente implementada, �cando a cargo das subclasses implementar orestante delas.

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

Página 33 de 127www.handbookdeti.com.br

Page 35: handbook_questoes_vol9 - Cópia

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 emJava,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 30

Em uma aplicação Java, se o carregador de classes não conseguir localizar a classe do driverde 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 deprogramação, geralmente indesejáveis. Ocorrem no momento da execução de um programae precisam ser devidamente �tratadas� para não interromperem o processamento normal deuma 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 determinadaexceção para tratá-la adequadamente, propiciando maior organização ao projeto codi�cado.

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 queum programador de�na suas próprias exceções, que herdam características pré-de�nidas naclasse 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 todae 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 de�nição para uma classe com o nome especi�cado pôde ser en-contrada. Esta exceção, classe integrante do pacote java.lang, pode ocorrer por inexistênciareal 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 Aapresenta-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 deentrada/saída interrompidas ou falhas lançam a exceção java.io.Exception para indicar o

Página 34 de 127www.handbookdeti.com.br

Page 36: handbook_questoes_vol9 - Cópia

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 coincidecom o padrão do tipo esperado ou seu valor está fora da faixa esperada.

Página 35 de 127www.handbookdeti.com.br

Page 37: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 32

Analise as seguintes a�rmaçõ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 a�rmação I é verdadeira.

(b). Apenas a a�rmação II é verdadeira.

(c). Apenas a a�rmação III é verdadeira.

(d). As a�rmações I, II e III são verdadeiras.

(e). Nenhuma das a�rmações é verdadeira.

Solução:

JavaServer Pages (JSP) é uma tecnologia baseada em Java utilizada no desenvolvimentode páginas Web com conteúdo dinâmico, similar às tecnologias Active Server Page (ASP) ePHP. 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émelementos JSP especiais que permitem inserir conteúdo dinâmico por meio dos elementosJSP. 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 aparte estática da página, e envia a página HTML para o usuário. A tecnologia JSP pode serusada, 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 a�rmativas da questão:

I. Como forma de facilitar a programação Web, em uma página JSP existem 9 objetosinstanciados, conhecidos como Objetos Implícitos, que são:

� page: representa a própria página JSP, ou melhor, uma instância da classe servletna qual a página foi convertida. É simplesmente um sinônimo para this;

� con�g : armazena os parâmetros de inicialização (con�guração) do servlet da páginaJSP;

� 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 127www.handbookdeti.com.br

Page 38: handbook_questoes_vol9 - Cópia

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 umfaz outro também deve fazer. Como o objeto page faz referência ao servlet gerado,existe um objeto page para cada JSP. Portanto, esta a�rmativa é verdadeira.

II. Como qualquer linguagem de programação Web, os comentários não aparecem na re-sposta ao cliente. Logo, esta a�rmativa é falsa.

III. O escopo de um objeto está relacionado com as páginas JSPs que podem acessar oobjeto. Os escopos disponíveis são: application, request, response, page e session. Oobjeto que possui escopo session está disponível para todas as JSPs e os servlets, etodos 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árionavegar entre várias páginas na aplicação Web sem perda de informações referentes à sessãode 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 a�rmativa é 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 a�rmativas, chegamos a conclusão que as a�rmativas I e III são ver-dadeiras. Portanto, a alternativa correta é a (E). Note que o gabarito fornecido para estaquestão não confere com o gabarito o�cial. Possivelmente, a banca que organizou a provadeve ter cometido um equívoco na a�rmativa I.

Página 37 de 127www.handbookdeti.com.br

Page 39: handbook_questoes_vol9 - Cópia

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: ESAFInstituiçã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 DadosAno: 2009Questão: 36

Bits de paridade, somas de veri�cação e veri�cações de redundância cíclica (CRC) são úteispara a detecção de ataques

(a). à Con�dencialidade.

(b). à Disponibilidade.

(c). à Integridade.

(d). à Autorização.

(e). ao Não-repúdio.

Solução:

De�nições

• Con�dencialidade é um termo que indica uma propriedade de uma informação queindica que ela não estará disponível ou será divulgada a indivíduos, entidades ou proces-sos sem alteração. Ou seja, a con�dencialidade garante que a informação seja acessívelapenas àqueles autorizados a ter acesso;

• Disponibilidade é o termo usado para indicar se um sistema está disponível para quesua comunidade de usuários possa acessá-lo, seja para submissão, atualização, alteraçãode trabalhos ou coleta de resultados. Se o acesso por usuários não for possível, diz-seque o sistema está indisponível;

• Integridade é o termo usado para indicar que os dados não podem sofrer modi�caçõesnão autorizadas, ou não explícitas. Em outras palavras, um dado é íntegro se ele nãocontiver erros;

• Autorização é o mecanismo responsável por garantir que apenas usuários autorizadosconsumam os recursos protegidos;

• Não-repúdio é a garantia de segurança que impede uma entidade participante numadada operação de negar essa participação.

Técnicas

I. Somas de veri�cação:

Uma soma de veri�cação (ou checksum) é um dado computado a partir de um blocode dados digitais com o propósito de detectar erros nos dados que podem ter sidoadicionados durante a transmissão ou armazenamento dos dados. A integridade dosdados pode ser veri�cada a qualquer momento posterior, bastando, para isso, calcularnovamente o valor da soma de veri�cação dos dados e compará-lo com o já armazenado.

Bons algoritmos de soma de veri�cação devem ser capazes de gerar, com grande proba-bilidade, resultados diferentes sempre que os dados forem acidentalmente corrompidos.

Página 38 de 127www.handbookdeti.com.br

Page 40: handbook_questoes_vol9 - Cópia

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 dadosnão terem sido corrompidos. Bits de paridade e veri�cações de redundância cíclica sãoexemplos de funções de soma de veri�cação.

II. Veri�cação de redundância cíclica:

A veri�caçã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 doprocessamento 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 veri�cação que é redun-dante (e, portanto, não adiciona informação) aos dados baseado em códigos cíclicos. Otermo CRC pode se referir, além do código de veri�cação, à função que o calcula. Essafunção aceita dados de qualquer tamanho como entrada, mas gera sempre saídas emcódigos com tamanho �xo.

O CRC é calculado e anexado à informação a transmitir (ou armazenar) e veri�cadoapós a recepção ou acesso, para con�rmar se não ocorreram alterações. O CRC épopular por ser simples de implementar em hardware binário, simples de ser analisadomatematicamente, e pela e�ciência em detectar erros típicos causados por ruído emcanais 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úmerode bits com valores um é par ou ímpar e, portanto, é determinada pelo valor de todosos seus bits. Ela pode ser calculada através de uma soma com XOR (ou exclusivo) dosbits, resultando em 0 para paridade par e 1 para paridade ímpar. Por depender detodos os bits do número e ter seu valor modi�cado no caso de qualquer um dos bits donú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 paridadedo 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): 1�0�1�0 = 0

Já no caso da paridade ímpar:

� Número a ter paridade computada: 1010

� Cálculo da paridade (ímpar): �(1�0�1�0) = 1

Em qualquer um dos casos, caso o número fosse transmitido com o bit de paridade ehouvesse um erro de transmissão com a mudança de qualquer um dos bits, a veri�caçãode 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 127www.handbookdeti.com.br

Page 41: handbook_questoes_vol9 - Cópia

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 100000001010001 (3) 11010001 010100011101001 (4) 01101001 111010011111111 (7) 11111111 01111111

Conclusão

Como todas as técnicas apresentadas são relacionadas à veri�cação da integridade dos da-dos, temos que a resposta correta a esta questão se encontra na alternativa c: as técnicassupracitadas permitem detectar ataques (ou falhas) à integridade dos dados.

Página 40 de 127www.handbookdeti.com.br

Page 42: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

17. Assuntos relacionados: Criptogra�a, Criptogra�a Assimétrica, Criptogra�a Simétrica,Chave Assimétrica, Chave Simétrica,Banca: ESAFInstituiçã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 DadosAno: 2009Questão: 38

Em um grupo de N usuários que utilizam criptogra�a assimétrica, o número de encriptaçõesnecessárias para o envio de uma mensagem M con�dencial de um usuário desse grupo paraos 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. Imagineque a tal mensagem M seja uma carta con�dencial entre todos os N usuário do grupo. Ouseja, entende-se que apenas os N usuários desse grupo podem ter acesso à carta. O que sepede nesta questão é o número de encriptações necessárias para que a carta seja enviada, deforma 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 criptogra�a assimétrica.Na criptogra�a assimétrica, toda e qualquer parte envolvida tem duas chaves distintas edependentes entre si: uma pública e outra privada. Uma chave pública, como o seu próprionome já sugere, pode ser abertamente conhecida. É justamente por isso que esse mecan-ismo também é chamado de criptogra�a de chaves públicas. Já uma chave privada só podeser conhecida pelo seu dono. Essas são duas premissas para que o sistema de criptogra�aassimétrica funcione.

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

MARIA(M) representa o resultado da encriptação da mensagem M com a chave pública deMARIA e K−MARIA(M) representa o resultado da encriptação da mensagem M com a chaveprivada de MARIA. Esses dois tipos de chaves se relacionam da seguinte forma. Umamensagem encriptada por K−MARIA só pode ser desencriptada por K+

MARIA, e vice-versa.

A troca de mensagens con�denciais com esse sistema funciona como descrito a seguir. Dig-amos que JOSÉ precisa enviar uma mensagem con�dencial à MARIA. Ou seja, JOSÉ precisaenviar uma mensagem que será lida apenas pela MARIA, mesmo que essa mensagem sejainterceptada 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 recebera mensagem encriptada, apenas ela poderá desencriptá-la, pois por premissa somente aMARIA 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 127www.handbookdeti.com.br

Page 43: handbook_questoes_vol9 - Cópia

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+

MARIA(M) à MARIA, K+RITA(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 enviadapode 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çõese 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 criptogra�a para troca de mensagens.Um exemplo clássico é o de criptogra�a simétrica, em que apenas uma chave é utilizadatanto para encriptar quanto para desencriptar as mensagens. Como geralmente se desejatrocar mensagens con�denciais dentro de um determinado grupo restrito, o ponto críticodesse mecanismo se encontra na distribuição das chaves simétricas entre usuários. Em certasituações, justi�ca-se enfrentar as di�culdades desse ponto crítico, pois os algoritmos de crip-togra�a simétrica são por natureza mais simples e rápidos que os de criptogra�a assimétrica.Como exemplo de algoritmos simétricos, podemos citar: DES, 3DES, RC2 e RC4, IDEA eAES.

Página 42 de 127www.handbookdeti.com.br

Page 44: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 1

O COBIT - Control Objectives for Information and related Technology fornece boas práticaspor 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) de�ne umconjunto de boas práticas dirigido para a gerência da tecnologia da informação (TI) criadopelo 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 einternacionalmente reconhecido para ser adotado por organizações e utilizado no dia-a-diapor gerentes de negócios, pro�ssionais de TI e pro�ssionais de avaliação, o COBIT provê agestores, auditores e usuários de TI um conjunto de métricas, indicadores e boas práticaspara auxiliá-los nas maximização dos benefícios obtidos através do uso da tecnologia dainformaçã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:

� De�nir um plano estratégico de TI;

� De�nir a arquitetura da informação;

� Determinar as diretrizes de tecnologia;

� De�nir 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 127www.handbookdeti.com.br

Page 45: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

� Gerenciar projetos.

• Adquirir e implantar, que consiste em:

� Identi�car 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:

� De�nir 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;

� Identi�car e Alocar Custos;

� Educar e Treinar os Usuários;

� Gerenciar a Central de Serviço e os Incidentes;

� Gerenciar a Con�guraçã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 especi�camente,a de�niçã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 parauma efetiva e e�ciente execução das atividades-chaves e sua documentação, bem como aresponsabilização pelo processo e suas entregas.

Página 44 de 127www.handbookdeti.com.br

Page 46: handbook_questoes_vol9 - Cópia

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 127www.handbookdeti.com.br

Page 47: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 3

O MPS.BR tem como uma das metas de�nir e aprimorar o modelo de melhoria e avaliaçãode 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 oMPS.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 de�niçã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 Estudose 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 softwarebrasileiro. 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 aum modelo. O Modelo MPS é dividido em 3 partes, que serão descritas ao longo destecomentá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 osseguinte padrões internacionais: CMMI, ISO/IEC 12207 (Processo de Desenvolvimento deSoftware) e ISO/IEC 15504 (evolução da ISO/IEC 12207). Dessa forma, o MPS.BR se car-acteriza como uma solução brasileira para certi�cação de qualidade, cujo ponto forte é o seu

Página 46 de 127www.handbookdeti.com.br

Page 48: handbook_questoes_vol9 - Cópia

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 desenvolvimentode 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 certi�caçõ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 classi�ca ograu de maturidade de empresas em 5 níveis, o MPS.BR o faz em 7 níveis, que vão do nívelA (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 nessemodelo de referencia os processos de�nidos na ISO/IEC 15504-2. Na prática, quantomaior for o número de processos implantados cujos resultados esperados são de fatoobtidos 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 desempenharo 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 é de�nido;

� 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 colunade Processos é cumulativa, portanto, ela apresenta apenas os processos exclusivos de cadanível. Por exemplo, para uma empresa se enquadrar no nível G, ela precisa implementarapenas 2 processos (GRE e GPR). Já para ser considerada no nível C, uma empresa deveimplementar 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 127www.handbookdeti.com.br

Page 49: handbook_questoes_vol9 - Cópia

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 doMR-MPS.

Página 48 de 127www.handbookdeti.com.br

Page 50: handbook_questoes_vol9 - Cópia

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 deAvaliação MA-MPS foram de�nidos de forma a:

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

• permitir a atribuição de um nível de maturidade do MR-MPS com base no resultadoda 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 oprograma se desenvolva adequadamente. É nele também que estão descritas as atuações dasdiversas 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 in�uenciam oMPS.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 dadocumentação MPS.BR. Na verdade, o Modelo MPS é descrito por meio de guias, que sãoagrupados da seguinte forma:

Página 49 de 127www.handbookdeti.com.br

Page 51: handbook_questoes_vol9 - Cópia

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), osrequisitos 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ênciaMR-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 127www.handbookdeti.com.br

Page 52: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

20. Assuntos relacionados: Desenvolvimento de Sistemas, Qualidade de Software, Modelo deMaturidade, MPS.BR, CMMI, ISO/IEC 12207,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 4

No MPS.BR são de�nidos níveis de maturidade que são uma combinação entre processos esua 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 identi�ca todos os níveis de maturidade do MPS.BR.

(a). A (Otimizado), B (Gerenciado Quantitativamente), C (De�nido), D (LargamenteDe�nido), E (Parcialmente De�nido), F (Gerenciado), G (Inicial).

(b). A (Otimizado), B (Parcialmente Otimizado), C (De�nido), D (Largamente De�nido),E (Parcialmente De�nido), F (Gerenciado), G (Parcialmente Gerenciado).

(c). A (Em Otimização), B (Gerenciado Quantitativamente), C (De�nido), D (Larga-mente De�nido), E (Parcialmente De�nido), F (Gerenciado), G (ParcialmenteGerenciado).

(d). A (Em Otimização), B (Parcialmente Otimizado), C (De�nido), D (LargamenteDe�nido), E (Parcialmente De�nido), F (Gerenciado), G (Inicial).

(e). A (Otimizado), B (Executado), C (De�nido), D (Largamente De�nido), E (Par-cialmente De�nido), 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çãoda Excelência do Software Brasileiro (SOFTEX). O programa conta com apoio do Ministérioda Ciência e Tecnologia (MCT), da Financiadora de Estudos e Projetos (FINEP) e do BancoInteramericano de Desenvolvimento (BID).

No contexto do MPS.BR, foi de�nido o modelo de referência chamado MR-MPS, que de�neníveis de maturidade do processo de desenvolvimento de software. Cada nível do MR-MPS éde�nido 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 é importantemencionar que no MR-MPS, a de�nição dos processos segue a forma apresentada pela normaISO/IEC 12207, declarando o propósito e os resultados esperados de sua execução, o quepermite avaliar e atribuir graus de efetividade na execução dos processos.

Em termos bem simples, os níveis de maturidade de�nidos pelo MR-MPS estabelecem pata-mares de evolução de processos. No total, o MR-MPS de�ne sete níveis de maturidade quesão apresentados a seguir em escala decrescente de maturidade:

• A (Em Otimização);

• B (Gerenciado Quantitativamente);

• C (De�nido) ;

Página 51 de 127www.handbookdeti.com.br

Page 53: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

• D (Largamente De�nido);

• E (Parcialmente De�nido);

• F (Gerenciado);

• G (Parcialmente Gerenciado).

Um aspecto muito importante da divisão em níveis proposta pelo MR-MPS é que, emboraela seja baseada nos níveis de maturidade do Modelo CMMI, a quantidade de níveis (7) noMR-MPS é maior que no CMMI (5). Segundo a SOFTEX, esta diferença tem por objetivopossibilitar uma implementação e avaliação mais adequada às micros, pequenas e médiasempresas.

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

Página 52 de 127www.handbookdeti.com.br

Page 54: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 11

A representação contínua do Modelo CMMI tem mais práticas especí�cas que a representaçãoem estágios, uma vez que tem dois tipos de práticas enquanto a representação em estágiospossui apenas um. Quanto às práticas em cada representação, é correto a�rmar que

(a). existem práticas genéricas para os níveis de capacitação 1, 4 e 5 em ambas asrepresentações.

(b). na representação em estágios, somente aparecem práticas genéricas para os níveisde 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 decapacitaçã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 uni�car 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 comofazer) para melhoraria de processos da organização e da capacidade da mesma de gerenciaro 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 emestágios utiliza os níveis de maturidade. Essas representações permitem a organização, deacordo 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 áreasespecí�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 auma determinada Área de Processo (PA) e as genéricas indiferentemente a todas as Áreasde Processo.

As práticas especí�cas são atividades que são consideradas importantes na satisfação deuma meta especí�ca associada. As práticas especí�cas se aplicam a uma determinada Áreade Processo e estão relacionadas à dimensão de um processo. As práticas genéricas são

Página 53 de 127www.handbookdeti.com.br

Page 55: handbook_questoes_vol9 - Cópia

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 ouda 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çãoem 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ívelclassi�car 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 oumais objetivos do processo não estão satisfeitos;

• Nível 1 - Realizado (ou Executado): um processo realizado atende todos os objetivosespecí�cos da área de processo e produz algum trabalho;

• Nível 2 - Gerenciado: um processo gerenciado é um processo realizado (nível 1) quetambém é planejado e executado de acordo com as políticas pré-de�nidas;

• Nível 3 - De�nido: um processo de�nido é um processo gerenciado (nível 2) e ajustadode acordo com o conjunto de processos da organização;

• Nível 4 - Gerenciado quantitativamente: um processo neste nível é de�nido e controladocom ajuda de técnicas estatísticas e quantitativas;

• Nível 5 - Otimizado: um processo otimizado é gerenciado quantitativamente, alteradoe 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ãoagrupadas por nível de maturidade, que devem ser atendidas na sua totalidade para permitirum estágio de�nido de melhorias. A representação em estágios possui apenas um tipo deprática especí�ca. A representação de estágio divide as Áreas de Processo em cinco níveisde maturidade, como no CMM:

• Nível 1 - Inicial: neste nível, os processos são caóticos e informais. A organização nãopossui um ambiente estável. Apesar deste ambiente informal e caótico, organizaçõesneste 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 egenéricas das áreas de processos do nível 2 de maturidade;

• Nível 3 - De�nido: neste nível, os processos são bem caracterizados e entendidos e estãodescritos em padrões, procedimentos, ferramentas e métodos. O conjunto de processospadrão da organização é estabelecido e melhorado ao longo do tempo e são usados paraestabelecer a consistência em toda a organização. No nível 3, uma organização atingiutodas as metas especí�cas e genéricas das áreas de processos de�nidas para os níveisde maturidade 2 e 3;

Página 54 de 127www.handbookdeti.com.br

Page 56: handbook_questoes_vol9 - Cópia

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 subprocessosque contribuem signi�cativamente 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 deprocessos atribuídas aos níveis de maturidade 2, 3 e 4 e as metas genéricas atribuídasaos 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. Nonível 5, uma organização atingiu todas as metas especí�cas das áreas de processosatribuídas aos níveis de maturidade 2, 3, 4 e 5 e as metas genéricas atribuídas aosní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 1a 5, enquanto que na representação em estágios somente aparecem práticas genéricas paraos níveis de capacitação 2 e 3; não existem práticas genéricas para os níveis de capacitação1, 4 e 5.

A alternativa está errada ao a�rmar que na representação em estágio, os níveis 1, 4 e 5possuem práticas genéricas.

(B) CORRETA

Conforme explicado na alternativa (A), na representação em estágios somente aparecemprá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éricasexistem para os níveis de capacitação de 1 a 5.

A alternativa C está errada, pois a�rma que existem práticas genéricas para os níveis 3a 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 1a 5. Não existe para o nível de capacitação 0.

Portanto a alternativa está errada ao a�rmar que existem práticas genéricas para todosos 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 127www.handbookdeti.com.br

Page 57: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

A alternativa está errada ao a�rmar 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 127www.handbookdeti.com.br

Page 58: handbook_questoes_vol9 - Cópia

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 deNível de Serviço,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 14

Na ITIL, o processo de Gerenciamento do Nível de Serviço é a base para o gerenciamentodos 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ívelde 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 demelhores práticas para a identi�cação de processos da área de TI e para o alinhamentodos seus serviços às necessidades da organização. Ela foi criada a partir da necessidade depadronizar os processos da área de TI e baseia-se na experiência de organizações privadas epú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 (O�ce of Government Commerce). O objetivo inicial eradisciplinar 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 publicadaem 2002. Neste caso, as práticas foram reunidas em oito volumes. Já a ITIL versão 3 foipublicada 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 objetivose cria projetos e especi�cações para execução através da operação e transição dos serviços.

Página 57 de 127www.handbookdeti.com.br

Page 59: handbook_questoes_vol9 - Cópia

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 DesignPackage � SDP) para cada serviço identi�cado, mudança de grande impacto, remoção de umserviço ou mudança em um pacote de Desenho de Serviço. Este pacote é passado para paraa próxima fase (Transição de Serviço). Todos os aspectos e seus requisitos são esmiuçadosatravé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 deServiço na versão 3 é a base para o gerenciamento dos serviços que a área de TI aprovisionapara a organização. Ele deve assegurar que os serviços de TI, dentro dos níveis de serviçosacordados, serão entregues quando e onde as áreas usuárias o de�nirem.

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

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

• De�nição do custo dos serviços em conjunto com o gerenciamento �nanceiro e da formade ressarcimento destes custos.

Essas atividades e objetivos permanecem e são os mesmos nas versões 2 e 3, porém, naversão 3, as atividades de revisão do serviço fazem parte do livro de Melhoria Contínua doServiço. Podemos já ver no penúltimo item �Planejamento do crescimento dos serviços� quea alternativa (C) é a alternativa correta, não importando se consideramos a versão 2 ou 3do 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 candidatotenha uma visão ampla dos processos do ITIL versão para enfrentar um concurso, poismuitas questões são simples e diretas.

Estratégia de Serviço

• De�nir 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 127www.handbookdeti.com.br

Page 60: handbook_questoes_vol9 - Cópia

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 Con�guraçã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 127www.handbookdeti.com.br

Page 61: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

Figura 6: processos do ITIL v3.

Página 60 de 127www.handbookdeti.com.br

Page 62: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

23. Assuntos relacionados: ITIL, Central de Serviços,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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 daCentral de Serviços.

(a). Identi�car tendências de problemas.

(b). Controlar erros conhecidos.

(c). Revisar os principais problemas identi�cados.

(d). Gerenciar o trabalho das diversas equipes de suporte técnico.

(e). Produzir informações gerenciais, coletando medidas e calculando indicadores dedesempenho.

Solução:

A ITIL (Information Technology Infrastructure Library) é uma biblioteca constituída dasboas práticas de Gerenciamento de Serviços de TI. A estrutura da ITIL não apresenta umamaneira 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 deplanejamento dos processos, papéis (ator) e atividades mostrando os relacionamentos entreos 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 tamanhoda empresa ou mesmo o tipo de serviço para aplicar a ITIL. Esses processos devem seradaptados ao estilo da empresa. A ITIL de�ne vários processos dentre eles a Central deServiç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 ouserviço prestado pela área de TI. Desta forma, a Central de Serviço pode encaminhar oproblema 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 interrompidosdurante 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 basede conhecimento que indicaram tendências e melhorias de qualidade dentro da área de TIcontribuindo para a valorização da organização.

Resumidamente a Central de Serviços incorpora uma série de atividades para a execução emelhoramento 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 eandamento das requisições;

Página 61 de 127www.handbookdeti.com.br

Page 63: handbook_questoes_vol9 - Cópia

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 dedeterminado 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çoexecuta, podemos ver os registros das chamadas para utilizadas na construção de informaçõesgerenciais que serão usadas em processos de melhoria. Essas informações são essenciais noscálculos de indicadores de desempenho que são usados no processo de qualidade dos serviçosde TI. Logo, a questão correta é a letra E.

Página 62 de 127www.handbookdeti.com.br

Page 64: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 21

Com relação aos conceitos de programação orientada a objetos, é correto a�rmar que

(a). métodos abstratos são aqueles que não devem ser rede�nidos em classes derivadas,devem ser herdados tal como foram de�nidos.

(b). métodos estáticos são aqueles que, ao serem executados, não acessam atributos deinstâ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 otipo retornado por eles é especi�cado na sua de�niçã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çãode software baseado na interação entre diversas unidades chamadas de objetos. A ideiafundamental é 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 especi�car quaissão as mensagens que cada objeto pode receber e que ações realizar ao receber mensagensespecí�cas.

Os objetos, instâncias de classes, possuem métodos cujos acessos podem ser (re)de�nidospor modi�cadores de acesso. Em Java, esses modi�cadores podem ser private, protected,public e static.

Quando aplicado a um método, o modi�cador de acesso private indica que ele só podeser 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 modi�cador protected indica que o método apenas poderá seracessado dentro do pacote em que estiver contida sua classe. Já o modi�cador public indicaque o método pode ser acessado em qualquer lugar e a qualquer momento da execução doprograma. Por �m, o modi�cador static indica que o método �estático� deve ser acessadodiretamente na classe e não em suas instâncias, ou seja, ele de�ne métodos de classe em vezde métodos de instância.

Em conjunto com os modi�cadores de acesso, podem ser utilizados os modi�cadores abstracte �nal. O primeiro, serve para declarar métodos abstratos, isto é, métodos que deverão serimplementados nas subclasses. O segundo, indica que o método não pode ser alterado nodecorrer do processamento (constante).

Página 63 de 127www.handbookdeti.com.br

Page 65: handbook_questoes_vol9 - Cópia

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 umobjeto. Não possuindo valor de retorno, representam uma oportunidade de inicializar dadosde forma organizada e sempre têm o nome da classe à qual pertencem. Paralelamente, osmétodos destrutores têm o objetivo de �destruir� o objeto e devolver ao sistema a memóriaalocada.

Relativamente à questão, o item a) apresenta uma a�rmação contrária à teoria, já que osmétodos abstratos devem ser de�nidos nas classes derivadas através de herança. O item c)busca confundir o candidato ao associar os termos destrutores e �nalizadores ao modi�cador�nal, insinuando que este último tenha a função de �nalizar (destruir) a instância de umaclasse. O item d) expõe uma teoria parcialmente correta sobre construtores, exceto pelo fatode a�rmar que tais métodos possuem valor de retorno. O item e) inverte as de�nições demétodo de classe e método de instância, a�rmando que o primeiro possui o comportamentodo segundo. O item b) faz uma a�rmativa que está de acordo com a teoria exposta, hajavista que os métodos estáticos não acessam atributos de instâncias (objetos) da classe, massim atributos da classe, sendo a resposta para a questão.

Página 64 de 127www.handbookdeti.com.br

Page 66: handbook_questoes_vol9 - Cópia

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,Polimor�smo, Abstração,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 22

A programação orientada a objetos é baseada em diversos conceitos, tais como encapsula-mento, herança, polimor�smo e abstração. Com relação a esses conceitos, é correto a�rmarque

(a). o conceito de encapsulamento é alcançado por meio da de�nição da visibilidadepública aos atributos e métodos.

(b). herança é um mecanismo que permite que uma classe herde todo o comportamentoe 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 paraoutros, no que diz respeito aos seus atributos e métodos. Em Java, uma mesmaclasse não pode implementar mais de uma interface.

(d). polimor�smo é o uso de um mesmo nome para identi�car diferentes implemen-tações dos métodos. Seu uso é comum na de�nição de construtores, em que osmesmos podem ser implementados em diferentes versões para as diferentes formasde se instanciar a classe.

(e). para uma classe ser considerada abstrata, todos os seus métodos devem ser ab-stratos. Em Java, para se de�nir uma classe abstrata deve-se utilizar a palavrachave �abstract� no início de sua declaração.

Solução:

(A) INCORRETA

O encapsulamento permite esconder os detalhes funcionais de uma classe a objetos quepodem enviar mensagens para ela. E, em linguagens de programação, pode signi�car duascoisas 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 queoperam naqueles dados.

Como forma de restrição de acesso, seu propósito é o de manter a integridade de um objetopela prevenção de que usuários possam alterar seu estado interno, pois existe a possibilidadedessa modi�cação levar o objeto a um estado inválido.

No contexto da linguagem Java, há três palavras-chave explícitas para implementação darestrição de acesso (os especi�cadores de acesso): public, private e protected.

Quando a visibilidade pública (public) é de�nida para algum elemento, isso signi�ca que

Página 65 de 127www.handbookdeti.com.br

Page 67: handbook_questoes_vol9 - Cópia

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, é de�nido 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, funcionade maneira semelhante à private, exceto que qualquer classe que herde da classe originaltambém terá acesso aos membros protegidos.

Portanto, apesar da de�nição da visibilidade de membros de uma classe fazer parte daimplementaçã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 atributosde 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 privadaimpede que subclasses herdem quaisquer características por ela afetadas. Outra informaçãoimportante é que não existe forma direta de implementar herança múltipla em Java. Umaforma 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 umobjeto se apresenta para outros, no que diz respeito aos seus atributos e métodos�, estácorreta. Outras formas de compreender uma interface é como a especi�cação de um proto-colo para comunicação entre classes ou como um contrato de comportamento entre as classes.

Em Java, quando uma interface é de�nida, 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 especi�cação, não há nadaque impeça a combinação de interfaces. Isso, aliás, permite dizer �uma coisa x é um a, um be um c�, através da implementação de diversas interfaces. Como no exemplo abaixo (retiradodo 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 127www.handbookdeti.com.br

Page 68: handbook_questoes_vol9 - Cópia

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 de�nição está correta. Uma vantagem do polimor�smo é que ele permite outra formade 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 de�nido como abstract. Além disso, é necessário que a própria classeseja de�nida como abstract, pois em caso contrário o compilador não a compilará.

Ainda em classes abstratas, quando uma subclasse de uma classe abstrata é de�nida, senão houver de�niçã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 127www.handbookdeti.com.br

Page 69: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

26. Assuntos relacionados: Linguagens de Programação, Java,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 23

Com relação à linguagem de programação Java, é correto a�rmar que

(a). o operador instanceof é utilizado para chamar o método construtor de uma classee criar um novo objeto.

(b). são tipos primitivos de dados: boolean, byte, short, char, int, long, string, �oat edouble.

(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 determinadaclasse, ou seja, o instanceof compara um objeto para um tipo (classe) especi�cado. Vocêpode usá-lo para testar se um objeto é uma instância de uma classe ou uma instância deuma subclasse, ou uma instância de uma classe que implementa uma interface especí�ca.

O operador veri�ca se uma referência de objeto é uma instância de um tipo, e retornaum 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 queinstanceof sempre retornará falso se <objeto> é nulo.

(B) ERRADA

Java é uma linguagem fortemente tipada. Isso signi�ca que toda variável deve ter umtipo declarado. Existem oito tipos primitivos em Java. Quatro deles são tipos de númerosinteiros, dois são tipos números de ponto �utuante, um tipo boolean (intervalo de valores0 ou 1) e um é o tipo de caracteres char, usado para unidades de código no esquema decodi�cação Unicode.

Os tipos de números inteiros servem para números sem parte fracionaria, sendo permitidovalores negativos. O Java fornece os quatro tipos de números inteiros a seguir:

Tipo Armazenamento Necessário Intervalo de Valoresint 4 bytes -2,147,483,648 a 2,147,483,647short 2 bytes 32,768 a 32, 767long 8 bytes -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807byte 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 127www.handbookdeti.com.br

Page 70: handbook_questoes_vol9 - Cópia

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+38double 8 bytes +/-1.7E-308 a +/-1.7E+308

O tipo char representa todo o conjunto de caracteres de�nidos no código de caracter Uni-code que é usado para de�nir a extensão das possibilidades de caracteres alfanuméricos esímbolos. O código UNICODE de�ne 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 identi�cadorasde estado.

(C) ERRADA

Como pode ser observado na tabela que apresenta os tipos de números inteiros acima, ointervalo 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 de�ne os comandos de seleção (condicionais) if-else e switch, alémdesse, 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çãoif(<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 controlesobre 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 tipopara outro tipo primitivo. Mais comumente ocorre com os tipos numéricos, e existe um tipoprimitivo boolean que não pode ser usado em uma operação de casting, pois os valores destetipo só podem ser verdadeiro ou falso.

Página 69 de 127www.handbookdeti.com.br

Page 71: handbook_questoes_vol9 - Cópia

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 fatode que Java tem oito tipos primitivos e vários tipos de objeto. Há três formas de casting nalinguagem 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 umdos operandos da operação de casting, fazendo a assertiva E como correta.

Página 70 de 127www.handbookdeti.com.br

Page 72: handbook_questoes_vol9 - Cópia

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 comUsuário,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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, incluindotratamento 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 vetorde 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 appletsJava. Um applet Java é uma aplicação fornecida aos usuários em formato de bytecode Javae são normalmente executados em navegadores com o intuito de prover interatividade aaplicações web. Os applets Java são normalmente escritos na linguagem Java, mas nada osimpede de serem escritos em linguagens que possuam compiladores para bytecode da JavaVirtual Machine (JVM), como Jython, Ruby ou Ei�el.

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 127www.handbookdeti.com.br

Page 73: handbook_questoes_vol9 - Cópia

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 é aresposta 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á�cose imagens na tela. O exemplo de applet exibido acima faz uso, inclusive, do pacote awt paraexibição da string �Hello, world!� na janela do navegador. Seu resultado é exibido na Figura7 e, por tratar de interfaces grá�cas, essa é a alternativa que responde corretamente a estaquestão.

Figura 7: hello, world em applet.

Página 72 de 127www.handbookdeti.com.br

Page 74: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 26

Um dos aprimoramentos feitos na linguagem Java foi a introdução da re�exão. Com relaçãoa esse recurso, é incorreto a�rmar que

(a). a classe Method do pacote java.lang.re�ect decodi�ca informações de modi�cadorsobre classes, variáveis e métodos.

(b). o uso da re�exão se torna mais útil quando se está trabalhando com serializaçãode objeto.

(c). a classe Field do pacote java.lang.re�ect gerencia e localiza informações sobrevariáveis de classe e de instância.

(d). por meio da re�exão, um programa Java pode carregar uma classe sobre a qualele nada conhece, encontrar as variáveis, métodos e construtores dessa classe etrabalhar com eles.

(e). a re�exão é necessária com o uso de JavaBeans, em que a capacidade de um objetoconsultar outro a respeito do que ele pode fazer é útil ao se criar aplicativos maiscomplexos.

Solução:

A linguagem de programação Java surgiu de um projeto da empresa Sun Microsystemsem 1995 com a intenção de possibilitar a programação de qualquer equipamento eletrônicodotado de um microprocessador. Com o slogan �Write once, run everywhere� (programeum vez, execute em qualquer lugar), buscou-se (e ainda busca-se) ilustrar um dos maioresbenefícios desta linguagem que tem como característica marcante a possibilidade de criaçãode 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 tornadomais e�cientes. Um dos aprimoramentos da linguagem foi a introdução da re�exão.

Re�exã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 oumodi�car (em tempo de execução) o comportamento de aplicações que estejam executandona 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.re�ect da API Java proporciona classes e interfaces para se obter in-formações �re�etidas� a respeito de classes e objetos. A classe Method desse pacote, porexemplo, fornece informações sobre métodos de uma classe ou de uma interface, além depermitir o acesso dinâmico a tais métodos. Com isso, pode-se, para cada método examinado,veri�car os modi�cadores, o nome do método, o tipo de retorno, os parâmetros do método eas exceções que o método pode lançar. Semelhantemente, através da classe Field do mesmopacote, é possível obter dados e informações sobre os atributos membros da classes, como

Página 73 de 127www.handbookdeti.com.br

Page 75: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

modi�cadores, tipo e nome.

Outras técnicas e métodos de programação tiram proveito da Re�exão. A Serialização éo processo de codi�cação (e posterior decodi�cação) de objetos em um stream de bytes,comumente utilizado para tarefas de persistência, comunicação via sockets, RMI (RemoteMethod Invocation), dentre outras. Em Java, esta técnica bene�cia-se enormemente da re-�exão, pois em tempo de execução é possível inspecionar adequadamente os objetos a seremserializados. Outro exemplo é a criação de aplicativos JavaBeans, cuja API possui diversasinterfaces e classes em seu pacote java.beans. Além dessas interfaces e classes, a tecnologiafaz uso de modelos de eventos, de serialização de objetos e de re�exão. Com a re�exão �caprá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çãoincorreta ao a�rmar que �a classe Method do pacote java.lang.re�ect decodi�ca informaçõesde modi�cador sobre classes, variáveis e métodos�, quando na verdade a classe em questãofornece informações apenas sobre métodos. Informações sobre variáveis são obtidas pelaclasse Field e é através da classe Class que se obtém informações sobre as classes.

As demais a�rmações estão de acordo com a teoria exposta. Desta forma, a resposta àquestão encontra-se no item a).

Página 74 de 127www.handbookdeti.com.br

Page 76: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 29

Ao longo das últimas décadas, a engenharia de software fez progressos signi�cativos nocampo de padrões de projeto � arquiteturas comprovadas para construir software orientadoa objetos �exível e fácil de manter. Com relação ao padrão Facade, é correto a�rmar que

(a). fornece um objeto representante ou um marcador de outro objeto para controlaro acesso ao mesmo.

(b). de�ne o esqueleto de um algoritmo em uma operação, postergando a de�nição dealguns passos para subclasses.

(c). de�ne uma interface para criar um objeto, mas deixa as subclasses decidirem qualclasse a ser instanciada.

(d). fornece uma interface uni�cada para um conjunto de interfaces em um subsistema.

(e). de�ne uma dependência �um para muitos� entre objetos, de modo que, quando umobjeto muda de estado, todos os seus dependentes são automaticamente noti�cadose 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 comoo sistema pode precisar ser alterado em seu ciclo de vida. Um projeto que não considereeste aspecto arrisca-se a ser �reprojetado� no futuro. Estas mudanças podem envolver re-de�nição e reimplementação de classes, modi�cações no cliente e reteste. O reprojeto afetamuitas partes do sistema de software e modi�cações não-antecipadas são invariavelmentecaras.

Os padrões de projeto auxiliam o desenvolvedor a evitar problemas dessa natureza garantindoque um sistema pode ser modi�cado de determinadas maneiras. Cada padrão de projetopermite que alguns aspectos da estrutura do sistema variem independentemente de outrasaspectos, 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 entreos subsistemas. Uma forma de atingir tal objetivo é introduzir um objeto Facade que pro-porcione uma interface única e simpli�cada para as facilidades mais gerais de um subsistema.

Considerando o orientação a objetos (OO), os objetos podem variar tremendamente emtamanho e em número. Eles podem, em uma palavra, criar representações de tudo parao hardware subjacente e/ou para as aplicações. Decidir o que deve ser um objeto é umatarefa delicada. O padrão de projeto Facade descreve como representar subsistemas com-pletos como objetos, provendo uma interface uni�cada para um conjunto de interfaces em

Página 75 de 127www.handbookdeti.com.br

Page 77: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

um subsistema. Assim, ele de�ne uma interface de alto-nível que torna um subsistema maisfá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 objetoque atua como interface. O de�nição do objeto Facade é feita por completo, não havendoqualquer tarefa às classes do subsistema nesse tocante. Por este motivo, a a�rmativa B estáincorreta. Semelhantemente, após a de�nição desse objeto Facade, o mesmo deve ter ciênciadas 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 buscaintroduzir o conceito de dependência, inexistente no padrão de projeto em questão e, destaforma, não se alinha às características do Facade. Resta a alternativa D, que apresenta-seem acordo com a teoria exposta, sendo a resposta para a questão.

Página 76 de 127www.handbookdeti.com.br

Page 78: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

30. Assuntos relacionados: Linguagem de Modelagem, UML,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 31

A linguagem de Modelagem Uni�cada (UML) emergiu como notação de diagramação depadrão, de fato e de direito, para a modelagem orientada a objetos. Desta forma, a sentençaque conceitua apropriadamente a UML, segundo o OMG-Object Management Group, é

(a). um método para especi�car e modelar os artefatos dos sistemas.

(b). um processo de especi�caçã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 especi�car, construir e documentar os artefatos dossistemas.

(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êsmé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 emdiagramas padronizados, através de uma notação grá�ca bem de�nida.

A questão envolve, basicamente, a avaliação de terminologias. A UML não pode ser consid-erada um processo, pois não de�ne etapas de execução. Nem tão pouco pode-se entendê-lacomo um método ou uma metodologia, já que não existem diretrizes de como projetar ouespeci�car sistemas. Essa primeira avaliação exclui as assertivas a), b) e e) como alternativaspara a questão. A opção c) descreve uma linguagem de programação, o que não é o caso daUML.

O item d) de�ne precisamente a UML: uma linguagem visual para especi�car, construire 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 doparadigma orientado a objetos.

Página 77 de 127www.handbookdeti.com.br

Page 79: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

31. Assuntos relacionados: Interface com Usuário, Usabilidade,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 40

Como características de usabilidade ou facilidade de uso, uma interface com o usuário devepossuir, 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, oresultado 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 e�ciê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çãodo usuário com o computador) e não pela sua funcionalidade. Para você ter uma idéia, ainterface 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 projetaruma interface com o usuário.

Uma boa abordagem que os engenheiros de software adotam é fazer com que o projetode interface seja centrado no usuário, onde o fator de sucesso é proveniente da análise dasatividades do(s) usuário(s). A Figura 8 exempli�ca o processo de projeto de interface (notea 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 127www.handbookdeti.com.br

Page 80: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

Saiba que quando você classi�ca 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 umaferramenta, geralmente ele procura aquela que atenda a suas necessidades e que não lhetraga problemas durante o seu trabalho, ou seja, ele procura um produto com um bom nívelde usabilidade, e para se obter esse nível de usabilidade é necessário levar em consideraçãoas características acima apresentadas.

Segundo a norma ISO CD 9241: �usabilidade está relacionada com a forma como um produtopode ser usado por um grupo de usuários para alcançar um determinado conjunto de objetivoscom e�cá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 determinadocontexto 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 de�nição de Nielsen, né? Realmente, �todas as características� nãoajudou 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 ainteragir com o sistema de forma natural, independentemente de seu nível de habilidadee 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 à �exibilidadesão: iniciação do diálogo, o multi-threading, a possibilidade de migração de tarefas, ea adaptabilidade. Já podemos descartar as alternativas B e E;

• interface intuitiva: os comandos para a execução de tarefas devem estar claramentevisíveis, a �m de se evitar a necessidade de memorização de funções (não confunda coma 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 paraa realização da tarefa em questão;

• feedback ao usuário: a interface dever oferecer mecanismo para informar ao usuáriocomo 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, semnecessitar consultar manuais de operação?

• velocidade na execução das tarefas: quanto maior a velocidade de processamentoda máquina utilizada e a performance dos algoritmos, maior será a usabilidade dosistema;

• satisfação subjetiva: como o usuário sente-se ao utilizar o sistema? Por exemplo, ograu de satisfação do usuário estará diretamente relacionado à diversão proporcionadapor um sistema de entretenimento;

Página 79 de 127www.handbookdeti.com.br

Page 81: handbook_questoes_vol9 - Cópia

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 oque 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 errosdo usuário. O desenvolvimento da interface deve ser um processo criterioso a �m deminimizar todas as possibilidades de erro. Como é praticamente impossível prevertodas as ações do usuário que podem ocasionar erros, torna-se muito importante que osistema possua mensagens de erro consistentes. Para um sistema ser robusto ele deveatender o princípio da:

• observabilidade: habilidade do usuário avaliar o estado interno do sistema referentea sua representação perceptível, por exemplo, a navegabilidade;

• possibilidade de recuperação: habilidade do usuário tomar ação corretiva umavez que um erro seja reconhecido, como, por exemplo, �Undo� e �Lixeira� no caso dearquivos removidos acidentalmente. Note que robustez não é somente possibilidade derecuperaçã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 atodas 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 emusabilidade, recomendamos que leia o restante do comentário.

É preciso saber que a aceitabilidade de um produto está divida entre a aceitabilidade sociale 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 fracassode 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 socialnão é su�ciente 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 con�abilidade. O fator utilidade, por sua vez, relaciona-se à funcionalidadeoferecida 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ácilde acessá-la, o que pode torná-lo inútil. Sendo o produto inútil, a aceitabilidade prática nãose 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 deperder na comparação com um outro produto submetido às práticas de usabilidade. Alémdisso, quando não se investe em usabilidade é quase certo que o produto apresentado tenhaque retornar aos laboratórios de desenvolvimento, para corrigir erros que poderiam ter sidodetectados através da prática dos métodos de usabilidade.

Página 80 de 127www.handbookdeti.com.br

Page 82: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 42

Um modelo de processo de software é uma representação abstrata de um processo de soft-ware. Assinale a opção que identi�ca um dos modelos de processo de software.

(a). Análise e de�niçã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 de�nição de requisitos são etapas/atividades de processos de software quetem como objetivo identi�car as necessidades (funcionalidades) que o sistema deve imple-mentar, além de suas restrições. O ator responsável por essa atividade é o analista desistema. O analista através de entrevistas, questionários e análise de documento identi�caas 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 seutipo (requisitos funcionais, requisitos não funcionais, requisitos de domínio).

(B) ERRADA

O projeto de software é o processo de transformar os documentos conceituais do sistemaem uma especi�cação de uma solução. O projeto de software utiliza a especi�cação e osmodelos de requisitos gerados na fase de análise para se de�nir o problema. Com os docu-mentos referentes aos requisitos interpretados em mãos o projetista indicará soluções parao problema. A solução que satis�zer completamente os requisitos sobre as funcionalidadesrequeridas pelo cliente é construída.

(C) ERRADA

A análise estrutura, como todos os métodos de análise de requisitos de software, é umaatividade de construção de modelos. Usando uma notação que é própria para atividade deaná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 ModeloComportamental.

Página 81 de 127www.handbookdeti.com.br

Page 83: handbook_questoes_vol9 - Cópia

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, classese membros. A AOO de�ni os objetos de um problema a partir dos atributos que descrevemum objeto para incluí-lo no modelo de análise. São os atributos que de�nem o objeto - queesclarecem aquilo que o objeto signi�ca no contexto do problema.

O método de análise de requisitos de software OO (Orientado a Objeto) possibilita queo analista modele um problema ao representar classes, objetos, atributos e operações comoos 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 é osoftware. O POO interliga objetos de dados e operações de processamento de uma forma quea informação e o processamento seja um único elemento (objeto), e não só o processamentocom no projeto estruturado.

(E) CORRETA

O Desenvolvimento Formal de Sistema (DFS) abrange um conjunto de atividades que levama especi�cação matemática formal de software de computador. O DFS especi�ca, desenvolvee executa veri�cações do sistema baseado na aplicação de uma rigorosa notação matemática.A construção do produto software é baseada na especi�cação matemática do sistema e po-dem ser veri�cado apresentado argumentos matemáticos e mostrando que eles atendem asuas especi�cações. Apesar de não vir a ser uma abordagem de uso geral, o modelo detransformação formal oferece a promessa de software livres de defeitos.

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

• De�nição dos requisitos: de�nição das funcionalidades desejadas;

• Especi�cação formal: detalhamento dos requisitos funcionais;

• Transformação formal: mapeamento dos requisitos (detalhados) em um modelomatemático;

• Integração e teste de Sistema: implementação do modelo e teste utilizando algumalinguagem de programação.

Esse processo de software é geralmente aplicado a sistema que possuem requisitos críticosde segurança, isso porque o sistema deve ser livre de falhas. Isso é obtido pela modelagemmatemática.

Concluindo, todos os itens descritos acima, análise e de�nição de requisitos, análise estru-turada e orientada a objeto e projeto de software são elementos da modelagem de processode software. O único processo de software descrito acima é o Desenvolvimento Formal deSistema. Logo, a questão correta é a letra E.

Página 82 de 127www.handbookdeti.com.br

Page 84: handbook_questoes_vol9 - Cópia

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, ModeloEspiral,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 44

No modelo de desenvolvimento em espiral, cada ciclo da espiral representa uma fase doprocesso de software. Nesse modelo, a atividade que obrigatoriamente estará presente emtodos 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 melhorescaracterísticas dos modelos de software cascata e prototipação. As propriedades combinadassã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çãocom o cliente para o re�namento 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 executadocorretamente proporciona o desenvolvimento do projeto sem a ocorrência de fortes impactossobre 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/sistemapartindo 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 apresentadona Figura 9.

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

Página 83 de 127www.handbookdeti.com.br

Page 85: handbook_questoes_vol9 - Cópia

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 identi�caçã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 resultandonuma 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 eretorno 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 clientere�nam 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 serexecutada. Portanto, a questão correta é a letra E.

Página 84 de 127www.handbookdeti.com.br

Page 86: handbook_questoes_vol9 - Cópia

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 deSistema,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 45

Requisitos são capacidades e condições às quais o sistema � e em termos mais amplos, oprojeto � deve atender. Entre as diversas classi�cações e tipos de requisitos, encontramosrequisitos do usuário, requisitos de sistema e especi�caçã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 de�nir 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 seraplicada a ele.

(d). Cada tipo de arquivo externo pode ser representado com um ícone especí�co natela do usuário.

(e). Devem ser fornecidos recursos para o ícone que representa um arquivo externo, aser de�nido pelo usuário.

Solução:

Requisitos são condições que descrevem o comportamento exigido do sistema de softwareapós a sua parcial ou completa implementação. Os primeiros requisitos de um sistema sãode�nidos pelo usuário a partir de uma declaração abstrata das funcionalidades requeridaspelo mesmo. Outro tipo de requisito é o de sistema (requisitos de sistema) que incorporaos requisitos de usuário, porém o detalhamento dos procedimentos executados são maisespeci�cados seguindo um padrão de organização das funções de�nidas. Os requisitos deusuários e de sistemas podem ser de�nidos 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 funcionalidadesque 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 deusuário sem muitos detalhes técnicos;

• Requisitos de sistema: são as declarações apresentadas pelo usuário re�nadas atéchegar em uma descrição mais detalhada. Os requisitos de sistema são utilizados pelosengenheiros de software para a elaboração do projeto de sistema. Portanto, os requisitosde 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 osistema deve apresentar. Já os requisitos não-funcionais referem-se às propriedades dese-jadas do sistema, por exemplo, tempo de resposta, con�abilidade do sistema. É claro, queestes requisitos devem ser expostos em uma linguagem de usuário e não em termos técnicosquando relacionados aos requisitos de usuários. Em contra-partida, caso sejam requisitos de

Página 85 de 127www.handbookdeti.com.br

Page 87: handbook_questoes_vol9 - Cópia

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 queo requisito de usuário deste problema é a descrição: O software deve oferecer um meiode representar e acessar arquivos externos criados por outras ferramentas, porser de�nido de forma não-técnica e pouco detalhe. Logo, a questão correta é a letra B.

Página 86 de 127www.handbookdeti.com.br

Page 88: handbook_questoes_vol9 - Cópia

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 De�nition Language (DDL), Data Control Language (DCL),Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 51

Em um banco de dados que utiliza a linguagem SQL para de�nição, manipulação e controlede dados, é correto a�rmar que os comandos

(a). CREATE, DROP e INSERT fazem parte da DML (Linguagem de Manipulaçãode 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 De�nição deDados).

(d). ALTER, DELETE e REVOKE fazem parte da DML (Linguagem de Manipulaçãode Dados).

(e). CREATE, GRANT e DROP fazem parte da DCL (Linguagem de Controle deDados).

Solução:

Os Bancos de Dados, em geral, possuem diversos tipos de usuários, desde administradoresde bancos de dados (DBAs) até usuários casuais, passando por projetistas de bancos dedados 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 einterfaces apropriadas.

Em muitos SGBDs onde não há uma clara separação entre os níveis interno e conceitual,uma linguagem chamada Linguagem de De�nição de Dados (DDL � Data De�nition Lan-guage) é utilizada pelo DBA e pelos projetistas para de�nir ambos os esquemas. Em SGBDsonde é mantida uma separação clara entre os dois níveis, a DDL é utilizada para especi�carapenas o esquema conceitual e uma outra linguagem, a Linguagem de De�nição de Ar-mazenamento (SDL � Storage De�nition Language), é utilizada para especi�car o esquemainterno. Para especi�car visões de usuários e seus mapeamentos para o esquema conceitual,a Linguagem de De�nição de Visão (VDL � View De�nition Language). Entretanto, namaioria dos SGBDs a DDL é utilizada para de�nir tanto o esquema conceitual quanto oesquema externo.

Os SGBDs oferecem um conjunto de operações para manipulação de dados, como pesquisa,inserção, exclusão e modi�cação, através de uma linguagem conhecido por Linguagem deManipulação de Dados (DML � Data Manipulation Language).

A SQL (Structured Query Language � Linguagem de Consulta Estruturada) representauma combinação de DDL, VDL e DML, além de diretivas para especi�car restrições e out-ras características. A SDL foi um componente da SQL em versões antigas, mas foi removidada linguagem para mantê-la apenas nos níveis conceitual e externo.

Página 87 de 127www.handbookdeti.com.br

Page 89: handbook_questoes_vol9 - Cópia

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ãoutilizados para inserir, atualizar e excluir registros de uma tabela, respectivamente. Já aDDL possui os comandos básicos CREATE, ALTER e DROP que criam, alteram ou apagamobjetos (tabelas, índices e visões) do banco de dados. Para alguns autores, os comandosCREATE VIEW e DROP VIEW comporiam a VDL de SQL.

Um outro grupo de comandos de SQL serve para controlar aspectos de autorização deacesso 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. Aprimeira, 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 queCOMMIT 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 queconsultas 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 aquestão.

Página 88 de 127www.handbookdeti.com.br

Page 90: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

36. Assuntos relacionados: Banco de Dados, ACID,Banca: ESAFInstituição: Controladoria-Geral da União (CGU)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 54

O termo integridade se refere à precisão ou correção de dados. Em um banco de dadosrelacional, as restrições de integridade têm importância crucial, pois fornecem uma formade garantir que as mudanças realizadas pelos usuários não resultem na perda de consistênciados dados. Com relação às restrições de integridade, é incorreto a�rmar que uma restriçãode

(a). variável de relação especi�ca os valores válidos para uma determinada variável derelação, e é veri�cada quando essa variável de relação é atualizada.

(b). tipo especi�ca os valores válidos para um determinado tipo, e é veri�cada duranteinvocações do seletor correspondente.

(c). atributo especi�ca os valores válidos para um determinado atributo, e nunca deveser violada.

(d). banco de dados especi�ca os valores válidos para um determinado banco de dados,e é veri�cada no instante de COMMIT.

(e). domínio especi�ca que o valor de um atributo não pode pertencer a mais de umdomí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 dedomínio.

Uma restrição de domínio é uma restrição que especi�ca que, dentro de cada tupla do bancode dados relacional, o valor de cada atributo A deve ser um valor pertencente ao domíniode A. Em outras palavras, uma restrição de domínio testa os valores inseridos no bancode dados e as consultas realizadas para garantir que os valores inseridos sejam condizentescom os domínios das variáveis armazenadas. O domínio de um atributo envolve seu tipo dedados, 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, especi�car subconjuntos de valores de um tipo de dado oupor uma enumeração de valores.

Um domínio, por sua vez, é um conjunto de valores atômicos. Por atômico entendemos quecada valor no domínio é indivisível no que diz respeito ao modelo relacional. Um métodocomum para a especi�cação de um domínio é de�nir um tipo de dados do qual os valores dedados que formam o domínio sejam retirados. Também é útil especi�car um nome para essedomínio, de modo a ajudar na interpretação de seus valores. Alguns exemplos de domíniosão (com o nome do domínio à esquerda e sua descrição à direita):

Página 89 de 127www.handbookdeti.com.br

Page 91: handbook_questoes_vol9 - Cópia

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 determinadoaluno. 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 exemploabaixo, é 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 127www.handbookdeti.com.br

Page 92: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 5

Em UML (Uni�ed Modeling Language), o diagrama cujo foco é a organização estrutural deobjetos que enviam e recebem mensagens, exibindo assim, tais objetos e as ligações entreeles, 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 Uni�cada de Modelagem (UML - Uni�ed 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 visuaisde sistemas de software.

A UML não é uma metodologia de desenvolvimento. Ela é usada para especi�car, visu-alizar, modi�car, construir e documentar os artefatos de um sistema de software orientadoa 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;

• De�niçõ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ãoEstática (ou Estrutural) e a Visão Dinâmica (ou Comportamental). A primeira enfatiza asestruturas estáticas do sistema utilizando objetos, atributos, operações e relacionamentos.A segunda concentra-se no comportamento dinâmico, apresentando colaborações entre osobjetos, bem como suas mudanças de estado. Em sua versão 2.0, a UML possuía os seguintesdiagramas:

• Diagramas Estruturais:

� Diagrama de Classes;

� Diagrama de Objetos;

Página 91 de 127www.handbookdeti.com.br

Page 93: handbook_questoes_vol9 - Cópia

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 osartefatos de que eles são feitos, como arquivos de código-fonte, bibliotecas de programaçãoou 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 otorna um pouco similar ao diagrama de sequência. Enquanto um diagrama de colaboraçãoapresenta mais claramente quais objetos se relacionam entre si, um diagrama de sequênciaenfatiza como as interações entre objetos ocorrem ao longo do tempo.

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

(C) ERRADA

O diagrama de objetos é uma variação do diagrama de classes, utilizando inclusive a mesmanotaçã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 diagramade objetos representa um per�l do sistema em um determinado momento de sua execução.

De forma simpli�cada, podemos entender o diagrama de objetos como uma instância dodiagrama 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 127www.handbookdeti.com.br

Page 94: handbook_questoes_vol9 - Cópia

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 asexecuçõ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 (Uni�ed Modeling Lan-guage). Ele descreve, de forma grá�ca e intuitiva, relacionamentos e dependências entre umgrupo de casos de uso e os atores que interagem com o sistema. O ponto de vista assumidopara essa descrição é sempre o dos atores envolvidos.

Lembre-se que um ator é uma entidade externa ao sistema. Ele é representado gra�ca-mente por meio de um boneco e um rótulo com o seu nome. Geralmente, é um ator queinicia um caso de uso. Alguns exemplos de atores são: usuários, outros sistemas que fazeminterface 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 concretoe tangível. Ou seja, ele de�ne uma grande função do sistema. Gra�camente, casos de usosã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 127www.handbookdeti.com.br

Page 95: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 6

Em hierarquias de generalização UML, a característica na qual uma classe herda tantopropriedades e relacionamentos de sua superclasse imediata quanto de suas superclassesnã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 (Uni�ed Modeling Language) é uma linguagem visual para especi�cação, construçãoe documentação de softwares baseados na modelagem orientada a objeto. A UML não é ummétodo de desenvolvimento, mas um modelo de linguagem utilizada para que a modelagemde 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, umhardware, ou outro sistema que interage com o sistema modelado. Os casos de uso sãoprocessos 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 entreatores. 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 pararelacionamento 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 osatributos e operações da superclasse e pode adicionar novos métodos.

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

A seguir analisamos as alternativas da questão:

(A) CORRETA

Uma das características de hierarquia de generalização é a transitividade, onde uma classeem 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 127www.handbookdeti.com.br

Page 96: handbook_questoes_vol9 - Cópia

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 classesA e B, se A for uma generalização de B, então B não pode ser uma generalização de A. Ouseja, 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 detodas a suas superclasses. O uso de herança múltipla pode levar a con�itos quando atributose 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 é de�nida como a semânticaentre as duplas de objetos ligados.

Esta alternativa está errada, pois não confere com a descrição solicitada no enunciado.

Página 95 de 127www.handbookdeti.com.br

Page 97: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

39. Assuntos relacionados: CMM, Níveis de Maturidade,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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 (CapabitlityMaturity Model for Software), que pode ser entendido como o �Modelo de Maturidade daCapacidade�. Desenvolvido pelo SEI (Software Engineering Institute) desde 1986, o CMMdescreve 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 seusprocessos em termos de um caminho evolutivo partindo de processos caóticos e eventuaisem direção a processos de software maduros e disciplinados. Neste contexto, o CMM nãopode ser classi�cado como uma metodologia, já que indica apenas o que deve ser efeito paraalcançar a maturidade dos processos, sem indicar como efetuar as atividades necessáriaspara 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, De�nido, 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 de�nidos e o sucesso depende deesforços individuais;

• Repetível. Processos básicos de gerenciamento de projeto estão estabelecidos paraavaliar custos, cronogramas e funcionalidades. A disciplina de processos necessária estáde�nida para possibilitar a repetição de sucesso em projetos com aplicações similares;

• De�nido. O processo de software tanto para atividades de gerenciamento quanto paraatividades de engenharia está documentado, padronizado e integrado a um processo desoftware padrão da organização. Todos os projetos utilizam uma versão aprovada epersonalizada do processo de software padrão da organização para o desenvolvimentoe a manutenção de softwares;

• Gerenciado. Medidas detalhadas do processo de software e da qualidade do produtosão coletadas. Tanto o processo de software quanto os produtos são quantitativamenteentendidos 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 127www.handbookdeti.com.br

Page 98: handbook_questoes_vol9 - Cópia

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 1CMM, sendo que o nível 2 ainda não possui uma padronização propriamente dita para todosos processos da organização. Os itens c) e d) são apresentados separadamente para confundiro candidato: a gerência da qualidade (tanto do processo quanto do produto) é traduzidaem 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 implementamgerência da qualidade, tarefa que passa a ser desempenhada a partir do nível 4 CMM. Onível 5 CMM caracteriza-se pela busca da melhoria contínua dos processos através de seugerenciamento. A assertiva que condiz com a teoria exposta é a do item e).

Página 97 de 127www.handbookdeti.com.br

Page 99: handbook_questoes_vol9 - Cópia

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 De�nition Language (DDL), Data Manipulation Language (DML), Data Control Lan-guage (DCL), Data Query Language (DQL), Transaction Control Language (TCL), SQL,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 11

Um SBGD (Sistema Gerenciador de Bancos de Dados) possui um compilador para umadeterminada linguagem, cuja função é o processamento de declarações, a �m de identi�caras descrições dos componentes do esquema conceitual do Banco de Dados. Tal linguagem éde

(a). consulta estrutura (SQL).

(b). de�nição de armazenamento (SDL).

(c). manipulação de dados (DML).

(d). de�nição de visão (VDL).

(e). de�nição de dados (DDL).

Solução:

Os sistemas gerenciadores de bancos de dados utilizam diferentes linguagens para de�nir emanipular o banco de dados, além de realizar outras atividades. Tais linguagens podem serclassi�cadas diversas categorias, entre as quais as mais populares são:

• DDL (Data De�nition Language) ou (Linguagem de De�niçã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 de�nir e exempli�car cada uma das categorias, vamos nos ater aos bancos de dadosrelacionais, 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 demaistecnologias 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 descrevere 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 decomandos 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 127www.handbookdeti.com.br

Page 100: handbook_questoes_vol9 - Cópia

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 serentendido como a criação de novos registros nas tabelas, além da atualização e da exclusãode 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 deaspectos não funcionais do banco de dados, como a segurança dos dados. São os comandosDCL que permitem a criação e exclusão de usuários, a criação de per�s de acesso, a alter-ação de senhas, e as operações de concessão e revogação de acesso aos diversos elementos dedados. 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çãode 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áusulase 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 127www.handbookdeti.com.br

Page 101: handbook_questoes_vol9 - Cópia

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 capacidadede agregar os resultados de uma consulta em um único valor. As principais funções deagregaçã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 controlara 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 a�rmar que a resposta da questão é a alternativaE � DDL (Data De�nition Language).

Página 100 de 127www.handbookdeti.com.br

Page 102: handbook_questoes_vol9 - Cópia

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 De�nition Language (DDL),Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 13

Em um SGBD (Sistema Gerenciador de Bancos de Dados), as requisições de manipulaçãode dados são processadas por um componente capaz de determinar uma maneira e�cientede 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 de�nição de dados (DDL).

(e). esquema físico.

Solução:

Um Sistema Gerenciador de Bancos de Dados (SGBD) é composto por vários módulos, comatribuições especí�cas. A Linguagem de De�nição de Dados (DDL � Data De�nition Lan-guage), responsável por construções declarativas dos objetos da base de dados, precisa deum processador de DDL (ou compilador) que lhe interprete os comandos. Tal compi-lador processa as de�nições de esquema, especi�cados na DDL, e armazena descrições dosesquemas (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 emtempo de execução (runtime database processor), que recebe as operações de atualizaçãoou obtenção de dados e, quando necessário, transporta tais dados para �fora� do banco dedados, 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 identi�ca os tokensda linguagem no texto da consulta, ao passo que o parser veri�ca a sintaxe da pesquisa paradeterminar se houve uma formulação segundo as regras gramaticais impostas. A etapa devalidação veri�ca se os atributos e relações presentes na consulta são válidos e se fazemsentido semanticamente face ao esquema do banco de dados. Em seguida, uma estratégia deexecução para recuperação do resultado da consulta precisa ser de�nida. Geralmente, umaconsulta 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 e�ciente 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 simum componente da arquitetura de um banco de dados baseada em três esquemas: esquema

Página 101 de 127www.handbookdeti.com.br

Page 103: handbook_questoes_vol9 - Cópia

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) eesquema(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 127www.handbookdeti.com.br

Page 104: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

42. Assuntos relacionados: Banco de Dados, ACID,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 14

Se uma restrição de integridade, classi�cada como restrição de banco de dados, ocorrer nomomento 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 de�nições de valores permitidos de serematribuídos a determinadas variáveis. No momento de uma inserção de dados, ou mesmo deuma atualização em dados já existentes, as restrições de integridade devem ser respeitadase, para tanto, veri�cações são efetuadas antes da inserção/atualização serem concretizadas.A questão natural que surge é o momento da veri�caçã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 deoperações sobre uma mesma parte da base de dados disponível, é situação corriqueira a sertratada por SGBDs (Sistemas de Gerenciamento de Banco de Dados). Essa concorrênciasobre 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 problemada manutenção da integridade face a concorrência de operações. A transação, isto é, umconjunto de operações sobre uma base de dados, deve possuir 4 características essenciais como 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). Umatransação deve ser isolada de outras transações e, consequentemente, ser executada de formaindependente das demais. Além disso, toda transação precisa ser durável, característica quegarante 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çãodeve ser consistente, ou seja, deve fornecer a garantia de consistência dos dados em relaçãoa 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 veri�car se as modi�cações introduzidas pela

Página 103 de 127www.handbookdeti.com.br

Page 105: handbook_questoes_vol9 - Cópia

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

• COMMIT (ou COMMIT_TRANSACTION): indica o término da transação comsucesso, isto é, todas as alterações na base de dados foram executadas e não serãodesfeitas;

• ROLLBACK (ou ABORT): sinaliza que a transação terminou sem sucesso e nen-huma modi�caçã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 detransaçõ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áriosobre os outros dois termos citados dentre as opções de resposta: DROP e LOCKING.

O comando DROP faz parte da DDL (Data De�nition 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 apagaruma tabela do banco de dados, ou ainda no comando DROP DATABASE que serve paraapagar 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 é, impassesgerados por várias transações que disputam recursos e acabam provocando uma dependênciacircular, sem conseguirem atingirem o �nal de suas execuções.

Página 104 de 127www.handbookdeti.com.br

Page 106: handbook_questoes_vol9 - Cópia

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-lineAnalytical Processing, On-Line Transaction Processing,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 15

Um depósito de dados organizado por assunto, não-volátil, integrado e variável em funçãodo 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 con�ança mesmo quenão conheça muito bem todos os termos envolvidos. Isso porque com uma boa leitura doenunciado e das alternativas, não é muito difícil de perceber que a única alternativa que trazum depósito de dados é a letra A. Para os concursos atuais, que abrangem uma vasta gamade assuntos, esse tipo de análise pode signi�car um diferencial importante na conquista deuma vaga. Fique atento!

Vamos ao comentário de cada alternativa.

(A) CORRETA

Um data warehouse (ou armazém de dados) é um sistema computacional utilizado paraarmazenar 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 independentese são consolidadas em uma base de dados própria, separada das bases de dados operacionaisda organização. O desenho da base de dados de um data warehouse favorece a geração derelatórios, a análise de grandes volumes de dados e a obtenção de informações agregadasque podem facilitar tomadas de decisão.

As principais características de um data warehouse que devemos manter sempre em mentesão as seguintes (justamente as que aparecem no enunciado):

• orientação a assunto: pois geralmente tomadas de decisão requerem agregação dediversas informações em função de um determinado assunto;

• integração de dados: como já dito, geralmente um data warehouse integra dadosde diversos sistemas, por exemplo de diversos setores da organização. Em geral, essaintegração possibilita visões mais amplas das informações, o que é bastante importantepara 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 apenassão alterados em casos eventuais de correções ou adaptações;

Página 105 de 127www.handbookdeti.com.br

Page 107: handbook_questoes_vol9 - Cópia

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ériahistórica (horária, diária, semanal, etc.) como uma sequência de �fotogra�as� dasinformações (fatos) que compõem o data warehouse.

(B) ERRADA

Gestão de conhecimento não representa uma base de dados. Portanto, esta alternativadeve ser rapidamente desconsiderada. Gestão de conhecimento é uma área de estudos, quevem crescendo muito ultimamente, composta por várias técnicas e teorias que orientam comoo 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 emfunçã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 dasprincipais soluções de BI do mercado. Duas outras ferramentas que podem ser utilizadas nacomposição de uma solução de BI são: data mart e data mining. Perceba, portanto, que BInã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 grandesquantidades de informações (geralmente associadas a business intelligence) para se buscarpadrões consistentes e/ou relacionamentos entre vários tipos de dados. Perceba novamenteque não temos nesta alternativa um base de dados. Ou seja, esta alternativa também deveser prontamente descartada.

(E) ERRADA

OLAP (Online Analytical Processing) é um tipo de abordagem que viabiliza consultase�cientes 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 (OnlineTransaction Processing), que é uma abordagem largamente utilizada em ambientes transa-cionais.

Em um ambiente transacional, há constante entrada de dados e consultas �simples�. Alémdisso, em um ambiente transacional, quase sempre é exigido que a resposta ao usuário sejaimediata. 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. Enquantoas abordagens OLTP são extremamente adequadas em diversas situações, elas se mostraminadequadas 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 tipode cenário que a abordagem OLAP é importante. Os bancos de dados que utilizam OLAPsão projetados em modelos de dados multidimensionais que possibilitam executar consultascomplexas em um tempo muito menor, baseando-se principalmente em desnormalizações eem agregações.

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

Página 106 de 127www.handbookdeti.com.br

Page 108: handbook_questoes_vol9 - Cópia

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á emuma arquitetura MOLAP (Multidimensional), os dados são armazenados em cubos dimen-sionais, em geral em formatos proprietários. HOLAP (Híbrido) tenta combinar as vantagensde 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 pararepresentar 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 apesardesses termos serem correlacionados. É justamente por isso que esta alternativa não podeser considerada correta.

Página 107 de 127www.handbookdeti.com.br

Page 109: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 17

Em termos de Bancos de Dados, a indexação mais adequada para o acesso e�ciente aosregistros, 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 depré-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çãoapresenta 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 chavesde 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. Pormapearem uma chave de pesquisa a um determinado índice de forma direta, as tabelas hashproporcionam um tempo médio de busca constante, ou seja, O(1). Em virtude de seu altodesempenho, as tabelas hash são tipicamente utilizadas na indexação de grandes volumes deinformações em bancos de dados e na criação de esquemas associativos de acesso às memóriacache.

Após a construção do índice, quando uma consulta é realizada, a função hash é aplicadaà chave de pesquisa para identi�cação do slot onde as chaves ocorrem. As entradas dasocorrências são, então, recuperadas.

Apesar de e�cientes para buscar um único valor e como valores próximos são normalmentemapeados para posições distantes na tabela, uma abordagem de tabelas hash para consultas

1Fonte: E�cient Join-Index-Based Join Processing: A Clustering Approach, disponível emhttp://www.cs.umn.edu/tech_reports_upload/tr1999/99-030.pdf

Página 108 de 127www.handbookdeti.com.br

Page 110: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

com intervalos se mostrará ine�ciente, 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. Porser otimizada para sistemas que leem e escrevem grandes quantidades de dados, elas sãobastante 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 possuirmais de dois �lhos. Mais formalmente, uma árvore B de ordem m (com m o número máximode �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 à medidaque 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 Ba 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 bitse respondem a consultas através da execução de operações lógicas bit a bit nesses vetoresde bits. Esse tipo de índice foi projetado para casos em que os valores de uma variável serepetem com grande frequência. Devido a forma como são construídos, o índice de bitmappossui vantagens de desempenho para esse caso, mas não na busca de intervalos.

(E) INCORRETA

Índices funcionais são índices de�nidos pelo usuário do sistema de banco de dados. Comeles, é possível que o usuário do banco de dados de�na suas próprias funções de indexação.Esse tipo de índice adiciona �exibilidade ao banco de dados e pode ser usado com tiposde�nidos pelo usuário. Por poderem ser implementados da forma que melhor convier aousuário e não um algoritmo propriamente dito, índices funcionais não são a solução paraesta questão.

Página 109 de 127www.handbookdeti.com.br

Page 111: handbook_questoes_vol9 - Cópia

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 127www.handbookdeti.com.br

Page 112: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 18

Navegadores Web armazenam as URLs (Uniform Resource Locators) visitadas recentementeem uma determinada estrutura de dados. Com isso, permite que o usuário visite o últimosite visitado, ao recuperar a URL na estrutura, usando uma operação de retorno (back). Aestrutura 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 deURL 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 aentrar, 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 segundoa ser recuperado e assim sucessivamente. Essa é a única forma de armazenar e recuperarem 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 omembro esquerdo e um ponteiro para o membro direito. A raiz é o primeiro elemento emuma á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 comum/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 127www.handbookdeti.com.br

Page 113: handbook_questoes_vol9 - Cópia

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 umponteiro com o próximo elemento da lista. Cada elemento de dado geralmente consiste emuma 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 epara o item anterior. O fato de ter dois ponteiros em lugar de um tem a vantagem da listapoder 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 serusado e o último prato colocado na pilha é o primeiro a ser usado. Pilhas são usadas emgrande 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 dalista.

Portanto, a única estrutura de dados que possui uma funcionalidade de recuperar o últimoelemento inserido é a estrutura pilha, desta forma, a letra correta é a E.

Página 112 de 127www.handbookdeti.com.br

Page 114: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

46. Assuntos relacionados: Programação, Java, Garbage Collection,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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 programadorse preocupe com a vida de um objeto, se responsabilizando em liberar espaços de memóriaantes que ela esgote. O mecanismo de coleta de lixo (garbage collection) do Java faz umavarredura periódica em busca de posições de memória não mais referenciadas e realiza aliberaçã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 pelocoletor 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 fecharuma conexão antes da destruição do objeto, isso será possível de�nindo 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 altosrecursos 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 noti�cam à JVM que a aplicação gostariaque o coletor de lixo fosse executado, mas não garantem que ele realmente será executadoimediatamente.

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 127www.handbookdeti.com.br

Page 115: handbook_questoes_vol9 - Cópia

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: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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, comas 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 aexecução de funções ou rotinas em outro espaço de endereçamento, comumente em outrocomputador em uma rede, sem a necessidade de programação explícita dessa interação re-mota. Isso signi�ca que, sendo a função local ou remota, sua chamada seria feita da mesmaforma. É 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çãopopular dessa tecnologia foi a da Sun Microsystems (hoje chamado ONC RPC), usada naimplementação do NFS (Network Filesystem).

O processo de uma chamada remota a procedimento é iniciado com o envio, por partedo cliente, de uma mensagem de requisição a um servidor remoto conhecido para execuçãode um procedimento qualquer. Os parâmetros desse procedimento são, também, enviadoscom a requisição. Supondo que o procedimento existe no servidor e que ele é executado comsucesso, uma resposta é enviada ao cliente e a execução do processo do cliente continuarnormalmente. Há, no entanto, variações em diversas implementações de RPC, o que resultaem protocolos incompatíveis entre si (e, portanto, na necessidade de diferenciação dessesprotocolos).

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

Página 114 de 127www.handbookdeti.com.br

Page 116: handbook_questoes_vol9 - Cópia

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, chamadasremotas, 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 chamadasremotas foram executadas com sucesso.

Para permitir que servidores sejam acessados por clientes diferentes, diversos sistemas RPCforam 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 protocoloslistados 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 esquerdapara a direita, iniciando com a chamada local do programa usuário. Depois, no stub dousuário (cliente), é realizada a conversão dos argumentos para transmissão pelas rotinas (detempo de execução) do RPC. Enquanto a mensagem é transmitida e a rotina é executadano 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 oprograma que serve as rotinas para processamento. Com o �m do processamento, o processosimé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ãode mensagens pelos stubs é realizadas para que o funcionamento do RPC aconteça de formatransparente para os programas cliente e servidor.

Figura 11: funcionamento básico do RPC.

CORBA

CORBA (Common Object Request Broker Architecture) é um padrão de�nido 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 remotaa procedimentos. O CORBA atua de modo que os objetos possam se comunicar de formatransparente para o usuário, mesmo que seja necessário se comunicar com outro programaem outro sistema operacional.

Mais especi�camente 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) ouem um espaço de endereçamento remoto. Para especi�cação das interfaces, a linguagem de

Página 115 de 127www.handbookdeti.com.br

Page 117: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

de�nição de interface (IDL, do Inglês Interface De�nition Language) é usada para especi-�car as interfaces dos objetos que serão disponibilizados para o mundo externo à aplicaçãolocal. Existem, então, mapeamentos de IDL para linguagens de programação especí�cascomo 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 ocó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 dosuso de ORBs (Object Request Brokers) escritos para essas linguagens. O ORB é um módulointermediário entre cliente e objeto e é o responsável por aceitar requisições, enviá-las paraos 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 portasnão padrão, ele sofre com �rewalls mais restritivos, que permitem apenas o tráfego HTTPpela porta 80, por exemplo.

DCOM

O DCOM (Distributed Component Object Model) é uma tecnologia proprietária criadapela Microsoft para comunicação entre componentes de software distribuídos em redes decomputadores. 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 de�ne como componentes de software e seus clientes interagem. Essainteração é de�nida 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 chamadasa 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 mantidaspor clientes de interfaces sejam liberadas quando, por exemplo, a conexão é perdida.

O protocolo do DCOM foi baseado no DCE/RPC (con�ra a discussão de RPC na seçãoDCE), que de�ne regras claras sobre a serialização. O DCOM e o CORBA são padrõesconcorrentes 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.

2http://msdn.microsoft.com/en-us/library/ms809340.aspx acessado em 25/05/2010.

Página 116 de 127www.handbookdeti.com.br

Page 118: handbook_questoes_vol9 - Cópia

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 amáquina virtual Java que permite a chamada remota a procedimentos de forma orientada aobjetos.3

Sua implementação original depende da máquina virtual Java e, portanto, permite chamadasremotas apenas entre máquinas virtuais Java. Para permitir a execução fora da máquinavirtual 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 eum 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 invocamé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ê umframework 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, umaimplementação de RPC para o DCE.

Discussão das alternativas

O objetivo desta questão é selecionar a tecnologia mais adequada para sistemas de objetosdistribuí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ãoorientada a objetos, essas alternativas podem ser descartadas. Nos restam, portanto, asalternativas a, b e c. Ora, tendo sido o Java RMI inicialmente desenvolvida para execuçãoapenas na máquina virtual Java, podemos considerar que, mesmo a implementação atualpermitindo 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, ambasacessí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ívelsubstituir componentes DCOM por componentes implementados em .NET 4. Além disso, oDCOM é uma tecnologia proprietária da Microsoft.

Da discussão do parágrafo anterior podemos selecionar o CORBA, alternativa a como aresposta da questão. Outros aspectos que o tornam a opção mais adequada para a questãosão o fato dele ser um padrão aberto de�nido por um consórcio e de haver implementaçõesfuncionais para diversos sistemas operacionais e linguagens de programação.

3http://java.sun.com/docs/books/tutorial/rmi/overview.html4Using Web Services Instead of DCOM - http://msdn.microsoft.com/en-us/library/aa302336.aspx.

Página 117 de 127www.handbookdeti.com.br

Page 119: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

48. Assuntos relacionados: Algoritmos de Ordenação, Heapsort,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questã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 dedados chamada heap. Ele ordena localmente (in-place), signi�cando que apenas um númeroconstante de elementos do arranjo é armazenado fora do arranjo de entrada em qualquerinstante.

A estrutura de dados heap é um objeto arranjo que pode ser visto como uma árvore bináriapraticamente 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 de�nidapor comprimento[A], tem por raiz o elemento A[1]. Dado o índice i de um nó, o índice deseu pai PARENT(i), do �lho da esquerda LEFT(i) e do �lho da direita RIGHT(i) podemser 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 elementoem um heap máximo é armazenado na raiz, e a subárvore que tem raiz em um nó contémvalores menores que o próprio nó. Um heap mínimo, organizado de forma oposta, satisfaz aseguinte 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 127www.handbookdeti.com.br

Page 120: handbook_questoes_vol9 - Cópia

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 deheap, o que pode ser feito com as sub-rotinas MAX-HEAPFY e MIN-HEAPFY. Para o casode 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 assima propriedade de heap máximo. A função de MAX-HEAPFY é possibilitar que o valor emA[i] ocupe o lugar adequado na estrutura, de tal forma que a subárvore com raiz no índicei 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 127www.handbookdeti.com.br

Page 121: handbook_questoes_vol9 - Cópia

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 aexecução do procedimento. Mas não há tal obrigatoriedade, pois a propriedade de heapmá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 algoritmoHeap 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 deprocessamento apresentada na Figura 14.

Página 120 de 127www.handbookdeti.com.br

Page 122: handbook_questoes_vol9 - Cópia

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 especi�ca o signi�cado de �passo�, de sorte que �ca difícil parao candidato de�nir saídas. Questão prejudicada.

Página 121 de 127www.handbookdeti.com.br

Page 123: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

49. Assuntos relacionados: Algoritmos, Linguagens de Programação, Java,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 25

Considere o seguinte fragmento de código, para o método run() de uma determinada linhade 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 a�rmar 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 essaquestão é através de um código que implemente o bloco correspondente em conjunto com ainfraestrutura 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 decó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 127www.handbookdeti.com.br

Page 124: handbook_questoes_vol9 - Cópia

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 pelaopção a.

Após a compilação do bloco de código, também é possível executá-lo. O exemplo abaixoexibe 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). Noexemplo acima, o comando �time� exibe os tempos de execução de um programa e optou-sepor 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áriada thread em execução pelo número de milisegundos especi�cado� pelo argumento passadopara o método. Disso decorre que, terminado o tempo de suspensão, a thread retornará aoestado Pronto em 1000 milissegundos. O problema com as opções c e d são os quali�cadoresadicionados 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çapara o estado Pronto ocorrerá em exatamente 1000 milisegundos, invalidando a alternativac. De forma semelhante, a precisão do timer ou o escalonador podem fazer com que o tempode 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çãoque responde a pergunta sem restrições adicionais. No caso, a alternativa b é a correta.

Página 123 de 127www.handbookdeti.com.br

Page 125: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

50. Assuntos relacionados: Sistemas de Informações Gerenciais,Banca: ESAFInstituição: Secretaria do Tesouro Nacional (STN)Cargo: Analista de Finanças e Controle - Tecnologia da Informação / Desenvolvimento deSistemas de InformaçãoAno: 2008Questão: 28

O sistema de informação utilizado pelo Governo Federal para controlar e acompanhar aexecução orçamentária, patrimonial e �nanceira é denominado

(a). SIGPLAN.

(b). SISG.

(c). SIAFI.

(d). SIASG.

(e). SIAPE.

Solução:

Para identi�cação da resposta correta é necessário conhecer o signi�cado das siglas listadas.Assim, além de dizer a razão pela qual uma resposta é correta ou incorreta, o signi�cadodas 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 foiconcebido para apoiar a execução dos programas governamentais e é utilizado pelos órgãossetoriais, 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çõesnecessá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úblicafederal pode realizar um efetivo gerenciamento das ações governamentais, em particularno 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 seusparceiros;

• Integração de informações: sua base de dados contém informações sobre a execução dasações, seu gerenciamento e monitoramento, e informações orçamentárias e �nanceirassobre cada programa, sendo composta de dados provenientes de diversas fontes.

5Manual de Operação do SIGPlan, disponível em http://www.sigplan.gov.br/arquivos/Download/ManualSigplan.pdfe acessado em 25/05/2010.

Página 124 de 127www.handbookdeti.com.br

Page 126: handbook_questoes_vol9 - Cópia

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 queorganiza 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-peci�camente de executar as atividades relacionados ao sistema, os ministérios militares e oestado-maior das forças armadas poderão aplicar, no que couber, as normas pertinentes aoSISG.

O SISG compreende:

I. o órgão central, responsável pela formulação de diretrizes, orientação, planejamento ecoordenação, supervisão e controle dos assuntos relativos a Serviços Gerais;

II. os órgãos setoriais, unidades incumbidas especi�camente de atividades concernentes aoSISG, 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, nasautarquias e fundações públicas.

(C) CORRETA

O SIAFI7, ou sistema de integrado de administração �nanceira, é um sistema contábil quetem por �nalidade realizar todo o processamento, controle e execução �nanceira, patrimoniale 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 quedi�cultavam a adequada gestão dos recursos públicos e a preparação do orçamento uni�cadobrasileiro. 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 únicapara gerir, de onde todas as saídas de dinheiro ocorrem com o registro de sua aplicação edo 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, �nanceirae patrimonial aos órgãos da Administração Pública;

• fornecer meios para agilizar a programação �nanceira, otimizando a utilização dosrecursos do Tesouro Nacional, através da uni�cação dos recursos de caixa do GovernoFederal;

• permitir que a contabilidade pública seja fonte segura e tempestiva de informaçõesgerenciais 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, semimplicar rigidez ou restrição a essa atividade, uma vez que ele permanece sob totalcontrole do ordenador de despesa de cada unidade gestora;

6Decreto No 1.094, de 23 de março de 1994. Disponível emhttp://www.planalto.gov.br/ccivil_03/Decreto/Antigos/D1094.htm e acessado em 25/05/2010.

7Conheça o SIAFI - A História do SIAFI. Disponível emhttp://www.tesouro.fazenda.gov.br/sia�/index_conheca_sia�.asp e acessado em 25/05/2010.

Página 125 de 127www.handbookdeti.com.br

Page 127: handbook_questoes_vol9 - Cópia

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êmicodas atividades inerentes ao Sistema de Serviços Gerais - SISG, quais sejam: gestão de ma-teriais, edi�cações públicas, veículos o�ciais, 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 dopessoal civil do governo federal. Como ele é realizado mensalmente o pagamento de cercade um milhão e trezentos mil servidores ativos, aposentados e pensionistas em 214 órgãosda 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 eimpressão de dados extraídos diretamente do SIAPE.

8O que é SIASG. Disponível em http://www.comprasnet.gov.br/ajuda/siasg/que_e_siasg.stm e acessado em25/05/2010.

9O que é o SIAPEnet. Disponível em http://www.siapenet.gov.br/oque.htm e acessado em 25/05/2010.

Página 126 de 127www.handbookdeti.com.br

Page 128: handbook_questoes_vol9 - Cópia

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

Page 129: handbook_questoes_vol9 - Cópia

Índice Remissivo

Árvore, 111

Abstração, 65ACID, 89, 103Agrupamento de Dados, 21Algoritmos, 122Algoritmos de Ordenação, 118Atividades-Chaves, 43

Banco de Dados, 17, 19, 23, 26, 87, 89, 98, 103,105, 108

Bits de Paridade, 38Business Inteligence, 105

Categorias de Linguages de Banco de Dados,98

Central de Serviços, 61Chave Assimétrica, 17, 41Chave Secundária, 17Chave Simétrica, 17, 41Checksum, 38Classes e Superclasses, 32Classi�cação de Dados, 21CMM, 96CMMI, 4, 51, 53COBIT, 4, 43Common Object Request Broker Architecture

(CORBA), 114Criptogra�a, 17, 41Criptogra�a Assimétrica, 41Criptogra�a Simétrica, 41Cyclic Redundancy Check (CRC), 38

Data Control Language (DCL), 87, 98Data De�nition Language (DDL), 87, 98, 101Data Manipulation Language (DML), 87, 98,

101Data Mining, 21Data Query Language (DQL), 98Data Warehouse, 105Desenvolvimento de Sistemas, 51Desenvolvimento em Cascata, 8Desenvolvimento Evolucionário, 8Desenvolvimento Formal, 81Diagrama de Atividades, 91Diagrama de Caso de Uso, 91Diagrama de Colaboração, 91Diagrama de Componentes, 91Diagrama de Objetos, 91

Distributed Component Object Model (DCOM),114

Distributed Computing Environment (DCE),114

Encapsulamento, 65Engenharia de Software, 8, 13, 15, 46, 53, 75,

81, 83, 85, 94Estruturas de Dados, 111

Fila, 111

Garbage Collection, 113Generalização, 15Gerenciamento de Nível de Serviço, 57Gerenciamento Eletrônico de Documentos (GED),

4Governança de TI, 4, 43, 57

Heapsort, 118Herança, 32, 65Hierarquia de Generalização, 94

Indexação de Registros, 108Integridade de Dados, 38Interface com Usuário, 71, 78ISO/IEC 12207, 51ITIL, 57, 61

Java, 32, 34, 36, 68, 71, 73, 113, 122Java Remote Method Invocation (Java RMI),

114JavaServer Pages (JSP), 36

Linguagem de Modelagem, 77Linguagens de Programação, 32, 34, 36, 68, 71,

73, 122Lista Encadeada, 111

MA-MPS, 46MN-MPS, 46Modelagem de Dados, 17Modelagem de Dependência entre Dados, 21Modelo de Maturidade, 51Modelo de Processo de Software, 8, 81, 83Modelo Entidade-Relacionamento, 23Modelo Espiral, 83Modelo Objeto-Relacionamento, 23Modelo Relacional, 23Modi�cadores de Acesso, 32MPS.BR, 46, 51MR-MPS, 46128

Page 130: handbook_questoes_vol9 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 9 � Edição 1

Níveis de Maturidade, 96Nível de Abstração, 19Nível de Visão, 19Nível Físco, 19Nível Lógico, 19

On-line Analytical Processing, 105On-Line Transaction Processing, 105Organizational Project Management Maturity

Model (OPM3), 4Orientação a Objeto, 32, 63, 65Otimizador de Consultas, 101

Pacotes Java, 71, 73Padrão Facade, 75Padrões de Projeto, 75Pilha, 111Polimor�smo, 65Portais Corporativos, 4Programação, 31, 63, 65, 113Programação Estruturada, 31Projeto de Serviço, 57

Qualidade de Software, 51, 53

Remote Procedure Call (RPC), 114Requisito de Domínio, 13Requisito de Software, 13Requisito Funcional, 13Requisito Não-Funcional, 13Requisitos de Sistema, 85Requisitos de Usuário, 85

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

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

UML, 15, 77, 91, 94Universal Description, Discovery and Integra-

tion (UDDI), 11Usabilidade, 78

Web Services, 11

Web Services Description Language (WSDL),11

XML, 28

Página 129 de 127www.handbookdeti.com.br