handbook_questoes_vol2 - cópia

117
Questões de TI comentadas para concursos Handbook de Além do gabarito Analista de Sistemas - Eng. de Software Petrobras 2008 Fundação Cesgranrio Volume 2 Grupo Handbook 2ª Edição

Upload: -

Post on 30-Mar-2016

225 views

Category:

Documents


2 download

DESCRIPTION

Handbook de TI - Questões - vol 2

TRANSCRIPT

Page 1: handbook_questoes_vol2 - Cópia

Questões de TI comentadas para concursos

Handbook de

Além do gabarito

Analista de Sistemas - Eng. de SoftwarePetrobras 2008

Fundação Cesgranrio

Volume 2

Grupo Handbook

2ª Edição

Page 2: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Prefácio

Este é o segundo volume da série Handbook de Questões de TI Comentadas para Concursos� Além do Gabarito. Ele traz a prova para Analista de Sistemas Júnior - Engenharia de Soft-ware, aplicada em junho de 2008 pela Fundação Cesgranrio. São 50 questões comentadas �alémdo gabarito� para você se preparar não só para os concursos para a Petrobras, mas, também,para todos os demais concursos de alta concorrência na área de TI.

Estamos vivendo a era do petróleo no Brasil. A Petrobras está aproveitando muito bem essafase para maximizar a sua produção e, por consequência, os seus lucros. Nessa jornada, surge anecessidade de novos pro�ssionais quali�cados, 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, taiscomo: contato com diversas tecnologias de ponta; excelente ambiente de trabalho; salário ebenefícios superiores aos da maioria das empresas e órgãos governamentais. Tendo em vistaessa alta concorrência, é de fundamental importância que os materiais de estudo do concurseirosejam 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óricoao concurseiro, uma vez que os comentários elaborados não se limitam à simples resolução dasquestões.

Bons estudos,

Grupo Handbook de TI

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

Page 3: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Direitos Autorais

Este material é registrado no Escritório de Direitos Autorais (EDA) da Fundação BibliotecaNacional. Todos os direitos autorais referentes a esta obra são reservados exclusivamente aosseus autores.

Os autores deste material não proíbem seu compartilhamento entre amigos e colegas próxi-mos de estudo. Contudo, a reprodução, parcial ou integral, e a disseminação deste material deforma indiscriminada através de qualquer meio, inclusive na Internet, extrapolam os limites dacolaboração. Essa prática desincentiva o lançamento de novos produtos e enfraquece a comu-nidade concurseira Handbook de TI.

A série Handbook de Questões de TI Comentadas para Concursos � Além do Gabarito é umaprodução independente e contamos com você para mantê-la sempre viva.

Grupo Handbook de TI

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

Page 4: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Canais de Comunicação

A equipe Handbook de TI disponibiliza diversos canais de comunicação para seus clientes.

Loja Handbook de TI

http://www.handbookdeti.com.br

Serviço de Atendimento

Comunicação direta com a Equipe Handbook de TI pode ser feita emhttp://www.handbookdeti.com.br/contacts

Twitter do Handbook de TI

Que acompanhar de perto o trabalho do Grupo Handbook de TI. Cadastre-se no twitter ecomece a seguir o grupo Handbook de TI em http://twitter.com/handbookdeti

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

Page 5: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

1. Assuntos relacionados: Arquitetura de Computadores,Modos de Endereçamento de Memória,

Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 21

Um computador tem um registrador R e um conjunto de instruções de um operando, todascom modo de endereçamento indireto. Três destas instruções são especi�cadas a seguir.

LD: Copia da memória principal para o registrador R.

AC: Adiciona da memória principal ao registrador R.

ST: Move do registrador R para a memória principal.

Considere o programa apresentado abaixo, executado no computador, acessando o bloco dememória principal, cuja situação inicial é mostrada a seguir.

Endereço Valor Armazenado00H 01H01H 02H02H 03H03H 04H04H 05H

LD 01HAC 02HST 03HAC 00HST 01HLD 03HST 00H

Considere que tanto o endereçamento quanto os valores envolvidos nas operações utilizamapenas 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 umainstrução de programa, há várias maneiras de referenciar um valor, as mais conhecidas são:

• Imediato: o valor do operando é especi�cado diretamente na instrução. Sua principalvantagem é não requerer acesso à memória para obter o operando. A desvantagem é queesse modo impõe uma limitação no tamanho do operando. Suponha que o computador

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

Page 6: handbook_questoes_vol2 - Cópia

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 fossecopiado para o registrador R. Entretanto, há ocasiões em que não somente um bytedeve ser copiado, por exemplo LD 201040H. Nesse caso, como o valor é armazenadodiretamente na instrução, seria necessário aumentar o tamanho da instrução e isso nãoé possível na maioria das arquiteturas de computador;

• Direto: o campo de endereço contém o endereço efetivo do operando na memória. Re-quer, portanto, apenas um acesso para determinar o valor do operando. Sua limitaçãoé fornecer um espaço de endereçamento limitado. Suponha que o computador descritosuporte endereçamento direto. A instrução LD 01H, faria com que o valor armazenadona posição de memória 01H, ou seja, 02H fosse copiado. Entretanto, se a instruçãopossuir somente um byte para o endereçamento direto, por exemplo, a quantidade deposições de memória estará limitada em 256 (28);

• Indireto: o campo de endereço aponta para uma posição de memória que contém oendereço de memória do operando. Sua principal desvantagem é a necessidade de doisacessos à memória. A vantagem em relação ao modo de endereçamento direto é oaumento do espaço de endereçamento, que passa a ser igual 2n, onde n é o tamanhoda 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 umapalavra com tamanho de 2 bytes. Um endereçamento na forma indireta, possibilitaráo endereçamento de 65536 posições de memória (216) e não mais 256 como no en-dereçamento direto. Não é o caso da questão, onde tanto o tamanho permitido paraendereçamento na instrução e o tamanho da palavra de memória são iguais a um byte;

• Registrador : é semelhante ao modo direto, no entanto, o campo de endereço se refere aum registrador e não a uma posição de memória. Geralmente, esse campo é compostopor 3 ou 4 bits, o que permite referenciar de 8 a 16 registradores de propósito geral.Suas vantagens são o tamanho pequeno do campo de endereço e a não necessidadede se acessar à memória. Sua desvantagem é o espaço de endereçamento limitadopelo número de registradores. Por exemplo, poderíamos supor que o computador daquestão permitisse endereçamento por registrador e tivesse 16 registradores. Assim,seria possível que um registrador além do R, por exemplo S, pudesse ser endereçadocomo 05H. Uma instrução da maneira LD 05H copiaria o valor do registrador S para oregistrador R;

• Indireto via Registrador : semelhante ao modo de endereçamento indireto. O campode endereço aponta para o registrador que contém a posição de memória do operando.Sua vantagem é a necessidade de um único acesso à memória, um a menos que no modoindireto;

• Deslocamento: requer que uma instrução tenha dois campos de endereço, com pelomenos um explícito. O valor de um dos campos é usado diretamente (valor = A). Ooutro campo é baseado no código da operação, e especi�ca um registrador cujo conteúdoé adicionado à A, para produzir o endereço efetivo. Os três modos de endereçamentopor deslocamento são: relativo, via registrador-base e indexado;

• Pilha: a pilha é um bloco reservado de posições de memória. Elementos podem sercolocados e removidos do topo da pilha. O apontador do topo da pilha (stack-pointer)é mantido em um registrador. Portanto, de fato, referências a pilha são feitas porendereçamento indireto via registrador.

Já que a questão trata de endereçamento indireto, o valor armazenado no local especi�cadopelo operando é o endereço de memória do valor que será utilizado na operação. Por exemplo,a instrução LD 01H, carrega, no registrador R, o valor 03H, pois no endereço 01H está

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

Page 7: handbook_questoes_vol2 - Cópia

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 ospassos do programa, teremos:

1. LD 01H, R ← 03H, R recebe o valor armazenado no endereço 02H;

2. AC 02H, R ← 03H + 04H ← 07H, o valor de R é somado ao valor armazenado noendereço 03H;

3. ST 03H, [04H] ← 07H, a posição de memória 04H recebe o valor do registrador R;

4. AC 00H, R ← 07H + 02H ← 09H, o valor de R é somado ao valor da posição 01H;

5. ST 01H, [02H] ← 09H, a posição de memória 02H recebe o valor de R;

6. LD 03H, R ← 07H, R recebe o valor armazenado no endereço 04H;

7. ST 00H, [01H] ← 07H, a posição de memória 01H recebe o valor de R.

Após o término do programa, a situação �nal do bloco de memória será de acordo com aTabela 1.

Tabela 1: situação �nal do bloco de memória.Endereço Valor Armazenado

00H 01H01H 07H02H 09H03H 04H04H 07H

A soma é 01H+07H+09H+04H+07H = 1CH, que, em decimal, é 28. Logo, a alternativacorreta é a letra (e).

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

Page 8: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

2. Assuntos relacionados: Arquitetura de Computadores, Thread,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 22

Alguns sistemas operacionais permitem que seus processos criem múltiplos threads de ex-ecução. Em operação normal, o que é previsto que os threads de um mesmo processo dosistema operacional compartilhem?

(a). Arquivos abertos

(b). Registradores

(c). Pilha (stack)

(d). Variáveis locais de cada thread

(e). Contador de instrução (program counter)

Solução:

Uma thread é comumente de�nida como um �uxo único de controle sequencial dentro deum programa. O uso de threads visa reduzir o custo do gerenciamento de processos, queconsiste principalmente em:

• criação do processo;

• trocas de contextos entre processos;

• overhead associado a esquemas de proteção de memória;

• comunicação entre processos.

Podemos dizer que as threads pertencentes ao mesmo processo utilizam os recursos alocadosno sistema operacional para esse processo, como:

• o espaço de endereçamento na memória;

• os arquivo abertos (handles);

• os objetos de sincronização.

O compartilhamento desses recursos permite que os �uxos de execução (threads) se comu-niquem e�cientemente. Então, a letra (a) é a opção correta.

Entretanto, threads dentro de um processo (e também entre processos) são escalonadase executadas independentemente. No momento de sua execução, cada thread recebe algunsrecursos próprios, como:

• os registradores;

• a pilha de execução, que lhe dará poder para chamar métodos, passar parâmetros ealocar variáveis locais;

• o contador de instrução (program counter), que é essencial para que o �uxo de execuçãoprossiga.

É importante perceber que para que o acesso a esses recursos exclusivos ocorra, é necessárioo chaveamento de contexto entre as threads, ou seja, o estado dos elementos próprios citadosdeverá ser armazenado e restaurado a cada troca de thread no uso do processador.

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

Page 9: handbook_questoes_vol2 - Cópia

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 recursosque não são compartilhados entre threads. A Figura 1 exempli�ca o compartilhamento dasthreads dentro de um processo.

Figura 1: exempli�cação de um processo com uma única thread e com múltiplas threads.

Concluindo, as principais vantagens do uso de threads são:

• permite a exploração do paralelismo real oferecido por máquinas multiprocessadas;

• possibilita o aumento do número de atividades executadas por unidade de tempo(throughput);

• permite sobrepor operações de cálculo com operações de I/O e, com isso, reduzir otempo de resposta;

• o tempo de criação e destruição de threads é inferior ao tempo de criação e destruiçãode processos, respectivamente;

• o chaveamento de contexto entre threads é mais rápido que o tempo de chaveamentoentre processos;

• como threads compartilham o descritor do processo, elas dividem o mesmo espaço deendereçamento, o que permite a comunicação por memória compartilhada sem interaçãocom o núcleo (kernel) do sistema operacional.

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

Page 10: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

3. Assuntos relacionados: Banco de Dados, Modelo Relacional, Normalização de Banco deDados, Primeira Forma Normal (1FN),Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 23

É correto a�rmar que qualquer relação válida de um modelo relacional:

(a). pode apresentar tuplas duplicadas, desde que não haja chaves candidatas de�nidas.

(b). em seus atributos ordenados da esquerda para a direita, de acordo com a de�nição.

(c). tem suas tuplas naturalmente ordenadas, para �ns de localização.

(d). tem um índice físico para cada chave candidata, incluindo a chave primária.

(e). está, pelo menos, na primeira forma normal.

Solução:

Conceitualmente, em um banco de dados relacional, as relações podem ser de�nidas comoum 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 mesmarelação possuem o mesmo conjunto de atributos. Entretanto, em uma relação, elas devempreservar o que é chamado de integridade existencial, que, basicamente, implica que tuplasiguais (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 é de�nir 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 umconjunto de linhas e colunas. Já as relações, que já foram de�nidas acima, são implemen-tadas �sicamente em tabelas, que, obviamente, devem atender às condições exigidas em umarelação. Ou seja, nem toda tabela representa uma relação.

Na de�nição da primeira forma normal dada por Date, uma tabela está na primeira formalnormal se, e somente se, for isomór�ca à alguma relação. Isso quer dizer que, especi�camente,a tabela deve atender às cinco condições abaixo:

• não existe uma ordenação das linhas de cima para baixo;

• não existe uma ordenação das colunas da direita para esquerda;

• não existem linhas duplicadas;

• qualquer interseção linha-coluna deve conter exatamente um valor no domínio aplicávele nada mais;

• todas as colunas são regulares, no sentido de não possuírem componentes ocultos comoidenti�cadores de linhas, identi�cadores de colunas, identi�cadores de objetos ou times-tamps ocultos. Veja nas Tabelas 2, 3 e 4 um exemplo de cenário em que a informaçãocontida em uma tabela que não está na 1FN é transportada para outras tabelas queestão na 1FN.

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

Page 11: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

idPessoa nmPessoa dtAniversario nrTelefones1 João Roberto 01/05/1980 9311-9654 - 3698-57412 Juliana Gomes 28/02/1985 3232-4521 - 6352-9821 - 3987-88553 Talita Brandão 03/12/1988 5561-9874

Tabela 2: exemplo de tabela que não está na 1FN.

idPessoa nmPessoa dtAniversario1 João Roberto 01/05/19802 Juliana Gomes 28/02/19853 Talita Brandão 03/12/1988

Tabela 3: exemplo de tabela que está na 1FN.

idTelefone idPessoa nrTelefone1 1 9311-96542 1 3698-57413 2 3232-45214 2 6352-98215 2 3987-88556 3 5561-9874

Tabela 4: exemplo de tabela que está na 1FN.

Dada a exposição teórica, podemos analisar as alternativas da questão:

a. falsa, uma relação válida não permite tuplas duplicadas.

b. falsa, a ordenação dos atributos não de�ne a relação.

c. falsa, a ordenação das linhas não de�ne a relação.

d. falsa, a relação é uma de�nição no nível conceitual. Os índices físicos são de�nidos nonível físico e não in�uenciam no conceito de relação. Geralmente, esses índices podemser livremente criados para qualquer conjunto de atributos, já a obrigação citada deserem criados para cada chave candidata não existe e não faz nenhum sentido.

e. verdadeira, pois, por de�nição, uma tabela representa uma relação se, e somente se, atabela está na primeira forma normal.

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

Page 12: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

4. Assuntos relacionados: Banco de Dados, Modelo Entidade-Relacionamento,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 24

Um modelo entidade-relacionamento foi reestruturado conforme mostrado na �gura acima.Concluiu-se que todos os usuários eram funcionários, embora nem todos os funcionários fos-sem usuários. O modelo relacional derivado desse modelo conceitual possuía originalmenteduas variáveis de relação básicas, com os mesmos nomes das entidades correspondentes,tendo ambas EMAIL como chave primária. Considerando que a variável de relação FUN-CIONARIO não será modi�cada e que a independência de dados lógica será honrada, avariável de relação USUARIO

(a). terá que manter todos os seus atributos originais.

(b). dispensará o uso de chaves candidatas.

(c). será substituída por uma variável de relação básica e uma derivada.

(d). será substituída por uma variável de relação básica, apenas.

(e). será substituída por uma variável de relação derivada, apenas.

Solução:

O modelo entidade-relacionamento é um padrão para modelagem conceitual de banco dedados. 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 114www.handbookdeti.com.br

Page 13: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Uma entidade é um objeto que pode ser identi�cado de forma unívoca a todos os out-ros objetos. A entidade pode representar tanto algo concreto, como uma pessoa, ou algoabstrato, como um empréstimo, por exemplo. Um conjunto de entidades reúne todas asentidades de um mesmo tipo, ou seja, que possuem as mesmas propriedades: atributos.

Os atributos são propriedades que descrevem cada entidade de um conjunto de entidades.Dizemos ainda que cada entidade pode ter seu próprio valor para cada atributo. Exemplo:uma determinada entidade que representa uma pessoa pode ter o valor João Assis para oatributo nome e o número 2367727 para o atributo número de inscrição.

O modelo entidade-relacionamento pode descrever diversos outros objetos importantes paraa modelagem de banco de dados, como os conjuntos de relacionamentos, os atributos mul-tivalorados e a participação de entidades em um conjunto de relacionamentos.

Há, ainda, os conceitos de generalização e especialização. Generalização é o resultado daunião de dois ou mais conjuntos de entidades, produzindo um conjunto de entidades de nívelmais alto. Por outro lado, especialização é o resultado da separação de um subconjunto deentidades, formando conjuntos de entidades de nível mais baixo. A generalização é usadapara enfatizar as semelhanças entre entidades de nível mais baixo e ocultar suas diferenças.A especialização é o inverso: ela enfatiza as diferenças entre as entidades.

Veri�ca-se que, no primeiro modelo, existem duas entidades independentes com seus re-spectivos atributos. A transformação realizada para se chegar ao segundo modelo conceitualnada mais é do que um processo de generalização.

Já o modelo relacional ao qual a questão se refere é uma maneira de representar o bancode dados logicamente, e não conceitualmente. No modelo relacional, os dados são represen-tados como relações matemáticas, isto é, como um subconjunto do produto cartesiano den conjuntos. Na etapa de transformação do modelo conceitual para o modelo lógico, serápermitido ao projetista criar um modelo consistente da informação a ser armazenada pormeio do processo de normalização, por exemplo.

No modelo relacional, uma variável relacional, também conhecida como �relvar�, é umavariável que representa uma relação. Para tornarmos a explicação bem simples, podemosdizer 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.

O modelo relacional derivado do primeiro modelo entidade-relacionamento pode ser descritoda seguinte maneira:

Funcionario(email, nome)Usuario(email, nome, login)

Segundo o enunciado, após a generalização, a variável de relação Funcionario será man-tida sem modi�cações. Já, para a variável de relação Usuario, criaremos uma nova variávelde relação básica da seguinte forma:

UsuarioTabela(email, login)

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

Page 14: handbook_questoes_vol2 - Cópia

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á su�cientepara representar o usuário na variável de relação Funcionario. Note que, dessa maneira, aindependência lógica ainda não está honrada, já que a variável de relação UsuarioTabelanão possui a informação do atributo nome.

Para garantirmos a independência lógica, precisamos criar uma variável relacional derivadaque chamaremos de UsuarioVisao ou simplesmente Usuario. No SQL, essa variável de relaçãorepresentará uma junção das tabelas geradas pelas variáveis de relação básica Funcionarioe UsuarioTabela e representará todos os usuários, mas, dessa vez, com o atributo nomeadvindo da tabela que representa o conjunto de funcionários.

Dada as explicações imediatamente acima, a resposta correta é a alternativa C.

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

Page 15: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

5. Assuntos relacionados: Banco de Dados, Normalização de Banco de Dados, PrimeiraForma Normal (1FN), Segunda Forma Normal (2FN), Terceira Forma Normal (3FN),Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 25

As informações a seguir são comuns às questões de número 5 ao 8

Considere as tabelas de um banco de dados relacional descritas abaixo, onde os camposque compõem chaves primárias estão assinalados com *.

TABELA CAMPOSCLIENTE *CODIGO_C, CPF, NOME, CIDADEPRODUTO *CODIGO_P, DESCRICAO, PRECOVENDA *CODIGO_C, *CODIGO_P, CPF, DATA, QUANTIDADE

Há uma chave estrangeira de VENDA para CLIENTE com base nos campos CODIGO_Ce de VENDA para PRODUTO com base nos campos CODIGO_P. O campo CPF é chavecandidata para CLIENTE e também é armazenado na tabela VENDA. Os campos NOMEe DESCRICAO também são chaves candidatas de suas respectivas tabelas. Os camposCIDADE, PRECO, DATA e QUANTIDADE admitem valores repetidos.

Sobre as formas normais a que as tabelas satisfazem, assinale a a�rmativa correta.

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

(d). VENDA não satisfaz à segunda forma normal (2FN).

(e). As três tabelas satisfazem à terceira forma normal (3FN).

Solução:

Primeiramente, vamos de�nir 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 estadoB correspondente. No caso, A é o determinante e B é o dependente.

A dependência funcional trivial indica que um determinante com mais de um atributopode determinar seus próprios membros quando isolado. Exemplo: {banco, agencia} →{agencia}. A dependência funcional não-trivial indica que um determinante identi�ca outroatributo qualquer {banco, agencia} → {cidade}.

Se um atributo A determina B e se B determina C, podemos dizer que A determina Cde forma transitiva. Isto é, existe uma dependência funcional transitiva de A para C. Ex-emplo: cidade → estado, estado → pais, então cidade → pais.

Uma chave candidata é um atributo ou conjunto de atributos que é único dentre todosos registros. Já a chave primária é uma chave escolhida entre as chaves candidatas para sero identi�cador principal da tabela.

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

Page 16: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Outra de�nição importante é a do atributo não-primo, que é um atributo que não ocorreem 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 algumsubconjunto próprio de qualquer chave candidata. Melhor dizendo: todas as colunas quenão fazem parte de nenhuma chave candidata dependem de todas as colunas que compõemqualquer 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 formanormal 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 nasegunda forma normal garantidamente. Já ao analisarmos a tabela VENDA poderíamos nosenganar 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 é umsubconjunto próprio da chave primária. Essa conclusão seria verdadeira se não fosse pelofato de {CPF,CODIGO_P} ser uma chave candidata, tornando o atributo CPF primo, ouseja 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 tabelaCLIENTE, notamos que o atributo CIDADE é o único não-primo, sendo impossível, dessamaneira, 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 chavecandidata e a tabela CLIENTE está na terceira forma normal. O único atributo não-primoda tabela PRODUTO é PRECO. Portanto, seguindo o mesmo raciocínio anterior, concluí-mos que PRODUTO está na terceira forma normal.

A tabela VENDA tem 2 atributos não-primo: DATA e QUANTIDADE. Como não hádependência funcional entre eles, essa tabela também está na terceira forma normal.

Logo, concluímos que todas as tabelas satisfazem à terceira forma normal e a alternativa aser 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 à formanormal de Boyce Codd (FNBC), ao contrário da tabela VENDA, que não satisfaz. Umatabela que não satisfaz a forma normal de Boyce Codd (FNBC) pode ser identi�cada comas seguintes características:

• encontramos duas ou mais chaves candidatas ({CODIGO_C, CODIGO_P} e {CPF,CODIGO_P}, no caso da tabela VENDA);

• as chaves candidatas apresentam mais de um atributo (são compostas);

• todas as chaves candidatas têm um atributo em comum (CODIGO_P, no caso daschaves candidatas da tabela VENDA).

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

Page 17: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

6. Assuntos relacionados: Banco de Dados, SQL,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 26

Considere o comando em SQL apresentado a seguir.

SELECT C.CIDADE, AVG(P.PRECO)

FROM CLIENTE C, PRODUTO P, VENDA V

WHERE C.CODIGO_C = V.CODIGO_C AND P.CODIGO_P = V.CODIGO_P AND

P.PRECO > 100

GROUP BY C.CIDADE

HAVING AVG(P.PRECO) < 200

O que exibe esse comando?

(a). Para cada cidade, a média de preço de produtos vendidos a clientes da cidade comvalores 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 cidadecom 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 cidadeque 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 dentreas que tiveram média menor do que 200 e produtos vendidos com valores acimade 100.

Solução:

A primeira cláusula WHERE (C.CODIGO_C = V.CODIGO_C) irá implementar umajunçã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.

Adicionando mais uma cláusula de junção (P.CODIGO_P = V.CODIGO_P ), será re-alizada uma junção com a relação já obtida anteriormente. Nesse caso, todos os produtosvendidos serão listados com suas respectivas informações de descrição, preço, data de quandofoi realizada a venda e as informações completas do cliente.

Entretanto, ao se usar a cláusula P.PRECO > 100, nem todos os produtos vendidos serãolistados. 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 ereunirá informações, de acordo com AV G(P.PRECO), do preço médio unitário de cadaproduto, dentro, é claro, dos produtos que já possuem valor unitário maior do que 100. Ex-empli�cando: caso os clientes de uma determinada cidade X tenham comprado exatamente6 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 114www.handbookdeti.com.br

Page 18: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

desses produtos é (1000 + 500 + 120 + 120)/4 = 435.

Já a última cláusula HAVING AV G(P.PRECO) < 200 irá permitir que somente as cidadescujo preço médio dos produtos adquiridos seja menor que 200. A cidade X anteriormentecitada não irá entrar na relação �nal, já que a média dos preços unitários de seus produtosadquiridos é 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 produtoHAVING AV G(P.PRECO) < 200 e não a média de compra.

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

Page 19: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

7. Assuntos relacionados: Banco de Dados,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 27

Há 3 cidades com 5 clientes cada, 2 cidades com 4 clientes cada e 10 produtos cadastradosno banco de dados. Se um cliente não compra o mesmo produto duas vezes no mesmo diae nem em dois dias seguidos, a quantidade máxima de registros na tabela VENDA, paraclientes de uma determinada cidade, em um intervalo qualquer de 30 dias, será

(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 umintervalo 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, masnã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, essascidades 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 databela VENDA. Podemos também calcular a quantidade máxima de registros na tabelaVENDA 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 114www.handbookdeti.com.br

Page 20: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

8. Assuntos relacionados: Banco de Dados, Modelo Multidimensional, Data Mart, DataWarehouse,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 28

Um datamart será montado para análise das vendas. Consultas serão feitas com base emprodutos, períodos, cidades e clientes. Assinale a a�rmação correta sobre o modelo multidi-mensional a ser gerado.

(a). É conveniente criar uma tabela para a dimensão DATA, para evitar cálculos comdatas 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á constarda tabela fato.

(c). Pelas especi�cações, CIDADE deve ser, necessariamente, uma dimensão do mod-elo.

(d). O modelo estará necessariamente no formato �oco de neve (snow�ake).

(e). QUANTIDADE é um fato não aditivo.

Solução:

Um datamart pode ser conceituado como um subconjunto dos dados de uma organizaçãoque são direcionados a propósitos bem especí�cos ou a pequenos grupos de pessoas que osutilizam como auxílio em tomadas de decisão.

Os datamarts podem ser entendidos como subconjuntos de um data warehouse. Hoje écomum que as empresas comecem a construir o seu data warehouse a partir de datamartsfocados em áreas bem especí�cas e, assim, irem expandindo até formarem o seu data ware-house.

É preciso �car claro que as diferenças entre datamart e data warehouse são apenas comrelação ao tamanho e ao escopo do problema a ser resolvido. Portanto, as de�nições dosproblemas e os requisitos de dados são essencialmente os mesmos para ambos. Enquantoum datamart trata de um problema departamental ou local, um data warehouse envolve oesforç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 datawarehouse 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. De�n-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 de�nir um fato representando as vendas totais realizadasnas cidades de um determinado estado e analisar o resultado de suas medidas ao longo dotempo.

Os fatos podem ser aditivos, semi-aditivos e não-aditivos. Um fato é aditivo quando elepode ser agregado em todas as dimensões. Por exemplo, VENDAS pode ser agregado em

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

Page 21: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

qualquer combinação das dimensões DATA, PRODUTO e CIDADE. Um fato é semi-aditivoquando ele não pode ser agregado em pelo menos uma dimensão. Por exemplo, o número deempregados é aditivo nos diferentes departamentos da empresa, mas não o é na dimensãoDATA. Um fato é não-aditivo quando não pode ser agregado em nenhuma dimensão.

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 dimensionaissão a fonte para as restrições mais interessantes nas consultas a um DW e são virtualmentea 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 emque cada registro representa uma cidade e descreve outros detalhes da cidade através de seusatributos, 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 nocentro do esquema e as tabelas de dimensões nas extremidades. O esquema estrela podeser estendido de maneira que cada uma das pontas da estrela passa a ser o centro de outrasestrelas. Por exemplo, a dimensão CIDADE poderia ser decomposta de maneira que hajaoutra tabela representando os estados e outras informações relacionadas a ele. Essa decom-posição seria basicamente um processo de normalização.

Vamos, agora, analisar as alternativas.

A alternativa (A) está correta. Ao criarmos uma tabela dimensão DATA, podemos criarum 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 queprecise saber a quantidade de vendas em um determinado período de tempo terá um customuito menor.

A alternativa (B) está incorreta, pois no dimensionamento de um data warehouse, somoslivres para de�nir nossos fatos. No caso especí�co, um fato que só tivesse a chave primáriada tabela PRODUTO não teria interesse nenhum para os negócios, pois, em geral, os fatosdevem estar associados a valores que tenham representatividade, como a quantidade vendidade um determinado produto, por exemplo.

O mesmo argumento dado anteriormente serve para as alternativas (C) e (D). Há algumasmodelagens que são mais interessantes que outras, dependendo do objetivo que se desejaalcançar, mas não há nenhuma restrição como as indicadas nas alternativas (C) e (D) paraa determinação de um modelo de data warehouse.

A alternativa (E) está errada, pois QUANTIDADE nem é um fato.

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

Page 22: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

9. Assuntos relacionados: RSS, ATOM,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 29

Os formatos de distribuição de informações e notícias (newsfeeds) RSS e ATOM foram dis-seminados pelos blogs e têm sido utilizados nos mais variados tipos de sites como alternativaa outras modalidades de distribuição de notícias. Sobre este tema, é correto a�rmar que

(a). ao assinar um newsfeed, o usuário passa a receber emails periódicos com as notíciasfornecidas pelo mesmo.

(b). ao contrário do ATOM, o RSS é um padrão do IETF (Internet Engineering TaskForce).

(c). os newsfeeds em ATOM são estruturados em formato XHTML.

(d). os newsfeeds em RSS são estruturados em formato HTML.

(e). o recurso de autodescoberta para ambos os formatos pode ser implementadoatravés de tags link na seção header da página do site que os oferece.

Solução:

(A) ERRADA

As informações publicadas via RSS e ATOM podem ser acessadas basicamente via leitores defeeds, também conhecidos como agregadores. Os agregadores são programas que permitema 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, assimcomo agregadores nos próprios browsers. Exemplos típicos de programas leitores de RSSsão Google Reader, RSS Reader e Bloglines. No linguajar das tecnologias RSS e ATOM, osos 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 veri�car 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 asnotí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, masatualmente sua especi�cação é mantida pelo RSS Advisory Board, cujo site o�cial é ohttp://www.rssboard.org. Como o RSS não é um padrão IETF, concluímos que esta al-ternativa está errada.

(C) e (D) ERRADAS

Tanto o RSS quanto o ATOM são estruturados em XML, e não em XHTML e HTMLcomo apresentam as alternativas.

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

Page 23: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(E) CORRETA

O recurso de autodescoberta é uma forma automática de noti�car os aplicativos (browser,leitores, agregadores etc) que um determinado site possui feeds. Um exemplo típico daimplementação do recurso de autodescoberta de feeds é mostrado a seguir.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

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

Page 24: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

10. Assuntos relacionados: Segurança da Informação, PKI, Certi�cado Digital, HTTPS,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 30

Durante o projeto de uma aplicação Internet, veri�cou-se a necessidade de a mesma propor-cionar conexões seguras entre o browser dos clientes e o servidor de aplicações, utilizandoHTTPS. Durante uma reunião entre os diversos membros da equipe do projeto, foram feitasas a�rmativas a seguir.

I - Será preciso dotar o servidor de aplicação de um certi�cado digital.

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 mesmosestarem sujeitos à interceptação; esta é a principal razão pela qual alguns serviços naInternet 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.

Estão corretas APENAS as a�rmativas

(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 HTTPsobre 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ãocriptografada e que se veri�que a autenticidade das partes comunicantes por meio de certi�-cados digitais. Portanto, a alternativa I é correta, pois o uso de certi�cados digitais é parteda implementação do HTTPS.

Um exemplo típico da utilização de HTTPS são as páginas de login dos webmails, nasquais 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 garantea autenticidade do servidor que, no processo de estabelecimento da comunicação, apresentaao cliente um certi�cado digital que atesta sua identidade.

Repare que no exemplo dado, um usuário A pode se passar por um usuário B, bastandopara isso que A conheça a senha de B. Ou seja, não há autenticação por parte do cliente. Naverdade, 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 preocupamcom a autenticação dos clientes. No entanto, a autenticação dos clientes vem se tornando

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

Page 25: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

mais comum, principalmente em aplicações governamentais e em sites de bancos. O e-CPF,por exemplo, pode ser utilizado para garantir a identidade do contribuinte nas relações coma Receita Federal através da Internet. Alguns bancos também têm passado a usar autenti-cação de múltiplos fatores, por meio do uso de tokens OTP e de certi�cados digitais.

É importante ressaltar que, mesmo que apenas uma das partes (servidor ou cliente) seautentique, a comunicação será criptografada tanto no sentido cliente/servidor quanto nosentido servidor/cliente, já que toda a comunicação acontece pela mesma conexão TCP.Portanto, a alternativa III é incorreta.

As portas às quais se refere a a�rmativa IV são as portas utilizadas na camada de transportepelo TCP para oferecer os serviços às aplicações das camadas superiores. Para cada pro-grama da camada de aplicação que deseja se comunicar usando o TCP, é necessário alocarao menos um socket, que pode ser de�nido como um endpoint para comunicação, sendounicamente identi�cado pela combinação (Endereço IP, Porta TCP). Uma conexão TCP,portanto, é formada por um par de sockets. Para ter conexões HTTP e e HTTPS acessíveispor um mesmo IP, é necessário que esses serviços utilizem portas TCP diferentes. Comu-mente, os serviços HTTP e HTTPS utilizam as portas 80 e 443, respectivamente. Portanto,a alternativa IV é correta.

A a�rmativa II trata da estruturação de uma PKI (Public Key Infrastructure), que pode serde�nida como um conjunto de hardware, software, pessoas, políticas e procedimentos paracriar, gerenciar, armazenar, distribuir e revogar certi�cados 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 Certi�cadoras (ACs)e as Autoridades de Registro (ARs), cujas de�nições no glossário do ICP Brasil são:

• Autoridade Certi�cadora: é a entidade, subordinada à hierarquia da ICP Brasil, re-sponsável por emitir, distribuir, renovar, revoga e gerenciar certi�cados digitais. Cabetambém à AC emitir listas de certi�cados revogados (LCR) e manter registros de suasoperações sempre obedecendo as práticas de�nidas na Declaração de Práticas de Cer-ti�cação (DPC). Desempenha como função essencial a responsabilidade de veri�car seo titular do certi�cado possui a chave privada que corresponde à chave pública quefaz parte do certi�cado. Cria e assina digitalmente o certi�cado do assinante, onde ocerti�cado emitido pela AC representa a declaração da identidade do titular, que possuium par único de chaves (pública/privada). Na hierarquia dos Serviços de Certi�caçãoPública, as AC estão subordinadas à Autoridade Certi�cadora de nível hierarquica-mente superior;

• Autoridade de Registro: entidade responsável pela interface entre o usuário e aAutoridade Certi�cadora. Vinculada a uma AC que tem por objetivo o recebimento,validação, encaminhamento de solicitações de emissão ou revogação de certi�cados digi-tais às ACs e identi�cação, de forma presencial, de seus solicitantes. É responsabilidadeda AR manter registros de suas operações. Pode estar �sicamente localizada em umaAC ou ser uma entidade de registro remota.

Outros elementos e termos importantes no contexto de infraestruturas de chaves públicaspodem ser pesquisados no glossário do ICP Brasil, disponível no endereçohttps://www.icpbrasil.gov.br/duvidas/glossary.

Como em várias questões de concurso, o exigido do candidato nesse caso é o conhecimento

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

Page 26: handbook_questoes_vol2 - Cópia

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ênciaas tais FAs (autorização de funcionamento), presente na a�rmativa II. Portanto, pode-seconsiderar a alternativa II errada.

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

Page 27: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

11. Assuntos relacionados: XML,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 31

Um tag XML válido do ponto de vista sintático é

(a). <nome do cliente>Carlos da Silva</nome do cliente>

(b). <_endereco tipo=�residencial�>Rua das Flores, 1234</_endereco>

(c). <telefone numero=12345678 />

(d). <*preferencial* />

(e). <pro�ss&atilde;o>Professor</pro�ss&atilde;o>

Solução:

XML é o acrônimo para Extensible Markup Language. Assim como o HTML (HyperTextMarkup 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 oHTML de�ne a apresentação dos dados, enquanto o XML de�ne a estruturação dos dados eo que eles representam. Em outras palavras, o XML é utilizado para descrever o conteúdodo documento.

Assim como o HTML, o XML faz uso de tags (palavras encapsuladas por sinais '<' e '>')e atributos (de�nidos com name=�value�). No HTML, as tags e atributos especi�cam têmfunções de�nidas. 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 tagssão utilizadas apenas para delimitar os trechos de dados. Ou seja, uma tag <p>, que noHTML indicaria um parágrafo, no XML pode indicar um preço, um parâmetro, uma pessoaou qualquer outra informação.

Outro ponto fundamental na diferença entre o HTML e o XML é que no HTML existeum conjunto �nito de tags, enquanto no XML, o conjunto de tags utilizadas em um doc-umento pode ser de�nido pelo próprio usuário da linguagem, devendo as tags obedeceremum conjunto de regras de nomenclatura.

Na especi�cação formal do XML, as regras de nomenclatura são de�nidas em termos uti-lizando a notação EBNF (Extended Backus-Naur Form). A seção 2.3 da especi�cação doXML, disponível em http://www.w3.org/TR/2006/REC-xml11-20060816/, apresenta emdetalhe as regras de sintaxe. Algumas das regras mais importantes são as seguintes:

• os nomes dos elementos podem conter letras, números e outros caracteres;

• 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 outrasanálogas;

• os nomes dos elementos não podem conter espaços.

Pelo o exposto, a alternativa (A) é inválida, pois o nome do elemento possui espaços. Aalternativa (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 114www.handbookdeti.com.br

Page 28: handbook_questoes_vol2 - Cópia

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çãoem nome de tag. A alternativa (E) também é inválida, pois o nome do elemento está noformato HTML encoded. O nome deveria ser simplesmente <pro�ssão>, sem a necessidadede substituir o ã pela sequência &atilde. A única alternativa correta é, portanto, a letra(B).

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

Page 29: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

12. Assuntos relacionados: XML, CSS, HTTP,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 32

Analise as a�rmativas a seguir, sobre CSS (Cascading Style Sheets).

I Uma folha de estilo CSS é um documento XML, em conformidade com o esquema XMLxsd:css mantido pelo consórcio W3C, o que constitui uma barreira inicial de adoçãopara organizações onde o layout e a programação visual dos sites e portais são mantidaspor pro�ssionais de criação ao invés de desenvolvedores.

II O uso de folhas de estilo CSS externas, em alternativa à marcação com atributos nostags HTML e XHTML, proporciona uma redução signi�cativa da exigência de banda,melhorando a experiência do usuário e demandando menos recursos dos servidores dosite.

III É possível especi�car folhas de estilos diferentes para diferentes mídias em que a páginaserá utilizada, o que permite, por exemplo, que uma mesma página se apresente deforma diferente quando visualizada no browser e impressa.

IV O termo �Cascading�, que, em Português, pode ser traduzido como �Em Cascata�, re�eteo fato de que, durante a aplicação de estilos a um documento, os tags que satisfazem amais de um seletor receberão apenas os atributos de estilo do seletor especi�cado porúltimo, ignorando todos os atributos de seletores anteriores.

Estão corretas APENAS as a�rmativas

(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 paraestilizar páginas Web escritas em HTML, mas ele pode ser utilizado para formatar qualquertipo de documento XML. O CSS foi primariamente desenvolvido para permitir a separaçãoentre o conteúdo e elementos de apresentação de um documento, como cores, fontes e layouts.Essa separação permite, por exemplo:

• aumentar a acessibilidade do conteúdo, a medida que permite a elaboração de docu-mentos de melhor apresentação;

• prover maior �exibilidade e controle na especi�cação dos características da apresentaçãodo conteúdo;

• reduzir a complexidade e a repetição do conteúdo estrutural da página, permitindo ochamado tableless web design;

• reutilizar o código de apresentação, uma vez que vários documentos podem compartil-har as de�nições feitas em um único CSS.

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

Page 30: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Em resumo, pode-se dizer que, ao separar o conteúdo da apresentação, o CSS simpli�ca aeditoração e a manutenção de sites Web. Notoriamente, essa separação também permiteque a apresentação do site seja de�nida por designers (pro�ssionais de criação), que podemtrabalhar em paralelo aos desenvolvedores. Desprende-se disso que a a�rmativa I é incorreta.

O CSS permite também que um mesmo documento seja apresentado em diferentes estilos deacordo com o método de renderização utilizado. Nesse contexto, o método de renderização ébasicamente de�nido de acordo com o dispositivo em que o documento será apresentado, quepode ser uma tela de computador (on-screen), em uma impressora (in-print) e até mesmoem um dispositivo Braille. Essa �exibilidade do CSS tem ganhado enorme importância amedida que os dispositivos como hand-helds e celulares tem sido cada vez mais utilizadospara acesso a Internet. Portanto, a alternativa III está correta.

A utilização de arquivos CSS também pode contribuir para à economia de banda, a medidaque 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 queo site for acessado será menor. Em alguns casos, pode-se utilizar também o código �CSSinline�, 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 é especialmentepara diminuir o tempo de resposta de páginas que são acessadas uma vez (ou muito poucasvezes) dentro de uma sessão. Exemplos típicos de páginas com essa característica são aspáginas iniciais de sites como Yahoo! e Google. Com isso, a alternativa II está correta. Oendereç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 de�nido 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 deestilo, o local físico da folha de estilo no seu todo, o local físico da regra de estilo na folhade estilo e a especi�cidade da regra de estilo. A ordem crescente de prioridade para o efeitocascata é:

1 folha de estilo padrão do navegador do usuário;

2 folha de estilo do usuário;

3 folha de estilo do desenvolvedor:

3.1 estilo externo (importado ou linkado);

3.2 estilo incorporado (de�nido na seção head do documento);

3.3 estilo inline (dentro de um elemento HTML).

4 declarações do desenvolvedor com !important;

5 declarações do usuário com !important.

Assim, uma declaração de estilo com !important de�nido pelo usuário prevalece sobre todasas demais, pois é a de mais alta prioridade. Entre as folhas de estilo de�nidas pelo desen-volvedor do site, os estilos inline (dentro de um elemento HTML) tem a prioridade maiselevada, isto é, prevalecerá sobre a folha de estilo de�nida na seção head, e, esta prevalecerásobre uma folha de estilo externa. Portanto, a alternativa IV é errada pois de�ne de formaerrada as regras de priorização do CSS.

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

Page 31: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

13. Assuntos relacionados: Gerência de Projeto, Gerência de Tempo, Desenvolvimento deCronograma,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 33

Ao apresentar o cronograma de um projeto à diretoria da empresa, o gerente foi informadode que a data de término do projeto deverá ser antecipada em 3 meses. Esta exigênciaimplicará, necessariamente, em

(a). refazer as estimativas de esforço para uma ou mais tarefas do projeto.

(b). reduzir a duração do caminho crítico do projeto.

(c). alocar mais recursos ao projeto.

(d). fazer entregas diferentes das especi�cadas.

(e). aumentar o custo do projeto.

Solução:

(A) ERRADA

A antecipação da data �nal do projeto consiste, normalmente, em alterar a duração deatividades que pertencem ao caminho crítico. O caminho crítico, geralmente, é a sequênciade atividades do cronograma que determina a duração do projeto, isto é, o caminho maislongo do projeto. Dependendo da técnica de compreensão de cronograma utilizada, há a ne-cessidade de refazer as estimativas de esforço das atividades relacionadas ao caminho crítico,mas não é uma implicação necessária para reduzir o prazo de um projeto.

(B) CORRETA

Antecipar a data �nal do projeto em 3 meses implica em alterar as estimativas de du-ração das atividades do caminho crítico, ou seja, reduzir a duração do caminho crítico.Isso é realizado utilizando as técnicas de compressão de cronograma que consistem em re-duzir o prazo do projeto de�nido inicialmente sem afetar o escopo para atender restriçõesde cronograma. As técnicas utilizadas são a compressão e o paralelismo. Na comprensão,as compensações entre custo e cronograma são analisadas para determinar o máximo decompressão para o menor custo incremental. Essa técnica pode produzir uma alternativanão viável devido ao aumento de custo. Na de paralelismo, as fases ou atividades que nor-malmente serão realizadas em sequenciamento são realizadas em paralelo. Tal técnica podegerar retrabalho, devido a falta de informações mais detalhadas a respeito de uma atividade.

(C) ERRADA

Alocar mais recursos ao projeto não é implicação necessária para reduzir o prazo de umprojeto. Dependendo da técnica de comprensão de cronograma utilizada, há a necessidadede alocar mais recursos para as atividades relacionadas ao caminho crítico do projeto, maspara isso tem que ser analisado o impacto �nanceiro no projeto.

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

Page 32: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(D) ERRADA

Algumas vezes, ao se diminuir um cronograma, altera-se também o escopo do projeto. Écerto que não será a gerência de tempo que fará a alteração do escopo. Será sim a gerência deescopo, informada da diminuição do cronograma pela gerência de integração. De qualquerforma, é importante perceber que uma alteração no cronograma não necessariamente geraalterações das entregas.

(E) ERRADA

Aumentar o custo de um projeto depende da aprovação das pessoas interessadas, os stake-holders, no projeto, e não é uma negociação fácil. Além de que, o aumento de um custo deum projeto não é uma implicação necessária para reduzir o prazo de um projeto, conformejá descrevemos anteriormente.

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

Page 33: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

14. Assuntos relacionados: Gerência de Projeto, Gerência de Escopo, EAP,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 34

A Estrutura Analítica do Projeto - EAP (em Inglês Work Breakdown Structure � WBS)inclui

(a). estimativas de prazos.

(b). estimativas de custos.

(c). entregas internas e externas.

(d). alocação dos recursos às tarefas.

(e). estratégias para mitigação dos riscos.

Solução:

A área de gerenciamento do escopo compreende os processos necessários para assegurar queo projeto inclua todo o trabalho necessário, e somente ele, para �nalizar o projeto comsucesso. A gerência de escopo tem como principal preocupação de�nir o que está ou nãoincluído no projeto. A Estrutura Analítica do Projeto (EAP), elaborada pelo processo CriarEAP, é 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 basena estimativa de recursos necessários, sequenciamento e duração das atividades. O processoresponsá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ãona EAP.

(B) ERRADA

As estimativas de custo são elaboradas pela área de gerenciamento de custos baseado naestimativa dos recursos necessários para �nalizar cada atividade do cronograma. Os cus-tos das atividades do cronograma são estimados para todos os recursos cujos custos serãolançados no projeto. As estimativas de custo podem ser geradas por meio de ferramentase técnicas, como: estimativa análoga, modelagem paramétrica, estimativa bottom-up, soft-ware de gerenciamento de projetos, etc. As estimativas de custos estão descritas no Planode Gerenciamento de Custos e não na EAP.

(C) CORRETA

Uma entrega é qualquer produto ou serviço gerado pelo projeto. Segundo PMBOK, aEAP é uma decomposição hierárquica orientada a entrega de trabalho a ser executado pelaequipe de projeto, para atingir os objetivos do projeto e criar as entregas necessárias. AEAP subdivide o trabalho a ser realizado no projeto em partes menores, em que cada nível

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

Page 34: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

descendente representa uma de�nição mais detalhada do trabalho do projeto. O nível maisbaixo é conhecido como pacote de trabalho. É o ponto no qual o custo e o cronograma dotrabalho podem ser estimados de forma con�ável. En�m, todo o trabalho a ser executadono 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 de�nidas na EAP é realiza pela área de gerenciamentode recursos humanos e compreende a alocação propriamente dita da equipe ao projeto. Ospapéis e responsabilidades de�nidos serão destinados a uma pessoa ou grupo de pessoas. Asformas 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

Estratégia de mitigação de riscos é realizada pela área de gerenciamento de riscos e com-preende planejar as respostas aos riscos de forma a reduzir as ameaças, ou seja, determinarquais ações deverão ser tomadas para reduzir as ameaças aos objetivos do projeto. Váriasalternativas podem ser adotadas, como:

• evitar: mudar o plano do projeto para eliminar o risco;

• transferir: passar a resposta ao risco para terceiros;

• mitigar: estabelecer estratégias antecipadas para evitar que eventos causadores dorisco aconteçam;

• aceitar: não estabelece estratégias para lidar com os riscos.

As respostas aos riscos são incluídas no Registro de Riscos e não na EAP.

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

Page 35: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

15. Assuntos relacionados: Gerência de Projeto, Gerência de Custos, Gerenciamento deValor Agregado (GVA),Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 35

São enumeradas a seguir algumas métricas colhidas para determinado intervalo de tempoao longo da vida de um projeto.

I - Custo orçado do trabalho previsto.

II - Custo orçado do trabalho realizado.

III - Custo real do trabalho previsto.

IV - Custo real do trabalho realizado.

A técnica de Gerenciamento de Valor Agregado � GVA (em Inglês, Earned Value Manage-ment � EVM ) se baseia nas métricas

(a). I e II, apenas.

(b). I e III, apenas.

(c). II e IV, apenas.

(d). I, II e IV, apenas.

(e). I, II, III e IV.

Solução:

A GVA é uma metodologia de gerenciamento usada para integrar o escopo, o cronograma eos recursos de tal forma que se permita medir, objetivamente, o desempenho e o progressodo projeto. Com essa metodologia é possível prever o desempenho do projeto com base nodesempenho passado.

Para utilizar a GVA, é importante seguir alguns processos essenciais a qualquer projeto,como: de�niçã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 daalocaçã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 terconsumido até um dado ponto do cronograma. O BCWS é conhecido também comoValor Planejado (PV);

• BCWP (Budgeted Cost for Work Performed ou Custo Orçado para Trabalho Realizado)re�ete o valor do montante de trabalho que foi efetivamente realizado até uma dataespecí�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 é conhecidotambém como Custo Real (CR).

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

Page 36: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Para medir o desempenho, o Custo Orçado do Trabalho Realizado é determinado e com-parado ao Custo Real do Trabalho Realizado. O progresso é medido pela comparação entreo Valor Agregado e o Valor Planejado.

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

Page 37: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

16. Assuntos relacionados: Probabilidade e Estatística,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 36

Um sistema legado utiliza uma senha alfanumérica de 4 posições, onde só são permitidosdígitos de 0 a 9 e caracteres alfabéticos maiúsculos de A a Z (incluindo as letras K, We Y). Uma senha válida deve ter exatamente 4 caracteres, conter pelo menos um caracteralfabético, e não pode conter ou ser igual ao login do usuário.

Assumindo que o sistema permite um número ilimitado de tentativas de acesso com senhaserradas, 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, determinea 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 determinadoconjunto de elementos e seguir restringindo-o, passo a passo, até obter o subconjunto pedidona 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 descobrirjustamente 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), a�nal de contas uma senha válida tem que ter pelo menos1 caractere alfabético. Fazendo a primeira subtração temos o subconjunto formado pelassequê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.

O segundo passo é subtrair desse último subconjunto as sequências de 4 caracteres quecontêm ou são iguais ao login CID. Para que uma sequência de 4 caracteres contenha o loginCID, ela tem que ser do tipo *CID (36 sequências) ou CID* (36 sequências). Ou seja, há 72sequências de 4 caracteres, onde pelo menos 1 é alfabético, que contém o login CID. Fazendoa segunda subtração temos o subconjunto formado por todas as senhas válidas (1.669.616 -72 = 1.669.544).

Para que se garanta que um software determine a senha do usuário CID, esse deve tentarno mínimo todas as possibilidades de senhas válidas, ou seja, 1.669.544 sequências. Logo, aalternativa B é a correta.

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

Page 38: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

17. Assuntos relacionados: Probabilidade e Estatística,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 37

Um sistema legado utiliza uma senha alfanumérica de 4 posições, onde só são permitidosdígitos de 0 a 9 e caracteres alfabéticos maiúsculos de A a Z (incluindo as letras K, We Y). Uma senha válida deve ter exatamente 4 caracteres, conter pelo menos um caracteralfabético, e não pode conter ou ser igual ao login do usuário.

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 determinadoconjunto de elementos e seguir restringindo-o, passo a passo, até obter o subconjunto pedidona 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, oconjunto 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 descobrirjustamente quantos elementos são senhas válidas.

O primeiro passo é entender que a única sequência de 4 caracteres que contém o loginNINA é a própria sequência NINA. Como há 2 Ns nessa sequência, ela não pertence aoconjunto de 4 caracteres diferentes. En�m, 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 queser diferentes, já que estão no conjunto de sequências de 4 caracteres diferentes. Fazendo essasubtraçã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 114www.handbookdeti.com.br

Page 39: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

18. Assuntos relacionados: Gerência de Projeto, Gerência de Integração, Controle Integradode Mudanças,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 38

É recomendado que um projeto possua um mecanismo formal e documentado de controlede mudanças. Sobre este mecanismo, são feitas as a�rmativas a seguir.

I - O mecanismo deve rastrear e tratar mudanças em quaisquer fatores críticos de sucessodo projeto, incluindo escopo, prazos e custos.

II - Para tornar o processo gerenciável, é recomendado que sejam rastreadas apenas mu-danças que possuam impacto signi�cativo no custo ou nos prazos do projeto e que nãosejam rejeitadas em primeira análise.

III - A avaliação e a aprovação de quaisquer solicitações de mudanças são atribuiçõesexclusivas do gerente de projeto, pois o mesmo detém a autoridade e a responsabilidadesobre os resultados �nais do projeto perante os stakeholders.

IV - Tipicamente, o mecanismo de controle de mudanças prevê algumas categorias de mu-danças que são automaticamente aprovadas � tais como as resultantes de emergências� as quais devem ser registradas e rastreadas, da mesma forma que as demais.

Estão corretas APENAS as a�rmativas:

(a). I e II.

(b). I e III.

(c). I e IV.

(d). II e III.

(e). III e IV.

Solução:

O controle de mudanças ou controle integrado de mudanças é um dos processos da área degerenciamento 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 objetivosdo projeto. A integração das áreas, por exemplo, consiste em escolher sobre quais pontosconcentrar 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 doprojeto.

Mais especi�camente, o processo controle integrado de mudanças consiste em registrar asmudanças no projeto, seus motivos e respectivos impactos e realizar as alterações necessáriasde forma integrada visando o projeto como todo. O controle de mudanças é realizado durantetodo o projeto. Uma mudança pode exigir alteração nas estimativas de custos, sequênciasde atividades, datas de cronograma e recursos necessários, e tudo isso deve ser monitoradoe controlado para o sucesso do projeto.

Uma das ferramentas ou técnicas para o controle integrado de mudanças é o sistema decontrole de mudanças: um conjunto de procedimentos formais e documentados que de�nemcomo as entregas e a documentação do projeto serão controladas, alteradas e aprovadas.

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

Page 40: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

De acordo com as a�rmações da questão, temos:

I � Conforme explicado anteriormente, o controle de mudanças deve monitor e tratartodas as mudanças de forma integrada visando o sucesso do projeto. Isso inclui osfatores críticos do projeto como escopo, prazo, custo, recursos necessários, orçamentoe requisitos de qualidade. Logo, a�rmativa verdadeira;

II � As mudanças aprovadas devem ser monitoradas e avaliadas levando em consideraçãonão apenas o custo ou prazo do projeto, mas também o impacto no escopo, orçamentoe requisitos de qualidade. Logo, a�rmação falsa;

III � Todas as mudanças solicitadas e documentas devem ser aceitas ou rejeitadas por umaautoridade 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çasmuitas vezes inclui um comitê de controle de mudanças, responsável pela aprovação ourejeição das mudanças solicitadas. As funções e responsabilidades desses comitês sãode�nidas claramente nos procedimentos de controle de con�guração e de controle demudanç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 exclusivamentedo gerente de projetos, mas de um comitê. Logo, a�rmação falsa;

IV � O sistema de controle de mudanças deve também incluir procedimentos para tratarmudanças que podem ser aprovadas sem revisão prévia; por exemplo, como um re-sultado de emergências. Tipicamente, um sistema de controle de mudanças tem umaforma �automática� de aprovação de categorias especí�cas de mudanças. Essas mu-danças devem ainda ser documentadas e capturadas de forma que as transformaçõesna linha base do projeto possam ser registradas. Logo, a�rmação verdadeira.

Conforme exposto acima, a alternativa correta é a letra c.

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

Page 41: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

19. Assuntos relacionados: Lógica,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 39

((p ∨ q)→ (r ∧ s))↔ (¬t)

Para que valores de p, q, r, s e t, respectivamente, a proposição acima é verdadeira?

(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çãoda questão.

A ¬ AV FF V

Tabela 5: Negação (¬).

A B A → BV V VV F FF V VF F V

Tabela 6: Se - Então (→).

P Q P ∨ QV V VV F VF V VF F F

Tabela 7: Ou (∨).

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

Page 42: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

A B A ∧ BV V VV F FF V FF F F

Tabela 8: E (∧).

P Q P ↔ QV V VV F FF V FF F V

Tabela 9: Se e Somente Se (↔).

Vamos analisar cada alternativa.

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

Page 43: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Como podemos notar, os valores para p, q, r, s e t da alternativa (C) tornam a expressãoverdadeira e, por isso, é a alternativa a ser marcada.

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

Page 44: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

20. Assuntos relacionados: Lógica,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 40

Se Ana sabe que Beatriz tem acesso ao sistema de almoxarifado, então Ana não fez umpedido. Ou Ana fez um pedido ou a senha de Beatriz foi descoberta. Se Carlos conversoucom Ana, então Ana sabe que Beatriz tem acesso ao sistema de almoxarifado. Ora, nem asenha de Beatriz foi descoberta nem Beatriz conhece Carlos. Logo:

I - Ana fez um pedido.

II - Ana sabe que Beatriz tem acesso ao sistema de almoxarifado.

III - Carlos não conversou com Ana.

IV - Beatriz conhece Carlos.

São verdadeiras APENAS as conclusões:

(a). I e II

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

X Ana sabe que Beatriz tem acesso ao sistema de almoxarifado;

Y Ana fez um pedido;

Z A senha de Beatriz foi descoberta;

W Carlos conversou com Ana;

U Beatriz conhece Carlos.

Agora, vamos representar as assertivas em um conjunto de proposições de acordo com otexto:

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 avalidade das assertivas I, II, III e IV.

Na Proposição iv, sabemos que a senha de Beatriz não foi descoberta. Já na Proposiçãoii, podemos concluir que Ana fez um pedido, pois um dos valores Y e Z deveriam assumirvalor verdadeiro e como temos certeza que Z é falso, concluímos que Y assume verdadeiro.

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

Page 45: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Já podemos concluir que a assertiva I é verdadeira.

Analisando a Proposição i, temos que X deve implicar um valor falso (¬Y ). Da tabelaverdade da operação lógica se então, podemos concluir que a única maneira de tornar aproposiçã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çãoválida, já que X é falso como vimos anteriormente. Logo, Carlos não conversou com Ana.A assertiva III é verdadeira.

A assertiva IV é claramente falsa de acordo com a Proposição v.

A alternava a ser marcada é a letra (B), já que as únicas assertivas verdadeiras são: I eIII.

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

Page 46: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

21. Assuntos relacionados: Lógica,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 41

�O projeto será bem-sucedido se ou o processo de desenvolvimento é o Processo Uni�cadoou a linguagem utilizada é Java.�. Uma possível tradução da sentença acima para a lógicade predicados de primeira ordem é

(a). (Sp→ JI)↔ (Sp→ Ud)

(b). Sp↔ (Ud ∨ JI)

(c). Sp↔ (JI ∨ Ud)

(d). (Ud ∨ JI)↔ Sp

(e). (JI ∨ Ud)→ Sp

Solução:

O enunciado pode ser modi�cado para que tenha o mesmo signi�cado 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 Uni�cado ou alinguagem 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 estamosdizendo que, caso a condição seja atendida (Processo Uni�cado ou Java), é su�ciente paraque 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 nossalinguagem natural, o uso do OU pode representar um Ou-Exclusivo da Lógica de PrimeiraOrdem. Um exemplo: hoje à noite, eu vou para casa ou para o trabalho. Claramente, noexemplo, somente uma das assertivas pode ser verdadeira: Eu vou para casa hoje à noiteou vou para o trabalho hoje à noite. Já no caso do enunciado da questão, encontramos ouso do OU menos corriqueiro, sendo utilizado duas vezes, reforçando o entendimento de quepelo menos uma das assertivas envolvidas deva ser verdadeira.

Dado o exposto acima, podemos concluir que a alternativa (E) é alternativa que corre-sponde ao signi�cado da frase. Entretanto, a ordem é um pouco diferente e Sp representaque 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.

Um bom exemplo para �xar os conceitos de su�ciência e necessidade é a seguinte proposição:CARIOCA → BRASILEIRO. Ser CARIOCA é su�ciente para ser BRASILEIRO, mas nãonecessário. Ser BRASILEIRO é necessário para ser CARIOCA.

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

Page 47: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

22. Assuntos relacionados: Segurança da Informação, Normas de Segurança da Informação,Família ISO 27000, ISO 27001,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 42

Nas a�rmativas a seguir, sobre a norma ISO 27001, a sigla ISMS se refere a um Sistema deGerenciamento de Segurança da Informação (Information Security Management System) nocontexto de uma organização.

I A norma ISO 27001 estabelece uma abordagem do tipo PDCA (Plan, Do, Check, Act)para a de�nição e manutenção do ISMS.

II A norma ISO 27001 prescreve as práticas de implantação e as métricas utilizadas paraavaliar o desempenho do ISMS.

III Um dos controles listados na norma ISO 27001 preconiza que a organização deve mantercontato com grupos especiais de interesse ou outros fóruns e associações pro�ssionaisespecializados em segurança.

IV O ISMS é de�nido formalmente na ISO 27001 como um conjunto de regras (rules) eboas práticas (best practices) nas áreas de segurança física, autenticação de usuários,autorização de acessos e manutenção de um ambiente controlado para o tratamento egerenciamento de informação e ativos sensíveis.

Estão corretas APENAS as a�rmativas

(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 especi�ca 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çade Informação, ou simplesmente, SGSI. Um SGSI pode também ser de�nido 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 comoum todo.

Como todo sistema de gestão, o SGSI também é descrito em termos de processos, os quaissã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ínuada gestão da segurança da informação e minimizar os riscos associados à segurança da in-formação. Pode se dizer que a a�rmativa III é correta, tendo em vista que o �contato comgrupos 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 114www.handbookdeti.com.br

Page 48: handbook_questoes_vol2 - Cópia

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 é de�nidacomo um conjunto de melhores práticas para gerenciamento de segurança da informação, oque não é errado, desde que se ressalte que ela trabalha em nível de processos, e não nosníveis mais técnicos. Portanto, a alternativa IV é errada, pois de�ne a norma em questãode maneira muito especí�ca e técnica.

Na norma, por exemplo, você não irá encontrar as melhores práticas para implementação desegurança física para CPDs. No entanto, a norma tem em sua lista de controles um referentea �Segurança física e do ambiente�. O conjunto de controles que são tratados pela ISO 27001engloba os mostrados a seguir, cabendo a cada organização identi�car a relevância de cadaum deles para o seu negócio.

• política de segurança;

• segurança organizacional;

• organização da segurança da informação;

• gestão de ativos;

• segurança em recursos humanos;

• segurança física e do ambiente;

• gerenciamento das operações e comunicações;

• controle de acesso;

• aquisição, manutenção e desenvolvimento de sistemas;

• gestão de incidentes de segurança de informação;

• continuidade do negócio;

• conformidade.

Por �m, vale lembrar que a norma ISO 27001 pertence à série (ou família) ISO 27000, quecompreende normas relacionadas à Segurança da Informação publicadas pela ISO. A série27000 está para a Segurança da Informação assim como a série ISO 9000 e a série ISO14000 estão, respectivamente, para a Qualidade e para a Proteção Ambiental. Algumas dasnormas que compõe a família 27000, além da 27001, são:

• 27000 - overview da família de padrões ISO 27000, glossário e termos comuns;

• 27003 - guideline para implementação de um SGSI;

• 27004 - gerenciamento de métricas de segurança de informação;

• 27005 - implementação de segurança da informação baseada em uma abordagem degestão de riscos;

• 27006 - guia para o processo de certi�cação e registro;

• 27011 - guidelines para gerenciamento de segurança da informação na indústria detelecomunicações;

• 27034 - guideline para segurança de aplicações.

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

Page 49: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

23. Assuntos relacionados: Segurança da Informação, Princípios Fundamentais da Segurançada Informação,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 43

Os três princípios fundamentais aplicáveis à segurança da informação são:

(a). con�dencialidade, integridade e privacidade.

(b). con�dencialidade, não-repúdio e legitimidade.

(c). con�dencialidade, integridade e disponibilidade.

(d). privacidade, disponibilidade e integridade.

(e). privacidade, integridade e legitimidade.

Solução:

Os três princípios fundamentais da segurança da informação são: con�dencialidade, 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 Cartilhade Segurança do CERT.BR (Centro de Estudos, Respostas e Tratamento de Incidentes deSeguranç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 requisitosbásicos relacionados aos recursos que o compõem: con�dencialidade, integridade e disponi-bilidade.

A con�dencialidade 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 temum desempenho correto; e a disponibilidade diz que os serviços/recursos do sistema estãodisponíveis sempre que forem necessários.

Alguns exemplos de violações a cada um desses requisitos são:

• con�dencialidade: alguém obtém acesso não autorizado ao seu computador e lê todasas informações contidas na sua declaração de Imposto de Renda;

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

• disponibilidade: o seu provedor sofre uma grande sobrecarga de dados ou um ataquede negação de serviço e por esse motivo você �ca impossibilitado de enviar sua declaraçãode Imposto de Renda à Receita Federal.

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

Page 50: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

24. Assuntos relacionados: Portais Corporativos, B2B, B2C, B2E, B2G,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 44

São feitas 4 a�rmativas sobre a tecnologia de portais.

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.

II - Os portais B2B (Business-to-Business) e B2G (Business-to-Government) normalmenteapresentam estrutura tecnológica similar, fazendo uso de web services em uma arquite-tura A2A (Application-to-Application).

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 comferramentas de data warehouse e BI (Business Intelligence).

IV - Ferramentas mais avançadas de portal fornecem recursos para detecção de padrõesde comportamento e áreas de interesse dos usuários, que serão utilizados para fornecerconteúdo personalizado ao mesmo.

Estão corretas as a�rmativas

(a). I e II, apenas.

(b). I e III, apenas.

(c). I, II e III, apenas.

(d). II, III e IV, apenas.

(e). I, II, III e IV.

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 a�rmativas I e IV são corretas. Com relação as alternativas IIe III, para entender porque elas também podem ser consideradas corretas, é preciso conhecero signi�cado dos termos das siglas B2B, B2G, B2E e outras.

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

Page 51: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• B2B (Business to Business): são as transações de comércio entre empresas. Umaempresa vendendo para outra empresa ou um banco transferindo recursos para outrosão exemplos de transações B2B;

• B2C (Business to Consumer): são as transações entre uma empresa e um consumidor.Amazon, Submarino e Americanas são exemplos típicos de empresas que realizam essetipo de transação;

• C2C (Consumer to Consumer): são as transações entre consumidores, intermediadasnormalmente por uma empresa. Exemplos de sites que oferecem um meio para arealização de transações C2C são os sites de leilão como o Ebay e Mercado Livre;

• B2G (Business to Governement): são as transações entre empresa e governo. Os ex-emplos comuns de B2G são licitações e compras de fornecedores;

• B2E (Business-to-Employee): normalmente relacionado aos portais que atendem aosempregados. Os portais B2E são as chamadas intranets corporativas, que têm porobjetivo oferecer aos empregados uma interface única para que eles possam acompanharas notícias da empresa, gerenciar seus dados pessoais, solicitar serviços etc.

Nesse ponto da resolução da questão, você deve estar pensando: �mais um monte de siglaspara eu decorar!�. E é exatamente isso. A indústria de TI permanece abusando do uso desiglas para representar conceitos que, após apresentados, são familiares aos leitores, sejamtécnicos ou não. Portanto, �ca mais uma vez o recado. Fique atento às siglas e seussigni�cados, pois elas vem sendo cobradas sistematicamente nos concursos!

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

Page 52: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

25. Assuntos relacionados: Engenharia de Software, Orientação a Objeto, Padrões de Pro-jeto,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 45

�Classes devem estar abertas para extensão e fechadas para modi�cação� é um princípio deprojeto de modelos orientados a objetos. Tal princípio pode ser aplicado através do padrãode projeto

(a). decorator.

(b). �yweight.

(c). prototype.

(d). singleton.

(e). builder.

Solução:

A Análise Orientada a Objetos identi�ca e de�ne classes que re�etem diretamente o domíniodo problema e as responsabilidades do sistema dentro dele. Normalmente, a análise ocorrecom a suposição de que existe uma tecnologia �perfeita� disponível (capacidade ilimitada dearmazenamento, custo zero e não passível de falha). Em suma, a análise se interessa peloque o sistema deve fazer.

O Projeto Orientado a Objetos (Object-Oriented Design - OOD) transforma o modelo deanálise em um modelo de projeto que serve de base para a construção do software, ouseja, envolve a modelagem de como o sistema será implementado com adição dos requisi-tos tecnológicos ou não funcionais. Ao contrário dos projetos de softwares convencionais, noprojeto orientado a objetos, os componentes principais do sistema são divididos em módulos,chamados subsistemas ou pacotes, e os dados e as operações que os manipulam são encap-sulados em classes. Então, o projeto se preocupa como os requisitos serão implementados e,portanto, pressupõe uma infra-estrutura de implementação e é fortemente in�uenciado pelaanálise.

O Padrão de Projeto Orientado a Objetos (Object-Oriented Design Patterns - OOD) éum dos componentes do projeto orientado a objetos e tem como objetivo registrar umaexperiência no projeto de software, na forma de um padrão passível de ser efetivamenteutilizado. Isso tem o intuito de reutilizar soluções que funcionaram no passado, evitandoque um sistema seja desenvolvido do zero. Ou seja, padrão de projeto está relacionado coma reusabilidade de software.

Um padrão é um par nomeado problema/solução com orientações sobre como utilizá-loem novas situações e possui quatro elementos essenciais:

• Nome: uma identi�cação que representa o problema, suas soluções e consequências;

• Problema: explica o problema de projeto, seu contexto e quando aplicar o padrão;

• Solução: descreve os elementos que compõem o projeto, seus relacionamentos, respon-sabilidades e colaborações. Não descreve um particular projeto concreto ou implemen-tação;

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

Page 53: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• Consequências: são os resultados e os comprometimentos feitos ao se aplicar o padrão.

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:

• Criativo: está relacionado ao processo de instanciação (criação) dos objetos, ajudandoa tornar um sistema independente de como seus objetos são criados;

• Estrutural: trata de como as classes e os objetos são compostos para formar estruturasmaiores;

• Comportamental: diz respeito a algoritmos e a atribuição de responsabilidades entreobjetos.

Um padrão GoF também é classi�cado segundo o seu escopo: de classe ou de objeto. Nospadrões com escopo de classe os relacionamentos que de�nem este padrão são de�nidosatravé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 de�nidos em tempo de execução. A Tabela10 apresenta os padrões GoF organizados em grupos com os respectivos escopos.

GruposEscopo Criativo Estrutural ComportamentalClasse Método-Fábrica Adaptador (classe) Interpretador

Método ModeloObjeto Construtor Adaptador (objeto) Cadeia de Responsabilidade

Fábrica Abstrata Composto ComandoProtótipo Decorador IteradorSingular Fachada Mediador

Peso-Mosca MemorialPonte Observador

Procurador EstadoEstratégiaVisitador

Tabela 10: padrões com os respectivos grupos e escopo.

O princípio �Classes devem estar abertas para extensão e fechadas para modi�cação� é umdos 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 estruturarum aplicativo de forma que seja possível adicionar novas funcionalidades com modi�caçõesmínimas no código existente. Por exemplo, ao criarmos uma subclasse, nós não devemosalterar o comportamento da classe base, mas apenas completá-lo.

A seguir, analisamos as alternativas da questão.

(A) CORRETA

O padrão de objeto decorator (decorador) do grupo Estrutural anexa responsabilidadesadicionais a um objeto dinamicamente, permitindo estender sua funcionalidade. Provê umaalternativa �exível ao uso de herança como modo de estender funcionalidade e permite adi-cionar responsabilidades a objetos e não a uma classe inteira.

O decorator pode ser utilizado para adicionar responsabilidades dinamicamente a objetos

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

Page 54: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

individuais e transparentemente (sem afetar outros objetos), quando há responsabilidadesque podem ser retiradas, quando a herança geraria uma explosão de subclasses e quando aherança seria uma boa alternativa, mas a de�nição da classe está escondida ou não disponívelpara herança.

Pode-se pensar também em termos de interface grá�ca, por exemplo, adicionar uma bordaa 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 funcionalidadedurante execução. Para isso ele deve manter a mesma interface do objeto sendo estendido, edeve aceitá-lo como argumento na inicialização para criar uma referência que será mantidacomo variável membro privada.

O padrão decorator está relacionado em estender funcionalidades do objeto de modo a nãomodi�car a classe inteira. O que mostra que o princípio Aberto-Fechado é aplicado a estepadrão. Portanto, alternativa correta.

(B) ERRADA

O padrão de objeto �yweight (peso-mosca) do grupo Estrutural utiliza compartilhamentopara suportar um grande número de pequenos objetos de forma e�ciente. O �yweight éapropriado quando vários objetos devem ser manipulados, e esses não suportam dados adi-cionais. No padrão �yweight não existem ponteiros para os métodos do dado, pois istoconsome muita memória. Em contrapartida são chamadas sub-rotinas diretamente paraacessar o dado.

Um exemplo é o processador de texto. Cada caractere representa um objeto que possuiuma família de fonte, um tamanho de fonte e outras informações. Um documento grandecom tal estrutura de dados facilmente ocuparia toda a memória disponível no sistema. Pararesolver o problema, como muitas dessas informações são repetidas, o �yweight é usado parareduzir os dados, isto é, cada objeto de caractere contém uma referência para outro objetocom suas respectivas propriedades.

O padrão �yweight não está relacionado a estender funcionalidades de uma classe basesem modi�cá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.Portanto, alternativa errada.

(C) ERRADA

O padrão de objeto prototype (protótipo) do grupo Criativo especi�ca os tipos de obje-tos que podem ser criados a partir de um modelo original (protótipo) e cria novos objetoscopiando este protótipo. Ele utiliza protótipos ao invés de classes e instâncias, reunindo osdois em um só, e ao invés de herança, utiliza decorator para estender funcionalidades.

O padrão prototype pode ser utilizado em sistemas que precisam ser independentes daforma como os seus componentes são criados, compostos e representados. O padrão proto-type pode ser útil em sistemas que utilizam classes de�nidas em tempo de execução.

O padrão prototype não está relacionado a estender funcionalidades de uma classe basesem modi�cá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.Portanto, alternativa errada.

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

Page 55: handbook_questoes_vol2 - Cópia

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 umaaplicação que precisa de uma infra-estrutura de log de dados, pode-se implementar umaclasse no padrão singleton. Desta forma existe apenas um objeto responsável pelo log emtoda a aplicação que é acessível unicamente através da classe singleton.

O singleton é parecido com o �yweight, ambos permitem somente uma instância de umobjeto. A diferença é que o singleton permite somente uma instância de uma classe duranteo projeto, enquanto o �yweight utiliza factories (fábricas) para produzir somente uma in-stância em tempo de execução.

O padrão singleton não está relacionado a estender funcionalidades de uma classe basesem modi�cá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.Portanto, alternativa errada.

(E) ERRADA

O padrão de objeto builder (construtor) do grupo Criativo separa a construção de umobjeto complexo de sua representação de modo que o mesmo processo de construção podecriar diferentes representações.

Por exemplo, o padrão Builder pode ser utilizado em uma aplicação que converte o formatoRTF para uma série de outros formatos e que permite a inclusão de suporte para conversãopara outros formatos, sem a alteração do código fonte do leitor de RTF. A solução para esteproblema é criar uma classe de leitura (director) associada a outra classe capaz de convertero formato RTF para outra representação (builder).

O padrão builder é muitas vezes comparado com o padrão Abstract Factory, pois ambospodem ser utilizados para a construção de objetos complexos. A principal diferença entreeles é que o builder constrói objetos complexos passo a passo e o Abstract Factory constróifamí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 semmodi�cá-la, o que mostra que este padrão não é aplicado ao princípio Aberto-Fechado.Portanto, alternativa errada.

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

Page 56: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

26. Assuntos relacionados: Web Services, Interoperabilidade entre Aplicações,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 46

A interoperabilidade entre aplicações nos dias atuais é fortemente baseada no uso de webservices. Duas abordagens arquiteturais distintas para o projeto e implementação de webservices têm-se �rmado no cenário de tecnologia. São elas:

(a). REST e WS-*

(b). SOAP e WSDL

(c). RPC e RMI

(d). SGML e HTML

(e). B2B e B2C

Solução:

Web service é tecnologia que possibilita aplicações interagirem umas com as outras de formaindependente de plataforma operacional e linguagem de programação utilizadas. Os Webservices 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 comomecanismo de transporte dessas mensagens.

(A) CORRETA

O termo REST se refere a um conjunto de princípios de arquitetura para web services.Um conceito importante em REST é a existência de recursos (elementos de informação),que são individualmente identi�cados por URIs (Identi�cadores Uniforme de Recurso). Deacordo com essa arquitetura, diferentes componentes da rede (clientes e servidores) devemutilizar os métodos do HTTP (por exemplo, POST, GET, PUT e DELETE) para trocaremrepresentações dos recursos existentes (os arquivos ou �cheiros são recebidos e enviados).

Algumas especi�cações vêm sendo desenvolvidas, principalmente pela W3C, para estenderas funcionalidades dos web services. Essas especi�cações são chamadas de WS-*. Algumasdas especi�cações mais importantes são: WS-Security, WS-Addressing, WS-Reliability eWS-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 de�ne, por meio de um conjuntode tags XML, o formato das estruturas das mensagens trocadas entre aplicações. Dois dosgrandes 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 De�nition Language (WSDL) é uma linguagem baseada em XML utilizada

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

Page 57: handbook_questoes_vol2 - Cópia

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, especi�ca como acessá-lo e quais as operações ou métodos disponíveis.

Como SOAP é um protocolo e WSDL uma linguagem de de�nição, é incorreto dizer queeles são abordagens arquiteturais para projeto e implementação de web services.

(C) ERRADA

O RPC (Remote Procedure Call) de�ne um protocolo para execução remota de procedi-mentos em computadores ligados em rede. Esse protocolo pode ser utilizado com diferentesprotocolos de transporte, tais como UDP e TCP. Antes de ser enviada pela rede, uma RPCemitida 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 extraindoa 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 aaplicaçã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 APIRMI provê ferramentas para que seja possível ao programador desenvolver uma aplicaçãosem 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ôneodizer 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 de�nido pelanorma ISO �8879:1986 Information processing�Text and o�ce systems�. Ela é uma met-alinguagem que pode ser utilizada para de�nir 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).

HTML (Linguagem de Marcação de Hipertexto) é uma linguagem fundamentalmente baseadanos padrões HyTime e SGML. O HyTime (Hypermedia/Time-based Document StructuringLanguage - ISO 10744:1992) é um padrão para representação estruturada de hipermídia einformação baseada em tempo. De acordo com essa padrão, um documento é visto comoum conjunto de eventos concorrentes dependentes de tempo (áudio, vídeo, etc.), conectadospor webs ou hiperlinks.

Por se tratarem de linguagens de marcação, não faz sentido nenhum dizer que SGML eHTML 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 114www.handbookdeti.com.br

Page 58: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• B2B (Business to Business) - são transações de comércio entre empresas;

• B2C (Business to Consumer) - são transações de comércio entre empresa e consumidor.Um exemplo bem conhecido é o website Amazon;

• C2C (Consumer to Consumer) - este é o comércio entre consumidores. Bons exemplosdesse tipo de transação são os sites de leilão;

• B2G (Business to Governement) - são as transações entre empresa e governo. O exemplomais comum de B2G são as licitações online;

• B2E (Business-to-Employee) - normalmente relacionado aos portais (intranets) queatendem aos funcionários. Tem por objetivo ser uma área central de relacionamentocom a empresa. Através dele os funcionários podem, por exemplo, pedir material parasua área, gerir todos os seus benefício ou até utilizar processos de gestão dos funcionários(faltas, avaliações, inscrições em treinamentos, etc.).

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

Page 59: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

27. Assuntos relacionados: Servidor de Aplicações, J2EE, JEE, .NET, MVC,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 47

Um servidor de aplicações provê diversos serviços para as aplicações que hospeda. Considerando-se implementações típicas em J2EE/JEE e .NET, compondo uma arquitetura em 3 camadas,é correto a�rmar que, dentre os serviços oferecidos pelos servidores de aplicações, encontra-se

(a). validação de objetos de domínio, segundo as regras de negócio da aplicação.

(b). geração de código através de MDA (Model Driven Architecture).

(c). persistência �nal dos objetos de domínio.

(d). suporte nativo à arquitetura MVC.

(e). estrutura para troca de mensagens entre aplicações.

Solução:

O objetivo dos servidores de aplicações é disponibilizar uma plataforma que permita aosprogramadores �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 nasquestões de infraestrutura da aplicação, como segurança, disponibilidade, balanceamento decarga, mensageiria etc.

Para aplicações simples, a utilização de um servidor de aplicações pode representar um over-head ao invés de facilitar as tarefas dos programadores. No entanto, para grandes aplicaçõescomerciais com requisitos mais rígidos de desempenho e robustez a falhas, os servidores deaplicações mostram-se muito úteis.

Embora o conceito de servidor de aplicações seja aplicável para o desenvolvimento em umagrande quantidade de linguagens, nos últimos anos os que mais se tornaram populares sãoos servidores de aplicações J2EE (ou JEE, nas versões mais recentes), criados para suportaraplicações escritas em Java.

Para exempli�car o conjunto de serviços que os servidores de aplicações podem oferecer,vejamos a Figura 2. Ela mostra a arquitetura JEE mais recente, publicada pela Sun Mi-crosystems no documento JSR-000316. No esquema mostrado nessa �gura, tanto o WebContainer quanto o EJB Container são �hospedados� no servidor de aplicações, que ofereceserviços diversos por meio de várias APIs. A API JMS (Java Message Service), por exem-plo, oferece suporte a comunicação ponto-a-ponto con�ável. A API JavaMail permite que asaplicações enviem e-mails sem ter que se preocupar com as questões de �las de mensagens,falhas etc. A API JASS, por sua vez, oferece facilidades para implementação de autenticaçãoe autorização nas aplicações.

Vale lembrar que os servidores de aplicações também oferecem facilidades para persistênciade dados, como lembrado na alternativa C. No entanto, a palavra ��nal� torna a alternativa,ao menos, duvidosa!

Já no caso da alternativa D, é de se esperar que um ambiente tão cheio de funcionali-dades como um servidor de aplicações ofereça suporte a construção de aplicações segundo

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

Page 60: handbook_questoes_vol2 - Cópia

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 à plataformatecnológica utilizada. É, portanto, possível construir aplicações MVC no �bom e velho� ASP,bem como nos novos e modernos servidores de aplicações.

A validação de objetos de que trata a alternativa A é feita pelos servidores de aplicações,mas não está relacionada as regras de negócio das aplicações. A geração automática decódigo, por sua vez, é uma tarefa comum às IDEs, e não aos servidores de aplicações.

Portanto, a alternativa E, por ser a mais objetiva e clara, é a resposta correta para essaquestão.

Figura 2: arquitetura JEE 6.0.

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

Page 61: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

28. Assuntos relacionados: Processo Uni�cado,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 48

Um princípio fundamental do Processo Uni�cado é

(a). ser centrado em arquitetura.

(b). empregar times auto-dirigidos e auto-organizados.

(c). o desenvolvimento em cascata.

(d). a programação em pares.

(e). a propriedade coletiva do código fonte.

Solução:

O Processo Uni�cado 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ãoelas:

• Orientado a Diagrama de Casos de Uso: um caso de uso, de acordo com a UML(Uni�ed Modeling Language), é uma sequência de ações de um sistema que devolve aousuário um resultado de valor. Um conjunto de casos de uso de�nido sob determinadocontexto forma um Diagrama de Casos de Uso, que descreve uma funcionalidade dosistema sob esse contexto. Em outras palavras, um Diagrama de Casos de Uso de�nea funcionalidade de um sistema para cada tipo de usuário. Esse tipo de abordagemfavorece o atendimento das necessidades de cada tipo de usuário que interage como sistema, evitando, dessa forma, que o sistema possa ser desenvolvido a ponto deapresentar funcionalidades desnecessárias;

• Centrado na arquitetura do sistema: arquitetura de sistema é uma visão doprojeto como um todo, destacando suas características mais importantes de formaabrangente e sem detalhes especí�cos. Esse tipo de abordagem auxilia o arquitetoa se concentrar nas metas corretas, como inteligibilidade, poder de recuperação paramudanças futuras e reutilização. Ou seja, a arquitetura de um sistema deve ser pro-jetada a ponto de permitir que o sistema evolua, não apenas durante o início do seudesenvolvimento, mas também ao longo das iterações futuras;

• Metodologia iterativa e incremental: uma iteração pode ser entendida como umminiprojeto, que resulta em uma nova versão do sistema. Justamente devido ao fato dea cada interação ser gerada uma nova versão do sistema que essa metodologia tambémse apresenta como incremental. Perceba que estas duas características, iterativa eincremental, nem sempre aparecem juntas. Há metodologias de desenvolvimento desoftware que são iterativos, mas não incrementais.

O Processo Uni�cado organiza suas iterações em quatro fases principais:

1. Concepção: o objetivo desta fase é levantar, de forma genérica e pouco precisa, oescopo do projeto. Não deve existir aqui a pretensão de especi�car de forma detalhadarequisitos, a ideia é ter uma visão inicial do problema, estimar de forma vaga esforço eprazos e determinar se o projeto é viável e merece uma análise mais profunda;

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

Page 62: handbook_questoes_vol2 - Cópia

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 levantadosem detalhes. Em uma primeira iteração, um ou dois requisitos, os de maior risco e valorarquitetural, são especi�cados e implementados. Eles servirão como base de avaliaçãojunto aos usuários e desenvolvedores para o planejamento da próxima iteração. Em cadanova iteração dentro da fase de elaboração, pode haver um seminário de requisitos, onderequisitos 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 implementadocom alta qualidade, os principais riscos foram tratados e pode-se então fazer estimativasmais realistas;

3. Construção: implementação iterativa dos elementos restantes de menor risco e menoscomplexos. Há também uma preparação para a implantação do sistema;

4. Transição: testes �nais e implantação do sistema.

Agora que o básico sobre Processo Uni�cado 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ípiosmais evidentes do Processo Uni�cado. É justamente por isso que esta é a alternativa correta.

(B) ERRADA

Times auto-dirigidos e auto-organizados não é uma característica do Processo Uni�cado.Essa é sim um princípio de outra metodologia de desenvolvimento de sistemas, o Scrum.Portanto, esta alternativa está errada.

Scrum é um processo para construir software de forma incremental em ambientes com-plexos, onde os requisitos não são claros ou mudam com muita frequência. A metodologia ébaseada em princípios semelhantes aos de XP (Extreme Programming). As principais são:

• equipes pequenas, multidisciplinares e auto-organizadas;

• requisitos pouco estáveis ou desconhecidos;

• iterações curtas (sprints) que seguem o ciclo PDCA e entregam incrementos de softwareprontos;

• reuniões diárias e curtas geralmente realizadas em pé;

• 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 é olíder da equipe (já que as equipes são auto-organizadas), mas atua como um mediadorentre a equipe e qualquer in�uência desestabilizadora.

(C) ERRADA

O modelo de desenvolvimento em cascata é um modelo sequencial, no qual o desenvolvi-mento é visto como um �uir constante para frente (como uma cascata) através das fases deanálise de requisitos, projeto, implementação, testes (validação), integração e manutençãode software. Como já descrito anteriormente, o Processo Uni�cado é uma metodologia iter-ativa e incremental, que praticamente nada tem a ver com desenvolvimento em cascata. Ouseja, esta alternativa não é a correta.

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

Page 63: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(D) e (E) ERRADAS

Estas duas alternativas trazem duas características associadas ao XP, e não ao ProcessoUni�cado. Justamente por isso que elas não devem ser escolhidas pelo candidato.

A metodologia XP é destinada a grupos pequenos de desenvolvimento, e em projetos deduração de até 36 meses. Suas principais características são:

• metáforas: utilização de comparações e analogias para facilitar entendimento;

• design simples do sistema;

• testes automatizados: testes de unidade e de aceitação;

• refabricação: todo desenvolvedor tem o dever de melhorar um código que esteja fun-cionado porém está mal escrito;

• programação de dupla: todo código deve ser implementado em dupla;

• reuniões curtas e em pé;

• semana de 40 horas: ao se trabalhar a mais se obtém resultados no início, mas com opassar do tempo surge desgaste;

• integração contínua: eliminar erros graves de integração;

• releases curtos: release é um conjunto de funcionalidades bem de�nidas e que repre-sentam algum valor para o cliente. Um projeto XP pode ter uma ou mais releases noseu ciclo;

• CRC: linguagem para modelagem de classes do XP que utiliza os story cards (cartõesescritos pelos usuários onde são descritas funcionalidades do sistema).

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

Page 64: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

29. Assuntos relacionados: Processo Uni�cado, UML, Modelo de Casos de Uso,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 49

O modelo de casos de uso é um dos artefatos mais importantes previstos pelo ProcessoUni�cado. Sobre o modelo de casos de uso, são feitas as a�rmativas a seguir.

I Atores humanos são identi�cados com base no papel que desempenham do ponto devista do sistema, e não necessariamente no cargo que ocupam na instituição em que osistema rodará.

II A evolução dos casos de uso ao longo do ciclo de vida do projeto prevê que os mesmosganhem em seu texto os detalhes especí�cos de implementação necessários à construçãodo software na tecnologia adotada.

III As combinações possíveis do �uxo principal com os �uxos alternativos de um caso deuso fornecem todos os cenários possíveis para o mesmo, os quais, por sua vez, podemser utilizados como unidades de planejamento, implementação e testes.

IV É recomendável que cada caso de uso seja decomposto funcionalmente e passe a incluircasos de uso menores, sucessivamente, até a menor unidade implementável possível,atendendo ao princípio da decomposição funcional.

Estão corretas APENAS as a�rmativas

(a). I e II

(b). I e III

(c). II e III

(d). II e IV

(e). III e IV

Solução:

O Processo Uni�cado de desenvolvimento de software tem três princípios básicos:

• Centrado na arquitetura do sistema;

• Metodologia iterativa e incremental;

• Orientado a Diagrama de Casos de Uso.

Diagrama de Caso de Uso é um dos principais diagramas da UML (Uni�ed Modeling Lan-guage). Ele descreve, de forma grá�ca e intuitiva, relacionamentos e dependências entre umgrupo de casos de uso e os atores que interagem com o sistema. O ponto de vista assumidopara essa descrição é sempre o dos atores envolvidos.

Um ator é uma entidade externa ao sistema. Ele é representado gra�camente por meiode um boneco e um rótulo com o seu nome. Geralmente, é um ator que inicia um caso deuso. Alguns exemplos de atores são: usuários, outros sistemas que fazem interface com osistema que está sendo modelado e eventos externos.

Um caso de uso é um conjunto de atividades do sistema que produz um resultado con-creto e tangível. Ou seja, ele de�ne uma grande função do sistema. Gra�camente, casos de

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

Page 65: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

uso são representados por elipses com seus respectivos rótulos.

En�m, esse tipo de diagrama descreve interações entre os atores e o sistema em si. Veja umexemplo na Figura 3

Figura 3: exemplo de Diagrama de Caso de Uso.

Os possíveis relacionamentos, que são representados no diagrama utilizando-se setas, são osseguintes:

• entre um ator e um caso de uso

� Relacionamento de Associação: de�ne do ponto de vista externo uma fun-cionalidade do sistema.

• entre atores� Relacionamento de Generalização: de�ne que o ator que está na origem daseta tem seus próprios casos de uso. Já o ator que é apontado pela seta tambémtem os casos de uso do outro ator. Um exemplo típico desse tipo de relacionamentoseria uma seta saindo do ator �Cliente On-line� e apontando para o ator �Cliente�.

• entre casos de uso� Relacionamento de Dependência-Inclusão: um relacionamento de inclusãode um caso de uso A (origem da seta) para um caso de uso B (destino da seta)indica que B é essencial para o comportamento de A. Pode ser dito também queB é parte de A;

� Relacionamento de Dependência-Exclusão: um relacionamento de extensãode um caso de uso B para um caso de uso A indica que o caso de uso B pode ser

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

Page 66: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

acrescentado para descrever o comportamento de A (não é essencial). A extensãoé inserida em um ponto de extensão do caso de uso A. Ponto de extensão em umcaso de uso é uma indicação de que outros casos de uso poderão ser adicionados aele. Quando o caso de uso for invocado, ele veri�cará se suas extensões devem ounão ser invocadas;

� Relacionamento de Generalização ou Especialização (é-um): um relaciona-mento entre um caso de uso genérico para um mais especí�co, que herda todas ascaracterísticas de seu pai. Quanto um caso de uso B é-um caso de uso A, A seráuma generalização de B, ou seja, B será uma especialização de A.

A seguir, cada uma das a�rmativas feitas no enunciado é analisada:

I verdadeira, pois os casos de uso são utilizados para representar o comportamento dosistema, e não a hierarquia da instituição;

II falsa, pois os casos de uso não devem incluir detalhes de implementação, e sim ocomportamento esperado do sistema em um determinado cenário;

III verdadeira, pois o �uxo principal cobre o comportamento do sistema nos casos rotineirose 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 deimplementação e de testes;

IV falsa, pois o diagrama que oferece uma decomposição funcional do sistema é chamadoDiagrama de Fluxo de Dados, e não o de Caso de Uso.

Portanto, a resposta correta é a alternativa B.

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

Page 67: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

30. Assuntos relacionados: Metodologia de Desenvolvimento de Software,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 50

Estudos baseados na análise de diversos projetos de desenvolvimento de software sugeremque tais projetos têm maior chance de sucesso quando empregam metodologia e gerencia-mento alinhados ao paradigma de desenvolvimento de novos produtos, em contraponto aoparadigma de produção industrial. Com base nessas observações, a maioria das metodologiasmodernas de desenvolvimento de software recomenda:

(a). concluir o trabalho de especi�cações dos requisitos do sistema, antes de iniciar asatividades de projeto e implementação.

(b). planejar detalhadamente no início do projeto todas as fases e atividades do mesmo,de forma que seja possível estimar com precisão o esforço necessário e os prazosde cada atividade.

(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 quefoi especi�cado.

(d). dividir o trabalho em iterações curtas, com prazos �xos, e não permitir que asmesmas 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 atividadesde implementação e testes exaustivos.

Solução:

De certa forma, o ponto central que esta questão pretende avaliar é o fato da maioria dasmetodologias 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 Uni�ed Process), XP (eXtreme Programming), Cleanroom, RAD (RapidApplication 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 projetoe implementação. Ou seja, mesmo após o início das atividades de projeto e implementaçãopode haver, e geralmente há, novas especi�caçõ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 doprojeto como um todo sejam feitos de forma geral. Planejamentos e estimativas cada vezmais precisos são feitos a cada fase do projeto.

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

Page 68: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(C) ERRADA

Praticamente todas as metodologias de desenvolvimento de novos produtos, inclusive asmodernas, pregam justamente o contrário dessa alternativa. Isso porque acredita-se que oquanto antes as eventuais mudanças forem consideradas em um projeto, menores serão osproblemas com custo e cronograma desse projeto. As metodologias consideram também quepouco adianta ignorar as mudanças ao logo do projeto, pois, quando isso ocorre, mesmoque seja entregue exatamente o que foi especi�cado, o novo produto não será consideradoconforme ou de qualidade.

(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. Algumasmetodologias até apontam para uma simpli�cação da documentação técnica, mas eliminartotalmente esse tipo de documentação não é uma alternativa.

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

Page 69: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

31. Assuntos relacionados: Processo Uni�cado, UML, Análise de Caso de Uso,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 51

A atividade analisar um caso de uso, prevista no Processo Uni�cado, produz um artefatochamado realização de análise de caso de uso, que mostra como as classes de análise co-laboram para que o caso de uso apresente o comportamento especi�cado. A esse respeito,assinale a a�rmação correta.

(a). As classes de análise, neste artefato, devem conter referências a detalhes de imple-mentação.

(b). Ao realizar a análise de um caso de uso, possíveis falhas e omissões no mesmose tornam mais perceptíveis, tratando-se, portanto, de uma oportunidade parare�nar o modelo de casos de uso.

(c). A interação entre as classes de análise é expressa primariamente através de dia-gramas de classes UML.

(d). Um outro produto desta atividade é o artefato chamado realização de projeto decaso de uso.

(e). O diagrama de robustez do sistema, que especi�ca os requisitos não funcionais deescalabilidade e tolerância a falhas, é um dos insumos para esta atividade.

Solução:

A Análise de Caso de Uso é uma das atividades previstas na UML, e tem como �nalidades:

• identi�car classes que desempenham os vários �uxos de eventos no caso de uso;

• distribuir o comportamento do caso de uso entre essas classes usando as �realizações�;

• identi�car responsabilidades e atributos associações de classes;

• identi�car o uso de mecanismos arquiteturais para prover funcionalidades necessáriasao caso de uso e software em geral.

Obviamente, ao realizar essa análise de comportamento, possíveis falhas e omissões se tor-nam mais evidentes. Com isso, podemos a�rmar que a resposta da questão é a alternativa B.

Ainda com relação aos casos de uso, é importante frisar que muitas vezes é ela é tida comouma espécie de análise de caixa preta, no qual os detalhes internos sobre como o sistemaresponde à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 diagramas de classes, mencionados na alternativa C, são diagramas estáticos que de-screvem os vários tipos de objetos no sistema e o relacionamento entre eles. Tais diagramasnão provêem informação de interação entre as classes. Com isso, a alternativa C tambémestá 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 114www.handbookdeti.com.br

Page 70: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

alternativa D, não é um produto da atividade �Analisa um Caso de Uso�.

Por �m, a alternativa E traz o diagrama de robustez. Tal diagrama geralmente é utilizadopara passar da análise (o que) para o desenho (como). Como ele não é um insumo para aanálise de caso de uso, esta alternativa está errada.

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

Page 71: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

32. Assuntos relacionados: Engenharia de Software, RUP,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 52

Sobre testes no Processo Uni�cado, é correto a�rmar que um(a)

(a). caso de teste é composto por um ou mais planos de testes.

(b). script de teste de�ne o cronograma e a estratégia utilizados na iteração.

(c). modelo de teste é um componente que efetua testes unitários em uma ou maisclasses de domínio.

(d). prova de conceito é um tipo especial de caso de teste.

(e). avaliação de teste apresenta os resultados dos testes em termos de defeitos e cober-tura.

Solução:

O Processo Uni�cado (PU) surgiu como um processo popular para o desenvolvimento desoftware visando à construção de sistemas orientados a objetos (o RUP � Rational Uni�edProcess é um re�namento do PU). Ou seja, Processo Uni�cado é um processo de desen-volvimento, já o Rational Uni�ed Process é um produto da Rational � IBM, que tem no seunúcleo o Processo Uni�cado.

O Processo Uni�cado utiliza um paradigma evolucionário para o desenvolvimento de soft-wares. O ciclo de vida iterativo é baseado em re�namentos e incrementos sucessivos a �m deconvergir para um sistema adequado. Em cada iteração incrementa-se um pouco mais o pro-duto, baseando-se na experiência obtida nas iterações anteriores e no feedback do usuário.O Processo Uni�cado consiste da repetição de uma série de ciclos durante a vida de umsistema. Cada ciclo é concluído com uma versão do produto pronta para distribuição e ésubdividido em quatro fases: concepção, elaboração, construção e transição. Cada fase, porsua vez, é subdivida em iterações que passam por todos os cincos �uxos do trabalho doprocesso: análise de requisitos, análise, projeto, implementação e teste.

O �uxo de teste é desenvolvido com base no produto do �uxo de implementação. Os com-ponentes executáveis são testados exaustivamente no �uxo de teste para então ser disponi-bilizados aos usuários �nais. O principal propósito do �uxo de teste é realizar vários testes esistematicamente analisar os resultados de cada teste. Componentes que possuírem defeitosretornarão a �uxos anteriores como os �uxos de projeto e implementação, onde os problemasencontrados poderão ser corrigidos.

O teste de um sistema é primeiramente empregado durante a fase de elaboração, quando aarquitetura do sistema é de�nida, e durante a fase de construção quando o sistema é imple-mentado. Um planejamento inicial de testes pode ser feito durante a fase de concepção.

Na fase de transição, o �uxo de testes se limita ao conserto de defeitos encontrados du-rante a utilização inicial do sistema. O produto do �uxo de teste é o modelo de teste, essemodelo primeiramente descreve como componentes executáveis, provenientes do �uxo deimplementação, são testados.

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

Page 72: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Mais especi�camente, um modelo de teste descreve como os testes de integração e desistema exercitarão componentes executáveis a partir do modelo de implementação. Todosos casos de teste devem ser registrados no modelo de teste. Uma das principais atividadesde teste no Processo Uni�cado é a criação do modelo de teste, que deve descrever como ostestes de integração e de sistema exercitarão componentes executáveis a partir do modelode implementação. O modelo de teste também descreve como os testes de integração devemser executados, bem como os testes de unidade. O modelo de testes também pode descrevercomo aspectos especí�cos dos sistemas testados, como por exemplo, se a interface do usuárioé útil e consistente ou se o manual do usuário cumpre seu objetivo.

O papel do �uxo de teste é veri�car se os resultados do �uxo de implementação cumpremos requisitos estipulados por clientes e usuários, para que possa ser decidido se o sistemanecessita de revisões ou se o processo de desenvolvimento pode continuar.

Um caso de teste é um conjunto especí�co de entradas de teste, condições de execução eresultados esperados, identi�cados com a �nalidade de avaliar um determinado aspecto deum item de teste-alvo.

Um plano de testes é uma de�nição das metas e dos objetivos dos testes no escopo daiteração (ou projeto), os itens-alvo, a abordagem adotada, os recursos necessários e os pro-dutos que serão liberados.

Um script de teste é um conjunto de instruções passo a passo que permitem a execução deum teste. Os scripts de teste podem assumir a forma de instruções de texto documentadas eexecutadas manualmente ou de instruções que podem ser lidas pelo computador para ativara execução automática do teste.

Uma prova de conceito é, como o nome sugere, uma prova de uma teoria. As provasde conceito apenas a�rmam algo que antes só existia no papel e que, portanto, não existianenhuma 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 umaprova 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 especi�cações em código;Especi�cações �executáveis� ou a Construção de �picos invertidos�.

A avaliação de teste é a avaliação dos resultados de um conjunto de testes. Ela geralmenteinclui uma lista de defeitos e seus níveis de prioridade, além de informações como a razãode defeitos por linha de código.

As principais medidas de um teste incluem a cobertura e a qualidade. A cobertura é amedida da abrangência do teste e é expressa pela cobertura dos requisitos e casos de testeou pela cobertura do código executado. A qualidade é uma medida de con�abilidade, deestabilidade e de desempenho do objetivo do teste (sistema ou aplicativo em teste). Ela sebaseia na avaliação dos resultados do teste e na análise das solicitações de mudança (de-feitos) identi�cadas durante o teste.

Dado todo o exposto, a alternativa a ser marcada é a letra (E).

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

Page 73: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

33. Assuntos relacionados: UML, Diagrama de Estados, Diagrama de Classes, Diagrama deAtividades, Diagrama de Componentes, Diagrama de Sequência,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 53

Aplicações com interfaces web podem apresentar �uxos de navegação complexos entre suaspáginas. Há links e botões a serem clicados a qualquer momento, disparando eventos detransição de uma página para outra e até para si mesma. Utilizando Javascript no lado docliente, e possivelmente recursos Ajax, é possível habilitar ou desabilitar links e permitir ouimpedir o envio de formulários com base em condições veri�cadas em tempo real. Dentre ostipos de diagrama UML listados a seguir, qual o que melhor modelaria o �uxo de navegaçãodescrito?

(a). Classe

(b). Atividade

(c). Máquina de estado

(d). Componente

(e). Seqüência

Solução:

Antes de apontar qual é a alternativa correta, vamos rever cada tipo de diagrama UMLenvolvido nesta questão.

Diagrama de Classes

O objetivo de um diagrama de classes é descrever estaticamente os vários tipos de obje-tos no sistema, bem como o relacionamento entre eles. É importante ressaltar que esse tipode diagrama pode oferecer três perspectivas distintas:

• Conceitual: perspectiva destinada aos clientes. Ela representa os conceitos do domínioem estudo;

• Especi�cação: perspectiva destinada às pessoas que não precisam saber detalhes dedesenvolvimento. Ela evidencia as principais interfaces da arquitetura e métodos, semdetalhes sobre como eles serão implementados;

• Implementação: perspectiva destinada ao time de desenvolvimento. Ela abordavários detalhes importantes sobre a implementação.

Como o diagrama de classes faz uma descrição estática do sistema, ele não é adequado paramodelar nenhum tipo de �uxo. Ou seja, a alternativa A não é a que procuramos.

Diagrama de Atividades

Um diagrama de atividades é um diagrama de estados em que todos ou a grande maio-ria dos estados representam execuções de ações (atividades internas ao sistema). Portanto,ele é um grá�co de �uxo que evidencia os controles e as execuções das atividades. Seusprincipais elementos são:

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

Page 74: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• início: círculo preenchido;

• estado ou atividade: retângulo com bordas arredondadas;

• transição: seta;• decisão ou desvio: losango - uma entrada e mais de uma saída;

• intercalação ou merge: losango - mais de uma entrada e uma saída;

• separação ou fork: barra horizontal - uma entrada e mais de uma saída;

• junção ou join: barra horizontal - mais de uma entrada e uma saída.

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 eventosdos links e botões ao invés de nas páginas. Ou seja, dentre as alternativas que temos, odiagrama de atividades não é o mais adequado para o que se pede no enunciado.

Diagrama de Estados

Diagrama de estados também é comumente chamado de máquina de estados. Ele mostra osdiferentes estados de um objeto durante sua vida, bem como os estímulos que acionam asmudanças de estado. Ou seja, o diagrama de estados vê o ciclo de vida dos objetos comomáquinas de estados (automatos) �nitos. O termo ��nito� signi�ca que existe um número�nito de estados que o objeto pode assumir, bem como é �nito o número de estímulos queacionam as mudanças de estado.

Na UML, o estado do objeto é de�nido pelos valores dos atributos de um objeto de uma de-terminada classe do modelo. No entanto, é importante ressaltar que nem todas as variaçõesde valores de atributos devem ser representadas por estados exclusivos, mas apenas aquelasque podem afetar signi�cativamente o trabalho do objeto no contexto da aplicação.

Existem dois tipos especiais de estados: inicial e �nal. Eles são especiais porque nenhumevento pode fazer com que um objeto retorne para seu estado inicial, bem como não existenenhum evento capaz de tirar o objeto de seu estado �nal.

A Figura 4 mostra um exemplo de um diagrama de estados para um objeto do tipo servi-dor. Nele são mostrados 4 estados (pronto, escutando, trabalhando e desligando), além dosestados inicial e �nal. Também são mostrados os estímulos que acionam as mudanças deestado.

É 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

Um diagrama de componente mostra os componentes do software (por exemplo, compo-nentes CORBA, Java Beans ou seções do sistema que são claramente distintas) e os artefatosde que eles são feitos, como arquivos de código-fonte, bibliotecas de programação ou tabelasde bancos de dados relacionais. Sendo assim, nem de longe ele é útil para modelar algumtipo de �uxo de sistema.

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

Page 75: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Figura 4: exemplo de Diagrama de Estados.

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á semprepresente neste tipo de diagrama. Assim como o diagrama de comunicação, o diagrama desequê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 mostraadequado a modelagem de �uxo de navegação.

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

Page 76: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

34. Assuntos relacionados: UML, Diagrama de Classes,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 54

A �gura acima mostra um diagrama de classes UML desenvolvido para um projeto em queainda não se sabe em que linguagem será realizada a implementação. Sobre o diagrama,assinale a a�rmação correta.

(a). Há um erro na cardinalidade da associação entre ClasseA e ClasseB, pois se tratade uma composição e, como tal, um objeto da ClasseB só pode estar associado aum objeto da ClasseA.

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

(d). Retirando a ClasseA, o diagrama resultante corresponde ao padrão de projetocomposite.

(e). Invertendo o sentido de todas as generalizações, o diagrama resultante correspondeao padrão de projeto chain of responsability.

Solução:

Lembre-se que diagramas de classe nos permitem identi�car tanto o conteúdo de uma classequanto o relacionamento entre várias classes. Em um diagrama de classe, podemos mostraras variáveis e métodos membros de uma classe. Podemos também mostrar se uma classeherda de outra, ou se mantém uma referência para outra.

(A) CORRETA

O relacionamento �todo-parte�, também conhecido como composição agregada, ou relaciona-mento �tem-um� ou �parte-de�, indica que um objeto (o todo) é composto de outros objetos(as partes). Com a composição agregada, o relacionamento entre os objetos é muito maisforte que com a associação, pois nela o todo não pode existir sem suas partes e as partes nãopodem existir sem o todo. Vários pontos importantes são inerentes a este fato. São eles:

• remoção do todo implica na remoção das partes;

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

Page 77: handbook_questoes_vol2 - Cópia

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

• uma mensagem destinada a uma parte deve ser enviada para o todo e retransmitidapor ele à parte.

Isto signi�ca 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 comexistência e visibilidade independentes.

A �m de representar este tipo de relacionamento, utiliza-se uma linha que termina comum símbolo de diamante preenchido, símbolo este colocado contra o todo. Além disso, paraevitar qualquer confusão possível, ao todo é atribuída, explicitamente, a multiplicidade de1 (um), mesmo porque apenas um todo é possível.

A partir do diagrama UML e do que expomos, conseguimos classi�car a Classe A comosendo o todo e a Classe B como a parte do relacionamento. Assim, podemos veri�car quea alternativa A está correta, pois a multiplicidade 1 (um) deveria ser atribuída ao todo, enão uma multiplicidade denotada pelo símbolo * que representa nenhum ou mais objetos.

(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ânticae sintaxe não impede a existência da dependência cíclica, pois essa não se preocupa comproblemas da arquitetura do sistema ou da solução.

(C) ERRADA

Um relacionamento entre classes é chamado de relacionamento de generalização. Esse rela-cionamento também pode ser chamado de relacionamento de especialização, pois a general-ização e a especialização são dois pontos de vista do mesmo relacionamento: as Classes A eB são generalizações da Classe D e esta é uma especialização das anteriores.

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

É importante mencionar que, assim como a alternativa B, independentemente da linguagemde programação adotada permitir (C++) ou não (Java) herança múltipla, não será a UMLque restringirá a modelagem de herança múltipla. Assim, em UML, uma classe pode termais de uma superclasse. No nosso caso, a Classe D possui tanto características da ClasseA quanto da Classe B.

Concluímos, assim, que a alternativa está errada.

(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çõesseja uniforme.

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

Page 78: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Aplicações grá�cas como editores de desenho e sistemas de captura de esquema deixam osusuários construírem diagramas complexos a partir de Componentes simples. O usuáriopode agrupar Componentes para formar Componentes maiores, que, por sua vez, podem seragrupados para formar Componentes maiores ainda. O Padrão Composite descreve comousar composição recursiva, de modo que os clientes não tenham que fazer distinção entrecomponentes simples e composições.

A Figura 5 apresenta esta estrutura.

Figura 5: estrutura do padrão de projeto Composite.

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ésda herança. Na questão não temos essa composição e herança ao mesmo tempo. Portanto,alternativa errada.

(E) ERRADA

O padrão de projeto de software Chain of Responsibility representa um encadeamento deobjetos receptores para o processamento de uma série de solicitações diferentes. Esses ob-jetos receptores passam a solicitação ao longo da cadeia até que um ou vários objetos a trate.

Cada objeto receptor possui uma lógica descrevendo os tipos de solicitação que é capazde 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 mecanismoespecial 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 tratara solicitação.

Um exemplo da aplicação desse padrão é o mecanismo de herança nas linguagens orien-

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

Page 79: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

tadas a objeto: um método chamado em um objeto é buscado na classe que implementa oobjeto e, se não encontrado, na superclasse dessa classe, de maneira recursiva.

A Figura 6 apresenta esta estrutura.

Figura 6: representação da estrutura do padrão Chain of Responsability.

Como podemos observar, a estrutura do padrão é bem simples e possui um auto-relacionamento(successor), o que nos permite descartar a alternativa.

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

Page 80: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

35. Assuntos relacionados: Engenharia de Software, Testes de Software, Complexidade Ci-clomática,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 55

Considere o seguinte código de um método de uma classe Java:

public boolean primo(int x) {

if (x == 1 || x == 2) {

return true;

}

int raiz = (int) Math.sqrt((double)x);

for (int i = 2; i <= raiz; i++) {

if (x % i == 0) {

return false;

}

}

return true;

}

}

Qual a complexidade ciclomática do método?

(a). 2

(b). 3

(c). 4

(d). 5

(e). 6

Solução:

A complexidade ciclomática, conhecida também como complexidade condicional, é umamétrica de software que fornece uma medida quantitativa da complexidade lógica de umprograma 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 parao número de casos de teste que dever ser executados para garantir que todas as instruçõesdo programa sejam executadas pelo menos uma vez. Um caminho independente é qualquercaminho que introduz pelo menos um novo conjunto de instruções ou uma nova condição.

Existem várias formas de medir a complexidade ciclomática de um programa. Uma formarápida e prática, que é o que nos interessa em uma prova, é contabilizar o número total depredicados lógicos (comparações expressões booleanas) que aparecem em uma rotina. Sejan esse número, a complexidade ciclomática é dada então por n + 2.

No nosso caso, o número total de predicados lógicos é 3 (o primeiro if (x == 1 || x ==2), a condição no for (int i = 2; i <= raiz; i++) e o segundo if (x % i == 0)). Então, acomplexidade ciclomática do procedimento primo é igual 5.

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

Page 81: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

36. Assuntos relacionados: Algoritmos de Ordenação, Heapsort, Ordenação por Árvore deDecisão, Ordenação por Comparação, Quicksort, Ordenação por Inserção, Ordenação porIntercalação,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 56

Sobre o algoritmo de ordenação heapsort, assinale a a�rmação correta.

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

(c). Seu desempenho de pior caso é pior do que o do algoritmo quicksort.

(d). Seu desempenho de pior caso é o mesmo da ordenação por inserção.

(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 naforma 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ídauma heap mínima (o menor elemento �ca na raiz). Em resumo, as principais característicasdesse algoritmo são:

• ordenação por seleção;

• heap gerada e mantida no próprio vetor a ser ordenado (utilização e�ciente da memória);

• complexidade (em qualquer caso: pior, médio ou melhor): O(n log n);

• consumo de memória ao construir a árvore;

• não é indicado para vetores pequenos por conta do tempo de construção da árvore.

(A) ERRADA

Algoritmos que se baseiam apenas em comparações entre os elementos de entrada paraefetuarem ordenações são denominados algoritmos de ordenação por comparação. Os algo-ritmos Heapsort, Quicksort e Ordenação por Intercalação (Mergesort) são alguns exemplosdesse tipo de algoritmo.

Uma árvore de decisão representa, de modo abstrato, as comparações executadas por umalgoritmo de ordenação. Suas principais propriedades são: é uma árvore binária; possui nomínimo n! folhas (para n igual ao número de elementos a serem ordenados); cada folhacontém uma permutação dos dados de entrada. O caminho mais longo da árvore representao pior caso de execução do algoritmo.

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

Page 82: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• veri�que qual é a primeira comparação do algoritmo, que pode resultar em �sim� ou�não�. Nesse passo, é necessário saber quais são os índices que estão sendo comparados;

• a primeira comparação é colocada na raiz da árvore de decisão, incluindo os arcos �sim�e �não�;

• repita os passos anteriores para cada nó da árvore. Em cada comparação, é necessáriosaber quais são os índices que estão sendo comparados. Observe que sempre se deveanalisar os índices originais, ou seja, não devem ser consideradas as trocas de índicesocorridas durante a execução do algoritmo.

Tendo em vista os conceitos apresentados, conclui-se que o algoritmo Heapsort pode serrepresentado por uma árvore de decisão, já que é um dos algoritmos que realiza ordenaçãopor 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 algoritmoQuicksort são O(nlogn) para o melhor caso e O(n2) para o pior caso. É sempre importanteter em mente que quanto mais e�ciente for a escolha do pivot, mais e�ciente 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 nessecaso são necessárias n(n− 1)/2 ≈ (n2)/2 comparações. Esse cenário sempre ocorre quandoa sequência de entrada está ordenada na ordem inversa à desejada.

(E) ERRADA

Também chamado de Mergesort, o algoritmo de ordenação por intercalação, um algoritmorecursivo, se utiliza da técnica �dividir para conquistar�. Sua idéia básica é que é mais fácilcriar uma sequência ordenada a partir de duas outras também ordenadas. Para isso, eledivide a sequência original em pares de dados, as ordena, depois as agrupa em sequênciasde quatro elementos, e assim por diante, até ter toda a sequência dividida em apenas duaspartes. Sua complexidade tanto para o pior quanto para o melhor caso é O(n log n). Seuponto fraco é a �baixa� e�ciência na utilização de memória, complexidade espacial O(n).Contudo, existe uma variante desse algoritmo que realiza a ordenação no próprio vetor deentrada, ou seja, complexidade espacial O(1), mas a sua implementação é extremamentecomplicada.

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

Page 83: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

37. Assuntos relacionados: Estruturas de Dados, Lista Encadeada, Tabela Hash,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 57

Informações comuns às questões de números 57 e 58.

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 achave 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á oselementos 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 osponteiros proximo[e] e anterior[e]. Cada lista L possui ainda o valor inicio[L], que apontapara o primeiro elemento da lista. NIL representa um ponteiro vazio.

← denota o operador de atribuição.

O pseudocódigo a seguir mostra uma operação nesta estrutura, porém apresenta erro emuma de suas linhas. As linhas estão numeradas apenas para facilitar a correspondência comas alternativas.

01 proximo[chave[x]] ← inicio[H[h(chave[chave[x]])]]02 se inicio[H[h(chave[chave[x]])]] 6= NIL03 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

O erro citado é corrigido por

(a). 01 chave[x] ← inicio[H[h(chave[x])]]

(b). 02 se proximo[H[h(chave[chave[x]])]] 6= NIL

(c). 03 então anterior[inicio[H[h(chave[chave[x]])]]] ← chave[x]

(d). 04 proximo[inicio[H[h(chave[chave[x]])]]] ← proximo[chave[x]]

(e). 05 anterior[chave[x]] ← inicio[H[h(chave[chave[x]])]]

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 chavesarmazenadas é menor que o número de chaves possíveis. Nessas condições, Tabelas Hashtornam-se uma alternativa efetiva ao endereçamento direto de uma matriz, visto que usammatrizes 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 qualentrada da tabela o elemento de chave k será armazenado. Se a tabela possuir tamanhom, isto é, m entradas, então o espaço de saída da função h(k) será: 0, 1, . . . , m-1. Opropósito da função hash é reduzir a faixa de índices da matriz que precisam ser tratados.

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

Page 84: handbook_questoes_vol2 - Cópia

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 paraa mesma entrada na tabela.

As Listas Encadeadas são estruturas de dados nas quais os objetos estão arranjados emuma 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 outroscampos ponteiros: próximo e anterior. Dado um elemento �e� na lista, proximo[e] apontapara 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 ladooposto, se proximo[e] = NIL, o elemento �e� não possui sucessor, sendo, então, o últimoelemento, 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.

Assim sendo, partiremos para a resolução da questão.

Ao analisar o pseudocódigo, podemos notar que a função hash h(k) é alimentada pela chaveda 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ê:

1. chave[x]: determina a chave do elemento x;

2. chave[chave[x]]: determina a chave da chave do elemento x;

3. h(chave[chave[x]]): calcula a entrada da Tabela H que será indexada;

4. H[h(chave[chave[x]])]: representa uma lista duplamente encadeada que está localizadana entrada h(chave[chave[x]]) da Tabela H;

5. inicio[H[h(chave[chave[x]])]]: recupera o primeiro elemento (cabeça) da listaH[h(chave[chave[x]])]. Além disso, como o código da linha 03 é executado apenas se acondição da linha 02 é satisfeita, temos, obviamente, que inicio[H[h(chave[chave[x]])]]é uma referência de memória válida (6= NIL);

6. anterior[inicio[H[h(chave[chave[x]])]]]: esta sequência de indexações recupera o ponteiropara o nó que precede o nó da cabeça. Como estamos tratando com uma lista dupla-mente encadeada e não circular, �ca evidente que tal ponteiro possui valor NIL;

7. inicio[anterior[inicio[H[h(chave[chave[x]])]]]]: é neste nível de indexação que chegamosao erro. Ao substituirmos a parte interna do colchete mais externo por NIL, comovimos no item anterior, obteremos inicio[NIL], o que representa uma violação de acessoà memória. Portanto, a resposta correta é a alternativa C.

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

Page 85: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

38. Assuntos relacionados: Estruturas de Dados, Lista Encadeada, Tabela Hash,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 58

Corrigindo-se o erro citado, o pseudocódigo corresponderia a uma operação de

(a). inserção de x em H.

(b). inserção da chave de x em H.

(c). inserção da chave da chave de x em H.

(d). remoção da chave de x de 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= NIL03 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, vejaabaixo a Figura 7 que apresenta dois cenários iniciais possíveis da lista. O primeiro emque ela é vazia e o segundo em que há apenas um nó;

• na linha 03, ao ponteiro anterior da atual cabeça da lista (inicio[H[h(chave[chave[x]])]]),é atribuído o endereço do nó que contém a chave de x (chave[x]). Lembre-se que antesdessa atribuição, anterior[inicio[H[h(chave[chave[x]])]]] apontava para NIL, por se tratardo primeiro nó da lista. A Figura 8 ilustra esse cenário, o qual nós chamaremos de 2.1,pois advém do cenário 2 que foi apresentado no item anterior;

• na linha 04, ao atributo inicio da lista H[h(chave[chave[x]])] é atribuído o nó que contéma chave x. Em outras palavras, o nó x passa a ser o nó cabeça da lista. A Figura 9ilustra dois possíveis casos, um na lista vazia (1.1) e o outro em uma lista contendo umnó (2.2);

• na linha 05, ao ponteiro anterior do nó contendo a chave x, e atual cabeça da lista,é atribuído o valor NIL, uma vez que ele não possui predecessor. Novamente, parailustrar essa atribuição, nós recorreremos a Figura 10, a qual apresenta o cenário 1.2,proveniente de uma lista inicialmente vazia, e o cenário 2.3, proveniente de uma listanão-vazia.

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

Page 86: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Figura 7: ilustração da linha 01 do pseudocódigo.

Figura 8: ilustração da linha 03 do pseudocódigo.

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

Page 87: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Figura 9: ilustração da linha 04 do pseudocódigo.

Figura 10: ilustração da linha 05 do pseudocódigo.

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

Page 88: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

39. Assuntos relacionados: Estruturas de Dados, Árvore B,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 59

Considere uma árvore B de grau mínimo igual a 2 (o que signi�ca que cada nó pode ter, nomáximo, 3 chaves) inicialmente vazia, na qual são inseridas as chaves N, D, T, B, Z, K, R,F, G, nesta ordem, as quais são comparadas com base na ordem do alfabeto. Considerandoo algoritmo de inserção em uma única passagem, conclui-se que

(a). a altura da árvore resultante será 3.

(b). B estará em um nó interno.

(c). o nó raiz conterá a chave K.

(d). haverá 4 nós folhas.

(e). F e G pertencerão à mesma folha.

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.

Antes de solucionarmos a presente questão, é de enorme importância que vejamos algu-mas características da árvore B. São elas:

• para um dado nó x, n[x] representa o atual número de chaves armazenadas em x;

• as n[x] chaves são armazenadas em ordem não-decrescente (chave1[x] ≤ chave2[x] ≤ ...≤ chaveN[x]);

• folha[x] é um valor booleano verdadeiro se x é folha e falso se x é um nó interno;

• se x é um nó interno, então ele contém n[x] + 1 ponteiros para os seus �lhos. Nessecaso, note que os nós folhas, os quais estão localizados nos extremos da árvore, nãotêm �lhos;

• as chaves existentes em um nó x separam as faixas de chaves armazenadas em cadasub-árvore. Por exemplo, considere um nó x que contém apenas uma chave de valor V(o que signi�ca, como já vimos, que ele poderá possuir até dois nós �lhos: sub-árvoreesquerda e sub-árvore direita). Nesse cenário, qualquer chave com valor menor que Vencontrar-se-á na sub-árvore esquerda. Por outro lado, chaves com valor maior que Vestarão localizadas na sub-árvore direita;

• em uma árvore B, todas as folhas se encontram na mesma profundidade, a qual érepresentada pela altura da árvore. Por convenção, o nó raiz da árvore B encontra-sena altura 0 (zero);

• existem limites máximos e mínimos no número de chaves que um nó pode conter. Esselimite é expressado em termos do grau mínimo da árvore B (considerado, aqui, comoum 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 umachave). No que se refere ao limite máximo, cada nó pode conter até 2t - 1 chaves, ouseja, 2t �lhos;

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

Page 89: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• quando da tentativa de inserção de uma chave em um nó x cheio (contendo 2t - 1chaves), uma operação fundamental, denominada split, é efetuada. Tal operação con-siste em: dividir o nó x em dois nós �lhos, cada um contendo t - 1 chaves; mover achave mediana de x para o nó pai de x. Se x não possuir nó pai, então a árvore cresceem altura por um;

• antes da inserção de uma chave em um nó x cheio, devemos assegurar que o nó pai dex também não esteja cheio antes do split de x, evitando, dessa forma, que splits sejamrealizados recursivamente;

• após a ocorrência de um split, a nova chave será inserida no nó folha existente em umadas 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, nemnós �lhos. Em seguida, nós iremos inserir as chaves, uma a uma, respeitando os limites queos nós possuem. No caso da árvore em questão, com t igual a 2, um nó terá no mínimouma chave e no máximo 3 chaves. A Figura 11, apresenta, passo a passo, a inserção de cadachave (nós que são modi�cados pelo processo de inserção estão sombreados).

Ao observarmos a Figura 11, podemos notar que:

• 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 nadamais é que uma simples inserção no nó raiz;

• 5) é o resultado da inserção da chave B na árvore prévia. O nó raiz DNT, que estácheio, é dividido em dois nós contendo D e T, a chave N é movida para o novo nó raiz,e a árvore B cresce em altura por um;

• 6) é o resultado da inserção da chave Z na árvore prévia, a qual é uma simples inserçãona folha;

• O mesmo ocorre em 7) e 8) para as chaves K e R, respectivamente;

• 9) é o resultado da inserção da chave F. O nó folha BDK é divido antes de F ser inseridano nó mais a direita das duas folhas (nó K);

• 10) é o resultado da inserção da chave G na folha FK.

Portanto, a resposta correta é a alternativa E.

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

Page 90: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Figura 11: inserção de chaves em uma árvore B.

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

Page 91: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

40. Assuntos relacionados: Java,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 60

Considere as informações a seguir para responder às questões de números 60 e61.

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 testessão executados, para exercitar o método descontoValido() da classe Produto. O métodoassertEquals gera um junit.framework.AssertionFailedError quando os valores de seus argu-mentos são diferentes entre si.

01 package br.com.exemplo.estoque;0203 public class Produto {0405 private double preco;06 private double precoMinimo;0708 public Produto(double preco, double precoMinimo) {09 this.preco = preco;10 this.precoMinimo = precoMinimo;11 }1213 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 114www.handbookdeti.com.br

Page 92: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

01 package br.com.exemplo.estoque;0203 import org.junit.Test;04 import static org.junit.Assert.*;0506 public class ProdutoTest {0708 @Test09 public void testDescontoValido() {10 int percentual = 90;11 boolean resultadoEsperado = true;1213 System.out.println(�caderno�);14 Produto caderno = new Produto(10.00, 1.00);15 boolean resultado = caderno.descontoValido(percentual);16 assertEquals(resultadoEsperado, resultado);1718 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

(a). a linha 08 de ProdutoTest é um comentário.

(b). a classe ProdutoTest descende de org.junit.Test

(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 estiveremno mesmo pacote de Produto.

(e). org.junit.Assert é um pacote.

Solução:

(A) ERRADA

Em Java, existem 3 (três) tipos de comentários:

• // Isto é o primeiro tipo de comentário

• /* Isto é o segundo tipo de comentário */

• /** 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 possaacessar 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 114www.handbookdeti.com.br

Page 93: handbook_questoes_vol2 - Cópia

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ânciade uma classe com os parâmetros especi�cados. 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 automaticamentefornecerá um construtor default que não requer nenhum argumento. O construtor defaultsimplesmente 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 quenão requer argumentos, ocorrerá um erro em tempo de compilação, que é o caso do presenteproblema, pois note que a superclasse Produto possui apenas um construtor, obviamente demesmo 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 modi�cador private, só poderá ser acessado dentroda classe Produto. Nem mesmo as subclasses da classe Produto poderão acessar esse campodiretamente.

Uma forma de tornar esse campo acessível para leitura, seria por meio da declaração deum método, público (public), na classe Produto. Esse método retornaria apenas o valorarmazenado no campo preco.

Por outro lado, se desejássemos que esse campo fosse acessível para escrita, deveríamosdeclarar um método, na classe Produto, precedido pelo modi�cador 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 quevocê deseja referenciar dentro do pacote deveriam ser especi�cados usando-se a primeiraletra 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 interfacese classes.

Assim, na verdade, org.junit.* é um pacote que contém várias classes, dentre elas a classeorg.junit.Assert.

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

Page 94: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

41. Assuntos relacionados: Java,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 61

testDescontoValido() valida a veri�cação para o produto caderno, mas gera uma exceçãopara o produto caneta, indicando que o desconto de 90% não é válido para canetas, o queestá incorreto. A causa do problema e uma possível solução seriam:

(a). CAUSA: uso de aritmética binária de ponto �utuante para os cálculos (variáveisdo tipo double) com posterior tentativa de comparação exata entre os valorescalculados (linha 21). SOLUÇÃO: usar aritmética decimal exata substituindo osvalores primitivos double por instâncias da classe BigDecimal.

(b). CAUSA: arredondamento automático devido ao uso na mesma expressão dostipos int e double (linha 14) sem conversão de tipos (typecasting). SOLUÇÃO:transformar o parâmetro percentual em double ou realizar um typecasting explícitode int para double na expressão.

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

(d). CAUSA: falta da inclusão do pacote java.lang.math em Produto. SOLUÇÃO:incluir o pacote através de uma declaração import.

(e). CAUSA: mistura de elementos de escopos diferentes (classe e método) na ex-pressão lógica de retorno. SOLUÇÃO: atribuir o precoMinimo a uma variávellocal e utilizá-la na comparação ou tornar precoComDesconto um campo de Pro-duto.

Solução:

(A) CORRETA

Observe, no código acima, que as variáveis preco, precoMinimo e precoComDesconto sãodo tipo double. Observe, também, que o programa está tratando com partes fracionais deuma unidade monetária, que assumiremos ser o real somente para �ns ilustrativos, e entãoprecisa de um tipo que permite pontos decimais em seus valores.

Infelizmente, números em ponto �utuante podem causar transtornos. O problema que ocorreno 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 quantiasarmazenadas para o produto caderno:

• na varável privada preco: 10.000 e exibição 10.00;

• na variável privada precoMinimo: 0.999, o qual seria arrendondado normalmente para1.00 para propósitos de exibição.

O mesmo pode ocorrer para o produto caneta após a invocação do construtor Produto:

• na varável privada preco: 1.000 e exibição 1.00;

• na variável privada precoMinimo: 0.101, o qual seria arrendondado normalmente para0.10 para propósitos de exibição.

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

Page 95: handbook_questoes_vol2 - Cópia

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:

• para caderno: a variável precoComDesconto armazenará 1.000 (e exibição 1.00), o queé maior que o precoMinimo (0.999), retornando true na comparação;

• para caneta: a variável precoComDesconto armazenará 0.100 (e exibição 0.10), o queé menor que o precoMinimo (0.101), retornando false na comparação.

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 classesjava.math.BigDecimal para a realização de cálculos com precisão arbitrária de valores emponto �utuante.

(B) ERRADA

Em Java, há regras de promoção que se aplicam a expressões contendo valores de doisou mais tipos primitivos. Cada valor é promovido ao tipo mais �alto� na expressão. Dessaforma, o argumento do método descontoValido (percentual) e a constante (100) do tipo intsão automaticamente promovidas para o tipo double, devido ao campo preco.

(C) ERRADA

A JVM (Java Virtual Machine ou Máquina Virtual Java, em português) é uma máquinacomputacional abstrata, que, assim como uma máquina real, possui seu próprio conjunto deinstruções e capacidade de manipular várias áreas de memória em tempo de execução.

Dentre as responsabilidade da JVM podemos citar as principais:

• independência de uma aplicação em relação ao hardware;

• independência de uma aplicação em relação ao sistema operacional;

• proteção aos usuários contra programas maliciosos.

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, oqual contém instruções da JVM (ou bytecodes) e uma tabela de símbolos, bem como outrasinformaçõ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 quali�cador que os precede.Assim, o campo precoMinino (this.precoMinimo no código) pertence ao escopo do métododescontoValido.

Note, ainda, que no método descontoValido, o uso da palavra chave this para o membroprecoMinimo não era necessário, pois não há variáveis locais com o mesmo nome.

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

Page 96: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

42. Assuntos relacionados: Desenvolvimento de Software, Diagrama de Classes,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 62

Com base no diagrama acima, analise os trechos de código Java a seguir.

I - Produto p = new Produto();p.setNome(�Carro�);

II - Seguravel s = new Veiculo();s.setNome(�Carro�);double p = s.calculaPremio();

III - Seguravel s = new Veiculo();((Veiculo) s).setNome(�Carro�);

IV - Vendavel v = new Peca();Produto p = (Produto) v;p.setNome(�Pneu�);

V - Vendavel v = new Veiculo();Produto p = (Peca)((Produto)((Veiculo) v));

Estão corretos APENAS os trechos de código

(a). I e III

(b). I e IV

(c). II e III

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

Page 97: handbook_questoes_vol2 - Cópia

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 aplicarum construtor sobre ela. Em outras palavras, ela não pode ser instanciada. Nós precisamosassegurar que o objeto a ser construído pertence a uma classe concreta da classe abstrataProduto, no caso, ou a classe Veículo ou a classe Peca. Uma solução de correção seria oseguinte código:

Produto p = new Veículo();

(II) ERRADA

Note que apesar da variável s ser uma instância da classe Veiculo, ela foi automaticamenteconvertida (upcast) no momento da sua declaração para a interface Seguravel. Desse modo,esse objeto poderá acessar apenas os métodos que foram de�nidos na interface, no caso, ométodo calculaPremio, e não o método setNome.

(III) CORRETA

Semelhante à alternativa anterior, porém com um conversão (downcast) explícita entre ainterface Seguravel e a classe que a implementa (Veiculo). Este tipo de conversão permite auma classe pai, no caso a interface Seguravel, acessar todos os métodos da classe �lha.

Note, também, que s é uma instância da classe Veiculo, e por isso não foi necessário inserirmecanismos que veri�cam o tipo do objeto antes da conversão (RITT, do inglês Run-TimeType Identi�cation).

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 sejaconvertido para uma classe inválida.

(IV) CORRETA

No trecho de código são realizadas duas conversões:

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 é feitaimplicitamente;

2. Downcast entre a interface Vendavel, que é uma instância da classe Peca, e a classeabstrata 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 quetoda Peca é um Produto.

Após a realização do downcast o método setNome da classe Produto é apropriadamenteinvocado.

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

Page 98: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(V) ERRADA

No trecho de código, há uma tentativa de realizar um cast entre a instância de Veiculo,representada por v, para a classe Peca. Tal tipo de cast (entre classe irmãs) produzirá umerro de compilação, pois as referidas classes possuem métodos completamente diferentes enão relacionados.

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

Page 99: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

43. Assuntos relacionados: Java, UML, Diagrama de Classes,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 63

public class Produto {

private Fabricante mFabricante;

public Produto () {

}

public Fabricante getFabricante () {

return mFabricante;

}

public void setFabricante (Fabricante val) {

this.mFabricante = val;

}

}

import java.util.ArrayList;

public class Fabricante {

private ArrayList<Produto> mProduto;

public Fabricante () {

}

public ArrayList<Produto> getProduto () {

return mProduto;

}

public void setProduto (ArrayList<Produto> val) {

this.mProduto = val;

}

}

Assinale o diagrama de classe que expressa corretamente a implementação mostrada acima,em Java, das classes Produto e Fabricante, bem como da associação entre as mesmas.

(a). Diagrama 1

(b). Diagrama 2

(c). Diagrama 3

(d). Diagrama 4

(e). Diagrama 5

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

Page 100: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Solução:

Lembre-se que diagramas de classe nos permitem identi�car tanto o conteúdo de uma classequanto o relacionamento entre várias classes. Em um diagrama de classes podemos mostraras variáveis e métodos membros de uma classe. Podemos também mostrar se uma classeherda de outra, ou se mantém uma referência para outra. Em suma, podemos descrever todasas dependências do código-fonte entre classes. Para resolvermos esta questão precisamossaber:

1. associações entre classes muito frequentemente representam instâncias de variáveis quemantêm referência para outros objetos;

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.

De posse desse conhecimento, estamos aptos a revolver a presente questão.

Inicialmente, analisemos a declaração da classe Produto. Observe que nela é declaradoum membro privado do tipo Fabricante. Em outras palavras, a classe Produto mantém umaúnica referência para classe Fabricante. Portanto, na associação existente entre Produto eFabricante deve existir uma �echa apontando para a classe Fabricante com o valor numérico1 (um) em sua ponta.

Agora, analisemos a declaração da classe Fabricante. Observe que nela é declarado umvetor (ArrayList) privado do tipo Produto, em outras palavras, a classe Fabricante mantémmuitas referências para classe Produto. Portanto, na associação existente entre Fabricantee Fabricante também deve existir uma �echa apontando para a classe Produto com um as-terisco (*) em sua ponta.

Concluímos, então, que a reposta correta é a letra D.

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

Page 101: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

44. Assuntos relacionados: Java,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 64

Considere o trecho de código a seguir.

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

(a). imprimirá a mensagem, apenas se x não for �0�.

(b). imprimirá a mensagem, apenas se x não tiver sido inicializado com null.

(c). imprimirá a mensagem, independente do valor de x.

(d). gerará um erro de compilação.

(e). compilará, mas nunca imprimirá a mensagem.

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émdisso, o operador �+� pode ser utilizado também para a concatenação de strings, que é ocaso 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 a0 (zero), se x for nula.

Independentemente do conteúdo de x, o lado direito do operador �!=� produzirá uma stringcom o tamanho N + 1. Isto é, a string concatenada possuirá tamanho, e obviamente, con-teúdo, diferente da original (x), o que sempre satisfará a condição de desigualdade existenteno if. Logo, esse trecho de código imprimirá a mensagem, independente do valor de x.(alternativa C).

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

Page 102: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

45. Assuntos relacionados: Teste de Mesa, Java,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 65

public class Ponto {

private int x;

private int y;

public Ponto(int x, int y) {

setCoordenadas(x,y);

}

public void setCoordenadas(int x, int y) {

this.x = x;

this.y = y;

}

public String toString() {

return "(" + x + "," + y + ")";

}

public static void main(String[] args) {

int a = 1;

int b = 2;

int c = 3;

int d = 4;

Ponto p = new Ponto(a,b);

Ponto q = new Ponto(c,d);

Ponto r = p;

c = 5;

p.setCoordenadas(c,d);

System.out.print(p);

System.out.print(q);

System.out.print(r);

r.setCoordenadas(a,b);

a = b;

q.setCoordenadas(b,c);

System.out.print(p);

System.out.print(q);

System.out.println(r);

}

}

Qual será a saída da execução da classe Java acima?

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

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

Page 103: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 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 abordadosos principais pontos da execução.

• após a execução da 5a linha (Ponto p = new Ponto(a,b);), teremos o seguinte cenário:a=1; b=2; c=3; d=4; p.x=1; p.y=2;

• após a execução da 6a linha (Ponto q = new Ponto(c,d);), teremos o seguinte cenário:a=1; b=2; c=3; d=4; p.x=1; p.y=2; q.x=3; q.y=4;

• após a execução da 7a linha (Ponto r = p;), teremos o seguinte cenário:a=1; b=2; c=3; d=4; p.x=1; p.y=2; q.x=3; q.y=4; r <-> p

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.

• após a execução da 9a linha (p.setCoordenadas(c,d);), teremos o seguinte cenário:a=1; b=2; c=5; d=4; p.x=5; p.y=4; q.x=3; q.y=4; r <-> p

• após as execuções das linhas de número 10, 11 e 12 (System.out.print(p); System.out.print(q);System.out.print(r);), teremos a seguinte saída:(5,4)(3,4)(5,4)

• após a execução da 13a linha (r.setCoordenadas(a,b);), teremos o seguinte cenário:a=1; b=2; c=5; d=4; p.x=1; p.y=2; q.x=3; q.y=4; r <-> p

• após a execução da 14a linha (a = b;), teremos o seguinte cenário:a=2; b=2; c=5; d=4; p.x=1; p.y=2; q.x=3; q.y=4; r <-> p

• após a execução da 15a linha (q.setCoordenadas(b,c);), teremos o seguinte cenário:a=2; b=2; c=5; d=4; p.x=1; p.y=2; q.x=2; q.y=5; r <-> p

• após as execuções das linhas de número 16, 17 e 18 (System.out.print(p); System.out.print(q);System.out.println(r);), teremos a seguinte saída:(5,4)(3,4)(5,4)(1,2)(2,5)(1,2)

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

Page 104: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

46. Assuntos relacionados: Banco de Dados, Modelo Relacional, Data Warehouse, ModeloMultidimensional, Data Mart, ROLAP, OLAP,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 66

A respeito de sistemas de informações gerenciais, são feitas as a�rmativas a seguir.

I - Uma das diferenças entre bancos de dados relacionais e multidimensionais diz respeitoao compromisso entre performance e escalabilidade: bancos de dados relacionais pro-porcionam consultas mais rápidas, enquanto bancos de dados multidimensionais lidammelhor 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 maistarde se consolidam em um data warehouse institucional, existe uma chance maior desurgirem problemas de inconsistência de metadados do que quando um data warehouseinstitucional dá origem a datamarts departamentais.

IV - Para melhoria de performance, as tabelas em data warehouses, em geral, estão nasformas normais mais altas (considerando que 5 FN é mais alta que 1 FN).

Estão corretas APENAS as a�rmativas

(a). I e II

(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 consultasem uma análise multidimensional de dados. O termo é usado em contraste com o termoOLTP (Online Transaction Processing), que é uma abordagem largamente utilizada emambientes transacionais. Em um ambiente transacional, há constante entrada de dados econsultas simples. Além disso, é exigido, em um ambiente transacional, que a respostaao 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 demoraconsiderável é inaceitável. Entretanto, enquanto as abordagens OLTP são extremamenteadequadas 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 utilizamOLAP são projetados em modelos de dados multidimensionais que possibilitam executarconsultas 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

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

Page 105: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

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

Vamos analisar as a�rmativas da questão:

I como já foi dito, os bancos de dados relacionais podem ser utilizados para armazenarbancos de dados modelados da maneira OLAP (multidimensional). As principais mo-tivações para esse uso é a incrível escalabilidade dos bancos de dados relacionais ea grande disponibilidade de ferramentas. Já uma arquitetura MOLAP (multidimen-sional) é construída, de forma otimizada, em estruturas de dados que possibilitam amelhoria de desempenho em consultas. Ou seja, a a�rmação está incorreta, pois a�rmajustamente o contrário;

II é verdadeira, como já explicado acima;

III é verdadeira, pois quando uma empresa guia o projeto de forma centralizada e compolíticas estabelecidas, ela diminuirá as chances de problemas de inconsistência emmetadados. Caso contrário, cada departamento terá sua forma de pensar sobre acriação de metadados e di�cultará a integração no futuro;

IV a a�rmativa está incorreta, pois um dos principais recursos utilizados em um OLAPpara aumentar o desempenho é a desnormalização das tabelas. A desnormalização éutilizada para diminuir o custo com operações de junções (joins) entre tabelas.

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

Page 106: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

47. Assuntos relacionados: CMMI, Níveis de Maturidade,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 67

O CMMI de�ne níveis crescentes de capacidade (capability) para as áreas de processos ede maturidade (maturity) organizacional. Sobre os níveis de maturidade, é correto a�rmarque, no nível

(a). 1, a disciplina de processo alcançada ajuda a garantir que as práticas existentesserão mantidas, mesmo em situações de crise e stress.

(b). 2, os projetos são monitorados, controlados, revisados e avaliados quanto à suaaderência à descrição do processo que utilizaram.

(c). 3, a performance dos processos é controlada usando estatística e outras técnicasquantitativas, sendo portanto quantitativamente previsível.

(d). 4, a organização está focada no aperfeiçoamento contínuo da performance dosprocessos através de melhorias incrementais no processo e na tecnologia.

(e). 5, a organização atingiu o nível máximo de otimização dos processos e passa a seconcentrar nos aspectos operacionais e na manutenção das métricas que atestamsua condição.

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 (CapabilityMaturity Model) desenvolvidas especi�camente para cada área de atuação, tais como: de-senvolvimento de sistemas, engenharia de software, aquisição de software e desenvolvimentode processos. Apesar das CMMs serem úteis, elas são excessivamente diversi�cadas e, porconta 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 paramelhoria dos processos das organizações e a habilidade de gerenciar, desenvolver e manteros seus produtos (softwares). Essas práticas, já consideradas efetivas, são organizadas emuma estrutura que visa auxiliar a organização, em particular os gerentes de projetos, a es-tabelecer suas prioridades para a conquista de melhorias. Um guia para a implementaçãodessas melhorias também é fornecido pelo CMMI.

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 diferentesmeios para obterem melhorias de acordo com as suas realidades.

A representação contínua dá liberdade para as organizações utilizarem a melhor ordementre as �melhorias� para que os objetivos de negócio sejam alcançados. Essa representaçãoé caracterizada por níveis de capacidade (capability levels). São eles:

• nível 0: Incompleto;

• nível 1: Executado (De�nido);

• nível 2: Gerenciado;

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

Page 107: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

• nível 3: De�nido;

• nível 4: Quantitativamente gerenciado;

• nível 5: Em otimização (ou Optimizado).

Já a representação por estágios disponibiliza uma sequência pré-determinada para que as�melhorias� sejam obtidas. Essa sequência não pode ser desconsiderada pelas organizaçõesque pretendem utilizar essa representação, pois cada estágio serve de base para o próximo.A representação por estágios é caracterizada por níveis de maturidade (maturity levels).Esses níveis e suas principais características são apresentados a seguir:

• nível 1 (Inicial): os processos são informais. A pesar dessa informalidade, às vezes,produtos e serviços que funcionam são produzidos. Contudo, na maioria dos projetos,as estimativas de orçamento e cronograma são excedidas;

• nível 2 (Gerenciado): há gerenciamento sobre os requisitos, processos, produtos eserviços. Processos BÁSICOS são estabelecidos para tal gerenciamento. Sucessos efracassos anteriores são utilizados em processos futuros. Alguns dos procedimentos sãodevidamente escritos e atividades de medição e análise também acontecem;

• nível 3 (De�nido): os processos BÁSICOS do nível 2 se tornam padrão para a organi-zação. Esses processos, que são otimizados com o passar do tempo, são utilizados paraa geração de �processos de�nidos� para cada projeto da organização;

• nível 4 (Quantitativamente gerenciado): a e�cácia e a e�ciência de cada processo sãopercebidas em termos estatísticos durante toda a sua vida. As causas de variações dee�ciência e/ou e�cácia são investigadas e tratadas para que não se repitam no futuro;

• nível 5 (Em otimização): neste nível, a organização concentra esforços no melhoramentocontínuo do desempenho de processos por meio de melhorias tecnológicas incrementaise inovadoras. Regularmente, os objetivos quantitativos de melhoria são estabelecidos,revisados e monitorados, sempre levando-se em consideração eventuais alterações nosobjetivos do negócio.

(A) ERRADA

No nível 1, os processos são informais, portanto, ainda não se obteve disciplina algumanos processos.

(B) CORRETA

Sim, de fato no nível 2, os projetos são monitorados, controlados, revisados e avaliados.

(C) ERRADA

No nível 3, os processos básicos já se tornaram padrão para a organização, mas eles aindanão são controlados estatisticamente. Isso acontece quando a organização já se encontra nonível de maturidade 4.

(D) ERRADA

O aperfeiçoamento dos processos por meio de melhorias incrementais no processo e na tec-nologia somente acontece quando a organização já se encontra no nível de maturidade 5.

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

Page 108: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

(E) ERRADA

No nível 5, a organização não necessita se concentrar excessivamente nos aspectos opera-cionais, a�nal de contas cada processo é padrão e otimizado. Ao invés disso, a organizaçãose concentra em melhorias tecnológicas incrementais e inovadoras.

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

Page 109: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

48. Assuntos relacionados: Norma de Qualidade de Software, ISO 9001:2000,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 68

Durante os testes de um software produzido pelo departamento de TI de uma empresa,veri�cou-se que o mesmo não atendia a alguns dos requisitos originais especi�cados pelosclientes. Sobre a condução da situação, são feitas as a�rmativas a seguir, que devem seranalisadas à luz de seu alinhamento com a norma ISO 9001:2000.

I - Independente do destino a ser dado ao software, as causas da não-conformidade devemser identi�cadas e eliminadas do processo de desenvolvimento.

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 maisrápido possível (ASAP).

III - O gerente do projeto de desenvolvimento pode de�nir e propor um procedimentoalternativo para lidar com a não-conformidade, diferente daquele previsto no processode desenvolvimento de software organizacional, desde que aprovado pelo cliente.

IV - Devem ser mantidos registros de quaisquer ações corretivas realizadas, ainda queas mesmas não se revelem e�cazes para tratar a não-conformidade, bem como dosindicadores de satisfação do cliente, qualquer que seja o resultado do projeto.

Estão alinhadas com as exigências da norma ISO 9001:2000 APENAS as a�rmativas:

(a). I e II.

(b). I e IV.

(c). II e III.

(d). II e IV.

(e). III e IV.

Solução:

A norma ISO 9001:2000 tem como objetivo orientar as organizações na implementação, nodesenvolvimento 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 emprocessos é mostrado na Figura 12.

O sistema de gestão da qualidade de uma empresa deve possuir um conjunto de diretrizes,que permite aos clientes avaliarem a capacidade da organização em fornecer produtos eserviços, que atendam aos requisitos especi�cados de forma consistente, fornecendo aindauma estrutura para melhoria contínua do desempenho da organização.

A norma ISO 9001:2000 exige a elaboração de seis procedimentos: Controle de Documentos,Controle de Registros, Auditoria Interna, Controle da Não-Conformidade de Produtos, AçãoCorretiva e Ação Preventiva.

A existência de procedimentos, instruções e registros de trabalho formalizam todas as ativi-dades que afetam a qualidade. Isso exige a participação de todos os indivíduos da orga-nização, aumentando o comprometimento com a qualidade, uma vez que todos participamdiretamente da implementação do sistema da qualidade.

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

Page 110: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Figura 12: representação grá�ca da Norma ISO 9001:2000.

Analisando as a�rmações da questão, temos:

I - a organização deve executar ações corretivas para eliminar as causas de não-conformidades,de forma a evitar a sua repetição. As ações corretivas devem ser apropriadas aos efeitosdas não-conformidades encontradas. A organização deve de�nir ações para eliminar ascausas de não-conformidades potenciais de forma a evitar a sua ocorrência. Logo,a�rmativa verdadeira;

II - a organização deve assegurar que produtos que não esteja conforme aos requisitossejam identi�cados e controlados para evitar seu uso não intencional ou entrega. Comouma das medições do desempenho do sistema de gestão da qualidade, a organizaçãodeve monitorar as informações relativas à percepção do cliente sobre se a organizaçãoatendeu aos requisitos dos clientes. Então, a a�rmativa é falsa;

III - um sistema de gestão da qualidade em conformidade com a ISO 9001:2000 asse-gura que todo o processo de desenvolvimento possui um nível de controle, disciplina erepetibilidade, garantindo a qualidade dos produtos. Portanto, a�rmativa falsa;

IV - a organização deve tratar produtos não-conformes adotando-se pelo menos uma dasseguintes 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 originalde seu uso ou aplicação originais. Devem ser mantidos registros sobre a natureza dasnão-conformidades e qualquer ação subsequente tomada, incluindo concessões obtidas.Quando o produto não-conforme for corrigido, esse deve ser veri�cado para demonstrara 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 apropriadasem relação aos efeitos, ou potenciais efeitos, da não-conformidade. Logo, a�rmativaverdadeira.

Conforme exposto acima, a alternativa correta é a letra b.

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

Page 111: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

49. Assuntos relacionados: Governança de TI, COBIT,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 69

O COBIT 4.0, especi�cado pelo IT Governance Institute (ITGI), é um framework paragovernança de TI. Conforme de�nida pelo ITGI para fundamentação do COBIT 4.0, agovernança de TI

(a). é um subconjunto da Governança de Arquitetura (de Informações).

(b). é responsabilidade do departamento de Tecnologia da Informação ou setor equiva-lente da organização que se reporte diretamente à gerência executiva ou à direção.

(c). promove o alinhamento da TI com os objetivos e estratégias organizacionais, as-segurando que a TI sustente e estenda os mesmos.

(d). tem como áreas de foco: Medida de Performance, Gerenciamento de Recursos,Gerenciamento de Fornecedores, Gerenciamento de Riscos e Gerenciamento daComunicação.

(e). tem o objetivo primário de simpli�car a gestão de TI por parte dos executivos,que, em muitos casos, são oriundos de outras áreas de conhecimento, minimizandoa dependência de conhecimentos tecnológicos para a tomada de decisão em TI.

Solução:

(A) ERRADA

A Governança de Arquitetura é a prática e orientação pela qual os enteprise architectures sãogerenciados e controlados em todo meio corporativo da empresa. O termo enteprise archi-tecture é de�nido como a organização lógica para os processos empresariais e infraestruturade TI que re�etem na integração e padronização dos requisitos do modelo de funcionamentoda empresa. As normas, tais como ITIL, COBIT ou CMMI têm foco na Governança de TI,mas nenhuma delas realmente se referem a Governança de Arquitetura.

(B) ERRADA

Entende-se por Governança de TI como um conjunto de estruturas e processos que visamgarantir que a TI suporte e maximize os objetivos e as estratégias do negócio. A governançae o COBIT devem suportar os interesses dos stakeholders internos e externos de acordo comas necessidades especí�cas de cada um: os de dentro da empresa que têm interesse em gerarvalor a partir de investimentos de TI, os que prestam serviços de TI sejam eles internos (De-partamento de TI) ou externos (fornecedores); e os que controlam riscos e responsabilidades.Então, o COBIT deve ser utilizado como um amplo guia pela direção e pelos responsáveispelos processos de negócio da empresa, não restringindo apenas ao departamento de TI.

(C) CORRETA

O Control Objective for Information and related Technology (COBIT) é um framework quefornece 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 decontrole e as métricas de desempenho. Esse framework serve de suporte para implementar

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

Page 112: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

a Governança de TI numa organização garantindo que: a TI esteja alinhada com o negó-cio; a TI permita o negócio e maximize os benefícios; os recursos de TI sejam usados comresponsabilidade; e que os riscos de TI sejam gerenciados apropriadamente. Vale reforçarque o COBIT não é um padrão de�nitivo. Ele serve como apoio para a implementação decontroles na Governança de TI. Ele atua em dizer o �o que fazer� e não se preocupa em�como fazer�.

(D) ERRADA

O COBIT foca em duas áreas chaves: fornece informações necessárias para suportar osobjetivos e os requisitos do negócio; e trata as informações como sendo o resultado 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: Planejamentoe Organização; Aquisição e Implementação; Entrega e Suporte; e Monitoração e Avaliação.Cada uma dessas áreas de�ne os respectivos processos de TI.

(E) ERRADA

O COBIT foi criado com a característica principal de ser: focado no negócio, orientadoa processos, baseado em controles e direcionado a medições. Foi criado para ser utilizadonão apenas pelos fornecedores de serviço de TI, usuários e auditores, mas também, e maisimportante, como um amplo guia pela direção e os responsáveis pelos processos de negócio daempresa. O COBIT promove a organização das atividades de TI em torno dos processos deTI fornecendo um modelo para as organizações adotarem e adaptarem conforme necessário.Após os processos estarem de�nidos, eles podem ser alocados a indivíduos e gerentes que sãoresponsáveis e deverão prestar conta por cada processo. Com essa estrutura, as atividades�cam mais fáceis de serem controladas e organizadas.

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

Page 113: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

50. Assuntos relacionados: Governança de TI, COBIT,Banca: CESGRANRIOInstituição: PetrobrasCargo: Analista de Sistemas - Eng. de SoftwareAno: 2008Questão: 70

O COBIT 4.0 apresenta 34 processos de TI divididos por 4 áreas ou domínios. Cada processopossui um objetivo ou requisito de controle de alto nível e objetivos detalhados. Além disso,há objetivos de controle genéricos que os processos devem observar, que são identi�cadoscomo PCn, de �process control number�. NÃO corresponde a um dos objetivos de controlegenéricos do COBIT 4.0:

(a). atribuir um proprietário a cada processo, de forma que a responsabilidade sejaclara.

(b). de�nir cada processo de forma que seja repetível.

(c). estabelecer metas e objetivos claros para cada processo para uma execução e�caz.

(d). medir a performance de cada processo em relação às suas metas.

(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 consideradosjuntos com os objetivos de controle detalhados para ter a visão completa dos requisitos decontrole.

(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 de�ne 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 e�caz é 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 de�ne nenhum controle geral sobre SLA. O SLA é controlado no COBITpelo processo De�ne and manage service levels (De�ne e gerencia o nível de serviço) no

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

Page 114: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

domínio Deliver and Support (Entrega e suporte).

Além dos quatro controles gerais citados, existem mais dois:

• PC4 � Roles and Responsibilities (Regras e Responsabilidades) � de�ne regras, pa-péis e responsabilidades não ambíguas para cada processo do COBIT para a execuçãoe�ciente;

• PC6 � Policy, Plans and Procedures (Políticas, Planos e Procedimentos) � documenta,revisa, mantém atualizado, aprova e comunica a todas as partes envolvidas qualquerpolítica, plano ou procedimento que direciona um processo do COBIT.

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

Page 115: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

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

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

Page 116: handbook_questoes_vol2 - Cópia

Índice Remissivo

.NET, 58Árvore B, 87

Algoritmos de Ordenação, 80Análise de Caso de Uso, 68Arquitetura de Computadores, 4, 7ATOM, 21

B2B, 49B2C, 49B2E, 49B2G, 49Banco de Dados, 9, 11, 14, 16, 18, 19, 103

Certi�cado Digital, 23CMMI, 105COBIT, 110, 112Complexidade Ciclomática, 79Controle Integrado de Mudanças, 38CSS, 28

Data Mart, 19, 103Data Warehouse, 19, 103Desenvolvimento de Cronograma, 30Desenvolvimento de Software, 95Diagrama de Atividades, 72Diagrama de Classes, 72, 75, 95, 98Diagrama de Componentes, 72Diagrama de Estados, 72Diagrama de Sequência, 72

EAP, 32Engenharia de Software, 51, 70, 79Estruturas de Dados, 82, 84, 87

Família ISO 27000, 46

Gerência de Custos, 34Gerência de Escopo, 32Gerência de Integração, 38Gerência de Projeto, 30, 32, 34, 38Gerência de Tempo, 30Gerenciamento de Valor Agregado (GVA), 34Governança de TI, 110, 112

Heapsort, 80HTTP, 28HTTPS, 23

Interoperabilidade entre Aplicações, 55

ISO 27001, 46ISO 9001:2000, 108

J2EE, 58Java, 90, 93, 98, 100, 101JEE, 58

Lógica, 40, 43, 45Lista Encadeada, 82, 84

Metodologia de Desenvolvimento de Software,66

Modelo de Casos de Uso, 63Modelo Entidade-Relacionamento, 11Modelo Multidimensional, 19, 103Modelo Relacional, 9, 103Modos de Endereçamento de Memória, 4MVC, 58

Níveis de Maturidade, 105Norma de Qualidade de Software, 108Normalização de Banco de Dados, 9, 14Normas de Segurança da Informação, 46

OLAP, 103Ordenação por Árvore de Decisão, 80Ordenação por Comparação, 80Ordenação por Inserção, 80Ordenação por Intercalação, 80Orientação a Objeto, 51

Padrões de Projeto, 51PKI, 23Portais Corporativos, 49Primeira Forma Normal (1FN), 9, 14Princípios Fundamentais da Segurança da In-

formação, 48Probabilidade e Estatística, 36, 37Processo Uni�cado, 60, 63, 68

Quicksort, 80

ROLAP, 103RSS, 21RUP, 70

Segunda Forma Normal (2FN), 14Segurança da Informação, 23, 46, 48Servidor de Aplicações, 58SQL, 16

Tabela Hash, 82, 84Terceira Forma Normal (3FN), 14115

Page 117: handbook_questoes_vol2 - Cópia

Handbook de Questões de TI Comentadas para Concursos Volume 02 � Edição 2

Teste de Mesa, 101Testes de Software, 79Thread, 7

UML, 63, 68, 72, 75, 98

Web Services, 55

XML, 26, 28

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