Escolar Documentos
Profissional Documentos
Cultura Documentos
Handbook de
Questões de TI
concursos
comentadas para
Além do gabarito
2ª Edição
Volume 2
Prefácio
Estamos vivendo a era do petróleo no Brasil. A Petrobras está aproveitando muito bem essa
fase para maximizar a sua produção e, por consequência, os seus lucros. Nessa jornada, surge a
necessidade de novos prossionais qualicados, inclusive na área de TI. Para suprir essa neces-
sidade, a empresa vem realizando concursos com maior frequência.
Alguns fatores fazem com que concursos para a Petrobras sejam altamente concorridos, tais
como: contato com diversas tecnologias de ponta; excelente ambiente de trabalho; salário e
benefícios superiores aos da maioria das empresas e órgãos governamentais. Tendo em vista
essa alta concorrência, é de fundamental importância que os materiais de estudo do concurseiro
sejam de ótima qualidade.
Este volume traz questões reais que abordam temas como segurança de informação, arquite-
tura de computadores, banco de dados e governança de TI. Não faltará embasamento teórico
ao concurseiro, uma vez que os comentários elaborados não se limitam à simples resolução das
questões.
Bons estudos,
Grupo Handbook de TI
Página 1 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Direitos Autorais
Os autores deste material não proíbem seu compartilhamento entre amigos e colegas próxi-
mos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material de
forma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites da
colaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comu-
nidade concurseira Handbook de TI.
Grupo Handbook de TI
Página 2 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Canais de Comunicação
Loja Handbook de TI
http://www.handbookdeti.com.br
Serviço de Atendimento
Twitter do Handbook de TI
Página 3 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Banca: CESGRANRIO
Instituição: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questão: 21
Um computador tem um registrador R e um conjunto de instruções de um operando, todas
com modo de endereçamento indireto. Três destas instruções são especicadas a seguir.
LD 01H
AC 02H
ST 03H
AC 00H
ST 01H
LD 03H
ST 00H
Considere que tanto o endereçamento quanto os valores envolvidos nas operações utilizam
apenas um byte de memória cada. Após a execução do programa, qual será, em hexadeci-
mais, a soma dos valores armazenados no bloco de memória?
(a). 00H
(b). 04H
(c). 0AH
(d). 10H
(e). 1CH
Solução:
Primeiramente, os conceitos de endereçamento de dados devem estar bem claros. Em uma
instrução de programa, há várias maneiras de referenciar um valor, as mais conhecidas são:
Página 4 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
descrito suporte acesso imediato. A instrução LD 30H faria com que o valor 30H fosse
copiado para o registrador R. Entretanto, há ocasiões em que não somente um byte
deve ser copiado, por exemplo LD 201040H. Nesse caso, como o valor é armazenado
diretamente na instrução, seria necessário aumentar o tamanho da instrução e isso não
é possível na maioria das arquiteturas de computador;
• Indireto : o campo de endereço aponta para uma posição de memória que contém o
endereço de memória do operando. Sua principal desvantagem é a necessidade de dois
acessos à memória. A vantagem em relação ao modo de endereçamento direto é o
aumento do espaço de endereçamento, que passa a ser igual 2n , onde n é o tamanho
da palavra na memória. Suponha que o computador tenha somente um byte para en-
dereçar a posição de memória, mas que essa posição de memória corresponda a uma
palavra com tamanho de 2 bytes. Um endereçamento na forma indireta, possibilitará
o endereçamento de 65536 posições de memória (2
16 ) e não mais 256 como no en-
dereçamento direto. Não é o caso da questão, onde tanto o tamanho permitido para
endereçamento na instrução e o tamanho da palavra de memória são iguais a um byte;
• Deslocamento : requer que uma instrução tenha dois campos de endereço, com pelo
menos um explícito. O valor de um dos campos é usado diretamente (valor = A). O
outro campo é baseado no código da operação, e especica um registrador cujo conteúdo
é adicionado à A, para produzir o endereço efetivo. Os três modos de endereçamento
por deslocamento são: relativo, via registrador-base e indexado ;
Página 5 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
armazenado o endereço 02H, que por sua vez, contém o valor desejado, 03H. Seguindo os
passos do programa, teremos:
Após o término do programa, a situação nal do bloco de memória será de acordo com a
Tabela 1.
A soma é 01H +07H +09H +04H +07H = 1CH , que, em decimal, é 28. Logo, a alternativa
correta é a letra (e).
Página 6 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(b). Registradores
Solução:
Uma thread é comumente denida como um uxo único de controle sequencial dentro de
um programa. O uso de threads visa reduzir o custo do gerenciamento de processos, que
consiste principalmente em:
• criação do processo;
Podemos dizer que as threads pertencentes ao mesmo processo utilizam os recursos alocados
no sistema operacional para esse processo, como:
• os objetos de sincronização.
• os registradores;
• a pilha de execução, que lhe dará poder para chamar métodos, passar parâmetros e
alocar variáveis locais;
• o contador de instrução (program counter), que é essencial para que o uxo de execução
prossiga.
É importante perceber que para que o acesso a esses recursos exclusivos ocorra, é necessário
o chaveamento de contexto entre as threads, ou seja, o estado dos elementos próprios citados
deverá ser armazenado e restaurado a cada troca de thread no uso do processador.
Página 7 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Dado o exposto, as alternativas (b), (c), (d) e (e) podem ser eliminadas, pois citam recursos
que não são compartilhados entre threads. A Figura 1 exemplica o compartilhamento das
threads dentro de um processo.
Figura 1: exemplicação de um processo com uma única thread e com múltiplas threads.
• permite sobrepor operações de cálculo com operações de I/O e, com isso, reduzir o
tempo de resposta;
Página 8 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). pode apresentar tuplas duplicadas, desde que não haja chaves candidatas denidas.
(b). em seus atributos ordenados da esquerda para a direita, de acordo com a denição.
(d). tem um índice físico para cada chave candidata, incluindo a chave primária.
Solução:
Conceitualmente, em um banco de dados relacional, as relações podem ser denidas como
um conjunto de tuplas. Uma tupla é uma sequência ordenada de atributos e representa,
usualmente, um objeto do mundo real e suas informações. Todas as tuplas em uma mesma
relação possuem o mesmo conjunto de atributos. Entretanto, em uma relação, elas devem
preservar o que é chamado de integridade existencial, que, basicamente, implica que tuplas
iguais (com todos os valores dos seus atributos iguais) não são permitidas. Caso contrário,
não temos uma relação.
A forma de garantir a integridade existencial é denir uma chave primária, que, obrigato-
riamente, deve ser não-nula e única em toda relação. Logicamente, sendo a chave primária
única, as tuplas duplicadas não serão permitidas e a relação estará garantida.
Deve car clara a diferença entre tabela e relação. Uma tabela nada mais é do que um
conjunto de linhas e colunas. Já as relações, que já foram denidas acima, são implemen-
tadas sicamente em tabelas, que, obviamente, devem atender às condições exigidas em uma
relação. Ou seja, nem toda tabela representa uma relação.
Na denição da primeira forma normal dada por Date, uma tabela está na primeira formal
normal se, e somente se, for isomórca à alguma relação. Isso quer dizer que, especicamente,
a tabela deve atender às cinco condições abaixo:
• todas as colunas são regulares, no sentido de não possuírem componentes ocultos como
identicadores de linhas, identicadores de colunas, identicadores de objetos ou times-
tamps ocultos. Veja nas Tabelas 2, 3 e 4 um exemplo de cenário em que a informação
contida em uma tabela que não está na 1FN é transportada para outras tabelas que
estão na 1FN.
Página 9 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
d. falsa, a relação é uma denição no nível conceitual. Os índices físicos são denidos no
nível físico e não inuenciam no conceito de relação. Geralmente, esses índices podem
ser livremente criados para qualquer conjunto de atributos, já a obrigação citada de
serem criados para cada chave candidata não existe e não faz nenhum sentido.
e. verdadeira, pois, por denição, uma tabela representa uma relação se, e somente se, a
tabela está na primeira forma normal.
Página 10 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(c). será substituída por uma variável de relação básica e uma derivada.
Solução:
O modelo entidade-relacionamento é um padrão para modelagem conceitual de banco de
dados. Na gura da questão, os objetos representados por retângulos são conjuntos de en-
tidades e os objetos representados por elipses são atributos.
Página 11 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Uma entidade é um objeto que pode ser identicado de forma unívoca a todos os out-
ros objetos. A entidade pode representar tanto algo concreto, como uma pessoa, ou algo
abstrato, como um empréstimo, por exemplo. Um conjunto de entidades reúne todas as
entidades de um mesmo tipo, ou seja, que possuem as mesmas propriedades: atributos.
Verica-se que, no primeiro modelo, existem duas entidades independentes com seus re-
spectivos atributos. A transformação realizada para se chegar ao segundo modelo conceitual
nada mais é do que um processo de generalização.
No modelo relacional, uma variável relacional, também conhecida como relvar, é uma
variável que representa uma relação. Para tornarmos a explicação bem simples, podemos
dizer que uma variável relacional básica representa uma tabela no SQL e uma variável rela-
cional derivada representa uma visão ou o resultado de uma consulta.
Funcionario(email, nome)
Usuario(email, nome, login)
UsuarioTabela(email, login)
Página 12 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Isso pode ser feito, já que, na generalização, foi criado um relacionamento de muitos-para-
um com a variável de relação Funcionario. Sendo assim, o campo e-mail será suciente
para representar o usuário na variável de relação Funcionario. Note que, dessa maneira, a
independência lógica ainda não está honrada, já que a variável de relação UsuarioTabela
não possui a informação do atributo nome.
Para garantirmos a independência lógica, precisamos criar uma variável relacional derivada
que chamaremos de UsuarioVisao ou simplesmente Usuario. No SQL, essa variável de relação
representará uma junção das tabelas geradas pelas variáveis de relação básica Funcionario
e UsuarioTabela e representará todos os usuários, mas, dessa vez, com o atributo nome
advindo da tabela que representa o conjunto de funcionários.
Página 13 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
TABELA CAMPOS
CLIENTE *CODIGO_C, CPF, NOME, CIDADE
PRODUTO *CODIGO_P, DESCRICAO, PRECO
VENDA *CODIGO_C, *CODIGO_P, CPF, DATA, QUANTIDADE
Há uma chave estrangeira de VENDA para CLIENTE com base nos campos CODIGO_C
e de VENDA para PRODUTO com base nos campos CODIGO_P. O campo CPF é chave
candidata para CLIENTE e também é armazenado na tabela VENDA. Os campos NOME
e DESCRICAO também são chaves candidatas de suas respectivas tabelas. Os campos
CIDADE, PRECO, DATA e QUANTIDADE admitem valores repetidos.
(a). CLIENTE satisfaz à segunda forma normal (2FN), mas não à terceira (3FN).
(b). PRODUTO satisfaz à segunda forma normal (2FN), mas não à terceira (3FN).
(c). VENDA satisfaz à segunda forma normal (2FN), mas não à terceira (3FN).
Solução:
Primeiramente, vamos denir o que é dependência funcional. Dizemos que B é funcional-
mente dependente de A (A → B) se, para cada valor de A, existe exatamente um atributo B.
Um exemplo prático é cidade ← estado, uma cidade A implicará em exatamente um estado
B correspondente. No caso, A é o determinante e B é o dependente.
Uma chave candidata é um atributo ou conjunto de atributos que é único dentre todos
os registros. Já a chave primária é uma chave escolhida entre as chaves candidatas para ser
o identicador principal da tabela.
Página 14 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Outra denição importante é a do atributo não-primo, que é um atributo que não ocorre
em nenhuma das chaves candidatas da tabela.
Sabemos que uma tabela está na segunda forma normal se ela está na primeira forma nor-
mal e não existe atributo não-primo na tabela que seja funcionalmente dependente de algum
subconjunto próprio de qualquer chave candidata. Melhor dizendo: todas as colunas que
não fazem parte de nenhuma chave candidata dependem de todas as colunas que compõem
qualquer chave candidata. Quando só há uma chave candidata (no caso a primeira) e ela
é composta por somente um atributo, automaticamente a tabela estará na segunda forma
normal se já tiver atendido às condições da primeira forma normal.
Sendo assim, já podemos notar que a tabela CLIENTE e a tabela PRODUTO estão na
segunda forma normal garantidamente. Já ao analisarmos a tabela VENDA poderíamos nos
enganar ao acharmos que pelo fato de CPF ser dependente funcionalmente de CODIGO_C,
estaríamos violando a condição exigida da segunda forma normal, já que CODIGO_C é um
subconjunto próprio da chave primária. Essa conclusão seria verdadeira se não fosse pelo
fato de {CPF,CODIGO_P} ser uma chave candidata, tornando o atributo CPF primo, ou
seja não não-primo. Concluímos, assim, que a tabela VENDA está na segunda forma normal.
Uma tabela está na terceira forma normal se qualquer atributo não-primo é não transi-
tivamente dependente de qualquer chave candidata da tabela. Ao analisarmos a tabela
CLIENTE, notamos que o atributo CIDADE é o único não-primo, sendo impossível, dessa
maneira, haver dependência funcional em que uma chave candidata não seja o atributo de-
terminante. Ou seja, todas as dependências funcionais são diretas a partir de qualquer chave
candidata e a tabela CLIENTE está na terceira forma normal. O único atributo não-primo
da tabela PRODUTO é PRECO. Portanto, seguindo o mesmo raciocínio anterior, concluí-
mos que PRODUTO está na terceira forma normal.
Logo, concluímos que todas as tabelas satisfazem à terceira forma normal e a alternativa a
ser marcada é a alternativa E.
Se continuássemos a analisar quais formas normais são atendidas pelas tabelas da questão,
chegaríamos à conclusão de que as tabelas CLIENTE e PRODUTO satisfazem à forma
normal de Boyce Codd (FNBC), ao contrário da tabela VENDA, que não satisfaz. Uma
tabela que não satisfaz a forma normal de Boyce Codd (FNBC) pode ser identicada com
as seguintes características:
Página 15 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). Para cada cidade, a média de preço de produtos vendidos a clientes da cidade com
valores acima de 100, se a média for menor que 200.
(b). Para cada cidade, a média de preço dos produtos vendidos a clientes da cidade
com valores entre 100 e 200.
(c). Para cada cidade, a quantidade de produtos vendidos com valores entre 100 e 200.
(d). Para cada cidade, a média de preço dos produtos vendidos a clientes da cidade
que compraram produtos de valores maiores do que 100 e cuja média de compra
é menor do que 200.
(e). Apenas a cidade cuja média de preço dos produtos vendidos é a mais alta dentre
as que tiveram média menor do que 200 e produtos vendidos com valores acima
de 100.
Solução:
A primeira cláusula WHERE (C.CODIGO_C = V.CODIGO_C) irá implementar uma
junção entre as tabelas CLIENTE e VENDA. Essa junção, caso fosse considerada sozinha,
iria listar registros em que cada um iria representar uma venda de produto, mas com infor-
mações adicionais do cliente: NOME e CIDADE.
Entretanto, ao se usar a cláusula P.P RECO > 100, nem todos os produtos vendidos serão
listados. Serão listados somente aqueles cujo valor preço unitário for superior a 100.
A cláusula GROUP BY C.CIDADE irá agrupar as vendas dos produtos por cidade e
reunirá informações, de acordo com AV G(P.P RECO), do preço médio unitário de cada
produto, dentro, é claro, dos produtos que já possuem valor unitário maior do que 100. Ex-
emplicando: caso os clientes de uma determinada cidade X tenham comprado exatamente
6 produtos com os preços 1000, 500, 120, 120, 100 e 50, somente serão considerados os pro-
dutos com valor maior do que 100, que são os de 1000, 500, 120 e 120. A média unitária
Página 16 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Já a última cláusula HAVING AV G(P.P RECO) < 200 irá permitir que somente as cidades
cujo preço médio dos produtos adquiridos seja menor que 200. A cidade X anteriormente
citada não irá entrar na relação nal, já que a média dos preços unitários de seus produtos
adquiridos é maior do que 200 (435).
Podemos concluir que a alternativa correta é a letra A. A letra D pode confundir um pouco,
mas ela está errada, pois o que está sendo considerado é a média do preço do produto
HAVING AV G(P.P RECO) < 200 e não a média de compra.
Página 17 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). 300
(b). 750
(c). 1500
(d). 3000
(e). 4500
Solução:
Note que um cliente não poderá comprar o mesmo produto por mais de 15 vezes em um
intervalo de 30 dias, já que o intervalo mínimo entre as compras de um mesmo produto será
de 2 dias.
No caso máximo, qualquer cliente poderá realizar a compra de todos os 10 produtos, mas
não poderá comprar um mesmo produto por mais de 15 vezes dentro do intervalo de 30 dias.
Ou seja, um cliente poderá representar, no máximo, 150 (15x10) registros na tabela VENDA.
As cidades que possuem mais clientes, possuem cinco clientes. Logo, no máximo, essas
cidades poderão conter 750 (5x15x10) registros na tabela VENDA. Concluímos que a re-
sposta correta é a alternativa B.
A cidade que possui quatro clientes, poderá, no máximo, ser associada a 600 registros da
tabela VENDA. Podemos também calcular a quantidade máxima de registros na tabela
VENDA da seguinte maneira: 3x5x15x10 + 2x4x15x10 = 3450. Tal cálculo seria interes-
sante se quiséssemos, por exemplo, dimensionar o tamanho máximo do banco de dados.
Página 18 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). É conveniente criar uma tabela para a dimensão DATA, para evitar cálculos com
datas nas consultas SQL e facilitar as consultas por intervalos semanais, mensais,
anuais, e similares.
(b). Nenhum atributo da tabela PRODUTO, além da chave primária, deverá constar
da tabela fato.
(c). Pelas especicações, CIDADE deve ser, necessariamente, uma dimensão do mod-
elo.
Solução:
Um datamart pode ser conceituado como um subconjunto dos dados de uma organização
que são direcionados a propósitos bem especícos ou a pequenos grupos de pessoas que os
utilizam como auxílio em tomadas de decisão.
É preciso car claro que as diferenças entre datamart e data warehouse são apenas com
relação ao tamanho e ao escopo do problema a ser resolvido. Portanto, as denições dos
problemas e os requisitos de dados são essencialmente os mesmos para ambos. Enquanto
um datamart trata de um problema departamental ou local, um data warehouse envolve o
esforço de toda a empresa para que o suporte a decisões atue em todos os níveis da orga-
nização. Sabendo-se as diferenças entre escopo e tamanho, o desenvolvimento de um data
warehouse requer tempo, dados e investimentos gerenciais muito maiores que de um data-
mart.
Vamos apresentar, agora, alguns conceitos importantes em relação a data warehouse. Den-
imos fato como uma coleção de itens de dados composta de medidas. Esse valor numérico é
denominado de medida. Por exemplo, caso se deseje analisar se as vendas em um determi-
nado estado estão caindo, podemos denir um fato representando as vendas totais realizadas
nas cidades de um determinado estado e analisar o resultado de suas medidas ao longo do
tempo.
Os fatos podem ser aditivos, semi-aditivos e não-aditivos. Um fato é aditivo quando ele
pode ser agregado em todas as dimensões. Por exemplo, VENDAS pode ser agregado em
Página 19 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Uma dimensão é uma coleção de atributos textuais que descrevem os objetos da orga-
nização, e que estão altamente relacionados uns com os outros. Os atributos dimensionais
são a fonte para as restrições mais interessantes nas consultas a um DW e são virtualmente
a fonte para os cabeçalhos de colunas do conjunto de respostas em SQL. Por exemplo, pode-
mos adotar CIDADE como uma dimensão. Para isso, criaríamos uma tabela dimensão em
que cada registro representa uma cidade e descreve outros detalhes da cidade através de seus
atributos, como o estado ao qual ela pertence, por exemplo.
Um dos esquemas mais utilizados para representar um data warehouse é o esquema es-
trela. Esse esquema é chamado de estrela por apresentar a tabela de fatos dominante no
centro do esquema e as tabelas de dimensões nas extremidades. O esquema estrela pode
ser estendido de maneira que cada uma das pontas da estrela passa a ser o centro de outras
estrelas. Por exemplo, a dimensão CIDADE poderia ser decomposta de maneira que haja
outra tabela representando os estados e outras informações relacionadas a ele. Essa decom-
posição seria basicamente um processo de normalização.
A alternativa (A) está correta. Ao criarmos uma tabela dimensão DATA, podemos criar
um fato que represente a soma das vendas em cada um dos dias ou em cada uma das se-
manas, meses ou anos. Como os valores da tabela já estão calculados, uma consulta que
precise saber a quantidade de vendas em um determinado período de tempo terá um custo
muito menor.
O mesmo argumento dado anteriormente serve para as alternativas (C) e (D). Há algumas
modelagens que são mais interessantes que outras, dependendo do objetivo que se deseja
alcançar, mas não há nenhuma restrição como as indicadas nas alternativas (C) e (D) para
a determinação de um modelo de data warehouse.
Página 20 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). ao assinar um newsfeed, o usuário passa a receber emails periódicos com as notícias
fornecidas pelo mesmo.
Solução:
(A) ERRADA
As informações publicadas via RSS e ATOM podem ser acessadas basicamente via leitores de
feeds, também conhecidos como agregadores. Os agregadores são programas que permitem
a visualização de vários feeds em um único local, organizados como o usuário preferir. Exis-
tem agregadores para Linux, Windows e Mac OS, agregadores em páginas de Internet, assim
como agregadores nos próprios browsers. Exemplos típicos de programas leitores de RSS
são Google Reader, RSS Reader e Bloglines. No linguajar das tecnologias RSS e ATOM, os
os usuários assinam um feed de um determinado site e a partir daí o agregador começa a
receber as informações distribuídas pelo site. Mais precisamente, é o agregador que se en-
carrega de vericar periodicamente se existe alguma nova informação disponível nas fontes.
Perceba, portanto, que ao assinar um newsfeed o usuário não passa a receber emails com as
notícias, como sugere este alternativa. Ou seja, esta não é a resposta para esta questão.
(B) ERRADA
O ATOM (que não é uma sigla) foi criado por um conjunto de desenvolvedores inde-
pendentes, mas atualmente o projeto recebe apoio de grandes corporações da Internet.
Para saber mais sobre o ATOM e suas características, o candidato pode visitar o site o-
cial do projeto em http://www.atomenabled.org. O RSS foi criado pela Netscape, mas
atualmente sua especicação é mantida pelo RSS Advisory Board, cujo site ocial é o
http://www.rssboard.org. Como o RSS não é um padrão IETF, concluímos que esta al-
ternativa está errada.
Tanto o RSS quanto o ATOM são estruturados em XML, e não em XHTML e HTML
como apresentam as alternativas.
Página 21 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(E) CORRETA
<html lang="en">
<head>
<link rel="alternate" type="application/atom+xml"
title="Main Atom" href="/xml/index.atom">
<link rel="alternate" type="application/atom+xml"
title="Recent comments" href="/xml/comments.atom">
</head>
<body>
...
</body>
</html>
Página 22 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
II - Será preciso obter uma autorização de funcionamento (FA) de uma autoridade certi-
cadora (CA).
III - Se um cliente não possuir uma identidade digital, tal como um e-CPF ou e-CNPJ,
somente serão criptografados os dados enviados do cliente para o servidor; nesta situ-
ação, o servidor não deve exibir dados sigilosos para o cliente, pelo fato de os mesmos
estarem sujeitos à interceptação; esta é a principal razão pela qual alguns serviços na
Internet só são disponibilizados para clientes que possuem identidade digital.
IV - Um mesmo endereço de Internet poderá ser usado para conexões HTTP e HTTPS,
desde que sejam utilizadas portas diferentes para cada um.
(a). I e II
(b). I e III
(c). I e IV
(d). II e III
(e). III e IV
Solução:
O HTTPS (HyperText Transfer Protocol Secure) é uma implementação do protocolo HTTP
sobre uma camada adicional SSL (Security Sockets Layer) ou TLS (Transport Layer Se-
curity), cujo objetivo é permitir que os dados sejam transmitidos através de uma conexão
criptografada e que se verique a autenticidade das partes comunicantes por meio de certi-
cados digitais. Portanto, a alternativa I é correta, pois o uso de certicados digitais é parte
da implementação do HTTPS.
Um exemplo típico da utilização de HTTPS são as páginas de login dos webmails, nas
quais o objetivo principal é proteger os dados de autenticação (login e senha) dos usuários,
que serão todos transmitidos de forma criptografada. Nesse caso, o HTTPS também garante
a autenticidade do servidor que, no processo de estabelecimento da comunicação, apresenta
ao cliente um certicado digital que atesta sua identidade.
Repare que no exemplo dado, um usuário A pode se passar por um usuário B, bastando
para isso que A conheça a senha de B. Ou seja, não há autenticação por parte do cliente. Na
verdade, a maioria das aplicações que utilizam HTTPS, como webmails (Gmail, Hotmail,
Yahoo etc) e comércio eletrônico (Submarino, Amazon, Ebay etc), ainda não se preocupam
com a autenticação dos clientes. No entanto, a autenticação dos clientes vem se tornando
Página 23 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
É importante ressaltar que, mesmo que apenas uma das partes (servidor ou cliente) se
autentique, a comunicação será criptografada tanto no sentido cliente/servidor quanto no
sentido servidor/cliente, já que toda a comunicação acontece pela mesma conexão TCP.
Portanto, a alternativa III é incorreta.
A armativa II trata da estruturação de uma PKI (Public Key Infrastructure), que pode ser
denida como um conjunto de hardware, software, pessoas, políticas e procedimentos para
criar, gerenciar, armazenar, distribuir e revogar certicados digitais. No Brasil, esse papel é
desempenhado pelo ICP Brasil (Infraestrutura de Chaves Públicas Brasileiras).
Em uma PKI, dois dos elementos mais importantes são as Autoridades Certicadoras (ACs)
e as Autoridades de Registro (ARs), cujas denições no glossário do ICP Brasil são:
Página 24 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
da terminologia básica. Ao menos no glossário do ICP Brasil, não existe nenhuma referência
as tais FAs (autorização de funcionamento), presente na armativa II. Portanto, pode-se
considerar a alternativa II errada.
Página 25 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(e). <prossão>Professor</prossão>
Solução:
XML é o acrônimo para Extensible Markup Language. Assim como o HTML (HyperText
Markup Language), o XML é derivado do padrão ISO 8879, mais conhecido como SGML
(Standard Generalized Markup Language). A grande diferença entre HTML e XML é que o
HTML dene a apresentação dos dados, enquanto o XML dene a estruturação dos dados e
o que eles representam. Em outras palavras, o XML é utilizado para descrever o conteúdo
do documento.
Assim como o HTML, o XML faz uso de tags (palavras encapsuladas por sinais '<' e '>')
e atributos (denidos com name=value). No HTML, as tags e atributos especicam têm
funções denidas. A tag <b>, por exemplo, indica que texto deverá ser exibido em negrito,
enquanto a tag <i> indica que o texto deve ser exibido em itálico. Já no XML, as tags
são utilizadas apenas para delimitar os trechos de dados. Ou seja, uma tag <p>, que no
HTML indicaria um parágrafo, no XML pode indicar um preço, um parâmetro, uma pessoa
ou qualquer outra informação.
Outro ponto fundamental na diferença entre o HTML e o XML é que no HTML existe
um conjunto nito de tags, enquanto no XML, o conjunto de tags utilizadas em um doc-
umento pode ser denido pelo próprio usuário da linguagem, devendo as tags obedecerem
um conjunto de regras de nomenclatura.
• os nomes dos elementos não podem começar com números ou caracteres de pontuação;
• os nomes dos elementos não podem começar com as sequências xml, XML, Xml e outras
análogas;
Pelo o exposto, a alternativa (A) é inválida, pois o nome do elemento possui espaços. A
alternativa (C) também apresenta uma sintaxe inválida, pois o valor do atributo numero
não foi colocado entre aspas, que são necessárias nesse caso. A alternativa (D), por sua
Página 26 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
vez, é incorreta, pois começa com o caractere *, considerado inválido em qualquer posição
em nome de tag. A alternativa (E) também é inválida, pois o nome do elemento está no
formato HTML encoded. O nome deveria ser simplesmente <prossão>, sem a necessidade
de substituir o ã pela sequência ã. A única alternativa correta é, portanto, a letra
(B).
Página 27 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
I Uma folha de estilo CSS é um documento XML, em conformidade com o esquema XML
xsd:css mantido pelo consórcio W3C, o que constitui uma barreira inicial de adoção
para organizações onde o layout e a programação visual dos sites e portais são mantidas
por prossionais de criação ao invés de desenvolvedores.
II O uso de folhas de estilo CSS externas, em alternativa à marcação com atributos nos
tags HTML e XHTML, proporciona uma redução signicativa da exigência de banda,
melhorando a experiência do usuário e demandando menos recursos dos servidores do
site.
III É possível especicar folhas de estilos diferentes para diferentes mídias em que a página
será utilizada, o que permite, por exemplo, que uma mesma página se apresente de
forma diferente quando visualizada no browser e impressa.
IV O termo Cascading, que, em Português, pode ser traduzido como Em Cascata, reete
o fato de que, durante a aplicação de estilos a um documento, os tags que satisfazem a
mais de um seletor receberão apenas os atributos de estilo do seletor especicado por
último, ignorando todos os atributos de seletores anteriores.
(a). I e II
(b). I e III
(c). II e III
(d). II e IV
(e). III e IV
Solução:
O CSS é uma linguagem utilizada para descrever a apresentação (aparência e formatação)
de um documento escrito em linguagens de marcação. O CSS é comumente utilizado para
estilizar páginas Web escritas em HTML, mas ele pode ser utilizado para formatar qualquer
tipo de documento XML. O CSS foi primariamente desenvolvido para permitir a separação
entre o conteúdo e elementos de apresentação de um documento, como cores, fontes e layouts.
Essa separação permite, por exemplo:
• reutilizar o código de apresentação, uma vez que vários documentos podem compartil-
har as denições feitas em um único CSS.
Página 28 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
O CSS permite também que um mesmo documento seja apresentado em diferentes estilos de
acordo com o método de renderização utilizado. Nesse contexto, o método de renderização é
basicamente denido de acordo com o dispositivo em que o documento será apresentado, que
pode ser uma tela de computador (on-screen ), em uma impressora (in-print ) e até mesmo
em um dispositivo Braille. Essa exibilidade do CSS tem ganhado enorme importância a
medida que os dispositivos como hand-helds e celulares tem sido cada vez mais utilizados
para acesso a Internet. Portanto, a alternativa III está correta.
A utilização de arquivos CSS também pode contribuir para à economia de banda, a medida
que os arquivos CSS podem ser armazenados no cache dos browsers. Ao serem armazena-
dos em cache, a quantidade de requisições HTTP necessárias nas próximas vezes em que
o site for acessado será menor. Em alguns casos, pode-se utilizar também o código CSS
inline, ou seja, dentro da própria página HTML, de modo que não seja necessária uma req-
uisição HTTP adicional para obter um arquivo CSS externo. Essa técnica é especialmente
para diminuir o tempo de resposta de páginas que são acessadas uma vez (ou muito poucas
vezes) dentro de uma sessão. Exemplos típicos de páginas com essa característica são as
páginas iniciais de sites como Yahoo! e Google. Com isso, a alternativa II está correta. O
endereço http://developer.yahoo.com/performance/rules.html apresenta essas e mais algu-
mas dicas para aumentar o desempenho de aplicações web.
A alternativa IV refere-se ao efeito cascata do CSS, que pode ser denido como um con-
junto de regras de prioridade para aplicação da regra de estilo aos elementos do documento.
Para determinar a prioridade são considerados diversos fatores, como o tipo de folha de
estilo, o local físico da folha de estilo no seu todo, o local físico da regra de estilo na folha
de estilo e a especicidade da regra de estilo. A ordem crescente de prioridade para o efeito
cascata é:
Assim, uma declaração de estilo com !important denido pelo usuário prevalece sobre todas
as demais, pois é a de mais alta prioridade. Entre as folhas de estilo denidas pelo desen-
volvedor do site, os estilos inline (dentro de um elemento HTML) tem a prioridade mais
elevada, isto é, prevalecerá sobre a folha de estilo denida na seção head, e, esta prevalecerá
sobre uma folha de estilo externa. Portanto, a alternativa IV é errada pois dene de forma
errada as regras de priorização do CSS.
Página 29 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
(A) ERRADA
(B) CORRETA
(C) ERRADA
Alocar mais recursos ao projeto não é implicação necessária para reduzir o prazo de um
projeto. Dependendo da técnica de comprensão de cronograma utilizada, há a necessidade
de alocar mais recursos para as atividades relacionadas ao caminho crítico do projeto, mas
para isso tem que ser analisado o impacto nanceiro no projeto.
Página 30 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(D) ERRADA
(E) ERRADA
Página 31 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
A área de gerenciamento do escopo compreende os processos necessários para assegurar que
o projeto inclua todo o trabalho necessário, e somente ele, para nalizar o projeto com
sucesso. A gerência de escopo tem como principal preocupação denir o que está ou não
incluído no projeto. A Estrutura Analítica do Projeto (EAP), elaborada pelo processo Criar
EAP, é uma das principais saídas da gerência de escopo.
(A) ERRADA
As estimativas de prazo são elaboradas pela área de gerenciamento de tempo com base
na estimativa de recursos necessários, sequenciamento e duração das atividades. O processo
responsável por realizar as estimativas de prazo é o Desenvolvimento do cronograma. Exis-
tem diversas ferramentas e técnicas para realizar o desenvolvimento do cronograma, como:
análise de rede do cronograma, método do caminha crítico, compressão do cronograma,
nivelamento de recursos, software de gerenciamento de projetos (MS Project, Primavera),
etc. As estimativas de prazo são descritas no Plano de Gerenciamento do Cronograma e não
na EAP.
(B) ERRADA
(C) CORRETA
Uma entrega é qualquer produto ou serviço gerado pelo projeto. Segundo PMBOK, a
EAP é uma decomposição hierárquica orientada a entrega de trabalho a ser executado pela
equipe de projeto, para atingir os objetivos do projeto e criar as entregas necessárias. A
EAP subdivide o trabalho a ser realizado no projeto em partes menores, em que cada nível
Página 32 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
descendente representa uma denição mais detalhada do trabalho do projeto. O nível mais
baixo é conhecido como pacote de trabalho. É o ponto no qual o custo e o cronograma do
trabalho podem ser estimados de forma conável. Enm, todo o trabalho a ser executado
no projeto deve estar na EAP, e seus componentes auxiliam as partes interessadas (stake-
holders) a visualizar as entregas (internas ou externas).
(D) ERRADA
A alocação dos recursos às tarefas denidas na EAP é realiza pela área de gerenciamento
de recursos humanos e compreende a alocação propriamente dita da equipe ao projeto. Os
papéis e responsabilidades denidos serão destinados a uma pessoa ou grupo de pessoas. As
formas de alocação são: negociação, alocação prévia e contratação. A alocação de recursos
é descrita no Plano de Gerenciamento de Pessoal e não na EAP.
(E) ERRADA
Página 33 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
A técnica de Gerenciamento de Valor Agregado GVA (em Inglês, Earned Value Manage-
ment EVM ) se baseia nas métricas
Solução:
A GVA é uma metodologia de gerenciamento usada para integrar o escopo, o cronograma e
os recursos de tal forma que se permita medir, objetivamente, o desempenho e o progresso
do projeto. Com essa metodologia é possível prever o desempenho do projeto com base no
desempenho passado.
Para utilizar a GVA, é importante seguir alguns processos essenciais a qualquer projeto,
como: denição e elaboração do escopo do projeto, incluindo a Estrutura Analítica do Pro-
jeto (EAP); elaboração do cronograma a partir da EAP; estimativa de custo, partindo da
alocação dos recursos às atividades do projeto; e monitoramento do projeto.
Uma vez que esses processos tenham sido realizados, é possível realizar estimativas baseando-
se nos princípios básicos da GVA:
• BCWS (Budgeted Cost for Work Scheduled ou Custo Orçado para Trabalho Planejado)
é o montante nanceiro que o projeto, de acordo com o planejamento, deveria ter
consumido até um dado ponto do cronograma. O BCWS é conhecido também como
Valor Planejado (PV);
• BCWP (Budgeted Cost for Work Performed ou Custo Orçado para Trabalho Realizado)
reete o valor do montante de trabalho que foi efetivamente realizado até uma data
especíca. O BCWP é conhecido também como Valor Agregado (VA);
• ACWP (Actual Cost of Work Performed ou Custo Real do Trabalho Realizado) rep-
resenta o custo efetivo do trabalho realizado até o momento. O ACWP é conhecido
também como Custo Real (CR).
Página 34 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Conforme explicado anteriormente, a GVA se baseia nas métricas de Custo Orçado do Tra-
balho Previsto, Custo Orçado do Trabalho Realizado e Custo Real do Trabalho Realizado.
Logo, a alternativa correta é a letra d.
Página 35 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Assumindo que o sistema permite um número ilimitado de tentativas de acesso com senhas
erradas, em quantas tentativas, no mínimo, é garantido que um software, capaz de gerar to-
das as senhas válidas para um determinado login e tentar se autenticar no sistema, determine
a senha do usuário cujo login é CID?
(a). 1.669.214
(b). 1.669.544
(c). 1.669.616
(d). 1.679.616
(e). 1.680.916
Solução:
Uma das melhores formas de se resolver esse tipo de questão é partir de um determinado
conjunto de elementos e seguir restringindo-o, passo a passo, até obter o subconjunto pedido
na questão. A solução proposta para esta questão segue justamente essa metodologia.
De acordo com o enunciado, cada caractere pode assumir 36 valores distintos. Portanto,
o conjunto formado por sequências distintas de 4 caracteres tem 1.679.616 (36*36*36*36)
elementos. Perceba que nem todos esses elementos são senhas válidas. Temos que descobrir
justamente quantos elementos são senhas válidas.
O primeiro passo é subtrair desse conjunto o subconjunto formado pelas sequências for-
madas por apenas dígitos (0 a 9), anal de contas uma senha válida tem que ter pelo menos
1 caractere alfabético. Fazendo a primeira subtração temos o subconjunto formado pelas
sequências de 4 caracteres onde pelo menos 1 desses é alfabético (1.679.616 - 10*10*10*10
= 1.669.616). Esse subconjunto ainda não representa todas as senhas válidas.
Para que se garanta que um software determine a senha do usuário CID, esse deve tentar
no mínimo todas as possibilidades de senhas válidas, ou seja, 1.669.544 sequências. Logo, a
alternativa B é a correta.
Página 36 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Acrescentando ao sistema a restrição de que a senha não deve conter caracteres repetidos,
quantas senhas válidas diferentes são possíveis para o usuário cujo login é NINA?
(a). 1.021.020
(b). 1.215.440
(c). 1.217.440
(d). 1.408.680
(e). 1.413.720
Solução:
Uma das melhores formas de se resolver esse tipo de questão é partir de um determinado
conjunto de elementos e seguir restringindo-o, passo a passo, até obter o subconjunto pedido
na questão. A solução proposta para esta questão segue justamente essa metodologia.
De acordo com o enunciado, cada caractere pode assumir 36 valores distintos. Portanto, o
conjunto formado por sequências distintas de 4 caracteres diferentes tem 1.413.720 (36*35*34*33)
elementos. Perceba que nem todos esses elementos são senhas válidas. Temos que descobrir
justamente quantos elementos são senhas válidas.
O primeiro passo é entender que a única sequência de 4 caracteres que contém o login
NINA é a própria sequência NINA. Como há 2 Ns nessa sequência, ela não pertence ao
conjunto de 4 caracteres diferentes. Enm, essa restrição já está sendo considerada.
O segundo passo é subtrair desse conjunto o subconjunto formado por sequências distin-
tas formadas por apenas dígitos (0 a 9). É importante perceber que esses dígitos tem que
ser diferentes, já que estão no conjunto de sequências de 4 caracteres diferentes. Fazendo essa
subtração temos o subconjunto formado por todas as senhas válidas (1.413.720 - 10*9*8*7
= 1.408.680). Logo, a alternativa D é a correta.
Página 37 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
II - Para tornar o processo gerenciável, é recomendado que sejam rastreadas apenas mu-
danças que possuam impacto signicativo no custo ou nos prazos do projeto e que não
sejam rejeitadas em primeira análise.
(b). I e III.
(c). I e IV.
(d). II e III.
Solução:
O controle de mudanças ou controle integrado de mudanças é um dos processos da área de
gerenciamento de integração. Essa área compreende os processos necessários para garan-
tir a integração efetiva entre os processos das áreas de gerenciamento visando os objetivos
do projeto. A integração das áreas, por exemplo, consiste em escolher sobre quais pontos
concentrar recursos e esforço em quais dias especícos, antecipando possíveis problemas,
tratando-os antes de se tornarem críticos e coordenando o trabalho visando o bem geral do
projeto.
Página 38 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
III Todas as mudanças solicitadas e documentas devem ser aceitas ou rejeitadas por uma
autoridade dentro da equipe de gerenciamento de projetos ou por uma organização ex-
terna que represente o patrocinador ou cliente. O sistema de controle de mudanças
muitas vezes inclui um comitê de controle de mudanças, responsável pela aprovação ou
rejeição das mudanças solicitadas. As funções e responsabilidades desses comitês são
denidas claramente nos procedimentos de controle de conguração e de controle de
mudanças e são acordadas com o patrocinador, com o cliente e com outras partes inter-
essadas. Ou seja, a avaliação e aprovação das mudanças não dependem exclusivamente
do gerente de projetos, mas de um comitê. Logo, armação falsa;
Página 39 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). V, V, V, V, V
(b). V, F, V, F, F
(c). F, F, V, F, F
(d). F, V, F, V, F
(e). F, F, V, V, V
Solução:
As Tabelas 5, 6, 7, 8 e 9 são as tabelas verdade para as operações utilizadas na proposição
da questão.
A ¬A
V F
F V
A B A→B
V V V
V F F
F V V
F F V
P Q P∨Q
V V V
V F V
F V V
F F F
Tabela 7: Ou (∨).
Página 40 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
A B A∧B
V V V
V F F
F V F
F F F
Tabela 8: E (∧).
P Q P↔Q
V V V
V F F
F V F
F F V
(A)
((V ∨ V ) → (V ∧ V )) ↔ (¬V )
((V ) → (V )) ↔ (F )
(V ) ↔ (F )
F
(B)
((V ∨ F ) → (V ∧ F )) ↔ (¬F )
((V ) → (F )) ↔ (V )
(F ) ↔ (V )
F
(C)
((F ∨ F ) → (V ∧ F )) ↔ (¬F )
((F ) → (F )) ↔ (V )
(V ) ↔ (V )
V
(D)
((F ∨ V ) → (F ∧ V )) ↔ (¬F )
((V ) → (F )) ↔ (V )
(F ) ↔ (V )
F
(E)
((F ∨ F ) → (V ∧ V )) ↔ (¬V )
((F ) → (V )) ↔ (F )
(V ) ↔ (F )
F
Página 41 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 42 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(b). I e III
(c). II e III
(d). II e IV
(e). III e IV
Solução:
Para facilitar, vamos representar as assertivas por letras:
i X → ¬Y ;
ii Y ∨ Z;
iii W → X;
iv ¬Z ;
v ¬U .
Agora vamos começar a analisar as proposições e tentar achar soluções que respondam a
validade das assertivas I, II, III e IV.
Na Proposição iv, sabemos que a senha de Beatriz não foi descoberta. Já na Proposição
ii, podemos concluir que Ana fez um pedido, pois um dos valores Y e Z deveriam assumir
valor verdadeiro e como temos certeza que Z é falso, concluímos que Y assume verdadeiro.
Página 43 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Analisando a Proposição i, temos que X deve implicar um valor falso (¬Y ). Da tabela
verdade da operação lógica se então, podemos concluir que a única maneira de tornar a
proposição válida é que X assuma valor falso (F → F ). Concluímos, então, ¬X , ou seja,
Ana não sabe que Beatriz tem acesso ao sistema de almoxarifado. A assertiva II é falsa.
Analisando a Proposição iii, temos que o valor de W deve ser falso para tornar a proposição
válida, já que X é falso como vimos anteriormente. Logo, Carlos não conversou com Ana.
A assertiva III é verdadeira.
A alternava a ser marcada é a letra (B), já que as únicas assertivas verdadeiras são: I e
III.
Página 44 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
O enunciado pode ser modicado para que tenha o mesmo signicado da seguinte maneira:
Para que o projeto seja bem-sucedido é necessário que pelo menos uma das seguintes as-
sertivas se torne verdadeira: o processo de desenvolvimento é o Processo Unicado ou a
linguagem utilizada é Java..
Quando utilizamos a palavra necessário, estamos dizendo que para que o projeto seja bem-
sucedido, obrigatoriamente a condição necessária deve ser atendida. Entretanto, não estamos
dizendo que, caso a condição seja atendida (Processo Unicado ou Java), é suciente para
que o projeto seja bem-sucedido. Para representar isso, devemos utilizar o se-então.
No caso do uso do OU, devemos estar bem atentos. Pois, em muitos casos, em nossa
linguagem natural, o uso do OU pode representar um Ou-Exclusivo da Lógica de Primeira
Ordem. Um exemplo: hoje à noite, eu vou para casa ou para o trabalho. Claramente, no
exemplo, somente uma das assertivas pode ser verdadeira: Eu vou para casa hoje à noite
ou vou para o trabalho hoje à noite. Já no caso do enunciado da questão, encontramos o
uso do OU menos corriqueiro, sendo utilizado duas vezes, reforçando o entendimento de que
pelo menos uma das assertivas envolvidas deva ser verdadeira.
Dado o exposto acima, podemos concluir que a alternativa (E) é alternativa que corre-
sponde ao signicado da frase. Entretanto, a ordem é um pouco diferente e Sp representa
que o projeto será bem-sucedido. Isso ocorre porque a condição necessária é o segundo op-
erador da operação se-então e a consequência é o primeiro.
Página 45 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
I A norma ISO 27001 estabelece uma abordagem do tipo PDCA (Plan, Do, Check, Act)
para a denição e manutenção do ISMS.
III Um dos controles listados na norma ISO 27001 preconiza que a organização deve manter
contato com grupos especiais de interesse ou outros fóruns e associações prossionais
especializados em segurança.
(a). I e II
(b). I e III
(c). I e IV
(d). II e III
(e). II e IV
Solução:
A norma ISO 27001 especica um conjunto de requisitos para o estabelecimento, implan-
tação, monitoração, revisão, manutenção e melhoria de um Sistema de Gestão de Segurança
de Informação, ou simplesmente, SGSI. Um SGSI pode também ser denido como um frame-
work de políticas, procedimentos e controles de várias naturezas (físicos, lógicos, legais etc)
que, por sua vez, fazem parte do processo de gerenciamento de riscos da organização como
um todo.
Como todo sistema de gestão, o SGSI também é descrito em termos de processos, os quais
são administrados por meio da metodologia PDCA (Plan-Do-Check-Act). Portanto, a al-
ternativa I está correta.
Em última instância, o PDCA tem como objetivo principal garantir a melhoria contínua
da gestão da segurança da informação e minimizar os riscos associados à segurança da in-
formação. Pode se dizer que a armativa III é correta, tendo em vista que o contato com
grupos especiais de interesse é uma forma de monitorar e melhorar o SGSI.
Outro aspecto interessante da norma ISO 27001 é a sua aplicabilidade para todos os tipos de
Página 46 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
organizações, tendo em vista o seu caractere genérico. Comumente a ISO 27001 é denida
como um conjunto de melhores práticas para gerenciamento de segurança da informação, o
que não é errado, desde que se ressalte que ela trabalha em nível de processos, e não nos
níveis mais técnicos. Portanto, a alternativa IV é errada, pois dene a norma em questão
de maneira muito especíca e técnica.
Na norma, por exemplo, você não irá encontrar as melhores práticas para implementação de
segurança física para CPDs. No entanto, a norma tem em sua lista de controles um referente
a Segurança física e do ambiente. O conjunto de controles que são tratados pela ISO 27001
engloba os mostrados a seguir, cabendo a cada organização identicar a relevância de cada
um deles para o seu negócio.
• política de segurança;
• segurança organizacional;
• gestão de ativos;
• controle de acesso;
• continuidade do negócio;
• conformidade.
Por m, vale lembrar que a norma ISO 27001 pertence à série (ou família) ISO 27000, que
compreende normas relacionadas à Segurança da Informação publicadas pela ISO. A série
27000 está para a Segurança da Informação assim como a série ISO 9000 e a série ISO
14000 estão, respectivamente, para a Qualidade e para a Proteção Ambiental. Algumas das
normas que compõe a família 27000, além da 27001, são:
Página 47 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
Os três princípios fundamentais da segurança da informação são: condencialidade, integri-
dade e disponibilidade. Portanto, a resposta da questão é a alternativa C.
Para conceituar cada um desses princípios, vamos utilizar o texto da seção 1 da Cartilha
de Segurança do CERT.BR (Centro de Estudos, Respostas e Tratamento de Incidentes de
Segurança no Brasil), uma entidade ligada ao CGI (Comitê Gestor de Internet no Brasil).
De acordo com a cartilha, temos o seguinte:
Um computador (ou sistema computacional) é dito seguro se este atende a três requisitos
básicos relacionados aos recursos que o compõem: condencialidade, integridade e disponi-
bilidade.
A condencialidade diz que a informação só está disponível para aqueles devidamente au-
torizados; a integridade diz que a informação não é destruída ou corrompida e o sistema tem
um desempenho correto; e a disponibilidade diz que os serviços/recursos do sistema estão
disponíveis sempre que forem necessários.
• integridade: alguém obtém acesso não autorizado ao seu computador e altera infor-
mações da sua declaração de Imposto de Renda, momentos antes de você enviá-la à
Receita Federal;
Página 48 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
I - Um portal em geral utiliza uma instância de banco de dados para armazenar infor-
mações especícas do portal, como as personalizações dos usuários, índices para busca,
regras de autorização de acesso ao conteúdo e, possivelmente, o próprio conteúdo.
III - Um portal corporativo B2E (Business-to-Employees) pode ser utilizado para prover,
além do conteúdo especíco de interesse dos funcionários, recursos de integração com
ferramentas de data warehouse e BI (Business Intelligence).
Solução:
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.
Portanto, pode-se dizer que as armativas I e IV são corretas. Com relação as alternativas II
e III, para entender porque elas também podem ser consideradas corretas, é preciso conhecer
o signicado dos termos das siglas B2B, B2G, B2E e outras.
Página 49 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Nesse ponto da resolução da questão, você deve estar pensando: mais um monte de siglas
para eu decorar! . E é exatamente isso. A indústria de TI permanece abusando do uso de
siglas para representar conceitos que, após apresentados, são familiares aos leitores, sejam
técnicos ou não. Portanto, ca mais uma vez o recado. Fique atento às siglas e seus
signicados, pois elas vem sendo cobradas sistematicamente nos concursos!
Página 50 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). decorator.
(b). yweight.
(c). prototype.
(d). singleton.
(e). builder.
Solução:
A Análise Orientada a Objetos identica e dene classes que reetem diretamente o domínio
do problema e as responsabilidades do sistema dentro dele. Normalmente, a análise ocorre
com a suposição de que existe uma tecnologia perfeita disponível (capacidade ilimitada de
armazenamento, custo zero e não passível de falha). Em suma, a análise se interessa pelo
que o sistema deve fazer.
Página 51 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Um dos principais padrões de projeto é o chamado Gangue dos Quatro (Gang of Four -
GoF ). Os padrões GoF são organizados nos grupos:
• Estrutural: trata de como as classes e os objetos são compostos para formar estruturas
maiores;
Um padrão GoF também é classicado segundo o seu escopo: de classe ou de objeto. Nos
padrões com escopo de classe os relacionamentos que denem este padrão são denidos
através de herança e em tempo de compilação. Nos padrões com escopo de objeto o padrão
é encontrado no relacionamento entre os objetos denidos em tempo de execução. A Tabela
10 apresenta os padrões GoF organizados em grupos com os respectivos escopos.
Grupos
Escopo Criativo Estrutural Comportamental
Classe Método-Fábrica Adaptador (classe) Interpretador
Método Modelo
Objeto Construtor Adaptador (objeto) Cadeia de Responsabilidade
Fábrica Abstrata Composto Comando
Protótipo Decorador Iterador
Singular Fachada Mediador
Peso-Mosca Memorial
Ponte Observador
Procurador Estado
Estratégia
Visitador
O princípio Classes devem estar abertas para extensão e fechadas para modicação é um
dos principais princípios da orientação a objetos, e é conhecido como o princípio Aberto-
Fechado (Open Closed Principle OCP ). Este princípio quer dizer que devemos estruturar
um aplicativo de forma que seja possível adicionar novas funcionalidades com modicações
mínimas no código existente. Por exemplo, ao criarmos uma subclasse, nós não devemos
alterar o comportamento da classe base, mas apenas completá-lo.
(A) CORRETA
Página 52 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Pode-se pensar também em termos de interface gráca, por exemplo, adicionar uma borda
a um botão, frame, etc. Ao invés de construir uma subclasse para cada objeto que se de-
seja adicionar a funcionalidade, ele permite uma extensão transparente de funcionalidade
durante execução. Para isso ele deve manter a mesma interface do objeto sendo estendido, e
deve aceitá-lo como argumento na inicialização para criar uma referência que será mantida
como variável membro privada.
(B) ERRADA
O padrão yweight não está relacionado a estender funcionalidades de uma classe base
sem modicá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.
Portanto, alternativa errada.
(C) ERRADA
O padrão prototype pode ser utilizado em sistemas que precisam ser independentes da
forma como os seus componentes são criados, compostos e representados. O padrão proto-
type pode ser útil em sistemas que utilizam classes denidas em tempo de execução.
O padrão prototype não está relacionado a estender funcionalidades de uma classe base
sem modicá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.
Portanto, alternativa errada.
Página 53 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(D) ERRADA
O padrão de objeto singleton (singular) do grupo Criativo garante que uma classe pos-
sui uma única instância e provê um ponteiro global para acessá-la. Por exemplo, em uma
aplicação que precisa de uma infra-estrutura de log de dados, pode-se implementar uma
classe no padrão singleton. Desta forma existe apenas um objeto responsável pelo log em
toda a aplicação que é acessível unicamente através da classe singleton.
O padrão singleton não está relacionado a estender funcionalidades de uma classe base
sem modicá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.
Portanto, alternativa errada.
(E) ERRADA
Por exemplo, o padrão Builder pode ser utilizado em uma aplicação que converte o formato
RTF para uma série de outros formatos e que permite a inclusão de suporte para conversão
para outros formatos, sem a alteração do código fonte do leitor de RTF. A solução para este
problema é criar uma classe de leitura (director) associada a outra classe capaz de converter
o formato RTF para outra representação (builder).
O padrão builder é muitas vezes comparado com o padrão Abstract Factory, pois ambos
podem ser utilizados para a construção de objetos complexos. A principal diferença entre
eles é que o builder constrói objetos complexos passo a passo e o Abstract Factory constrói
famílias de objetos, simples ou complexos, de uma só vez.
O padrão builder não está relacionado a estender funcionalidades de uma classe base sem
modicá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.
Portanto, alternativa errada.
Página 54 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
Web service é tecnologia que possibilita aplicações interagirem umas com as outras de forma
independente de plataforma operacional e linguagem de programação utilizadas. Os Web
services são componentes que permitem às aplicações enviarem e receberem mensagens for-
matadas em XML. Apesar de não ser obrigatório, geralmente o HTTP é escolhido como
mecanismo de transporte dessas mensagens.
(A) CORRETA
Algumas especicações vêm sendo desenvolvidas, principalmente pela W3C, para estender
as funcionalidades dos web services. Essas especicações são chamadas de WS-*. Algumas
das especicações mais importantes são: WS-Security, WS-Addressing, WS-Reliability e
WS-Transaction.
Tendo em vista o exposto, é possível concluir que REST e WS-* são duas abordagens ar-
quiteturais distintas que podem ser adotadas em projetos e desenvolvimentos de web services.
(B) ERRADA
SOAP (Simple Object Access Protocol) é um protocolo que dene, por meio de um conjunto
de tags XML, o formato das estruturas das mensagens trocadas entre aplicações. Dois dos
grandes benefícios do SOAP são: padrão aberto adotado pela maioria das grandes empre-
sas de hardware e software; e construído sobre padrões também abertos como HTTP e XML.
Web Services Denition Language (WSDL) é uma linguagem baseada em XML utilizada
Página 55 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
para descrever web services. Trata-se de um documento escrito em XML que além de de-
screver o serviço, especica como acessá-lo e quais as operações ou métodos disponíveis.
Como SOAP é um protocolo e WSDL uma linguagem de denição, é incorreto dizer que
eles são abordagens arquiteturais para projeto e implementação de web services.
(C) ERRADA
O RPC (Remote Procedure Call) dene um protocolo para execução remota de procedi-
mentos em computadores ligados em rede. Esse protocolo pode ser utilizado com diferentes
protocolos de transporte, tais como UDP e TCP. Antes de ser enviada pela rede, uma RPC
emitida pela aplicação cliente é encapsulada segundo o padrão SOAP. O serviço remoto,
ao receber a mensagem, faz o processo reverso, desencapsulando a mensagem e extraindo
a chamada. A aplicação servidora, então, processa essa chamada e envia sua resposta à
aplicação cliente. Essa mensagem de resposta também é enviada de forma encapsulada se-
gundo o padrão SOAP. Na máquina cliente, a resposta é desencapsulada e repassada para a
aplicação cliente.
O RMI (Remote Method Invocation) é uma interface de programação que permite a ex-
ecução de chamadas remotas no estilo RPC em aplicações desenvolvidas em Java. A API
RMI provê ferramentas para que seja possível ao programador desenvolver uma aplicação
sem se preocupar com detalhes de comunicação entre os diversos possíveis elementos (hosts)
de um sistema.
Apesar dos conceitos RPC e RMI se relacionarem com web service, é totalmente errôneo
dizer que eles são abordagens arquiteturais para projeto e implementação de web services.
(D) ERRADA
SGML é um acrônimo para Standard Generalized Markup Language que foi denido pela
norma ISO 8879:1986 Information processingText and oce systems. Ela é uma met-
alinguagem que pode ser utilizada para denir linguagens de marcação para documentos.
SGML é uma descendente da GML (Generalized Markup Language) da IBM. Duas impor-
tantes linguagens derivadas da SGML são HTML (HyperText Markup Language) e XML
(eXtensible Markup Language).
Por se tratarem de linguagens de marcação, não faz sentido nenhum dizer que SGML e
HTML são abordagens arquiteturais para projeto e implementação de web services.
(E) ERRADA
B2B e B2C são duas das diversas siglas relacionadas ao e-commerce e ao e-business. Por-
tanto, nada têm a ver com abordagens arquiteturais. As principais siglas são:
Página 56 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 57 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
O objetivo dos servidores de aplicações é disponibilizar uma plataforma que permita aos
programadores abstrair de uma gama de tarefas inerentes ao desenvolvimento do software.
Dessa forma, os programadores podem se concentrar mais nas regras de negócio do que nas
questões de infraestrutura da aplicação, como segurança, disponibilidade, balanceamento de
carga, mensageiria etc.
Vale lembrar que os servidores de aplicações também oferecem facilidades para persistência
de dados, como lembrado na alternativa C. No entanto, a palavra nal torna a alternativa,
ao menos, duvidosa!
Página 58 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
o modelo MVC. No entanto, a construção de uma aplicações que obedeça ao MVC está
muito mais ligada a separação dos componentes e camadas do sistema do que à plataforma
tecnológica utilizada. É, portanto, possível construir aplicações MVC no bom e velho ASP,
bem como nos novos e modernos servidores de aplicações.
Portanto, a alternativa E, por ser a mais objetiva e clara, é a resposta correta para essa
questão.
Página 59 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
O Processo Unicado de desenvolvimento de software reúne três características que o faz ser
único. Essas três características se relacionam entre si e são igualmente importantes. São
elas:
Página 60 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
2. Elaboração: nesta fase, todos os requisitos (ou a grande maioria deles) são levantados
em detalhes. Em uma primeira iteração, um ou dois requisitos, os de maior risco e valor
arquitetural, são especicados e implementados. Eles servirão como base de avaliação
junto aos usuários e desenvolvedores para o planejamento da próxima iteração. Em cada
nova iteração dentro da fase de elaboração, pode haver um seminário de requisitos, onde
requisitos antigos são melhores esclarecidos e novos são detalhados. Ao m desta fase,
90% dos requisitos foram levantados em detalhes, o núcleo do sistema foi implementado
com alta qualidade, os principais riscos foram tratados e pode-se então fazer estimativas
mais realistas;
Agora que o básico sobre Processo Unicado já foi exposto, vamos a cada alternativa.
(A) CORRETA
Ao ler a explicação acima, ca evidente que ser centrado em arquitetura é um dos princípios
mais evidentes do Processo Unicado. É justamente por isso que esta é a alternativa correta.
(B) ERRADA
• iterações curtas (sprints) que seguem o ciclo PDCA e entregam incrementos de software
prontos;
• Scrum Master: membro que tem como função primária remover qualquer impedimento
à habilidade de uma equipe de entregar o objetivo do sprint. O Scrum Master não é o
líder da equipe (já que as equipes são auto-organizadas), mas atua como um mediador
entre a equipe e qualquer inuência desestabilizadora.
(C) ERRADA
Página 61 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Estas duas alternativas trazem duas características associadas ao XP, e não ao Processo
Unicado. Justamente por isso que elas não devem ser escolhidas pelo candidato.
• refabricação: todo desenvolvedor tem o dever de melhorar um código que esteja fun-
cionado porém está mal escrito;
• CRC: linguagem para modelagem de classes do XP que utiliza os story cards (cartões
escritos pelos usuários onde são descritas funcionalidades do sistema).
Página 62 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
I Atores humanos são identicados com base no papel que desempenham do ponto de
vista do sistema, e não necessariamente no cargo que ocupam na instituição em que o
sistema rodará.
II A evolução dos casos de uso ao longo do ciclo de vida do projeto prevê que os mesmos
ganhem em seu texto os detalhes especícos de implementação necessários à construção
do software na tecnologia adotada.
IV É recomendável que cada caso de uso seja decomposto funcionalmente e passe a incluir
casos de uso menores, sucessivamente, até a menor unidade implementável possível,
atendendo ao princípio da decomposição funcional.
(a). I e II
(b). I e III
(c). II e III
(d). II e IV
(e). III e IV
Solução:
O Processo Unicado de desenvolvimento de software tem três princípios básicos:
Diagrama de Caso de Uso é um dos principais diagramas da UML (Unied Modeling Lan-
guage). Ele descreve, de forma gráca e intuitiva, relacionamentos e dependências entre um
grupo de casos de uso e os atores que interagem com o sistema. O ponto de vista assumido
para essa descrição é sempre o dos atores envolvidos.
Um ator é uma entidade externa ao sistema. Ele é representado gracamente por meio
de um boneco e um rótulo com o seu nome. Geralmente, é um ator que inicia um caso de
uso. Alguns exemplos de atores são: usuários, outros sistemas que fazem interface com o
sistema que está sendo modelado e eventos externos.
Página 63 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Enm, esse tipo de diagrama descreve interações entre os atores e o sistema em si. Veja um
exemplo na Figura 3
• entre atores
Relacionamento de Generalização: dene que o ator que está na origem da
seta tem seus próprios casos de uso. Já o ator que é apontado pela seta também
tem os casos de uso do outro ator. Um exemplo típico desse tipo de relacionamento
seria uma seta saindo do ator Cliente On-line e apontando para o ator Cliente.
Página 64 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
II falsa, pois os casos de uso não devem incluir detalhes de implementação, e sim o
comportamento esperado do sistema em um determinado cenário;
III verdadeira, pois o uxo principal cobre o comportamento do sistema nos casos rotineiros
e os uxos alternativos cobrem os casos excepcionais. Dessa forma, todas as alterna-
tivas conhecidas de comportamento do sistema são cobertas, o que ajuda na fase de
implementação e de testes;
IV falsa, pois o diagrama que oferece uma decomposição funcional do sistema é chamado
Diagrama de Fluxo de Dados, e não o de Caso de Uso.
Página 65 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(c). providenciar, desde o início do projeto, mecanismos para prevenir e bloquear so-
licitações de mudanças de forma a garantir que será entregue exatamente o que
foi especicado.
(d). dividir o trabalho em iterações curtas, com prazos xos, e não permitir que as
mesmas avancem sobre os prazos, reduzindo o escopo da iteração, se necessário.
(e). não produzir documentação técnica para o sistema, tendo em vista que a mesma já
nasce condenada a car desatualizada, investindo melhor o tempo em atividades
de implementação e testes exaustivos.
Solução:
De certa forma, o ponto central que esta questão pretende avaliar é o fato da maioria das
metodologias modernas de desenvolvimento de software abordarem projetos de desenvolvi-
mento de novos produtos de forma cíclica (ou iterativa). Algumas dessas metodologias são:
RUP (Rational Unied Process), XP (eXtreme Programming), Cleanroom, RAD (Rapid
Application Development) e Espiral.
(A) ERRADA
Justamente pela abordagem das metodologias em questão ser cíclica, a fase de especi-
cação dos requisitos do sistema não é concluída antes de se iniciar as atividades de projeto
e implementação. Ou seja, mesmo após o início das atividades de projeto e implementação
pode haver, e geralmente há, novas especicações de requisitos.
(B) ERRADA
Essa seria talvez uma boa abordagem, mas não é a que a maioria das metodologias mod-
ernas pregam. Elas pregam que no início do projeto, o planejamento e as estimativas do
projeto como um todo sejam feitos de forma geral. Planejamentos e estimativas cada vez
mais precisos são feitos a cada fase do projeto.
Página 66 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(C) ERRADA
(D) CORRETA
Como já mencionado no início deste comentário, a abordagem cíclica da maioria das metodolo-
gias modernas é o centro desta questão. Essa é a alternativa correta.
(E) ERRADA
Essa é, sem dúvida, a primeira alternativa que o candidato deve desconsiderar. Algumas
metodologias até apontam para uma simplicação da documentação técnica, mas eliminar
totalmente esse tipo de documentação não é uma alternativa.
Página 67 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). As classes de análise, neste artefato, devem conter referências a detalhes de imple-
mentação.
Solução:
A Análise de Caso de Uso é uma das atividades previstas na UML, e tem como nalidades:
Ainda com relação aos casos de uso, é importante frisar que muitas vezes é ela é tida como
uma espécie de análise de caixa preta, no qual os detalhes internos sobre como o sistema
responde às ações de um ator estão ausentes ou descritas muito resumidamente. Ou seja,
os casos de uso não apresentam detalhes de implementação. Com isso, a alternativa A está
errada.
Os artefatos da análise de caso de uso são Classe de Análise, Realização de Casos de Uso,
Modelo de Design, Modelo de Análise. Ou seja, Realização de Caso de Uso, citado na
Página 68 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Por m, a alternativa E traz o diagrama de robustez. Tal diagrama geralmente é utilizado
para passar da análise (o que) para o desenho (como). Como ele não é um insumo para a
análise de caso de uso, esta alternativa está errada.
Página 69 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(c). modelo de teste é um componente que efetua testes unitários em uma ou mais
classes de domínio.
(e). avaliação de teste apresenta os resultados dos testes em termos de defeitos e cober-
tura.
Solução:
O Processo Unicado (PU) surgiu como um processo popular para o desenvolvimento de
software visando à construção de sistemas orientados a objetos (o RUP Rational Unied
Process é um renamento do PU). Ou seja, Processo Unicado é um processo de desen-
volvimento, já o Rational Unied Process é um produto da Rational IBM, que tem no seu
núcleo o Processo Unicado.
Página 70 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Um plano de testes é uma denição das metas e dos objetivos dos testes no escopo da
iteração (ou projeto), os itens-alvo, a abordagem adotada, os recursos necessários e os pro-
dutos que serão liberados.
Uma prova de conceito é, como o nome sugere, uma prova de uma teoria. As provas
de conceito apenas armam algo que antes só existia no papel e que, portanto, não existia
nenhuma prova que de fato aquilo funcionaria. Durante o processo da análise arquitetural,
aspectos de risco do projeto podem merecer uma investigação mais detalhada, para isso uma
prova de conceito pode ser construída e pode tomar as seguintes formas: Modelagem con-
ceitual; Protótipo Rápido; Simulação; Conversão automática de especicações em código;
Especicações executáveis ou a Construção de picos invertidos.
Página 71 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). Classe
(b). Atividade
(d). Componente
(e). Seqüência
Solução:
Antes de apontar qual é a alternativa correta, vamos rever cada tipo de diagrama UML
envolvido nesta questão.
Diagrama de Classes
Como o diagrama de classes faz uma descrição estática do sistema, ele não é adequado para
modelar nenhum tipo de uxo. Ou seja, a alternativa A não é a que procuramos.
Diagrama de Atividades
Página 72 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
• transição: seta;
Um diagrama de atividades descreve uma sequência de atividades. Então, se ele fosse uti-
lizado para descrever o uxo de navegação descrito no enunciado, o foco caria nos eventos
dos links e botões ao invés de nas páginas. Ou seja, dentre as alternativas que temos, o
diagrama de atividades não é o mais adequado para o que se pede no enunciado.
Diagrama de Estados
Na UML, o estado do objeto é denido pelos valores dos atributos de um objeto de uma de-
terminada classe do modelo. No entanto, é importante ressaltar que nem todas as variações
de valores de atributos devem ser representadas por estados exclusivos, mas apenas aquelas
que podem afetar signicativamente o trabalho do objeto no contexto da aplicação.
Existem dois tipos especiais de estados: inicial e nal. Eles são especiais porque nenhum
evento pode fazer com que um objeto retorne para seu estado inicial, bem como não existe
nenhum evento capaz de tirar o objeto de seu estado nal.
É este o tipo de diagrama adequado para modelar o uxo de navegação entre páginas web.
As páginas seriam encaradas como os objetos e os eventos de links e botões seriam modela-
dos como os estímulos.
Diagrama de Componentes
Página 73 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Diagrama de Sequência
Seu principal objetivo é descrever a sequência ao longo do tempo das comunicações en-
tre objetos. A ênfase temporal é obtida com a linha vertical de tempo que está sempre
presente neste tipo de diagrama. Assim como o diagrama de comunicação, o diagrama de
sequência é um tipo de diagrama de interação. Ou seja, eles descrevem trocas de men-
sagens em situações dinâmicas. Perceba, portanto, que este tipo de diagrama não se mostra
adequado a modelagem de uxo de navegação.
Página 74 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
A gura acima mostra um diagrama de classes UML desenvolvido para um projeto em que
ainda não se sabe em que linguagem será realizada a implementação. Sobre o diagrama,
assinale a armação correta.
(b). Há uma dependência cíclica entre ClasseB, ClasseC e ClasseE, o que não é permi-
tido pela UML.
(c). O fato de que ClasseD generaliza ClasseA e ClasseB se traduz em herança múltipla,
o que não é permitido pela UML.
Solução:
Lembre-se que diagramas de classe nos permitem identicar tanto o conteúdo de uma classe
quanto o relacionamento entre várias classes. Em um diagrama de classe, podemos mostrar
as variáveis e métodos membros de uma classe. Podemos também mostrar se uma classe
herda de outra, ou se mantém uma referência para outra.
(A) CORRETA
Página 75 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
• existe apenas um todo, isto é, as partes não são compartilhadas com outros todos;
• as partes não podem ser acessadas fora do todo, ou seja, elas são particulares para o
todo;
• uma mensagem destinada a uma parte deve ser enviada para o todo e retransmitida
por ele à parte.
Isto signica que a agregação composta deve ser utilizada somente quando um objeto é
considerado como uma parte de outro objeto e não apenas uma associação ocasional com
existência e visibilidade independentes.
A m de representar este tipo de relacionamento, utiliza-se uma linha que termina com
um símbolo de diamante preenchido, símbolo este colocado contra o todo. Além disso, para
evitar qualquer confusão possível, ao todo é atribuída, explicitamente, a multiplicidade de
1 (um), mesmo porque apenas um todo é possível.
(B) ERRADA
Na verdade, o que não é permitido na UML é o que foge da sua semântica e sintaxe,
pois lembremos que UML é uma linguagem de modelagem. Logo, a UML em sua semântica
e sintaxe não impede a existência da dependência cíclica, pois essa não se preocupa com
problemas da arquitetura do sistema ou da solução.
(C) ERRADA
No diagrama de classes, uma generalização é representada por uma echa partindo da sub-
classe (no caso, a Classe D) em direção à(s) superclasses (no caso, as Classes A e B).
(D) ERRADA
Composite compõe objetos em estruturas do tipo árvore para representar hierarquias todo-
parte. Faz também com que o tratamento dos objetos individuais e de suas composições
seja uniforme.
Página 76 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Observe que, mesmo após a retirada da Classe A não conseguimos chegar à estrutura ap-
resentada na gura: o Composite é composto por componentes e é um lho deste através
da herança. Na questão não temos essa composição e herança ao mesmo tempo. Portanto,
alternativa errada.
(E) ERRADA
Cada objeto receptor possui uma lógica descrevendo os tipos de solicitação que é capaz
de processar e como passar adiante aquelas que requeiram processamento por outros recep-
tores. A delegação das solicitações pode formar uma árvore de recursão, com um mecanismo
especial para inserção de novos receptores no nal da cadeia existente.
Dessa forma, fornece um acoplamento mais fraco por evitar a associação explícita do reme-
tente de uma solicitação ao seu receptor e dar a mais de um objeto a oportunidade de tratar
a solicitação.
Página 77 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 78 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). 2
(b). 3
(c). 4
(d). 5
(e). 6
Solução:
A complexidade ciclomática, conhecida também como complexidade condicional, é uma
métrica de software que fornece uma medida quantitativa da complexidade lógica de um
programa estruturado (cíclico). Ou seja, essa métrica mede o número de caminhos linear-
mente independentes do conjunto básico de um programa, indicando um limite máximo para
o número de casos de teste que dever ser executados para garantir que todas as instruções
do programa sejam executadas pelo menos uma vez. Um caminho independente é qualquer
caminho que introduz pelo menos um novo conjunto de instruções ou uma nova condição.
Página 79 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). Utiliza ordenação por árvore de decisão, ao invés de ordenação por comparação.
(b). A estrutura de dados que utiliza, chamada heap, pode ser interpretada como uma
árvore binária.
(e). Seu desempenho de pior caso é menor do que o da ordenação por intercalação.
Solução:
O Heapsort utiliza uma estrutura de dados chamada heap binário (árvore binária mantida na
forma de vetor) para ordenar os elementos a medida que os insere na estrutura. Dessa forma,
ao nal das inserções, os elementos podem ser sucessivamente removidos da raiz da heap,
na ordem desejada. Para uma ordenação crescente, deve ser construída uma heap máxima
(o maior elemento ca na raiz). Já para uma ordenação decrescente, deve ser construída
uma heap mínima (o menor elemento ca na raiz). Em resumo, as principais características
desse algoritmo são:
• heap gerada e mantida no próprio vetor a ser ordenado (utilização eciente da memória);
• complexidade (em qualquer caso: pior, médio ou melhor): O(n log n);
• não é indicado para vetores pequenos por conta do tempo de construção da árvore.
(A) ERRADA
É sempre possível construir uma árvore de decisão para algoritmos de ordenação por com-
paração. Essa construção é realizada da seguinte forma:
• xe o n;
Página 80 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Tendo em vista os conceitos apresentados, conclui-se que o algoritmo Heapsort pode ser
representado por uma árvore de decisão, já que é um dos algoritmos que realiza ordenação
por comparação. Portanto, essa alternativa está errada.
(B) CORRETA
Considerando a explicação apresentada acima, se torna fácil concluir que é essa a alter-
nativa correta.
(C) ERRADA
Seu desempenho no pior caso (igual ao do melhor ou médio caso) é O(n log n). Esse é
o melhor resultado dentre os algoritmos baseados em comparações. Esse conhecimento já
bastaria para concluir que essa alternativa está incorreta. As complexidades do algoritmo
Quicksort são O(nlogn) para o melhor caso e O(n2 ) para o pior caso. É sempre importante
ter em mente que quanto mais eciente for a escolha do pivot, mais eciente será o desem-
penho da ordenação do algoritmo Quicksort.
(D) ERRADA
No pior caso, a ordenação por inserção apresenta complexidade igual a O(n2 ), pois nesse
caso são necessárias n(n − 1)/2 ≈ (n2 )/2 comparações. Esse cenário sempre ocorre quando
a sequência de entrada está ordenada na ordem inversa à desejada.
(E) ERRADA
Página 81 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Considere uma tabela hash H, onde H[i] denota uma posição da tabela. H é implemen-
tada usando uma função h(k) para determinar a posição i de armazenamento, k sendo a
chave do elemento de dados x a ser armazenado em H, e denotada por k = chave[x]. H é
um hash com encadeamento, ou seja, cada H[i] é uma lista encadeada que armazenará os
elementos de dados que, de outra forma, colidiriam para a posição. Nesta implementação,
as listas são duplamente encadeadas, ou seja, cada elemento e da lista armazena também os
ponteiros proximo[e] e anterior[e]. Cada lista L possui ainda o valor inicio[L], que aponta
para o primeiro elemento da lista. NIL representa um ponteiro vazio.
O pseudocódigo a seguir mostra uma operação nesta estrutura, porém apresenta erro em
uma de suas linhas. As linhas estão numeradas apenas para facilitar a correspondência com
as alternativas.
01 proximo[chave[x]] ← inicio[H[h(chave[chave[x]])]]
02 se inicio[H[h(chave[chave[x]])]] 6= NIL
03 então inicio[anterior[inicio[H[h(chave[chave[x]])]]]] ← chave[x]
04 inicio[H[h(chave[chave[x]])]] ← chave[x]
05 anterior[chave[x]] ← NIL
Solução:
Antes de partirmos para a resolução da questão, relembremos as estruturas de dados citadas
(Tabela Hash e Lista Encadeada).
As Tabelas Hash são utilizadas geralmente em cenários em que o número real de chaves
armazenadas é menor que o número de chaves possíveis. Nessas condições, Tabelas Hash
tornam-se uma alternativa efetiva ao endereçamento direto de uma matriz, visto que usam
matrizes de tamanho proporcional ao número de chaves realmente armazenadas.
Em uma Tabela Hash, a função hash (na questão, h(k)) é utilizada para calcular em qual
entrada da tabela o elemento de chave k será armazenado. Se a tabela possuir tamanho
m, isto é, m entradas, então o espaço de saída da função h(k) será: 0, 1, . . . , m-1. O
propósito da função hash é reduzir a faixa de índices da matriz que precisam ser tratados.
Página 82 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Essa redução, contudo, possui um preço, o de que duas chaves distintas podem mapear para
a mesma entrada na tabela.
As Listas Encadeadas são estruturas de dados nas quais os objetos estão arranjados em
uma ordem linear, fornecendo uma simples e exível representação para conjuntos dinâmi-
cos.
Na lista L em questão, cada elemento é um objeto com um campo chave e dois outros
campos ponteiros: próximo e anterior. Dado um elemento e na lista, proximo[e] aponta
para o seu sucessor na lista encadeada, e anterior[e] aponta para o seu predecessor. Se ante-
rior[e] = NIL, o elemento e não possui predecessor e ele é o primeiro elemento, ou cabeça,
da lista (lembre-se que essa lista é apenas duplamente encadeada, e não circular). Pelo lado
oposto, se proximo[e] = NIL, o elemento e não possui sucessor, sendo, então, o último
elemento, ou rabo, da lista.
Pelo enunciado, podemos notar que a referida lista (L) também possui um atributo ini-
cio, que aponta para o primeiro elemento da lista. Se inicio[L] = NIL, então a lista é vazia.
Ao analisar o pseudocódigo, podemos notar que a função hash h(k) é alimentada pela chave
da chave do elemento x e não apenas pela chave de x (chave[x]) como o enunciado apresenta,
o que poderia nos confundir.
Nesse pseudocódigo, todas as linhas estão corretas com exceção da linha 03. Vejamos,
passo a passo, o porquê:
Página 83 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). inserção de x em H.
(e). remoção de x de H.
Solução:
Após a correção do erro existente no pseudocódigo, teremos:
01 proximo[chave[x]] ← inicio[H[h(chave[chave[x]])]]
02 se inicio[H[h(chave[chave[x]])]] 6= NIL
03 então anterior[inicio[H[h(chave[chave[x]])]]] ← chave[x]
04 inicio[H[h(chave[chave[x]])]] ← chave[x]
05 anterior[chave[x]] ← NIL
A partir da análise do pseudocódigo acima, constamos que estamos diante de uma inserção,
pois:
• a atribuição existente na linha 01 faz com que o campo ponteiro próximo do nó chave[x]
passe apontar para a atual cabeça da lista. Para ns meramente ilustrativos, veja
abaixo a Figura 7 que apresenta dois cenários iniciais possíveis da lista. O primeiro em
que ela é vazia e o segundo em que há apenas um nó;
Página 84 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 85 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 86 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
Árvores B são árvores de busca balanceadas projetadas para trabalhar com discos magnéti-
cos ou outros dispositivos de armazenamento secundário.
• se x é um nó interno, então ele contém n[x] + 1 ponteiros para os seus lhos. Nesse
caso, note que os nós folhas, os quais estão localizados nos extremos da árvore, não
têm lhos;
• existem limites máximos e mínimos no número de chaves que um nó pode conter. Esse
limite é expressado em termos do grau mínimo da árvore B (considerado, aqui, como
um parâmetro t). Assim, cada nó diferente da raiz deve ter, pelo menos, t - 1 chaves,
isto é, no mínimo t lhos (se a árvore é não-vazia, o nó raiz deve ter pelo menos uma
chave). No que se refere ao limite máximo, cada nó pode conter até 2t - 1 chaves, ou
seja, 2t lhos;
Página 87 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
• após a ocorrência de um split, a nova chave será inserida no nó folha existente em uma
das sub-árvores criadas.
Agora estamos aptos a resolver a presente questão. O primeiro passo da criação de uma
árvore B consiste em alocar um nó raiz vazio, o qual não possui chaves e, logicamente, nem
nós lhos. Em seguida, nós iremos inserir as chaves, uma a uma, respeitando os limites que
os nós possuem. No caso da árvore em questão, com t igual a 2, um nó terá no mínimo
uma chave e no máximo 3 chaves. A Figura 11, apresenta, passo a passo, a inserção de cada
chave (nós que são modicados pelo processo de inserção estão sombreados).
• 1) representa o estado inicial da nossa árvore, a qual contém apenas um nó (raiz) vazio;
• 2), 3) e 4) são os resultados das inserções das respectivas chaves, N, D e T, o que nada
mais é que uma simples inserção no nó raiz;
Página 88 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Página 89 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
São mostrados a seguir os códigos fontes das classes Produto e ProdutoTest. O método test-
DescontoValido() é invocado pelo framework de testes automaticamente quando os testes
são executados, para exercitar o método descontoValido() da classe Produto. O método
assertEquals gera um junit.framework.AssertionFailedError quando os valores de seus argu-
mentos são diferentes entre si.
01 package br.com.exemplo.estoque;
02
03 public class Produto {
04
05 private double preco;
06 private double precoMinimo;
07
08 public Produto(double preco, double precoMinimo) {
09 this.preco = preco;
10 this.precoMinimo = precoMinimo;
11 }
12
13 public boolean descontoValido(int percentual) {
14 double precoComDesconto;
15 precoComDesconto = this.preco - this.preco * percentual / 100;
16 return (precoComDesconto >= this.precoMinimo);
17 }
18 }
Página 90 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
01 package br.com.exemplo.estoque;
02
03 import org.junit.Test;
04 import static org.junit.Assert.*;
05
06 public class ProdutoTest {
07
08 @Test
09 public void testDescontoValido() {
10 int percentual = 90;
11 boolean resultadoEsperado = true;
12
13 System.out.println(caderno);
14 Produto caderno = new Produto(10.00, 1.00);
15 boolean resultado = caderno.descontoValido(percentual);
16 assertEquals(resultadoEsperado, resultado);
17
18 System.out.println(caneta);
19 Produto caneta = new Produto(1.00, 0.10);
20 resultado = caneta.descontoValido(percentual);
21 assertEquals(resultadoEsperado, resultado);
22 }
23 }
Com base nos códigos fontes apresentados, conclui-se que
(c). a classe Produto não pode ter descendentes sem construtores explicitamente declara-
dos.
(d). o campo preco da classe Produto só pode ser acessado pelas classes que estiverem
no mesmo pacote de Produto.
Solução:
(A) ERRADA
• /** Este é o terceiro tipo de comentário, muito utilizado para documentação web */
(B) ERRADA
Esta é uma confusão muito comum em Java. Na verdade, o código import org.junit.Test
é utilizado para importar apenas a classe Test a m de que a classe ProdutoTest possa
acessar os seus métodos públicos (caso existam).
A classe ProdutoTest somente descenderia da classe Teste se ela fosse declarada utilizando-se
Página 91 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
a palavra chave extends, da seguinte forma: public class ProdutoTest extends Test.
Lembre-se que a palavra chave extends indicaria que todas as declarações de métodos, var-
iáveis e campos da superclasse (classe pai) Test seriam herdadas pela classe ProdutoTest.
(C) CORRETA
Um construtor determina como um objeto é inicializado pela criação de uma nova instância
de uma classe com os parâmetros especicados. Podemos tratá-lo como um método espe-
cial: com nome igual ao da classe; sem tipo de retorno ( void); e não herdado pelas subclasses.
Caso você decida em não declarar um construtor em uma classe, Java automaticamente
fornecerá um construtor default que não requer nenhum argumento. O construtor default
simplesmente chama o construtor da superclasse, denominado super(), com nenhum argu-
mento e inicializa as variáveis da instância. Se a superclasse não tiver um construtor que
não requer argumentos, ocorrerá um erro em tempo de compilação, que é o caso do presente
problema, pois note que a superclasse Produto possui apenas um construtor, obviamente de
mesmo nome, que exige dois argumentos.
Assim, a qualquer subclasse da classe Produto deverá declara explicitamente o seu con-
strutor.
(D) ERRADA
O campo preco, como está precedido pelo modicador private, só poderá ser acessado dentro
da classe Produto. Nem mesmo as subclasses da classe Produto poderão acessar esse campo
diretamente.
Uma forma de tornar esse campo acessível para leitura, seria por meio da declaração de
um método, público ( public), na classe Produto. Esse método retornaria apenas o valor
armazenado no campo preco.
Por outro lado, se desejássemos que esse campo fosse acessível para escrita, deveríamos
declarar um método, na classe Produto, precedido pelo modicador protected. Isso per-
mitiria que apenas as subclasses da classe Produto atualizem o campo preco.
(E) ERRADA
Por convenção, todos os nomes de pacotes e diretório que o seguem deveriam ser especi-
cados usando-se letras minúsculas. Por outro lado, os nomes das classes e interfaces que
você deseja referenciar dentro do pacote deveriam ser especicados usando-se a primeira
letra em maiúsculo. Isso permite que outros programadores que usam os seus pacotes deter-
minem facilmente quais componentes são nomes de diretórios e quais são nomes de interfaces
e classes.
Assim, na verdade, org.junit.* é um pacote que contém várias classes, dentre elas a classe
org.junit.Assert.
Página 92 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(a). CAUSA: uso de aritmética binária de ponto utuante para os cálculos (variáveis
do tipo double) com posterior tentativa de comparação exata entre os valores
calculados (linha 21). SOLUÇÃO: usar aritmética decimal exata substituindo os
valores primitivos double por instâncias da classe BigDecimal.
(c). CAUSA: versão antiga da máquina virtual Java, que apresenta esse tipo de prob-
lema até a versão 1.1. SOLUÇÃO: atualizar para a última versão da JVM.
Solução:
(A) CORRETA
Infelizmente, números em ponto utuante podem causar transtornos. O problema que ocorre
no código acima é devido ao uso do tipo double (ou oat) para representar quantias em reais
(assumindo que quantias de real são mostradas com dois dígitos a direita do ponto decimal).
Dessa forma, após a chamada do construtor Produto, poderemos ter as seguintes quantias
armazenadas para o produto caderno:
O mesmo pode ocorrer para o produto caneta após a invocação do construtor Produto:
Página 93 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Assim, após a invocação do método descontoValido pelos produtos caderno e lápis, teremos:
A recomendação é não usar variáveis do tipo double (ou oat) para realizar cálculos mon-
etários precisos. A imprecisão de números em ponto utuante pode causar erros que re-
sultarão em incorretos valores monetários. Nesses casos a recomendação é usar a classes
java.math.BigDecimal para a realização de cálculos com precisão arbitrária de valores em
ponto utuante.
(B) ERRADA
(C) ERRADA
A JVM (Java Virtual Machine ou Máquina Virtual Java, em português) é uma máquina
computacional abstrata, que, assim como uma máquina real, possui seu próprio conjunto de
instruções e capacidade de manipular várias áreas de memória em tempo de execução.
Lembre-se que a máquina virtual Java não tem conhecimento sobre a linguagem de progra-
mação Java. Ela conhece apenas um determinado formato binário, arquivo do tipo classe, o
qual contém instruções da JVM (ou bytecodes) e uma tabela de símbolos, bem como outras
informações.
(D) ERRADA
A classe Math é parte do pacote java.lang, o qual é implicitamente importado pelo compi-
lador. Então não é necessário importar a classe Math para usar seus métodos.
(E) ERRADA
Os membros de uma classe, no presente caso, preco e precoMinimo, são acessíveis por qual-
quer método declarado na mesma classe, independentemente do qualicador que os precede.
Assim, o campo precoMinino (this.precoMinimo no código) pertence ao escopo do método
descontoValido.
Note, ainda, que no método descontoValido, o uso da palavra chave this para o membro
precoMinimo não era necessário, pois não há variáveis locais com o mesmo nome.
Página 94 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(b). I e IV
(c). II e III
Página 95 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(d). III e IV
(e). IV e V
Solução:
(I) ERRADA
Observe pelo diagrama que Produto é uma classe abstrata, portanto não é possível aplicar
um construtor sobre ela. Em outras palavras, ela não pode ser instanciada. Nós precisamos
assegurar que o objeto a ser construído pertence a uma classe concreta da classe abstrata
Produto, no caso, ou a classe Veículo ou a classe Peca. Uma solução de correção seria o
seguinte código:
(II) ERRADA
Note que apesar da variável s ser uma instância da classe Veiculo, ela foi automaticamente
convertida (upcast ) no momento da sua declaração para a interface Seguravel. Desse modo,
esse objeto poderá acessar apenas os métodos que foram denidos na interface, no caso, o
método calculaPremio, e não o método setNome.
(III) CORRETA
Note, também, que s é uma instância da classe Veiculo, e por isso não foi necessário inserir
mecanismos que vericam o tipo do objeto antes da conversão (RITT, do inglês Run-Time
Type Identication ).
Em Java isso é alcançado por meio do operador instanceof. O uso adequado desse oper-
ador garante que as conversões são sempre seguras, não permitindo que um objeto seja
convertido para uma classe inválida.
(IV) CORRETA
1. Upcast entre uma instância da classe, a classe concreta Peca, e a interface Vendavel.
Mais uma vez lembre-se que uma conversão para uma classe (ou interface) pai é feita
implicitamente;
2. Downcast entre a interface Vendavel, que é uma instância da classe Peca, e a classe
abstrata Produto. Observe, nesse caso, que a conversão é realizada para a classe pai
(Produto) da classe instanciada (Peca), o que é perfeitamente aceitável uma vez que
toda Peca é um Produto.
Página 96 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
(V) ERRADA
Página 97 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
public Produto () {
}
import java.util.ArrayList;
public Fabricante () {
}
(a). Diagrama 1
(b). Diagrama 2
(c). Diagrama 3
(d). Diagrama 4
(e). Diagrama 5
Página 98 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Solução:
Lembre-se que diagramas de classe nos permitem identicar tanto o conteúdo de uma classe
quanto o relacionamento entre várias classes. Em um diagrama de classes podemos mostrar
as variáveis e métodos membros de uma classe. Podemos também mostrar se uma classe
herda de outra, ou se mantém uma referência para outra. Em suma, podemos descrever todas
as dependências do código-fonte entre classes. Para resolvermos esta questão precisamos
saber:
2. a direção da echa nos informa que a classe mantém referência para outra classe;
3. o número próximo à cabeça da seta nos informa quantas referências são mantidas;
4. quando existem muitas conexões representamos por estrela (*). Em Java, isso é comu-
mente implementado com um Vetor ou uma Lista.
Página 99 de 114
www.handbookdeti.com.br
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
if (x != x + 0) {
System.out.println("Condição satisfeita.");
}
Se x for da classe String e tiver sido inicializado, esse trecho de código Java
(b). imprimirá a mensagem, apenas se x não tiver sido inicializado com null.
Solução:
Para resolvermos a referida questão é preciso saber que, em Java, o operador de adição (+)
tem precedência maior que os operadores relacionais de (des)igualdade (!= e ==). Além
disso, o operador + pode ser utilizado também para a concatenação de strings, que é o
caso da nossa questão. Pronto, agora nós já temos condições de resolver a questão.
Pelo enunciado, extraímos que x é uma string inicializada, isto é, uma string de tamanho N,
onde N pode ser maior do que 0 (zero), se x possuir algum conteúdo, ou N pode ser igual a
0 (zero), se x for nula.
(a). (5,4)(3,4)(5,4)(1,2)(2,5)(1,2)
(b). (5,4)(3,4)(1,2)(5,4)(2,5)(1,2)
(c). (5,4)(5,4)(5,4)(2,2)(2,5)(2,2)
(d). (3,4)(3,4)(5,4)(2,5)(2,5)(1,2)
(e). (3,4)(3,4)(5,4)(2,2)(2,5)(2,2)
Solução:
A seguir, o passo a passo da execução da classe em questão. Na verdade, serão abordados
os principais pontos da execução.
Perceba que não foi criado um objeto que seria atribuído à variável r. Na execução dessa
última linha, a variável r foi atribuída ao objeto já existente p. Ou seja, a partir deste ponto,
em qualquer referência às variáveis r e p serão utilizadas as propriedades do mesmo objeto.
46. Assuntos relacionados: Banco de Dados, Modelo Relacional, Data Warehouse, Modelo
Multidimensional, Data Mart, ROLAP, OLAP,
Banca: CESGRANRIO
Instituição: Petrobras
Cargo: Analista de Sistemas - Eng. de Software
Ano: 2008
Questão: 66
A respeito de sistemas de informações gerenciais, são feitas as armativas a seguir.
I - Uma das diferenças entre bancos de dados relacionais e multidimensionais diz respeito
ao compromisso entre performance e escalabilidade: bancos de dados relacionais pro-
porcionam consultas mais rápidas, enquanto bancos de dados multidimensionais lidam
melhor com grandes quantidades de informações armazenadas.
II - ROLAP se refere a um tipo de solução OLAP que utiliza um bancos de dados rela-
cional.
III - Quando um projeto inicia por datamarts departamentais especializados que mais
tarde se consolidam em um data warehouse institucional, existe uma chance maior de
surgirem problemas de inconsistência de metadados do que quando um data warehouse
institucional dá origem a datamarts departamentais.
(b). I e III
(c). I e IV
(d). II e III
(e). III e IV
Solução:
OLAP (Online Analytical Processing) é uma abordagem que possibilita viabilizar consultas
em uma análise multidimensional de dados. O termo é usado em contraste com o termo
OLTP (Online Transaction Processing), que é uma abordagem largamente utilizada em
ambientes transacionais. Em um ambiente transacional, há constante entrada de dados e
consultas simples. Além disso, é exigido, em um ambiente transacional, que a resposta
ao usuário seja imediata. Um exemplo é quando você acessa um site de um banco: você
quer fazer transferências ou conferir as transações em sua conta corrente e uma demora
considerável é inaceitável. Entretanto, enquanto as abordagens OLTP são extremamente
adequadas em diversas situações, elas se mostram inadequadas, em alguns casos, ao acesso
às informações gerenciais como a produção de relatórios de vendas, contábeis e nanceiros.
Nesse ponto, é que a abordagem OLAP é importante. Os bancos de dados que utilizam
OLAP são projetados em modelos de dados multidimensionais que possibilitam executar
consultas complexas em um tempo muito menor baseando-se, principalmente, em desnor-
malizações e em agregações.
Um banco de dados OLAP pode ser armazenado de várias maneiras. Em uma arquite-
tura ROLAP (relacional), os dados são armazenados em banco de dados relacionais. Já em
I como já foi dito, os bancos de dados relacionais podem ser utilizados para armazenar
bancos de dados modelados da maneira OLAP (multidimensional). As principais mo-
tivações para esse uso é a incrível escalabilidade dos bancos de dados relacionais e
a grande disponibilidade de ferramentas. Já uma arquitetura MOLAP (multidimen-
sional) é construída, de forma otimizada, em estruturas de dados que possibilitam a
melhoria de desempenho em consultas. Ou seja, a armação está incorreta, pois arma
justamente o contrário;
III é verdadeira, pois quando uma empresa guia o projeto de forma centralizada e com
políticas estabelecidas, ela diminuirá as chances de problemas de inconsistência em
metadados. Caso contrário, cada departamento terá sua forma de pensar sobre a
criação de metadados e dicultará a integração no futuro;
Solução:
O CMMI (Capability Maturity Model Integration) é uma metodologia criada pela SEI (Soft-
ware Engineering Institute) com o objetivo de substituir as diversas CMMs (Capability
Maturity Model) desenvolvidas especicamente para cada área de atuação, tais como: de-
senvolvimento de sistemas, engenharia de software, aquisição de software e desenvolvimento
de processos. Apesar das CMMs serem úteis, elas são excessivamente diversicadas e, por
conta disso, foram consideradas problemáticas: redundância de conceitos, terminologia in-
comum, inconsistências, etc.
De forma geral, o objetivo maior do CMMI é prover um conjunto de boas práticas para
melhoria dos processos das organizações e a habilidade de gerenciar, desenvolver e manter
os seus produtos (softwares). Essas práticas, já consideradas efetivas, são organizadas em
uma estrutura que visa auxiliar a organização, em particular os gerentes de projetos, a es-
tabelecer suas prioridades para a conquista de melhorias. Um guia para a implementação
dessas melhorias também é fornecido pelo CMMI.
O CMMI possui duas formas de representação, uma contínua e outra por estágios. Es-
sas representações oferecem exibilidade para as organizações poderem utilizar diferentes
meios para obterem melhorias de acordo com as suas realidades.
• nível 0: Incompleto;
• nível 2: Gerenciado;
• nível 3: Denido;
(A) ERRADA
No nível 1, os processos são informais, portanto, ainda não se obteve disciplina alguma
nos processos.
(B) CORRETA
(C) ERRADA
No nível 3, os processos básicos já se tornaram padrão para a organização, mas eles ainda
não são controlados estatisticamente. Isso acontece quando a organização já se encontra no
nível de maturidade 4.
(D) ERRADA
(E) ERRADA
II - O software deve ser entregue provisoriamente nestas condições, para diminuir a insat-
isfação do cliente, sendo substituído por uma versão que atenda aos requisitos o mais
rápido possível (ASAP).
IV - Devem ser mantidos registros de quaisquer ações corretivas realizadas, ainda que
as mesmas não se revelem ecazes para tratar a não-conformidade, bem como dos
indicadores de satisfação do cliente, qualquer que seja o resultado do projeto.
(b). I e IV.
(c). II e III.
(d). II e IV.
Solução:
A norma ISO 9001:2000 tem como objetivo orientar as organizações na implementação, no
desenvolvimento e na melhoria do sistema de gestão da qualidade a partir de uma abor-
dagem baseada em processos. O modelo de um sistema de gestão da qualidade baseado em
processos é mostrado na Figura 12.
II - a organização deve assegurar que produtos que não esteja conforme aos requisitos
sejam identicados e controlados para evitar seu uso não intencional ou entrega. Como
uma das medições do desempenho do sistema de gestão da qualidade, a organização
deve monitorar as informações relativas à percepção do cliente sobre se a organização
atendeu aos requisitos dos clientes. Então, a armativa é falsa;
IV - a organização deve tratar produtos não-conformes adotando-se pelo menos uma das
seguintes opções: a execução de ações para eliminar a não-conformidade detectada;
autorização do seu uso, liberação ou aceitação sob concessão por uma autoridade perti-
nente e, onde aplicável, pelo cliente; e execução de ação para impedir a intenção original
de seu uso ou aplicação originais. Devem ser mantidos registros sobre a natureza das
não-conformidades e qualquer ação subsequente tomada, incluindo concessões obtidas.
Quando o produto não-conforme for corrigido, esse deve ser vericado para demonstrar
a conformidade com os requisitos. Quando a não-conformidade do produto for detec-
tada após a entrega ou início do seu uso, a organização deve tomar as ações apropriadas
em relação aos efeitos, ou potenciais efeitos, da não-conformidade. Logo, armativa
verdadeira.
(e). tem o objetivo primário de simplicar a gestão de TI por parte dos executivos,
que, em muitos casos, são oriundos de outras áreas de conhecimento, minimizando
a dependência de conhecimentos tecnológicos para a tomada de decisão em TI.
Solução:
(A) ERRADA
(B) ERRADA
(C) CORRETA
O Control Objective for Information and related Technology (COBIT) é um framework que
fornece as melhores práticas para gerenciamento de processos de TI, atendendo as neces-
sidades de gestão de uma organização, tratando os riscos do negócio, as necessidades de
controle e as métricas de desempenho. Esse framework serve de suporte para implementar
(D) ERRADA
O COBIT foca em duas áreas chaves: fornece informações necessárias para suportar os
objetivos e os requisitos do negócio; e trata as informações como sendo o resultado com-
binado de aplicações e recursos de TI que precisam ser gerenciados por processos de TI.
Para isso, o COBIT agrupa os processos de TI em quatro áreas ou domínios: Planejamento
e Organização; Aquisição e Implementação; Entrega e Suporte; e Monitoração e Avaliação.
Cada uma dessas áreas dene os respectivos processos de TI.
(E) ERRADA
O COBIT foi criado com a característica principal de ser: focado no negócio, orientado
a processos, baseado em controles e direcionado a medições. Foi criado para ser utilizado
não apenas pelos fornecedores de serviço de TI, usuários e auditores, mas também, e mais
importante, como um amplo guia pela direção e os responsáveis pelos processos de negócio da
empresa. O COBIT promove a organização das atividades de TI em torno dos processos de
TI fornecendo um modelo para as organizações adotarem e adaptarem conforme necessário.
Após os processos estarem denidos, eles podem ser alocados a indivíduos e gerentes que são
responsáveis e deverão prestar conta por cada processo. Com essa estrutura, as atividades
cam mais fáceis de serem controladas e organizadas.
(c). estabelecer metas e objetivos claros para cada processo para uma execução ecaz.
(e). estabelecer níveis de acordo de serviço (SLA) onde cabível para cada processo.
Solução:
Controles gerais são aqueles embutidos nos processos e serviços de TI, como: desenvolvi-
mento de sistema, gerenciamento de mudanças, segurança, etc. Eles devem ser considerados
juntos com os objetivos de controle detalhados para ter a visão completa dos requisitos de
controle.
(A) ERRADA
O controle geral que atribui um proprietário a cada processo, de forma que a respons-
abilidade seja clara é o PC1 Process Owner (Proprietário do Processo).
(B) ERRADA
O controle geral que dene cada processo de forma que seja repetível é o PC2 - Repeatability
(Repetibilidade).
(C) ERRADA
O controle geral que estabelece metas e objetivos claros para cada processo para uma exe-
cução ecaz é o PC3 Goals and Objectives (Metas e Objetivos).
(D) ERRADA
O controle geral que mede o desempenho de cada processo em relação às suas metas é
o PC5 Process Perfomance (Desempenho do Processo).
(E) CORRETA
O COBIT não dene nenhum controle geral sobre SLA. O SLA é controlado no COBIT
pelo processo Dene and manage service levels (Dene e gerencia o nível de serviço) no
Questao Resposta
1 E
2 A
3 E
4 C
5 E
6 A
7 B
8 A
9 E
10 C
11 B
12 C
13 B
14 C
15 D
16 B
17 D
18 C
19 C
20 B
21 E
22 B
23 C
24 E
25 A
26 A
27 E
28 A
29 B
30 D
31 B
32 E
33 C
34 A
35 D
36 B
37 C
38 B
39 E
40 C
41 A
42 D
43 D
44 C
45 A
46 D
47 B
48 B
49 C
50 E
.NET, 58 J2EE, 58
ATOM, 21
Metodologia de Desenvolvimento de Software,
B2B, 49 66
Banco de Dados, 9, 11, 14, 16, 18, 19, 103 Modelo Relacional, 9, 103
Modos de Endereçamento de Memória, 4
Certicado Digital, 23 MVC, 58
CMMI, 105
COBIT, 110, 112 Níveis de Maturidade, 105
Diagrama de Componentes, 72
Padrões de Projeto, 51
Diagrama de Estados, 72
PKI, 23
Diagrama de Sequência, 72
Portais Corporativos, 49
HTTP, 28 SQL, 16
HTTPS, 23
Tabela Hash, 82, 84
115Terceira Forma Normal (3FN), 14
Interoperabilidade entre Aplicações, 55
Handbook de Questões de TI Comentadas para Concursos Volume 02 Edição 2
Web Services, 55
XML, 26, 28