Escolar Documentos
Profissional Documentos
Cultura Documentos
Material de referência
TI – ICMS
Walter de Tarso
Versão 1
2012
Curso de TI
Sumário
1 Gerência de Projetos ....................................................................................................................... 1
1.1 Conceitos básicos ................................................................................................................................. 1
1.2 Processos do PMBOK .......................................................................................................................... 2
1.2.1 Áreas de conhecimento do PMBOK ............................................................................................................... 3
1.3 Planejamento e controle de métricas de projeto ............................................................................... 13
1.4 Métodos de gerenciamento do tempo do projeto .............................................................................. 14
1.5 Exercícios ........................................................................................................................................... 14
2 Gestão de Processos de Negócio (BPM) ....................................................................................... 18
2.1 BPMN - Modelagem de processos ..................................................................................................... 18
2.1.1 Elementos ................................................................................................................................................... 18
2.2 Técnicas de análise de processos ....................................................................................................... 20
2.2.1 Automação de processos .............................................................................................................................. 20
2.2.2 Fluxograma ................................................................................................................................................. 20
2.2.3 Service blueprint ......................................................................................................................................... 20
2.2.4 Mapa do serviço .......................................................................................................................................... 21
2.2.5 IDEF ........................................................................................................................................................... 21
2.2.6 Estrutura de processamento de clientes ........................................................................................................ 22
2.2.7 Walk-through-audit ..................................................................................................................................... 22
2.2.8 Análise da transação de serviço (STA – Service Transaction Analysis) ......................................................... 23
2.3 Exercícios ........................................................................................................................................... 23
3 Gerência de Serviços de TI ........................................................................................................... 25
3.1 Fundamentos da ITIL V2 .................................................................................................................. 26
3.1.1 Suporte a serviços ........................................................................................................................................ 26
3.1.2 Entrega de Serviço....................................................................................................................................... 27
3.2 Fundamentos de ITIL V3 .................................................................................................................. 28
3.2.1 Estratégia do serviço (Service Strategy) ....................................................................................................... 28
3.2.2 Desenho de serviço (Service Design) ........................................................................................................... 28
3.2.3 Transição do serviço (Service Transition) .................................................................................................... 29
3.2.4 Operação do serviço (Service Operation) ..................................................................................................... 29
3.2.5 Melhoria de serviço continuada (Continual Service Improvement) ............................................................... 29
3.3 Fundamentos de COBIT.................................................................................................................... 29
3.3.1 Planejar e Organizar .................................................................................................................................... 30
3.3.2 Adquirir e Implementar ............................................................................................................................... 30
3.3.3 Entregar e Dar Suporte ................................................................................................................................ 30
3.3.4 Monitorar e Avaliar ..................................................................................................................................... 31
3.4 Exercícios ........................................................................................................................................... 31
4 Engenharia de Software ............................................................................................................... 33
4.1 Software ............................................................................................................................................. 33
4.2 Ciclo de vida do software ................................................................................................................... 34
4.2.1 Fase de Definição ........................................................................................................................................ 34
4.2.2 Fase de Desenvolvimento ............................................................................................................................ 34
4.2.3 Fase de Operação ........................................................................................................................................ 35
4.2.4 Fase de retirada ........................................................................................................................................... 36
4.3 Metodologias de desenvolvimento de software. ................................................................................ 36
4.3.1 Modelo caótico ............................................................................................................................................ 36
4.3.2 Modelo Cascata ........................................................................................................................................... 36
4.4 Desenvolvimento ágil ......................................................................................................................... 38
4.5 Planejamento e avaliação de iterações .............................................................................................. 39
Pág. 2 de 143
Walter de Tarso
4.6 Técnicas de avaliação de software ..................................................................................................... 40
4.6.1 Análise por Pontos de Função ...................................................................................................................... 40
4.6.2 Método COCOMO ...................................................................................................................................... 44
4.7 Gerência de Requisitos de Software .................................................................................................. 44
4.7.1 Conceitos de Requisitos ............................................................................................................................... 45
4.7.2 Requisitos Funcionais e Não-Funcionais ...................................................................................................... 46
4.8 Gerência de Configuração e Mudança .............................................................................................. 47
4.8.1 Conceitos de Gerência de Configuração e Mudança de software ................................................................... 47
4.8.2 Solicitações de Mudança.............................................................................................................................. 48
4.9 Testes e Avaliação de Qualidade de Software ................................................................................... 49
4.9.1 Qualidade de Software................................................................................................................................. 49
4.9.2 Teste de software......................................................................................................................................... 51
4.9.3 Documentos de Teste................................................................................................................................... 52
4.10 Exercícios ........................................................................................................................................ 53
5 Arquitetura de Software................................................................................................................ 59
5.1 Conceitos básicos ............................................................................................................................... 59
5.2 UML ................................................................................................................................................... 59
5.3 GED - Gerenciamento Eletrônico de Documentos e Workflow ....................................................... 61
5.3.1 Exercícios ................................................................................................................................................... 62
5.4 Arquitetura Orientada a Serviço (SOA) ........................................................................................... 63
5.4.1 Serviço ........................................................................................................................................................ 63
5.4.2 Processos .................................................................................................................................................... 63
5.4.3 Tecnologia .................................................................................................................................................. 63
5.4.4 Definições de SOA ...................................................................................................................................... 63
5.4.5 Web Services .............................................................................................................................................. 64
5.4.6 SOAP .......................................................................................................................................................... 66
5.4.7 WSDL ......................................................................................................................................................... 67
5.4.8 UDDI .......................................................................................................................................................... 67
5.4.9 Segurança.................................................................................................................................................... 68
5.4.10 Exercícios ................................................................................................................................................... 68
5.5 Portais corporativos e colaborativos ................................................................................................. 69
5.6 Exercícios ........................................................................................................................................... 70
6 Banco de Dados ............................................................................................................................ 73
6.1 Conceitos básicos ............................................................................................................................... 73
6.2 Modelagem de Dados Relacional ....................................................................................................... 73
6.2.1 Normalização .............................................................................................................................................. 74
6.2.2 Etapas de modelagem .................................................................................................................................. 75
6.2.3 Relacionamentos ......................................................................................................................................... 75
6.2.4 Transação .................................................................................................................................................... 76
6.3 Modelo Entidade Relacionamento..................................................................................................... 76
6.4 Modelagem de Dados Multidimensional ........................................................................................... 77
6.4.1 Sistemas Transacionais X Sistemas Analíticos ............................................................................................. 78
6.5 Conceitos de Datawarehouse e ETL .................................................................................................. 78
6.5.1 ETL ............................................................................................................................................................ 80
6.6 Conceitos de desenvolvimento em banco de dados SQL Server e Oracle ........................................ 80
6.6.1 SQL ............................................................................................................................................................ 80
6.6.2 Arquitetura de um Servidor Oracle............................................................................................................... 82
6.6.3 Arquitetura de um Servidor SQL Server ....................................................................................................... 83
6.7 Exercícios ........................................................................................................................................... 84
7 Programação de Sistemas ............................................................................................................. 90
7.1 Lógica de Programação ..................................................................................................................... 90
Curso de TI
7.1.1 Tipos de dados e variáveis ........................................................................................................................... 91
7.2 Programação orientada a objetos ...................................................................................................... 92
7.2.1 Objetos........................................................................................................................................................ 92
7.2.2 Classe ......................................................................................................................................................... 93
7.2.3 Persistência ................................................................................................................................................. 93
7.2.4 Métodos ...................................................................................................................................................... 93
7.2.5 Atributos ..................................................................................................................................................... 94
7.2.6 Mensagens .................................................................................................................................................. 94
7.2.7 Herança ....................................................................................................................................................... 94
7.2.8 Polimorfismo............................................................................................................................................... 94
7.2.9 Sobrecarga .................................................................................................................................................. 95
7.2.10 Interfaces .................................................................................................................................................... 95
7.2.11 Pacotes ........................................................................................................................................................ 95
7.3 Programação na WEB ....................................................................................................................... 95
7.3.1 Linguagem HTML ...................................................................................................................................... 96
7.3.2 Linguagens web de servidor......................................................................................................................... 97
7.3.3 XML ........................................................................................................................................................... 98
7.4 Conceitos de linguagem de programação Microsoft .NET ............................................................... 98
7.4.1 arquitetura da .Net ....................................................................................................................................... 99
7.4.2 Linguagens de programação ........................................................................................................................ 99
7.4.3 Common Language Specification (CLS) .................................................................................................... 100
7.4.4 Common Type System (CTS) .................................................................................................................... 100
7.4.5 Framework Class Library (FCL) ................................................................................................................ 100
7.4.6 Camada de apresentação ............................................................................................................................ 100
7.4.7 ADO.Net ................................................................................................................................................... 100
7.4.8 .Net Remoting ........................................................................................................................................... 100
7.4.9 Common Language Runtime (CLR)........................................................................................................... 101
7.4.10 Common Language Infrastructure (CLI) .................................................................................................... 101
7.4.11 Operating System (OS) .............................................................................................................................. 101
7.4.12 Outros detalhes da .Net .............................................................................................................................. 101
7.5 Exercícios ......................................................................................................................................... 102
8 Segurança da informação........................................................................................................... 106
8.1 Conceitos básicos ............................................................................................................................. 106
8.2 Plano de Continuidade de Negócio .................................................................................................. 108
8.3 Vulnerabilidade ............................................................................................................................... 108
8.4 Auditoria e conformidade ................................................................................................................ 109
8.5 Conhecimento sobre norma ISO 27001........................................................................................... 111
8.6 Exercícios ......................................................................................................................................... 111
9 Sistemas Operacionais ................................................................................................................ 115
9.1 Conceitos de administração de servidores em plataforma Windows ............................................. 115
9.2 Conceitos de administração de servidores em plataforma Linux ................................................... 115
9.2.1 Alguns comandos no Linux ....................................................................................................................... 115
9.2.2 Gerenciando a iniciação do Linux .............................................................................................................. 117
9.2.3 Fazendo Backups....................................................................................................................................... 117
9.2.4 Recompilando e Adaptando o Kernel ......................................................................................................... 117
9.2.5 Agendando Processos ................................................................................................................................ 117
9.2.6 Syslogd - A Caixa Preta do Linux .............................................................................................................. 117
9.2.7 Técnicas Básicas para Trabalhar com Redes (ifconfig, route) ..................................................................... 118
9.2.8 Gerenciando os Serviços - inetd ................................................................................................................. 118
9.2.9 Utilizando Ferramentas de Busca ............................................................................................................... 118
9.2.10 Instalando SSh / SShD .............................................................................................................................. 118
9.3 Conceitos de Virtualização .............................................................................................................. 119
9.4 Active Directory ............................................................................................................................... 121
Pág. 4 de 143
Walter de Tarso
9.5 Exercícios ......................................................................................................................................... 122
10 Redes ....................................................................................................................................... 125
10.1 Conceito de rede ........................................................................................................................... 125
10.1.1 Configuração de redes TCP-IP ................................................................................................................... 125
10.2 Arquitetura de Rede ..................................................................................................................... 127
10.2.1 Camada Física ........................................................................................................................................... 128
10.2.2 Camada de Enlace ou Ligação de Dados .................................................................................................... 128
10.2.3 Camada de Rede ........................................................................................................................................ 128
10.2.4 Camada de Transporte ............................................................................................................................... 129
10.2.5 Camada de Sessão ..................................................................................................................................... 129
10.2.6 Camada de Apresentação ........................................................................................................................... 129
10.2.7 Camada de Aplicação ................................................................................................................................ 129
10.3 Noções de administração de redes................................................................................................ 130
10.4 Acesso Remoto .............................................................................................................................. 130
10.5 Rede Wireless ............................................................................................................................... 130
10.6 Exercícios ...................................................................................................................................... 131
11 Referências .............................................................................................................................. 135
12 Sobre o autor ........................................................................................................................... 136
13 Gabarito................................................................................................................................... 137
Sumário de imagens
Ilustração 1 Métricas .......................................................................................................................................... 13
Ilustração 2 Exemplo de Fluxo utilizando pool, lanes, evento de início e fim, tarefas e gateway ......................... 19
Ilustração 3 Símbolos BMPN utilizados no MS Visio .......................................................................................... 19
TI para concursos
1 Gerência de Projetos
1 http://pt.wikipedia.org/wiki/Projeto
2 http://pt.wikipedia.org/wiki/Gerência_de_projetos
1
TI para concursos
uma solução intermediária entre as mesmas, que atende a uma boa parte das exigências com um
custo competitivo.
O gerenciamento de projetos tenta adquirir controle sobre as variáveis
tempo - influencia o prazo até o termino do projeto. Uma restrição de tempo pode significar custos
aumentados e/ou escopo reduzido.
custo - informa o valor monetário incluído no orçamento disponível para o projeto. Um orçamento
apertado pode significar tempo aumentado e/ou escopo reduzido.
escopo - designa o que deve ser feito para produzir o resultado de fim do projeto. O escopo
aumentado pode significar o tempo aumentado e/ou o custo aumentado.
Na versão atual do PMBOK, tríplice restrição foi eliminada, passando a existir restrições do projeto que
são elas: Escopo, Qualidade, Cronograma, Orçamento, Recursos e Riscos. Portanto, qualquer
alteração em um desses itens certamente haverá restrições em um ou mais dos demais itens.
Para manter o controle sobre o projeto do início ao fim, um gerente de projetos utiliza várias técnicas,
dentre as quais se destacam:
Planejamento de projeto
Análise de valor agregado
Gerenciamento de riscos de projeto
Cronograma
Melhoria de processo
3 http://pt.wikipedia.org/wiki/PMBOK
2
TI para concursos
3
TI para concursos
1.2.1.1 Integração de projetos
Núcleo do gerenciamento de projetos, é composto dos processos do dia-a-dia com os quais o gerente
de projetos conta para garantir que todas as partes do projeto funcionem juntas. É um processo
contínuo que o gerente completa para garantir que o projeto prossiga do início ao fim – é a atividade
diária de completar o trabalho do projeto..
4
TI para concursos
1.2.1.2 Escopo de projetos
Garantir que o projeto inclui todo o trabalho requerido (requisitos), e somente o trabalho requerido.
Destaca-se nesta área a criação da estrutura analítica de processos (EAP), ou Work Breakdown
Structure (WBS), uma ferramenta de decomposição do trabalho do projeto em partes manejáveis,
uma estrutura em forma de árvore exaustiva, hierárquica (de mais geral para mais específica) de
entregáveis (deliverables) e tarefas, genericamente pacotes, que precisam ser feitas para
completar um projeto. Um instrumento facilitador do planejamento de projeto que o desmembra em
atividades menores que podem ser mais facilmente dimensionadas em relação a tempo de
execução, recursos e custos.
5
TI para concursos
1.2.1.3 Tempo de projetos
Completar o projeto dentro do prazo.
6
TI para concursos
1.2.1.4 Custo de projetos
Completar o projeto dentro do orçamento.
7
TI para concursos
1.2.1.5 Qualidade de projetos
Garantir que o projeto vai satisfazer as necessidades pelas quais ele foi feito. Qualidade não é o
melhor resultado possível, mas o atendimento justo dos requisitos, do cronograma e orçamento.
Qualidade é a totalidade de características de uma entidade que a torna capaz de satisfazer
necessidades declaradas ou implícitas .
Um aspecto crítico da gerência da qualidade, no contexto do projeto, é a necessidade de traduzir
as necessidades implícitas em necessidades declaradas, através da gerência do escopo do
projeto
8
TI para concursos
1.2.1.6 Recursos humanos de projetos
Fazer o uso mais efetivo das pessoas envolvidas no projeto.
9
TI para concursos
1.2.1.7 Comunicações de projetos
Garantir rápida e adequada geração, coleção, disseminação, armazenamento e disposição final
das informações do projeto.
10
TI para concursos
1.2.1.8 Riscos de projetos
Identificar, analisar e responder aos riscos do projeto.
11
TI para concursos
1.2.1.9 Aquisições de projetos
Adquirir bens e serviços externos.
12
TI para concursos
Essas medidas também podem ser coletadas por classe e por pacote
Estabilidade em termos Convergência Número e tipo de mudanças (erro versus melhoria; interface versus implementação)
de taxa de mudança
nos requisitos ou
implementação, Essa medida também pode ser coletada por iteração e por pacote
tamanho ou
complexidade Quantidade de retrabalho por iteração
13
TI para concursos
1.5 Exercícios
1. (ICMS-SP 2009) A respeito dos conceitos aplicados aos Projetos, segundo o PMBOK, é INCORRETO
1
afirmar:
(a) A equipe do projeto, como uma unidade de trabalho, raramente sobrevive ao projeto.
xx
(b) Um projeto é um esforço contínuo que visa manter um serviço em funcionamento.
(c) Geralmente, o termo "temporário" não se aplica ao produto, serviço ou resultado criado pelo projeto.
(d) Pode ser classificado como projeto aquele que é do tipo de pesquisa que desenvolve um conhecimento.
(e) Os projetos podem criar uma capacidade de realizar um serviço.
2
2. (ICMS-SP 2009) São entradas para o processo de Planejamento da Qualidade (PMBOK):
(a) Fatores ambientais da empresa, Ativos de processos organizacionais e Declaração do escopo do
xx
projeto.
(b) Análise de custo-benefício, Projeto de experimentos e Métricas de qualidade.
(c) Plano de melhorias no processo, Linha de base da qualidade e Métricas de qualidade.
(d) Plano de melhorias no processo, Fatores ambientais da empresa e Listas de verificação da qualidade.
(e) Plano de gerenciamento da qualidade, Fatores ambientais da empresa e Análise de custo-benefício.
3. (ICMS-SP 2009) No PMBOK, a técnica que compara as realizações técnicas durante a execução do projeto
com as do cronograma do plano de gerenciamento do projeto, podendo usar parâmetros técnicos
importantes do produto desenvolvido pelo projeto como uma métrica de qualidade, sendo que os valores
3
medidos fazem parte das informações sobre o desempenho do trabalho, é denominada
(a) Critical Chain Method.
(b) Probability and Impact Matrix.
(c) Work Performance Information.
(d) Performance Measurement Baseline.
xx
(e) Technical Performance Measurement.
14
TI para concursos
4. (ICMS-SP 2009) Planos mais exatos e completos, resultantes de sucessivas iterações do processo de
planejamento e estimativas mais exatas, elaboradas à medida que o projeto se desenvolve, são produtos da
técnica aplicada para melhoria e detalhamento contínuos dos planos. Essa técnica, no PMBOK, é
4
denominada
(a) Loop de rede.
xx
(b) Elaboração progressiva.
(c) Estrutura Analítica dos Recursos.
(d) Gerenciamento de Portfólios.
(e) Estimativa paramétrica.
5. Segundo o PMBOK, as etapas de iniciação, planejamento, execução, monitoração/controle e encerramento
5
representam apenas o
(a) ciclo de vida dos projetos ou ciclo de gerenciamento de projetos.
(b) grupo de processos dos projetos ou ciclo de gerenciamento de projetos.
(c) grupo de processos dos projetos ou ciclo de vida dos projetos.
(d) grupo de processos do gerenciamento de projetos ou ciclo de vida dos projetos.
(e) grupo de processos do gerenciamento de projetos ou ciclo de gerenciamento de projetos.x
6. Os processos do PMBOK: criação da estrutura analítica do projeto (EAP) e verificação do escopo do projeto
6
devem ser realizados, respectivamente, nas etapas de
(a) planejamento e execução.
xx
(b) planejamento e monitoração/controle.
(c) iniciação e execução.
(d) iniciação e monitoração/controle.
(e) iniciação e encerramento.
7. Considere a seguinte definição com respeito à gerência de projetos: Ferramenta de decomposição do
trabalho do projeto em partes manejáveis. É uma estrutura em forma de árvore exaustiva, hierárquica (de
mais geral para mais específica ) de deliverables e tarefas que precisam ser feitas para completar um projeto.
7
Tal é a definição de
(a) Histogram.
(b) Workflow.
(c) Timesheet.
xx
(d) Work Breakdown Structure.
(e) Flowchart.
8. Um instrumento facilitador do planejamento de projeto que o desmembra em atividades menores que podem
8
ser mais facilmente dimensionadas em relação a tempo de execução, recursos e custos, é o
(a) Flowchart.
(b) Organization Chart.
(c) Workflow.
(d) Histogram.
xx
(e) Work Breakdown Structure.
9. De acordo com o corpo de conhecimento da gerência de projetos, as simulações para análise de risco de
9
prazos são possíveis utilizando
(a) o Arrow Diagramming Method.
xx
(b) a técnica Monte Carlo.
(c) o modelo WBS.
(d) a análise de custo/benefício.
(e) o Project Charter.
10
10. O WBS, Word Breakdown Structure, é a principal ferramenta de gerenciamento de
(a) escopo do projeto.xx
(b) integração dos elementos do projeto.
(c) pessoal envolvido com o projeto.
(d) comunicação das informações do projeto.
(e) qualidade do projeto.
15
TI para concursos
12. De acordo com o corpo de conhecimento da gerência de projeto, a necessidade de traduzir as necessidades
12
implícitas em necessidades declaradas, através da gerência do escopo do projeto, é
xx
(a) um aspecto crítico da gerência da qualidade, no contexto do projeto.
(b) objeto de avaliação da gerência do custo do projeto.
(c) dispensada se for elaborado um planejamento de respostas aos riscos.
(d) destacada durante a medição de desempenho.
(e) um aspecto crítico da análise de precedência de tarefas.
13. De acordo com o corpo de conhecimento da gerência de projeto, para estimar os custos totais, quando ainda
existe uma quantidade limitada de informações detalhadas sobre o projeto (por exemplo, nas fases iniciais), é
13
freqüentemente
(a) elaborado um modelo paramétrico.
xx
(b) usada uma estimativa por analogia.
(c) usada uma estimativa bottom-up.
(d) elaborada uma análise de precedência.
(e) elaborada uma análise da variação.
14. Existem métodos que objetivam formas de comprimir as durações das atividades sem alteração no escopo
do projeto. Um deles é usado para quando existem negociações de agenda e custos para determinar como
(e se) fazer a maior compressão para o menor custo. Outro é usado para tentar programar atividades em
paralelo (simultâneas), mas costuma gerar retrabalho e aumenta os riscos. São usual e respectivamente
14
denominados de métodos
(a) crashing e what-if.
(b) de Monte Carlo e what-if.
(c) fast tracking e de Monte Carlo.
xx
(d) crashing e fast tracking.
(e) what-if e crashing.
15. Para um gerenciamento de projeto de informática bem sucedido, a ordem de execução das atividades deve
15
ser
(a) planejamento, integração, organização, medição e revisão.
xx
(b) planejamento, organização, integração, medição e revisão.
(c) organização, planejamento, integração, medição e revisão.
(d) organização, planejamento, medição, integração e revisão.
(e) planejamento, organização, medição, revisão e integração.
16
16. (ARCE FCC 2006) O fator de máximo desempenho de um projeto está diretamente relacionado ao fator de
(a) escopo limitado.
(b) escopo genérico.
(c) tempo reduzido.
xx
(d) custo alto.
(e) tempo excessivo.
17. (CVM FCC 2006) Dentre os fatores que afetam os projetos, o fator performance se aproxima do máximo, ou
17
ponto ótimo, quando relacionado ao fator
xx
(a) custo alto.
(b) tempo reduzido.
(c) tempo excessivo.
(d) escopo limitado.
(e) escopo genérico.
18. Duas atividades de um projeto podem ocorrer simultaneamente quando o inter-relacionamento das mesmas
18
é do tipo
(a) início para início (SS) ou término para início (FS).
(b) término para término (FF) ou término para início (FS).
xx
(c) início para início (SS) ou término para término (FF).
(d) início para término (SF) ou término para término (FF).
(e) término para início (FS) ou início para término (SF).
19
19. Os produtos a serem entregues no mais baixo nível da estrutura do projeto (WBS) geralmente são
xx
(a) pacotes de trabalho.
(b) planos do projeto.
(c) fases do projeto.
(d) recursos disponíveis.
(e) cronogramas do projeto.
20
20. Segundo o uso universal dos conceitos de gerenciamento de projetos, um programa é
(a) um empreendimento não repetitivo de eventos numa seqüência clara e lógica, com início, meio e fim.
(b) parte de um projeto ou subdivisão tática de fácil gerenciamento e controle.
(c) um subprojeto, desvinculado de um projeto, que pode ser terceirizado.
xx
(d) um conjunto integrado de projetos que tem missões e objetivos comuns.
(e) um conjunto de subprojetos, que podem ter vidas próprias isoladamente.
16
TI para concursos
21. No ciclo da vida de um projeto, são aplicáveis todos os nove processos componentes da área de
21
gerenciamento de projetos somente na fase de
(a) iniciação.
(b) finalização.
xx
(c) planejamento.
(d) execução.
(e) controle.
22
22. Na determinação de cronogramas utilizando os modelos PERT e CPM, o caminho crítico representa
(a) a estimativa de tempo mais provável para o conjunto de tarefas do projeto.
(b) o término mais breve da cada tarefa do projeto.
(c) os limites de tempo que definem o início e o término da cada tarefa.
xx
(d) uma cadeia de tarefas que determina a duração do projeto.
(e) uma rede de todas as tarefas desde o começo até o final de um projeto.
17
TI para concursos
2.1.1 Elementos
A modelagem em BPMN é feita através de diagramas simples, com um pequeno conjunto de
elementos gráficos. Isto facilita que os usuários de negócio, bem como os desenvolvedores, entendam
o fluxo e o processo. As quatro categorias básicas de elementos são as seguintes:
Objetos de Fluxo – definem o comporatmento do fluxo. Fazem a movimentação das informações
através de ações.
Eventos – Qualquer coisa que acontece durante o fluxo. Ações (trigger) que interferem no fluxo
(result), tipicamente prazos, também podendo ser uma chamada de um sistema externo (web
service) ou alguma alteração no banco de dados (watching). Representado por um círculo. Há três
tipos de eventos: início, intermediário e fim.
Atividades – Ações (sub-processos ou tarefas) realizadas pelos usuários, chamados de atores,
normalmente por tela de algum programa de computador. Representada por um retângulo
arredondado.
Gateways – Controla a convergência e divergência da sequência de fluxos e atividades no fluxo.
Determina ramificações (branch), bifurcações (forking), mistura (merging) e junções (join) de
caminhos. Representado por um losango.
Objetos de Conexão
Fluxo de Sequência – seta em linha contínua ligando dois objetos, indica a ordem de execução
dos objetos.
Fluxo de Mensagem – seta em linha tracejada indicando o fluxo de mensagens entre participantes
Associação – linha ou seta em linha pontilhada indicando uma ligação entre uma informação,
normalmente uma anotação, e um artefato.
Swim lane – uma área de agrupamento de objetos de fluxo representado por uma faixa que vai da
esquera à direita da página, com um nome para a faixa em seu lado esquerdo.
Pool – indica um participante, setor, departamento ou qualquer lugar onde se encontram os atores.
Um pool pode apresentar detalhes internos do processo (white box) ou pode ter nenhum processo
(black box). A interação entre pools é feita através de fluxos de mensagens. Nenhum fluxo de
sequência pode ser associado a black boxes, mas os fluxos de mensagem podem ligá-los.
Lane – subdivisão de uma pool.
4 http://pt.wikipedia.org/wiki/Business_Process_Management
18
TI para concursos
Dados – possuem informações que os objetos de fluxo necessitam para serem realizadas
Objetos de dados – informações armazenadas
Dados de entrada – informações solicitadas
Dados de saída – informações produzidas em uma atividade ou evento
Armazenamento – gravação dos dados
Artefatos – informações adicionais sobre o fluxo
Grupo – agrupamento de elementos de uma mesma categoria para fins de entendimento, sem
efeito sobre o fluxo. Representado por um retângulo arredondado tracejado.
Anotação – uma observação para facilitar o entendimento do fluxo para o leitor. Represnetado por
uma linha de associação terminada por um colchete e o texto.
Mensagem – informação enviada entre dois participantes. Representado por ícone de uma carta.
Estas quatro categorias de elementos nos dão a oportunidade de fazer um diagrama de processos de
negócio simples (BPD).
Ilustração 2 Exemplo de Fluxo utilizando pool, lanes, evento de início e fim, tarefas e gateway
19
TI para concursos
2.2.2 Fluxograma
Diagrama que descreve a sequência de atividades de um processo empresarial através de uma
simbologia padronizada, utilizando retângulos para representar atividades, losangos para pontos de
decisão e setas para indicar o fluxo. Estes simbolos vêm acompanhado de textos explicativos.
Fácil de utilizar, mas pouco apropriado para representar processos de grande complexidade e
divergências.
O fluxograma considera o processo do ponto de vista da empresa.
5 http://pt.wikipedia.org/wiki/Gest%C3%A3o_de_processos_de_neg%C3%B3cio
20
TI para concursos
de contato. Estes pontos funcionam como o “momento da verdade” de cada serviço e podem ser
usados como pontos de potencial falhas no sistema de serviço.
Fonte: http://www.lgti.ufsc.br/public/luciano.pdf
Apesar de ser mais evoluido do que os fluxogramas, também não consegue representar uma descrição
completa da experiência com o cliente. O foco está na tarefa e não no cliente.
O mapa pode ser lido horizontalmente para entender as ações ou passos realizados pelos clientes e
empregados, ou lido verticalmente para compreender as ações de suporte, os processos e estruturas.
2.2.5 IDEF
Família de métodos de estruturar e analisar uma empresa. Utilizam-se de diagramas para representar
os processos.
21
TI para concursos
Cada tarefa é representada por um retângulo. Cada lado representa uma informação de entrada, saída
de produtos e/ou informações, recursos disponíveis e condições para ativação.
A ênfase não está na sequência, mas no conteúdo das atividades e nos recursos envolvidos no
processo. Exemplo:
Controle
Mecanismo
2.2.5.1 IDEF0
Método de modelagem funcional usado para processos associados a decisões, ações e atividades.
2.2.5.2 IDEF1
Método de modelagem de informação, para expressão dos requisitos de um sistema.
2.2.5.3 IDEF3
Método de captura da descrição do processo, que relaciona causa e efeito entre processos.
2.2.5.4 IDEF4
Método de desenho orientado a objeto, que auxilia no projeto de sistemas orientados a objetos.
2.2.5.5 IDEF5
Método de identificação de ontologias associadas aos processos e informações.
2.2.5.6 IDEF9
Método para auxiliar na identificação de restrições associadas a um sistema ou processo.
2.2.7 Walk-through-audit
Método de auditoria, que consiste em uma série de questões dirigidas aos clientes, e gerentes de
serviços, para avaliação sistemática da visão do cliente sobre o serviço prestado.
Utilizam-se questões estruturadas que avaliam cada etapa do processo em uma escala de um a cinco,
respondidas durante ou imediatamente após o serviço, ou aplicadas em clientes da concorrência.
22
TI para concursos
Além de avaliar a percepção do cliente, também permite analisar a lacuna entre a opinião do cliente e
da gerência e entre a empresa e a concorrência.
Funciona em conjunto com alguma outra técnica gráfica.
2.3 Exercícios
23. (ICMS-SP 2009) No diagrama de fluxos de negócio (BPMN), para estabelecer "quem faz o que" devem ser
23
representados os fluxos de negócio agrupados em
(a) processes e tasks.
(b) events e gateways.
xx
(c) pools e lanes.
(d) pools e processes.
(e) lanes e tasks.
24. (ICMS-SP 2009) Na modelagem de processos de negócio (BPMN), NÃO se aplica um End Event no tipo de
24
trigger
(a) Exception.
(b) Link.
(c) Message.
(d) Multiple.
xx
(e) Timer.
23
TI para concursos
25. (ICMS-SP 2009) Na modelagem de processos de negócio (BPMN), os Fluxos de Mensagem devem ser
25
desenhados
(a) entre white boxes.
xx
(b) entre black boxes.
(c) entre tasks.
(d) dentro de tasks.
(e) dentro de black boxes.
24
TI para concursos
3 Gerência de Serviços de TI
A administração moderna de tecnologia de informação busca fundamentos em boas práticas de gerenciamento
alinhadas com objetivos do negócio.
Prática é uma maneira de trabalhar. Melhores práticas são atividades ou processos que tenham sido utilizados
com sucesso.
O conceito de Governança Tecnológica, do termo em inglês IT Governance, define que a TI é um fator essencial
para a gestão financeira e estratégica de uma organização. Governança Tecnológica é a metodologia (e seus
processos integrados) de gestão corporativa dos recursos de TI.6
A governança de TI trata da integração e uso de processos corporativos suportados pelos pacotes de gestão, por
exemplo: BI (Business Intelligence), CRM (Customer Relationship Management), ERP (Enterprise Resource
Planning) e SCM (Supply Chain Management).
De acordo com a ISO/IEC 38500, são seis princípios para governança de TI:7
Responsabilidade – papéis e responsabilidades bem definidos na entrega de TI aos clientes e na
sua aquisição, e garantia de autoridade compatível para o exercício desses papéis.
Estratégia – O desenvolvimento da estratégia de negócio considera a as capacidades atuais e
futuras de TI e o planejamento de TI busca atender às necessidades atuais e continuadas do
negócio da organização (alinhamento).
Aquisições – As aquisições de TI são adequadamente motivadas por meio de análises apropriadas
e continuadas e de decisões claras e transparentes, de modo a garantir o alcance de equilíbrio
adequado entre benefícios, oportunidades, custos e riscos, tanto no curto como no longo prazo.
Desempenho – A TI é estruturada para suportar adequadamente a organização e dispor serviços
com os níveis e com a qualidade necessários para responder aos requisitos atuais e futuros do
negócio.
Conformidade – A TI está em conformidade com a legislação e regulamentos aplicáveis. As
políticas e as práticas estão claramente definidas, encontram-se implementadas e são aplicadas.
Comportamento Humano – As políticas, práticas e decisões relativas ao uso e gestão da TI
consideram e respeitam o comportamento humano e incluem as necessidades atuais e a evolução
das necessidades de todas as pessoas envolvidas no processo.
ITIL é um framework, ou uma estrutura de gerência de serviços de TI. Em sua versão 2, o foco era a própria
prestação de serviços. Na versão 3, o ITIL mudou seu foco para a o alinhamento dos objetivos de serviços de TI
com os do negócio, mudando da abordagem operacional para uma visão mais estratégica do uso da tecnologia.
O COBIT é um guia de boas práticas para a gestão de tecnologia, não apenas serviços.
6 http://www.trainning.com.br/download/Apostila_ITIL_Cobit.pdf
7 http://www.geraldoloureiro.com/wiki/images/9/98/WGov_Palestra_ClaudioCruz.pdf
25
TI para concursos
27
TI para concursos
8 http://pt.wikipedia.org/wiki/ITILv3
28
TI para concursos
capacidade
continuidade de serviços
segurança da informação
fornecedores
catálogo de serviços.
29
TI para concursos
Os documentos do COBIT definem Governança Tecnológica como sendo uma estrutura de
relacionamentos entre processos para direcionar e controlar uma empresa de modo a atingir objetivos
corporativos, através da agregação de valor e risco controlado pelo uso da tecnologia da informação e
de seus processos”.
COBIT é um guia de boas práticas, que podem servir como um modelo de referência para gestão da TI.
Inclui um sumário executivo, um "framework", controle de objetivos, mapas de auditoria, ferramentas
para a sua implementação e um guia com técnicas de gerenciamento.
Os domínios do COBIT são integrados da seguinte forma:
A informação de uma empresa é gerada/modificada pelas atividades de TI.
Esta informação é requisito para o domínio de Planejamento e Organização (PO).
Os requisitos de saída do PO são requisitos de entrada de informação para o domínio de
Aquisição e Implementação (AI),
As saídas de AI definem os requisitos de entrada para o domínio de Entrega e Suporte (DS).
O domínio de Monitoração (M) utiliza as informações do DS nos seus processos e atividades
relacionadas.
Os requisitos da informação são dados por: efetividade, eficiência, confidencialidade, integridade,
disponibilidade, conformidade e confiabilidade.
Os recursos de TI são classificados como: pessoas, sistemas aplicativos, tecnologia, infraestrutura e
dados.
COBIT cobre os quatro domínios, os quais possuem 34 processos (dois objetivos de controle para cada
processo).
30
TI para concursos
DS1 Definir e Gerenciar Níveis de Serviço
DS2 Gerenciar Serviços de Terceiros
DS3 Gerenciar Performance e Capacidade
DS4 Assegurar Serviço Contínuo
DS5 Assegurar Segurança de Sistema
DS6 Identificar e Alocar Recursos
DS7 Treinar Usuários
DS8 Gerenciar Serviços de Escritório e Incidentes
DS9 Gerenciar a Configuração
DS10 Gerenciar Problemas
DS11 Gerenciar Dados
DS12 Gerenciar o Ambiente Físico
DS13 Gerenciar Operações
3.4 Exercícios
26. (ICMS-SP 2009) NÃO se trata de elemento que deve ser considerado como parte do controle de mudanças
26
no gerenciamento de configuração:
xx
(a) revisões e auditoria das mudanças.
(b) confiabilidade das instalações das modificações.
(c) análise de impacto de mudanças.
(d) conjunto de modificações.
(e) pedido de modificações.
27. (ICMS-SP 2009) A rastreabilidade ou a história das mudanças de cada software, incluindo quem fez o que,
por que e quando, pode ser realizada no gerenciamento de configuração de software por meio do seu
27
componente:
(a) Acordo de nível de serviço.
(b) Configuração da construção.
(c) Identificação do item de software.
xx
(d) Controle de versão.
(e) Controle de mudanças.
28
28. (ICMS-SP 2009) Os objetivos de controle detalhados do COBIT estão diretamente associados
(a) aos domínios de governança.
(b) aos processos de TI.
xx
(c) às atividades de TI.
(d) aos recursos de TI.
(e) aos critérios de informação.
29
29. (ICMS-SP 2009) O processo Gerenciamento de Configurações está definido no COBIT dentro do domínio
(a) Monitoração & Avaliação.
(b) Verificação & Controle.
(c) Aquisição & Implementação.
(d) Planejamento & Organização.
xx
(e) Entrega & Suporte.
30
30. (ICMS-SP 2009) NÃO se trata de um princípio de governança de TI:
(a) Responsabilidade corporativa.
xx
(b) Objetivos do negócio.
(c) Prestação de contas.
(d) Transparência.
(e) Equidade.
31
TI para concursos
31
31. Gerenciar Projetos, segundo o COBIT, é um processo de TI pertencente ao domínio de
xx
(a) Planejamento e Organização.
(b) Planejamento e Controle.
(c) Aquisição e Implementação.
(d) Entrega e Suporte.
(e) Monitoração e Controle.
32
32. (ICMS-SP 2009) No gerenciamento de serviços de TI, segundo o ITIL v.2, tem foco operacional o processo:
xx
(a) configuration management.
(b) capacity management.
(c) availability management.
(d) service level management.
(e) customer relationship management.
33. (ICMS-SP 2009) No gerenciamento de serviços de TI, segundo o ITIL v.2, tem foco tático ou estratégico o
33
processo:
(a) problem management.
(b) incident management.
(c) release management.
xx
(d) continuity management.
(e) change management.
34. (ICMS-SP 2009) O processo de gerenciamento de serviços Service Desk, segundo o ITIL v.2, NÃO
34
gerencia
(a) os contatos entre o provedor de serviços e os usuários.
(b) a comunicação com os usuários.
(c) os incidentes nos serviços.
xx
(d) os acordos de serviços.
(e) as requisições de serviços.
35. O processo de Gerenciamento de Problemas, segundo o ITIL, deve ser executado no estágio do ciclo de vida
35
de serviços denominado
(a) estratégia de serviços.
(b) projeto de serviços.
(c) transição de serviços.
xx
(d) operação de serviços.
(e) melhoria contínua de serviços.
32
TI para concursos
4 Engenharia de Software
Engenharias da sistemas é um campo interdisciplinar da engenharia que foca no desenvolvimento e
organização de sistemas artificiais complexos. As técnicas de Engenharia de Sistemas podem ser
utilizadas em desenvolvimento de softwares.
Engenharia de produção é o ramo da engenharia que dedica-se à concepção, melhoria e
implementação de sistemas que envolvem pessoas, materiais, informações, equipamentos, energia e
maior de conhecimentos e habilidades, para especificar, prever e avaliar os resultados obtidos por tais
sistemas.
A Engenharia de processos é um ramo da engenharia que se preocupa, entre outras coisas, em
elaborar e executar projetos e estudos de formas de aproveitamento de mão-de-obra, máquinas e
equipamentos, para melhorar processos, para o aumento da qualidade do produto, redução de perdas
e maior produtividade.
Neste contexto, a engenharia de software aproveita diversas técnicas de engenharia de sistemas, de
produto e de processos para a produção de aplicativos com maior eficiência e eficácia.
Nos anos 40, grande parte dos esforços e custos era concentrada no desenvolvimento do hardware.
À medida que a tecnologia de hardware foi sendo dominada, as preocupações se voltaram, no início
dos anos 50, para o desenvolvimento dos sistemas operacionais e de linguagens de programação de
alto nível, como FORTRAN e COBOL.
No início dos anos 60, com o surgimento dos sistemas operacionais com características de
multiprogramação, a eficiência e utilidade dos sistemas computacionais tiveram um considerável
crescimento, surgindo a necessidade de desenvolver grandes sistemas de software em substituição
aos pequenos programas aplicativos utilizados até então.
Desta necessidade, surgiu um problema chamado de “crise do software”, que permitiu o nascimento do
termo “Engenharia de Software”.
Atualmente, o custo de desenvolvimento de software corresponde a uma percentagem cada vez maior
no custo global de um sistema informatizado.
A principal razão para isto é que a tecnologia de desenvolvimento de software implica em grande carga
de trabalho, envolvendo muitas pessoas num prazo relativamente longo de desenvolvimento.
4.1 Software9
Software é um conjunto de instruções, estruturas de dados e documentação destinados a resolver um
problema.
Em Engenharia de Software, o software deve ser visto como um produto a ser “vendido”.
Em sistemas simples, onde o usuário é o próprio autor, a documentação é pequena ou inexistente e a
preocupação com a existência de erros de execução não é um fator muito relevante, pode não haver
grandes dificuldades na detecção e correção de falhas, nem preocupação como a portabilidade, a
flexibilidade e a possibilidade de reutilização.
Um produto de software é destinado ao uso por pessoas outras que os seus programadores, a sua
interface é importante, reforçada com uma documentação rica em informações para que todos os
recursos oferecidos possam ser explorados de forma eficiente.
Produtos de software devem passar normalmente por uma exaustiva bateria de testes, dado que os
usuários não estarão de detectar e corrigir os eventuais erros de execução.
o software é concebido e desenvolvido como resultado de um trabalho de engenharia e não
manufaturado no sentido clássico;
o software não se desgasta, não aumenta a possibilidade de falhas à medida que o tempo passa;
a maioria dos produtos de software é concebida inteiramente sob medida, sem a utilização de
componentes pré-existentes.
Em função destas características diferenciais, o processo de desenvolvimento de software pode
desembocar um conjunto de problemas, os quais terão influência direta na qualidade do produto.
O processo de desenvolvimento de software procura responder:
9 http://jalvesnicacio.files.wordpress.com/2010/03/engenharia-de-software.pdf
33
TI para concursos
por que o software demora tanto para ser concluído?
por que os custos de produção têm sido tão elevados?
por que não é possível detectar todos os erros antes que o software seja entregue ao cliente?
por que é tão difícil medir o progresso durante o processo de desenvolvimento de software?
4.2.2.1 Design
A atividade de design compreende todo o esforço de concepção e modelagem que têm por objetivo
descrever como o software será implementado. O design inclui:
Design conceitual
Design da interface de usuário
Design da arquitetura do software
Design dos algoritmos e estruturas de dados
10 http://engenhariadesoftware.blogspot.com/2007/02/ciclo-de-vida-do-software-parte-1.html
34
TI para concursos
O design conceitual envolve a elaboração das idéias e conceitos básicos que determinam os elementos
fundamentais do software em questão. Por exemplo, um software de correio eletrônico tradicional inclui
os conceitos: mensagem, caixa de entrada, caixa de saída, etc. A mensagem, por sua vez, inclui os
conceitos de para, cc, bcc, assunto, corpo, etc. Embora seja um design adotado pela maioria dos
software, novos modelos conceituais podem vir a ser adotados. O conceito de conversação do Gmail é
um exemplo.
O design conceitual exerce influência na interface de usuário e na arquitetura do software.
O design da interface de usuário envolve a elaboração da maneira como o usuário pode interagir para
realizar suas tarefas, a escolha dos objetos de interfaces (botões, menus, caixas de texto, etc.), o
layout de janelas e telas, etc. A interface deve garantir a boa usabilidade do software e é um
fundamental fator de sucesso do software.
O design de arquitetura de software deve elaborar uma visão macroscópica do software em termos de
componentes que interagem entre si. O conceito de componente em arquitetura varia de acordo com a
visão arquitetônica adotada. São exemplos de visões arquitetônicas, a visão conceitual, visão de
módulos, visão de código e visão de execução.
Na visão conceitual, os componentes de software são derivados do design conceitual. Estes
componentes são abstrações que devem definir outros elementos menos abstratos. Exemplos são
arquiteturas cliente-servidor e arquitetura em camadas. Na visão de código, deve-se determinar como
as classes e/ou funções estão organizadas e interagindo entre si. Estas classes implementam os
componentes abstratos ou conceituais. Na visão de módulos, deve-se determinar quais são os módulos
que serão utilizados na implementação e como eles organizam as classes e/ou funções. Na visão de
execução, a arquitetura deve descrever os diferentes processos que são ativados durante a execução
do software e como eles interagem entre si. Enquanto as anteriores oferecem uma visão estática, esta
é uma visão dinâmica do software.
O design de algoritmos e estrutura de dados, também conhecido como design detalhado, visa
determinar, de maneira independente da linguagem de programação adotada, as soluções algorítmicas
e as estruturas de dados associados. Deve-se decidir, por exemplo, como as informações podem ser
ordenadas (algoritmo de bolha ou quicksort) e em qual tipo de estrutura de dados (array, lista
encadeada) elas vão ser armazenados.
4.2.2.2 Implementação
A implementação envolve as atividades de codificação, compilação, integração e testes. A codificação
visa traduzir o design num programa, utilizando linguagens e ferramentas adequadas. A codificação
deve refletir a estrutura e o comportamento descrito no design. Os componentes arquiteturais devem
ser codificados de forma independente e depois integrados. Os testes podem ser iniciados durante a
fase de implementação. A depuração de erros ocorre durante a programação utilizando algumas
técnicas e ferramentas. É fundamental um controle e gerenciamento de versões para que se tenha um
controle correto de tudo o que está sendo codificado.
35
TI para concursos
A distribuição e entrega pode ser feita diretamente pelo desenvolvedor (em caso de software
personalizado), ou em um pacote a ser vendido em prateleiras de lojas ou para ser baixado pela
Internet (em caso de software genéricos).
O processo de instalação e configuração, normalmente, pode ser feito com a ajuda de software de
instalação disponibilizados pelos fabricantes dos ambientes operacionais.
A atividade de utilização é o objeto do desenvolvimento do software. A qualidade da utilização é a
usabilidade do software.
A manutenção normalmente ocorre de duas formas: corretiva e evolutiva. A manutenção corretiva visa
a resolução de problemas referentes a qualidade do software (falhas, baixo desempenho, baixa
usabilidade, falta de confiabilidade etc.). A manutenção evolutiva ou adaptativa visa a produção de
novas versões do software de forma a atender a novos requisitos dos clientes, ou adaptar-se às novas
tecnologias que surgem (hardware, plataformas operacionais, linguagens, etc). Mudanças no domínio
de aplicação implicam em novos requisitos e incorporação de novas funcionalidades. Surgimento de
novas tecnologias de software e hardware e mudanças para uma plataforma mais avançada também
requerem evolução.
11 http://www2.dem.inpe.br/ijar/CicoloVidaSoftPrado.html
36
TI para concursos
4.3.2.2 Abordagem Incremental
Nesta abordagem o desenvolvedor executa múltiplas fases de PD, TR e OM. Dentro desta abordagem
está a abordagem cascata.
A abordagem incremental é adequada quando:
a liberação do software deve estar de acordo com um conjunto de prioridades definidas nos
Requisitos do Usuário
é necessário melhorar a eficiência da integração do software com outra partes de um sistema
maior
são requeridas antecipadamente evidências de que o produto será aceito
RU – Requisitos do usuário
RS – Requisitos do software
PA – Projeto da arquitetura
PD – Projeto detalhado
TR – Treinamento
OM – Operação e Manutenção
12 http://pt.wikipedia.org/wiki/Desenvolvimento_Ágil_de_software
38
TI para concursos
A codificação cowboy, também chamada de Modelo Balbúrdia, é a ausência de metodologias de
desenvolvimento de Software: os membros da equipe fazem o que eles sentem que é correto. Como os
desenvolvedores que utilizam métodos ágeis freqüentemente reavaliam os planos, enfatizam a
comunicação face a face e fazem o uso relativamente esparso de documentos, ocasionalmente levam
as pessoas a confundirem isto com codificação cowboy. Equipes ágeis, contudo, seguem o processo
definido (e freqüentemente de forma disciplinada e rigorosa).
Como em todas as metodologias, o conhecimento e a experiência dos usuários definem o grau de
sucesso e/ou fracasso de cada atividade. Os controles mais rígidos e sistematizados aplicados em um
processo implicam altos níveis de responsabilidade para os usuários. A degradação de procedimentos
bem-intencionados e organizados pode levar as atividades a serem caracterizadas como codificação
cowboy.
De uma perspectiva organizacional, a aplicabilidade pode ser expressa examinando três dimensões
chaves da organização: cultura, pessoal e comunicação. Em relação a estas áreas inúmeros fatores
chave do sucesso podem ser identificados (Cohen et al., 2004):[2]
A cultura da organização deve apoiar a negociação.
As pessoas devem ser confiantes.
Poucas pessoas, mas competentes.
A organização deve promover as decisões que os desenvolvedores tomam.
A Organização necessita ter um ambiente que facilite a rápida comunicação entre os membros.
O fator mais importante é provavelmente o tamanho do projeto. Com o aumento do tamanho, a
comunicação face a face se torna mais difícil. Portanto, métodos ágeis são mais adequados para
projetos com pequenos times, com no máximo de 20 a 40 pessoas.
Ambiente ideal para o desenvolvimento ágil:
Baixa criticidade
Desenvolvedores senior
Mudanças freqüente de requisitos
Pequeno número de desenvolvedores
Cultura que tem sucesso no caos.
Ambiente ideal para o desenvolvimento direcionado ao planejamento:
Alta criticidade
Desenvolvedores Junior
Baixa mudança nos requisitos
Grande número de desenvolvedores
Cultura que procura a ordem.
39
TI para concursos
equipe etc. Estas necessidades irão orientar a atribuição das prioridades ao que deve ser feito em uma
iteração de Elaboração.
Uma das principais vantagens da abordagem iterativa em relação à abordagem em cascata é o fato de
as iterações fornecerem marcos naturais para avaliar o progresso e os riscos prováveis. Na iteração, a
avaliação do progresso e do risco deverá continuar (se realizada informalmente) para garantir que as
dificuldades não desviem o projeto.
A Avaliação de Iteração captura o resultado de uma iteração, até que ponto os critérios de avaliação
foram respeitados e as mudanças que devem ser feitas.
Cada iteração é concluída por uma Avaliação de Iteração, na qual a organização de desenvolvimento
para para refletir sobre o que aconteceu, o que foi ou não alcançado e por quê, e as lições aprendidas.
Essa avaliação é uma etapa decisiva em uma iteração e não deve ser ignorada. Se a Avaliação de
Iteração não for feita corretamente, muitos dos benefícios oferecidos por uma abordagem iterativa
poderão se perder.
Algumas vezes, o procedimento correto nesta etapa é rever os critérios de avaliação, em vez de
retrabalhar o sistema. Às vezes, a vantagem da Avaliação de Iteração está em revelar que um
determinado requisito não é importante, é muito caro para ser implementado ou cria uma arquitetura
que não pode ser mantida. Nesses casos, uma análise de custo e benefício deve ser feita e uma
decisão de negócios deve ser tomada.
A métrica deve ser usada como base dessa avaliação.
Quase no final de cada iteração, a equipe central do projeto deverá se reunir para avaliar a iteração,
enfatizando o seguinte:
A iteração obteve êxito no cumprimento de suas metas?
Os riscos foram reduzidos ou eliminados?
O release cumpriu suas metas de funcionalidade, qualidade, desempenho e capacidade?
São necessárias mudanças no projeto e nos planos de iteração futuros?
Alguma das descobertas capturadas no artefato, na avaliação da organização de desenvolvimento,
foi invalidada pelas mudanças durante a iteração e, como conseqüência, exige mudanças em outros
artefatos?
Houve alguma dificuldade no processo de desenvolvimento durante a iteração?
Que parte do release atual servirá como baseline? Sofrerá retrabalho?
Novos riscos foram identificados?
Houve mudanças externas (mudanças no mercado, na comunidade de usuários ou nos requisitos)?
Avalie os resultados da iteração com relação aos critérios de avaliação que foram estabelecidos para o
plano de iteração: funcionalidade, desempenho, capacidade, medidas de qualidade.
Use as métricas obtidas nas atividades de teste e no passo coletar métricas como a base da avaliação,
quando disponíveis, para quantificá-la. As medidas qualitativas são adequadas para a fase de iniciação
e talvez para a iteração inicial, enquanto as fases posteriores de elaboração, construção e transição
devem depender de medições de teste específicas para avaliar a qualidade, o desempenho, a
capacidade etc. Aborde outros problemas pendentes que foram capturados nas avaliações de status
durante a iteração e quaisquer outros problemas na lista de problemas do gerente de projeto.
Se todos os riscos tiverem sido reduzidos a níveis aceitáveis, toda a funcionalidade tiver sido
implementada e todos os objetivos de qualidade tiverem sido atingidos, o produto estará concluído. O
planejamento e a execução eficientes são vitais para isso ocorrer no final da fase de Transição.
13 http://pt.wikipedia.org/wiki/An%C3%A1lise_de_pontos_de_fun%C3%A7%C3%A3o
40
TI para concursos
Seus objetivos são:
medir a funcionalidade solicitada pelo usuário, antes
do projeto de software, de forma a estimar seu
tamanho e seu custo
medir projetos de desenvolvimento e manutenção de
software, independentemente da tecnologia utilizada
na implementação, de forma a acompanhar sua
evolução
medir a funcionalidade recebida pelo usuário, após o
projeto de software, de forma verificar seu tamanho e
seu custo, comparando-os com o que foi originalmente
estimado
As organizações podem aplicar a Análise de Pontos por Função como:
uma ferramenta para determinar o tamanho de pacotes de software adquiridos, através da
contagem de todos os Pontos por Função incluídos no pacote
uma ferramenta para apoiar a análise da qualidade e da produtividade
um mecanismo para estimar custos e recursos envolvidos em projetos de desenvolvimento e
manutenção de software
um fator de normalização para comparação de software
O procedimento para contagem de PFs compreende:14
Determinar o Tipo de Contagem
projeto de desenvolvimento
aplicações instaladas
projetos de manutenção
Identificar o Escopo de Contagem e Fronteira da Aplicação
definir a parte do sistema (funcionalidades) a ser contada
Determinar os PFs não ajustados
Contagem das Funções
dados - arquivos lógicos internos (ALI) e arquivos de interface externa (AIE)
transacionais – entradas (EE), saídas (SE) e consultas (CE) externas
Determinar o Fator de Ajuste
o fator de ajuste é baseado em quatorze características gerais de sistemas, que avaliam a funcionalidade
geral da aplicação que está sendo contada, e seus níveis de influência. O nível de influência de uma
característica é determinado com base em uma escala de 0 (nenhuma influência) a 5 (forte influência).
Calcular os PFs Ajustados
14 http://www.inf.ufes.br/~falbo/download/aulas/es-g/2005-1/APF.pdf
41
TI para concursos
Contando-se os registros lógicos e os itens de dados de um ALI/AIE, pode-se chegar à sua
complexidade, utilizando a tabela 1:
onde
NCi,j = número funções do tipo i (i variando de 1 a 5, segundo os tipos de função existentes: ALI,
AIE, EE, SE e CE) que foram classificados na complexidade j (j variando de 1 a 3,
segundo os valores de complexidade: simples, média e complexa).
42
TI para concursos
Ci,j = valor da contribuição da complexidade j no cálculo dos pontos da função i, dado pela
tabela 4.
Tabela 4 – Contribuição das Funções na Contagem de PFs Não Ajustados.
Complexidade
Função
Simples Média Complexa
arquivos lógicos
7 10 16
internos - ALI
arquivos de interface
5 7 10
externa - AIE
entradas externas - SE 4 5 7
saídas externas - EE 3 4 6
consultas externas - CE 3 4 6
2. O total de pontos de função não ajustados (PFNA) é dado pelo somatório dos pontos das tabelas de
função:
sendo que i varia de 1 a 5, segundo os tipos de função existentes (AIL, AIE, EE, SE e CE).
Considerando que o valor máximo do NIT é 14x5=70 e o mínimo é zero, então, o valor do VFA varia de
0,65 a 1,35.
43
TI para concursos
4.6.1.5 Cálculo dos Pontos de Função Ajustados
Uma vez calculados os PF não ajustados e o fator de ajuste, é possível calcular os PFs ajustados. Esse
cálculo é feito de formas diferentes para cada tipo de contagem (projeto de desenvolvimento, projeto de
manutenção ou aplicações instaladas). Para projetos de desenvolvimento, o cálculo é dado por:
PF = PFNA * VFA
onde
PFNA = Número de PFs não ajustados
VFA = valor do fator de ajuste
15 http://pt.wikipedia.org/wiki/M%C3%A9todo_COCOMO
16 http://pt.wikipedia.org/wiki/Requisitos_de_Software
44
TI para concursos
4.7.1.1 Elicitação
Técnica de obtenção de dados junto aos usuários detententores das informações, principalmente para
a construção de um sistema ou um produto ou, ainda para melhorar um processo de trabalho.
17 http://www.wthreex.com/rup/portugues/process/workflow/requirem/co_req.htm
18 http://www.cos.ufrj.br/~targino/engsoft/JAD.pdf
45
TI para concursos
O facilitador é neutro: ele não opina nos assuntos discutidos, mas pode direcionar os assuntos
conforme o planejamento inicial. Cabe a ele também evitar que determinados indivíduos dominem
reunião.
O anotador está dedicado a registrar os assuntos discutidos e decisões tomadas, liberando assim os
outros membros a participar das discuss ões sem perder tempo com anotações.
O gerenciador de tempo vai evitar que determinadas discussões demorem demasiadamente, evitando
assim que outros assuntos não sejam abordados.
O quadro do projeto serve para lembrar os assuntos em foco e os que estão fora do foco, impedindo
assim discussões infrutíferas.
19 http://pt.wikipedia.org/wiki/Estudo_etnogr%C3%A1fico
46
TI para concursos
exatidão
tempo médio entre falhas (MTBF)
Desempenho
velocidade
eficiência
disponibilidade
exatidão
taxa de transferência
tempo de resposta
tempo de recuperação
uso de recurso
Suportabilidade
possibilidade de teste
extensibilidade
adaptabilidade
manutenibilidade
compatibilidade
possibilidade de configuração
possibilidade de serviço
possibilidade de instalação
possibilidade de localização (internacionalização)
restrições de design
especifica ou restringe o design de um sistema
requisitos de implementação
padrões obrigatórios
linguagens de implementação
políticas de integridade de banco de dados
limites de recursos
ambientes operacionais
requisitos de interface
um item externo com o qual o sistema deve interagir
restrições de formatos, tempos ou outros fatores usados por tal interação
requisitos físicos
material
forma
tamanho
peso
20 http://pt.wikipedia.org/wiki/Ger%C3%AAncia_de_Configura%C3%A7%C3%A3o_de_Software
47
TI para concursos
21 http://www.wthreex.com/rup/process/artifact/ar_crqst.htm
48
TI para concursos
Custo
Qual é a economia proveniente desta mudança?
Relacionamento com Outras Mudanças
Outras mudanças substituirão ou invalidarão esta ou isso depende de outras mudanças?
Teste
Há algum requisito especial de teste?
As práticas de Gerenciamento de Mudanças normalmente são institucionalizadas ou estabelecidas no
início do ciclo de vida do projeto. Desse modo, as CRs, que integram o processo de mudança, podem
surgir a qualquer momento durante o curso do projeto.
A principal origem de defeitos consiste nos resultados da execução dos testes — integração, sistema e
desempenho. Contudo, os defeitos podem aparecer em qualquer ponto do ciclo de vida de
desenvolvimento do software e abranger a identificação de documentação, casos de teste ou casos de
uso ausentes ou incompletos.
Qualquer pessoa da equipe de projeto deve ser capaz de efetuar uma CR. No entanto, a CR precisa
ser revisada e aprovada pelo supervisor da pessoa que a efetuou. A arbitragem final sobre uma
Solicitação de Mudança é realizada por uma Equipe de Revisão ou um Comitê de Controle de Mudança
(CCB).
O Gerente de Controle de Mudança é responsável pela integridade do defeito, garantindo que:
Sejam exatas todas as informações que identificam e descrevem o defeito e indicam como ele foi
descoberto.
O defeito seja exclusivo ou que não seja outra ocorrência de um defeito já identificado.
Os campos e os dados reais necessários para identificar, descrever e controlar defeitos com precisão
são variados e dependem do sistema de controle de mudanças, das diretrizes e dos padrões
implementados.
4.9.1.1 CMM
22 http://pt.wikipedia.org/wiki/Qualidade_de_software
49
TI para concursos
O "CMM - Capability Maturity Model for Software /SEI" é uma
estrutura (framework), que descreve os principais elementos
de um processo de desenvolvimento de software.
Organizações de software evoluem o seu ciclo de
desenvolvimento de software através de sua avaliação
contínua, identificação e ações corretivas dentro de uma
estratégia de melhoria dos processos. Este caminho de
melhoria é definido por cinco níveis de maturidade:
inicial, ad hoc, sem ambiente estável de desenvolvimento
ou processos estruturados, que excedem prazos e
orçamentos.
repetitivo, um minimo de disciplina nos processos para repetir sucessos anteriores, podendo utilizar
ferramentas de gerência de projetos para administrar custos e prazos, e status do projeto visíveis
(marcos e término).
definido, um conjunto de processos padrão estabelecidos e melhorados periodicamente
gerenciado, com utilização de indicadores de qualidade
otimizado, com a procura constante de inovação e a realização de um processo controlado e
mensurado para melhoria contínua
O CMMI possui duas representações: "contínua" ou "por estágios". Estas representações permitem a
organização utilizar diferentes caminhos para a melhoria de acordo com seu interesse.
Representação Continua, que possibilita à organização utilizar a ordem de melhoria que melhor atende
os objetivos de negócio da empresa. É caracterizado por Níveis de Capacidade (Capability Levels):
Nível 0: Incompleto (Ad-hoc)
Nível 1: Executado (Definido)
Nível 2: Gerenciado
Nível 3: Definido
Nível 4: Quantitativamente gerenciado
Nível 5: Em otimização
Representação Por Estágios, que oferece uma seqüência pré-determinada para melhoria baseada em
estágios que não deve ser desconsiderada, pois cada estágio serve de base para o próximo. É
caracterizado por Níveis de Maturidade (Maturity Levels):
Nível 1: Inicial (Ad-hoc)
Nível 2: Gerenciado
Nível 3: Definido
Nível 4: Quantitativamente gerenciado
Nível 5: Em otimização
23 http://pt.wikipedia.org/wiki/Qualidade_de_software
50
TI para concursos
a busca de conformidade com os padrões de desenvolvimento de software;
a implantação de medições associadas a projeto, processo e produto;
a utilização de mecanismos adequados de armazenamento e recuperação de dados relativos a
projetos, processos e produtos;
a busca de uma melhoria contínua no processo de desenvolvimento de software.
24 http://www.iteste.com.br/Portals/0/Palestra%20Gerencia%20de%20Teste_1%20hora.pdf
51
TI para concursos
As pessoas envolvidas nos testes podem assumir os papéis de:
Líder ou Gerente de teste, responsável pela liderança de um projeto de teste específico
Arquiteto de Teste, responsável pela montagem do ambiente de teste (infra-estrutura) e escolha das
ferramentas
Analista de Teste, responsável pela modelagem e elaboração dos casos de testes e scripts de teste
Testador, responsável pela execução dos casos de teste e scripts de teste
A definição de quem irá executar os testes dependerá do nível ou estágio do teste:
Teste Unitário - Desenvolvedores
Teste de Integração - Analistas de Sistemas
Teste de Sistema - Analistas de Teste
Teste de Aceitação - Usuários e Analistas de Teste
Existem técnicas de testes chamadas de funcionais, que verificam se o sistema faz o que deveria:25
Teste de caixa-branca - Também chamado de teste estrutural ou orientado à lógica, avalia o
comportamento interno do componente de software. Essa técnica trabalha diretamente sobre o código fonte
do componente de software para avaliar aspectos tais como: teste de condição, teste de fluxo de dados,
teste de ciclos, teste de caminhos lógicos, códigos nunca executados.
Teste de caixa-preta - Também chamado de teste funcional, orientado a dado ou orientado a entrada e
saída, avalia o comportamento externo do componente de software. Dados de entrada são fornecidos, o
teste é executado e o resultado obtido é comparado a um resultado esperado previamente conhecido.
Há, por outro lado, as técnicas não funcionais, que testam como a operação correta do sistema se
comporta em situações anormais, como casos de entradas inválidas ou inesperadas.
teste de desempenho com teste de carga, verifica se o software consegue processar grandes quantidades
de dados nas especificações de tempo de processamento exigidas, o que determina a escalabilidade do
software.
teste de usabilidade, necessário para verificar se a interface de usuário é fácil de se aprender e utilizar.
teste de confiabilidade, usado para verificar se o software é pode assegurar o sigilo dos dados
armazenados e processados.
teste de recuperação, usado para verificar a robustez do software em retornar a um estado estável de
execução após estar em um estado de falha.
25 http://pt.wikipedia.org/wiki/Teste_de_software
26 http://se.inf.ethz.ch/teaching/ss2005/0050/exercises/REMOVED/IEEE%20Std%20829-1998%20test.pdf
27 http://www.ic.unicamp.br/~eliane/Cursos/Planos_Testes/Documentos/plantestes.doc.
52
TI para concursos
Ambiente: necessidade de hw, sw, ferramentas e estruturas provisórias que sejam específicas desse caso
de teste
Procedimentos: identificação do procedimento de teste (dentre os já listados na seção anterior) que será
usado para executar o caso de teste
Dependências: condições prévias para a execução do caso de teste, inclusive outros casos de teste que
devam ser executados obrigatoriamente antes deste
Saídas observadas: resultados fornecidos pelo item em teste ou anomalias ocorridas durante a execução
Impacto: consequências do incidente de teste (evento indesejável que tenha ocorrido durante os testes).
Como para a inspeção, classificá-los em categorias:
MA: maior. Causa resultados errados/anomalia na execução do programa
ME: menor. Causa outro tipo de problema que não afeta a execução do programa
Procedimentos de Teste, que especifica os passos para execução. Definição dos procedimentos
associados ao conjunto de testes:
Uma identificação do procedimento .
O objetivo do procedimento.
Os requisitos especiais para a execução do procedimento (por exemplo, usar o arquivo DadosTeste)
O fluxo passo a passo do procedimento detalhado o suficiente para que possa ser executado manualmente
por um operador ou convertido em um script de teste.
Descrição de cada um dos casos de teste gerado.
Resultados do teste, contendo os registros dos testes realizados em ordem cronológica.
Relatório de incidentes, contendo o registro dos problemas encontrados durante os testes que
mereçam ser investigados.
Relatório de resumo dos teste, contendo um resumo dos resultados das atividades projetadas e
fornecendo avalições baseadas nestes resultados. O relatório fecha a etapa de testes realizada,
permitindo uma avaliação da eficácia dos mesmos, indicação do nível de qualidade do produto, se
há necessidade de testes adicionais ou a reconstrução de alguns itens sob teste. O relatório de
resumo pode conter:
Identificador do relatório resumido
Contexto: quais os itens testados, com respectivos números de versão e revisão
Variações: descrever as possíveis variações dos testes realizados em relação ao previsto na especificação,
justifiando o motivo de tais variações
Abrangência: avaliar se a cobertura foi suficiente, conforme o planejado. Indicar possíveis deficiências nos
testes, caso existam.
Sumário dos resultados: resumir os incidentes ocorridos
Avaliação: fornecer uma avaliação global da eficácia dos testes; uma base para isso pode ser o número de
defeitos classificados como MA que foram encontrados.
Sumário das atividades: para cada item testado, indicar o tempo previsto e os efetivamente gastos para as
tarefas de teste
Aprovações: indicar se o item testado foi considerado aprovado ou não.
4.10 Exercícios
36. (ICMS-SP 2009) Quanto aos requisitos de software, considere:
I. É importante que se estabeleçam práticas para encontrar, documentar, organizar e rastrear os requisitos
variáveis de um sistema.
II. Etnografia (observação e análise dos fluxos de trabalho) e sessões de JAD são práticas que podem ser
aplicadas na elicitação.
III. Elicitar significa descobrir os requisitos de um sistema por meio de entrevistas, de documentos do sistema
existente, de análise do domínio do problema ou de estudos do mercado.
36
Está correto o que se afirma em
(a) I, apenas.
(b) I e II, apenas.
xx
(c) I, II e III.
(d) II e III, apenas.
(e) III, apenas.
53
TI para concursos
37. (ICMS-SP 2009) Considere:
"Os requisitos expressam as características e restrições do produto de software do ponto de vista de
satisfação das necessidades do usuário. Em geral, independem da tecnologia empregada na construção da
solução, sendo uma das partes mais críticas e propensas a erros no desenvolvimento de software”.
37
Quanto aos requisitos de software, a descrição acima está
(a) incoerente ao afirmar que expressam restrições.
(b) incoerente ao afirmar que independem da tecnologia.
(c) incoerente ao afirmar que expressam características do ponto de vista de satisfação das necessidades
do usuário.
xx
(d) totalmente coerente.
(e) incoerente ao afirmar que os requisitos são uma das partes mais críticas e propensas a erros.
(ICMS-SP 2009) Instruções: Para responder às duas próximas questões, considere:
“É necessário que o software calcule os salários dos diaristas e mensalistas e emita relatórios mensais
sumariados por tipo de salário. Entretanto, a base de dados deve estar protegida e com acesso restrito aos
usuários autorizados. De qualquer forma, o tempo de resposta das consultas não deve superar os quinze
segundos, pois inviabilizaria todo o investimento nesse sistema. Devo lembrar que os relatórios
individuais dos departamentos, nos quais constam os salários dos funcionários, devem ser emitidos
quinzenalmente em razão dos adiantamentos e vales que recebem. É fundamental que o software seja
operacionalizado usando código aberto. Necessito, ainda, forte gerenciamento de risco, prazo e custo,
porque a entrega do produto final não pode ultrapassar o prazo de oito meses a contar da data de início do
projeto. A frase acima, expressa por um funcionário do cliente, aborda alguns requisitos de software
especificados para um sistema de gestão de pessoal.
38
38. (ICMS-SP 2009) No texto, são requisitos não-funcionais:
(a) não pode ultrapassar o prazo de oito meses e necessário que o software calcule os salários dos
diaristas e mensalistas.
(b) os relatórios individuais dos departamentos, nos quais constam os salários dos funcionários, devem ser
emitidos quinzenalmente e em razão dos adiantamentos e vales que recebem.
(c) É fundamental que o software seja operacionalizado usando código aberto e os relatórios individuais dos
departamentos, nos quais constam os salários dos funcionários, devem ser emitidos quinzenalmente.
(d) tempo de resposta das consultas não deve superar os quinze segundos e entrega do produto final não
xx
pode ultrapassar o prazo de oito meses.
(e) pois inviabilizaria todo o investimento nesse sistema e em razão dos adiantamentos e vales que
recebem.
39
39. (ICMS-SP 2009) No texto, são requisitos funcionais:
(a) calcule os salários dos diaristas e mensalistas e os relatórios individuais dos departamentos, nos quais
xx
constam os salários dos funcionários, devem ser emitidos quinzenalmente.
(b) Necessito, ainda, forte gerenciamento de risco, prazo e custo e a base de dados deve estar protegida e
com acesso restrito aos usuários autorizados.
(c) é fundamental que o software seja operacionalizado usando código aberto e emita relatórios mensais
sumariados por tipo de salário.
(d) emita relatórios mensais sumariados por tipo de salário e necessito, ainda, forte gerenciamento de risco,
prazo e custo.
(e) a base de dados deve estar protegida e com acesso restrito aos usuários autorizados e entrega do
produto final não pode ultrapassar o prazo de oito meses.
40. (ICMS-SP 2009) O processo de confirmação que um software vai ao encontro das especificações de
40
software se trata de um conceito-chave de qualidade denominado
(a) Validação.
xx
(b) Verificação.
(c) Precisão.
(d) Acurácia.
(e) Confiabilidade.
41. (ICMS-SP 2009) Garantir que um ou mais componentes de um sistema combinados funcionam corretamente
41
é o objetivo do tipo de teste
(a) de sistema.
xx
(b) de integração.
(c) de configuração.
(d) operacional.
(e) funcional.
42. (ICMS-SP 2009) O teste de ameaça normalmente deve ser aplicado dentro de um projeto de software nas
42
etapas de
(a) desenvolvimento inicial e desenvolvimento intermediário.
(b) desenvolvimento intermediário e teste de aceitação.
(c) desenvolvimento intermediário e teste de sistema.
(d) teste de integração e teste de aceitação.
xx
(e) teste de integração e teste de sistema.
54
TI para concursos
43. (ICMS-SP 2009) Na prática de garantia de qualidade de software, contrapondo com o controle de qualidade
43
de software, se aplica a atividade:
(a) executar teste de software.
(b) desenvolver casos de testes.
xx
(c) definir métricas e medição.
(d) definir estratégias de testes.
(e) definir planos de desenvolvimento de teste.
44. (ICMS-SP 2009) O processo de engenharia de software denominado ciclo de vida clássico refere-se ao
44
modelo
xx
(a) em cascata.
(b) incremental.
(c) evolucionário.
(d) prototipagem.
(e) de processo unificado
45. (ICMS-SP 2009) O conceito de sprint aplica-se ao modelo ágil do processo de engenharia de software
45
denominado
(a) XP.
(b) DAS.
(c) DSDM.
xx
(d) Scrum.
(e) Crystal.
46
46. (ICMS-SP 2009) A engenharia de software está inserida no contexto
(a) da engenharia de sistemas, apenas.
(b) das engenharias de processo e de produto, apenas.
(c) das engenharias de sistemas e de processo, apenas.
(d) das engenharias de sistemas e de produto, apenas.
xx
(e) das engenharias de sistemas, de processo e de produto.
47. (FCC - 2008 - TRT) A frase "o tempo médio de resposta do sistema não deve ultrapassar 5 segundos" indica
47
55
TI para concursos
52. O metamodelo CMMI contínuo define que cada área de processo é avaliada formalmente, com base em
52
metas e práticas específicas, e classificada de acordo com seis níveis de capacitação. O nível 3 é o
(a) Quantitativamente gerido.
(b) Realizado.
xx
(c) Definido.
(d) Gerido.
(e) Otimizado.
53
53. NÃO é um dos sete princípios (David Hooker) da Engenharia de Software:
(a) manter a coisa simples.
xx
(b) não especificar requisitos detalhadamente.
(c) estar aberto para o futuro.
(d) planejar o reúso com antecedência.
(e) manter a visão.
54. NÃO é uma das nove características em um tratamento detalhado das métricas de software (Whitmire) para o
54
modelo de projeto orientado a objeto:
xx
(a) o custo.
(b) o tamanho.
(c) a complexidade.
(d) o acoplamento.
(e) a coesão.
55. O método que busca medir esforço, prazo, tamanho de equipe e custo necessário para o desenvolvimento do
software, desde que se tenha a dimensão do mesmo, por meio de um modelo de estimativa de tamanho de
55
software (Boehm) é o
(a) Function Point Analysis.
(b) CoCoMo.xx
(c) Work Breakdown Structure.
(d) Benchmarking.
(e) Flowcharting.
(ICMS-SP 2009) Instruções: Para responder às três próximas questões, considere a tabela e os dados de
referência para os cálculos de pontos de função.
56
TI para concursos
Níveis de Influência:
0 − Nenhuma influência.
1 − Influência mínima.
2 − Influência moderada.
3 − Influência média.
4 − Influência significante.
5 − Influência forte.
Características Gerais de Sistema:
1. Comunicação de Dados.
2. Processamento de Dados Distribuído (Funções Distribuídas).
3. Performance.
4. Configuração do equipamento.
5. Volume de Transações.
6. Entrada de Dados On line.
7. Interface com o usuário.
8. Atualização On line.
9. Processamento Complexo.
10. Reusabilidade.
11. Facilidade de Implantação.
12. Facilidade Operacional.
13. Múltiplos Locais.
14. Facilidade de mudanças.
56. (ICMS-SP 2009) Durante o levantamento de requisitos de um sistema, foram apuradas as seguintes
56
informações, base para o cálculo de pontos de função:
Complexidade de:
− Entrada: 2 complexas , 4 médias e 5 simples.
− Saída: 10 médias e 3 simples.
− Arquivo mantido dentro da fronteira do sistema: 1 complexo e 2 médios.
Sem nenhuma influência, o resultado apurado foi
(a) 133
(b) 138
xx
(c) 140
(d) 149
(e) 161
57. (ICMS-SP 2009) Mantida a pontuação bruta obtida na questão de número 22 e considerando que as
influências por características gerais do sistema foram estimadas como:
− Forte em performance.
− Significante em entrada de dados on line e em processamento distribuído.
− Demais características sem influência.
57
O resultado final mais aproximado, após o ajuste, foi
(a) 98,0
(b) 107,8
(c) 110,6
xx
(d) 109,2
(e) 116,0
58. (ICMS-SP 2009) Após um levantamento mais apurado do sistema referido, funções foram modificadas,
adicionadas ou excluídas e, em razão das modificações sugeridas, chegou-se às seguintes e novas
informações:
Complexidade de:
− Consulta: 5 complexas, 10 médias e 11 simples.
− Arquivo mantido fora da fronteira do sistema: 1 complexo e 1 médio.
− Entrada: 2 complexas, 4 médias e 5 simples.
− Saída: 5 complexas, 10 médias e 3 simples.
− Arquivo mantido dentro da fronteira do sistema: 3 complexos, 1 médio e 4 simples.
As novas influências por características gerais do sistema foram estimadas como:
− Forte em performance.
− Significante em entrada de dados on line, em processamento distribuído, em facilidade de mudanças e em
interface com o usuário.
− Mínima em volume de transações.
− Moderada em comunicação de dados.
− Demais características sem influência.
58
Com base nessas novas informações levantadas, o resultado final mais aproximado, após o ajuste, foi
(a) 263,7
(b) 298,9
(c) 300,5
xx
(d) 305,3
(e) 432,8
57
TI para concursos
59. Considere 1952 pontos por função brutos e a aplicação do valor 3 a todos os fatores de ajuste. Os pontos por
59
função ajustados são
(a) 1268,80.
(b) 1542,08.
(c) 1815,36.
xx
(d) 2088,64.
(e) 2635,00.
60. Durante a medição do grau de complexidade de um sistema foram apurados 550 pontos de função brutos.
Considerando que o somatório dos graus atribuídos aos fatores de ajuste foi 30, a medida final em pontos de
60
função foi
(a) 520
xx
(b) 522,5
(c) 552,5
(d) 580
(e) 585,5
61. Se em uma seqüência de atividades de um projeto todas elas tiverem retardo de zero dias em relação às
61
suas predecessoras
(a) o projeto é inviável.
(b) isso indica a ausência de caminho crítico.
xx
(c) essa seqüência é o caminho crítico.
(d) a seqüência está errada.
(e) o projeto deve ser desmembrado.
62. Um Plano de Projeto de Software é um documento gerencial que se destina a um público diverso e NÃO
62
deve conter
(a) a comunicação do escopo e dos recursos à administração, aos clientes e à equipe técnica.
(b) a definição dos principais requisitos e dos riscos com sugestões técnicas para, respectivamente,
atendêlos ou evitá-los.
(c) o desenho dos componentes do software para planejar a sua instalação e operacionalização.
xx
(d) a definição dos custos e dos prazos para as revisões administrativas do projeto.
(e) a apresentação de uma abordagem global do desenvolvimento do software para todas as pessoas
envolvidas no projeto.
58
TI para concursos
5 Arquitetura de Software
5.1 Conceitos básicos
A arquitetura de software de um sistema consiste dos componentes de software, suas propriedades
externas e seus relacionamentos com outros softwares. O termo também se refere à documentação da
arquitetura de software do sistema. A documentação da arquitetura do software facilita a comunicação
entre os stakeholders, registra as decisões iniciais acerca do projeto de alto nível e permite o reuso do
projeto dos componentes e padrões entre projetos.28
A arquitetura de software é organizada em visões, que descrevem a arquitetura na perspectiva de um
conjunto de pessoas interessadas, como:
Visão funcional/lógica
Visão de código
Visão de desenvolvimento/estrutural
Visão de concorrência/processo/thread
Visão física/evolutiva
Visão de ação do usuário/feedback
Várias linguagens para descrição da arquitetura de software foram inventadas, mas nenhum consenso
foi ainda alcançado em relação a qual conjunto de símbolos ou sistema representação deve ser
adotado. Alguns acreditam que a UML irá estabelecer um padrão para representação de arquitetura de
software. Outros acreditam que os desenvolvimentos efetivos de software devem contar com a
compreensão única das restrições de cada problema, e notações tão universais são condenadas a um
final infeliz porque cada uma provê um notação diferenciada que necessariamente torna a notação inútil
ou perigosa para alguns conjuntos de tarefas. Eles apontam a proliferação de linguagens de
programação e a sucessão de tentativas falhas para impor uma simples 'linguagem universal' na
programação, como uma prova da tendência do software para a diversidade e não para padrões.
Há muitas formas comuns de projetar módulos de software de computador e suas comunicações, entre
elas:
Cliente-Servidor
Computação distribuída
P2P
Blackboard
Criação implícita
Pipes e filtros
Plugin
Sistema Monolítico
Modelo em três camadas
Analise de sistema estruturada (baseada em módulos, mas usualmente monolíticas em dentro dos
módulos)
Arquitetura orientada a serviço
Arquitetura orientada a busca
5.2 UML
A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira
geração que auxilia a visualizar o desenho e a comunicação entre objetos de um sistema de
29
informações.
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em
diagramas padronizados. Junto com uma notação gráfica, a UML também especifica significados
(semântica).
RUP (Rational Unified Process) é um processo proprietário criado pela Rational Software Corporation,
adquirida pela IBM, ganhando um novo nome IRUP que agora é uma abreviação de IBM Rational
Unified Process, que usa a abordagem da orientação a objetos em sua concepção e é projetado e
documentado utilizando a notação UML para ilustrar os processos em ação.
28 http://pt.wikipedia.org/wiki/Arquitetura_de_software
29 http://pt.wikipedia.org/wiki/UML
59
TI para concursos
Os objetivos da UML são: especificação, documentação, e estruturação para sub-visualização e maior
visualização lógica do desenvolvimento completo de um sistema de informação. A UML é um modo de
padronizar as formas de modelagem.
O UML se compõe de diversos diagramas, cada um para um tipo diferente de visão.
Diagramas Comportamentais
Diagrama de Caso de Uso - descreve a funcionalidade proposta para o novo sistema. Um desenho com
representação de um ator, humano ou entidade máquina, que interage (relação) com o sistema (casos de
uso) para executar um trabalho. Estes relacionamentos podem ser:
associações entre atores e casos de uso. Define uma funcionalidade do sistema do ponto de vista do
usuário.
generalizações entre os atores. Os casos de uso de um ator são também casos de uso do outro, que tem
seus próprios casos de uso.
generalizações entre os casos de uso. O caso de uso B é um caso de uso A (A é uma generalização de
B, ou B é uma especialização de A). Um relacionamento entre um caso de uso genérico para um mais
específico, que herda todas as características de seu pai.
extensões entre os casos de uso. Um relacionamento extend de um caso de uso B para um caso de uso
A indica que o caso de uso B pode ser 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.
inclusões entre os casos de uso. Um relacionamento include de um caso de uso A para um caso de uso
B indica que B é essencial para o comportamento de A. Pode ser dito também que B is_part_of A ou que
A depende de B.
Diagrama de transição de estados - representação do estado ou situação em que um objeto pode se
encontrar no decorrer da execução de processos de um sistema.
Diagrama de atividade - mostra o fluxo de controle de uma atividade para outra.
Diagramas Estruturais
Diagrama de classes - representação da estrutura e relações das classes que servem de modelo para
objetos. Uma propriedade, atributo ou operação representada no diagrama de classes, que poderá ser vista
e usada apenas pela classe na qual foi declarada, bem como pelas suas classes descendentes, deve ser
definida com visibilidade descrita por meio da palavra-chave protected.
Diagrama de objetos - mostra os objetos que foram instanciados das classes. Exibe um único conjunto de
objetos relacionados uns com os outros em um determinado momento
Diagrama de componentes - utilizado para modelar os componentes do código fonte do software.
Diagrama de instalação - descreve os componentes de hardware e software e sua interação com outros
elementos de suporte ao processamento.
Diagrama de pacotes - descreve grupos de classes, de outros elementos ou pedaços do sistema divididos
em agrupamentos lógicos mostrando as dependências entre estes.
Diagrama de estrutura - descreve a colaboração interna de classes, interfaces ou componentes para
especificar uma funcionalidade.
Diagramas de Interação
Diagrama de sequência - representa a sequência de mensagens passadas entre objetos num programa de
30
computador. Utiliza-se também o termo cenário associado com diagramas de seqüência.
Diagrama de Interatividade – descreve o fluxo de atividades mostrando como elas trabalham em uma
sequência de eventos.
Diagrama de colaboração ou comunicação - exibe uma interação, consistindo de um conjunto de objetos e
seus relacionamentos, incluindo as mensagens que podem ser trocadas entre eles.
Diagrama de tempo - apresenta o comportamento dos objetos e sua interação em uma escala de tempo,
focalizando as condições que mudam no decorrer desse período.
Também se utiliza de elementos para sua representação:
De estrutura:
Classe
Classe ativa
Interface
Componente
Colaboração
Nó (cubo) - objeto físico em tempo de execução que representa um recurso computacional, possuindo,
geralmente, pelo menos uma memória, bem como, uma capacidade de processo. Objetos em tempo de
execução e componentes podem residir em nó. Graficamente, um Nó é representado pelo desenho de um
Cubo.
30 http://www.macoratti.net/vb_uml2.htm
60
TI para concursos
De comportamento:
Casos de uso
Iteração
Máquina de estados
De agrupamento:
Pacote
Modelo
Subsistema
Framework
De anotação:
Notas
De relacionamentos
Associação (bidirecional ou unidirecional)
Generalização
Composição
31 http://www.serpro.gov.br/imprensa/publicacoes/tematec/2001/ttec57
61
TI para concursos
Colaborativo: coordenação das atividades de um grupo de pessoas, trabalhando juntas para a
execução de um projeto, porém com regras e fluxos de baixo grau de estruturação.
Administrativo: processos administrativos com baixo valor agregado ao negócio e orientados para o
roteamento de formulários e de documentos com baixo grau de estruturação.
Ad-hoc: processos eventuais com regras e fluxos com baixo grau de estruturação.
Enquanto em um sistema tradicional o trâmite do processo necessita de intervenção humana, ou seja,
é passivo, em um sistema de Workflow isso é realizado de forma automática. Para tal, os sistemas de
Workflow, independente de sua classe, abrangem diversas funções, dentre as quais podemos destacar:
Seqüenciamento: controle da seqüência de execução das diversas atividades do processo;
Controle de Tempo: estabelecimento de limites de tempo para a realização das tarefas;
Roteamento: caminhos alternativos de execução das tarefas (seqüencial, paralelo e condicional);
Atribuição de Papéis: capacidade de rotear uma ação para um papel/perfil de usuário quando uma
condição for satisfeita ou um prazo se esgotar;
Monitoramento: facilidade de acompanhar a situação das tarefas e o trâmite das ações tomadas no
processo.
Os principais pontos positivos do uso dessas soluções são: o aumento de produtividade, a redução de
custo com papel, o aumento da segurança devido à eliminação do trâmite de documentos originais, a
redução do espaço de armazenamento, a mobilidade dos arquivos (contingência), a redução do tempo
de respostas para acesso às informações e a agilidade no tratamento de exceções (Workflow).
No que diz respeito às dificuldades encontradas, elas são referentes a barreiras culturais, à exigência
de mudança comportamental dos usuários que não dispõem mais do papel, à falta de sistematização e
padronização dos procedimentos da corporação e ao receio do desemprego, principalmente com a
implantação de aplicações de Workflow.
A utilização da tecnologia de Workflow deve ser considerada na implantação de sistemas tipicamente
processuais, cujo trâmite do processo possa ser automatizado, onde haja necessidade de controle do
tempo de execução das tarefas e com diversas pessoas participando do processo.
O Workflow evoluiu de sistemas que implementavam fluxos de documentos, para funcionar também
como integrador. Além disso, existe uma tendência crescente em se utilizar a Web para a entrada de
formulários, a distribuição de documentos e o envio de mensagens de alerta por e-mails. Na Internet,
onde mecanismos adicionais de segurança são preponderantes, surge a necessidade do uso de
criptografia e certificação digital para a execução de determinadas funções do fluxo do processo.
O Gerenciamento Eletrônico de Documentos está convergindo para Gerenciamento de Conteúdo
Corporativo (Enterprise Content Management), devendo gerir não apenas os documentos da empresa
como também os conteúdos provenientes de sistemas legados, bancos de dados, sistemas de imagem,
COLD, DM e qualquer outro arquivo digital, através de uma interface única baseada em browser.
5.3.1 Exercícios
63. (ICMS-SP 2009) A tecnologia de armazenamento de relatórios em discos óticos (COLD) envolvida no GED é
63
tratada como sinônimo de
(a) DI – Document Imaging.
(b) DM – Document Management.
(c) FP – Forms Management.
xx
(d) ERM – Enterprise Report Management.
(e) RIM – Records and Information Management.
64
64. (ICMS-SP 2009) Workflow é uma tecnologia aplicada no GED que está diretamente envolvida com
(a) KM.
xx
(b) BPM.
(c) ERP.
(d) CRM.
(e) SCM.
62
TI para concursos
5.4.1 Serviço
Um serviço, do ponto de vista da arquitetura SOA, é uma função de um sistema computacional que é
disponibilizado para outro sistema. Um serviço deve funcionar de forma independente do estado de
outros serviços, exceto nos casos de serviços compostos (composite services), e deve possuir uma
interface bem definida. Normalmente, a comunicação entre o sistema cliente e aquele que disponibiliza
o serviço é realizada através de web services.
5.4.2 Processos
A Arquitetura Orientada a Serviços pode ser bem representada a partir do seguinte processo, chamado
de "find-bind-execute paradigm" o que significa aproximadamente paradigma de "procura-consolida-
executa". Tal conceito é análogo a "Ciclo de Deming" aplicado aos serviços, que define o ciclo que
envolve o planejamento, a execução, o monitoramento e a tomada de ação pró-ativa para a melhoria
da qualidade.
Esquema adaptado do paradigma "find-bind-execute", tecnicamente falando, o processo preconiza que
os provedores de serviços registrem informações em um registro central, com suas características,
indicadores, e aspectos relevantes às tomadas de decisões. O registro é utilizado pelo cliente para
determinar as características dos serviços necessários, e se o mesmo estiver disponível no registro
central, como por exemplo por um catálogo de serviços, o cliente poderá utilizá-lo, sendo este
oficializado através de um contrato que enderece este serviço.
5.4.3 Tecnologia
O termo "Service-Oriented Architecture" (SOA) ou Arquitetura Orientada a Serviços expressa um
conceito no qual aplicativos ou rotinas são disponibilizadas como serviços em uma rede de
computadores (Internet ou Intranets) de forma independente e se comunicando através de padrões
abertos. A maior parte das implementações de SOA se utilizam de Web services (SOAP , REST e
WSDL). Entretanto, uma implementação de SOA pode se utilizar de qualquer tecnologia padronizada
baseada em web.
32 http://pt.wikipedia.org/wiki/Service-oriented_architecture
63
TI para concursos
65
TI para concursos
Pode-se definir, resumidamente, o web service como sendo um serviço de software disponibilizado na
Internet, descrito com um arquivo WSDL, registrado via UDDI, acessado utilizando SOAP e com dados
representados em XML sendo transmitidos via HTTP.
A disseminação no uso de web services nos últimos anos incentivou o mercado a oferecer uma grande
variedade de ferramentas e aplicações para prover suporte a essa tecnologia. Atualmente, as principais
plataformas para web services são:
Sun Microsystems, IBM, BEA, Apache, Systinet e Microsoft.
5.4.6 SOAP
Simple Object Access Protocol é um protocolo leve para troca de informações em um ambiente
descentralizado e distribuído que permite comunicação entre aplicações de forma simples e
completamente independente de sistema operacional, linguagem de programação ou plataforma. É o
protocolo de comunicação para os Web Services.
A comunicação é realizada por meio de trocas de mensagens, transmitidas em formato XML, incluindo
os parâmetros usados nas chamadas, bem como os dados de resultados. Também pode ser utilizado
para invocar, publicar e localizar web services no registro UDDI.
Parte da sua especificação é composta por um conjunto de regras de como utilizar o XML para
representar os dados. Outra parte define o formato de mensagens, convenções para representar as
chamadas de procedimento remoto (RPC – Remote Procedure Calls) utilizando o SOAP, e associações
ao protocolo HTTP. O protocolo HTTP é o único protocolo padronizado pelo SOAP, mas existem
algumas implementações que suportam outros protocolos como SMTP, TCP/IP, FTP e etc.
Uma mensagem SOAP é um fragmento XML bem formado, encapsulado por um par de elementos
SOAP. A mensagem SOAP consiste dos seguintes elementos:
Envelope toda mensagem SOAP deve contê-lo. é o elemento raiz do do
cumento XML. Define o início e o fim das mensagens;
Header é um cabeçalho opcional. Ele carrega informações adicionais, como
exemplo, se a mensagem deve ser processada por um nó intermediário.
Quando utilizado, o Header deve ser o primeiro elemento do envelope;
Body é obrigatório e contém o payload, os dados em XML a serem
transportados. O elemento Body possui um campo opcional Fault, usado
para car-regar mensagens de status e erros retornadas pelos ”nós”ao pro
cessarem a mensagem;
5.4.7 WSDL
O WSDL (Web Services Description Language) é uma linguagem baseada em XML, utilizada para
descrever um web service. Um web service deve definir todas as suas interfaces, operações,
esquemas de codificação, o conteúdo das mensagens, onde o serviço está disponível e quais os
protocolos de comunicação são usados para conversar com o serviço e entre outros neste documento.
Um documento WSDL define um XML Schema para descrever um web service.
A descrição de um serviço consiste de duas partes: definição de implementação do serviço e definição
da interface do serviço. A separação entre as duas camadas permite que elas sejam utilizadas
separadamente.
A parte de definição de interface do serviço descreve o web service, incluindo métodos que são
invocados e parâmetros que são enviados. A parte de definição de implementação de serviços
descreve como uma interface de serviço é im-plementada por um provedor: onde o serviço está
instalado e como pode ser acessado. As descrições dos elementos das duas partes:
Binding descreve protocolos, formato de data, segurança e outros atributos para uma interface
(portType) em particular;
Porttype informa elementos de operações do web service;
Message define entrada e saída de dados referentes a operações;
Type define tipos de dados complexos em uma mensagem;
Service contém uma coleção de elementos port com elementos binding;
Port é a combinação de um binding com endereço de rede, fornecendo o endereço alvo para a
comunicação dos serviços.
Tão logo o cliente tenha acesso à descrição do serviço a ser utilizado, a implementação do Web
Service pode ser feita em qualquer linguagem de pro-gramação. Normalmente são utilizadas linguagem
construídas para interação com a Web, como exemplo Java Servlets ou ASP, que, em seguida,
chamam um outro programa ou objeto.
Basicamente, quando o cliente deseja enviar uma mensagem para um deter-minado web service, ele
obtém a descrição do serviço (através da localização do respectivo documento WSDL), e em seguida
constrói a mensagem, passando os tipos de dados corretos (parâmetros, etc) de acordo com a
definição encontrada no documento. As duas partes envolvidas em uma interação web service pre-
cisam ter acesso à mesma descrição WSDL para conseguirem entender uma à outra. Em seguida, a
mensagem é enviada para o endereço onde o serviço está localizado, a fim de que possa ser
processada. O web service, quando recebe esta mensagem valida-a conforme as informações contidas
no documento WSDL. A partir de então, o serviço remoto sabe como tratar a mensagem, sabe como
processá-la (possivelmente enviando-a para outro programa) e como montar a resposta ao cliente.
5.4.8 UDDI
Para que um serviço seja utilizado é necessário que o cliente consiga localizá-lo, e essa localização
pode ser feita por meio do UDDI (Universal Description, Discovery and Integration), que é uma
especificação técnica para descrever, descobrir e publicar web services.
Uma implementação de UDDI corresponde a um registro web service, que provê um mecanismo para
busca e publicação de web services. Um registro UDDI contém informações categorizadas sobre os
serviços e as funcionalidades que eles oferecem, e permite a associação desses serviços com suas
informações técnicas, geralmente definidas usando WSDL.
67
TI para concursos
O UDDI possui um componente central chamado UDDI Project, que ma-nipula um registro global e
público chamado business registry. A informação oferecida pelo bussines registry consiste de três
componentes: white pages, yel-low pages e green pages.
A informação fornecida por um registro UDDI pode ser comparada à uma lista telefônica. As páginas
brancas (white pages), fornecem informações tais como nome da organização, contato e
identificadores. As páginas amarelas (yellow pages) são compostas por um índice de serviços e pro
dutos e as páginas verdes (green pages) contém informações a respeito de transações, descrições de
serviço e invocação de aplicações.
As informações contidas em arquivos de descrição de serviço (WSDL) com-pletam aquelas que estão
no registro. No entanto, UDDI não fornece suporte a vários tipos de descrição de serviço, mas não
suporta a criação de descrições WSDL de forma direta.
Uma descrição WSDL completa consiste da combinação dos documentos de interface e de
implementação de serviço. A primeira é publicada no registro UDDI como businessservice e a segunda
como tmodel.
5.4.9 Segurança
A segurança no envio de mensagens SOAP é um tópico importante. Em um nível mais baixo,
mensagens SOAP podem ser trocadas pela rede utilizando HTTPS ao invés de HTTP. Como HTTPS
utiliza SSL no seu transporte, fica garantida a proteção contra possíveis intervenções. Além disso, o
cliente e servidor podem verificar cada um suas respectivas identidades.
Embora HTTPS resolva o problema de proteção das mensagens contra possíveis invasores, este não
ajuda muito quando se necessita da segurança necessária para a autenticação de usuários de web
services específicos. Estes serviços irão fornecer algum tipo de combinação de usuário/senha durante
a fase inicial de registro no serviço e então esta será utilizada para acessos futuros. Não há ainda um
padrão de autenticação para Web services, mas pode utilizar os firewalls, VPNs, NTFS, produtos de
single-in para oferecer a autenticação e autorização de usuários.
5.4.10 Exercícios
65. (ICMS-SP 2009) Uma vantagem que o Web Service oferece
I. em relação à empresa que desenvolve uma DLL é que não precisa distribuí-lo para todos os clientes, pois
estará armazenado em um único lugar de onde será acessado.
II. é o acesso a ele, sempre por meio de http, mas internamente existe uma string XML que está empacotada
em um protocolo SOAP (Simple Object Access Protocol).
III. é ser transparente para o Firewall de uma empresa, pois, como é uma string XML, é interpretado como
um arquivo "texto", não precisando pedir autorização do Firewall para entrar.
65
Está correto o que consta em
xx
(a) I, II e III.
(b) I e II, apenas.
(c) I e III, apenas.
(d) II e III, apenas.
(e) II, apenas.
66
66. (ICMS-SP 2009) Para uma Web Service síncrona, quem chamou a função
(a) deve esperar o retorno para prosseguir e, para uma Web Service assíncrona, não precisa esperar o
xx
retorno, podendo manter mais uma linha de execução no código.
(b) deve esperar o retorno para prosseguir e, para uma Web Service assíncrona, não precisa esperar o
retorno, não podendo manter mais uma linha de execução no código.
(c) não precisa esperar o retorno, podendo manter mais uma linha de execução no código e, para uma Web
Service assíncrona, deve esperar o retorno para prosseguir.
(d) não precisa esperar o retorno, não podendo manter mais uma linha de execução no código e, para uma
Web Service assíncrona, deve esperar o retorno para prosseguir.
(e) não precisa esperar o retorno, tal qual para uma Web Service assíncrona, porém, para a forma síncrona
pode manter mais uma linha de execução no código e para a forma assíncrona não pode.
68
TI para concursos
67. (ICMS-SP 2009) A Service-Oriented Architecture – SOA trata-se de
I. um conjunto de produtos para implementar aplicativos dinâmicos e ágeis, do tipo loosely couple.
II. uma meta a ser alcançada, ou seja, disponibilizar uma metodologia de implementação que usa padrões e
protocolos de linguagem específicos para execução de aplicativos.
III. soluções que não requerem uma renovação completa de tecnologia e de processo de negócios, que
devem ser incrementais e baseadas nos investimentos atuais.
IV. uma abordagem de design de sistemas que orientam como os recursos do TI serão integrados e quais
serviços serão expostos para o uso.
67
Está correto o que consta APENAS em
(a) I e II.
(b) I e IV.
xx
(c) III e IV.
(d) II e III.
(e) II e IV.
68. (ICMS-SP 2009) O Service-Oriented Architecture – SOA tem foco tanto nos negócios quanto em tecnologia
68
da informação, sendo que o SOA com foco em negócios normalmente inclui
(a) pessoas, processo e conectividade.
xx
(b) pessoas, processos e informações.
(c) reusabilidade, pessoas e processos.
(d) conectividade, processos e informações.
(e) conectividade, reusabilidade e informações.
33 http://pt.wikipedia.org/wiki/Portal_(internet)
69
TI para concursos
passaram a oferecer conteúdo para seus assinantes, na tentativa de ter algum diferencial, já que o
acesso discado era “commodity”.34
Existem quatro tipos de portais:
Portais Informativos - Portais que levam informações ao usuários;
Portais Colaborativos - Portais que habilitam as equipes de trabalho estabelecerem áreas de
projetos virtuais ou comunidades através de ferramentas de colaboração;
Portais Especialistas - Portais que conectam pessoas com base em suas experiências, interesses e
informações que precisam;
Portais do Conhecimento - Portais que combinam todas as características dos anteriores para
prover conteúdo personalizado com base no que cada usuário faz..
Um Portal Corporativo ou um Enterprise Information Portal é um conceito para um website que serve
como interface ou canal único para a informação de uma companhia e sua base de conhecimento para
seus colaboradores e, possivelmente, para clientes, parceiros de negócios e também para o público em
geral.
Para se classificar um software como Portal Corporativo é necessário ter:
Access/search (poderosos sistemas de busca e indexação);
Categorization (categorização do conhecimento);
Collaboration (aplicações para colaboração);
Personalization (cada usuário é um usuário diferente);
Expertise and profiling (perfis de acordo com competências);
Application integration (integração com demais aplicações);
Security (segurança para todas as aplicações e login único).
Outra característica muito comum em um Portal Corporativo, são os Portlets ou Gadgets, que são
utilizados para integração de aplicações ou para personalização. Cada Portlet pode ser um “pedaço” de
página e nele é possível aplicar configurações de segurança, personalização, etc. Colaboração é a
palavra de ordem em Intranets e Portais Corporativos.
Um Portal Colaborativo é um portal corporativo com forte exploração de recursos colaborativos, ou
seja, de recursos que permitem a colaboração entre funcionários de uma ou mais empresas. Um
ambiente de colaboração deve permitir que pessoas que não se conheçam e que mesmo vivam em
países diferentes possam trabalhar de forma colaborativa usufruindo de recursos do portal colaborativo.
Portlets de Colaboração geralmente estão disponíveis em boas ferramentas de gerenciamento de
Intranets e Portais Corporativos. Os mais comuns são: enquetes, forums, chats, workplaces, wikis,
dentre outros. Também softwares sociais e comunidades virtuais contribuem para a colaboração
corporativa.
Os softwares de portais corporativos devem fornecer soluções colaborativas e permitir a integração de
aplicativos corporativos que promovam e construam a colaboração corporativa. Um portal corporativo
pode ser considerado um portal colaborativo quando o uso de seus recursos colaborativos supera o
uso do conteúdo e páginas de conteúdo. O módulo de gerenciamento de conteúdo ou mesmo o
gerenciador de conteúdo pode contribuir na produção de conteúdo colaborativo ou pelo menos suportar
a colaboração através do gerenciamento de conteúdo aliado aos portlets (componentes) colaborativos.
5.6 Exercícios
69. (ICMS-SP 2009) As ferramentas de modelagem de análise, que utilizam a notação UML, fornecem
69
capacidade de desenvolver modelos baseados em
(a) cenários, fluxos e dados.
(b) cenários, classes e dados.
xx
(c) cenários, classes e objetos.
(d) classes, fluxos e objetos.
(e) classes, fluxos e dados.
34 http://www.portalcolaborativo.com.br/midias-sociais/home/comunidades-em-portais.html
70
TI para concursos
70. (ICMS-SP 2009) No bloco de back-office da arquitetura de sistema encontram-se os pacotes integrados de
gestão empresarial, cujos dados são armazenados nas formas transacionais, com ênfase na integração de
70
processos, identificados pela sigla
(a) CRM.
(b) SAF.
(c) PRM.
(d) SCM.
xx
(e) ERP.
71. (ICMS-SP 2009) A área de BI – Business Intelligence está diretamente envolvida com os projetos de
71
implementação das aplicações de
(a) B2B, B2C e BSC.
(b) EAI, B2B e B2C.
(c) EAI, CRM e ERP.
xx
(d) CI, KMS e BSC.
(e) CRM, PRM e ERP.
72. (ICMS-SP 2009) A utilização de ferramentas de groupware e de workflow, cujas informações gerais são
apresentadas sob a forma de textos, memorandos, gráficos, e-mails, boletins informativos, páginas Web e
72
arquivos multimídia, caracterizam o tipo de portal de
(a) informações empresariais.
(b) suporte à decisão.
(c) especialista.
(d) conhecimento.
xx
(e) cooperação.
73. (ICMS-SP 2009) As empresas que implementam portais corporativos por meio dos quais estabelecem
relacionamentos de negócios, com um certo nível de acoplamento eletrônico entre os seus sistemas de
73
compras, vendas, logística, distribuição e outros, adotam uma forma de e-Business conhecida por
(a) B2C.
(b) B2G.
xx
(c) B2B.
(d) C2B.
(e) C2C.
74
74. (FCC – TRT – SP/2008 - Analista) Na UML, a multiplicidade
(a) é aplicada aos atributos, somente.
(b) aplicada a uma classe é o número de instâncias que esta pode ter.xx
(c) indica a quantidade de atributos herdados por uma classe-filha em uma hierarquia de classes.
(d) aplicada nas associações entre classes indica o número de atributos comuns às classes envolvidas.
(e) aplicada a uma classe concreta é o número de operações que esta pode ter.
75. Dos diagramas definidos na UML 2.0, é aplicado na modelagem do comportamento de uma interface, classe
75
ou colaboração, o Diagrama de
(a) Componente.
(b) Objeto.
(c) Estrutura Composta.
(d) Pacote.
(e) Estado de Máquina.xx
76
76. Em um diagrama de Caso de Uso são admitidos os relacionamentos
(a) dependência, somente.
(b) dependência e generalização, somente.
(c) dependência, generalização e associação.xx
(d) associação, somente.
(e) dependência e associação, somente.
77
77. Em um Caso de Uso, um relacionamento de inclusão é a estereotipação
(a) dos Casos de Uso aos quais se relaciona.
(b) de uma Generalização.
(c) de uma Extensão.
(d) de uma Agregação.
xx
(e) de um relacionamento de dependência.
78
78. No diagrama de casos de uso da UML, o relacionamento de generalização acontece entre
(a) atores, somente.
(b) casos de uso, somente.
(c) casos de uso e entre atores.xx
(d) casos de uso e atores, somente.
(e) casos de uso incluídos e estendidos, somente.
71
TI para concursos
79
79. Um diagrama de objetos
(a) tem a mesma função que um diagrama de atividades diferenciando deste apenas na representação
gráfica.
(b) capta um conjunto de abstrações como um grupo de interesse e em tal contexto expõe sua semântica e
seus relacionamentos com outras abstrações existentes nesse grupo da mesma forma que em um
diagrama de classes
xx
(c) exibe um único conjunto de objetos relacionados uns com os outros em um determinado momento.
(d) mostra a seqüência de execução de atividades entre objetos relacionados, no tempo, e a duração de
cada objeto por meio de linhas de vida.
(e) exibe diversos conjuntos de objetos relacionados uns com os outros em um determinado momento.
80. Uma propriedade, atributo ou operação representada no diagrama de classes da UML, que poderá ser vista e
usada apenas pela classe na qual foi declarada, bem como pelas suas classes descendentes, deve ser
80
definida com visibilidade descrita por meio da palavra-chave
(a) package.
(b) public.
(c) private.
xx
(d) protected.
(e) local.
81. A representação gráfica de um diagrama de seqüências da UML é baseada em
I. uma dimensão horizontal que representa as mensagens trocadas no decorrer de um tempo de vida.
II. uma dimensão vertical que representa os objetos participantes das interações.
III. mensagens que correspondem a chamadas de serviços ou de operações dos objetos.
IV. objetos representados por retângulos alinhados no topo do diagrama, dos quais partem as linhas de vida
destes objetos.
81
Está correto o que consta em
(a) I, II, III e IV.
(b) I, II e IV, apenas.
(c) I, II e III, apenas.
xx
(d) III e IV, apenas.
(e) I e II, apenas.
82. Um cubo, graficamente na UML, é um elemento físico existente em tempo de execução que representa um
recurso computacional com pelo menos alguma memória, e, freqüentemente, com capacidade de
82
processamento. Trata-se de
(a) pacote.
(b) nó.xx
(c) interface.
(d) objeto.
(e) nota.
83. Na UML um nó é um elemento físico que existe em tempo de execução e representa um recurso
83
computacional. Graficamente, ele é representado por
(a) um losango.
(b) um cubo.xx
(c) um quadrado.
(d) uma seta vasada (triângulo).
(e) uma elipse.
84. A identificação do documento XML, como uma mensagem SOAP, está contida no elemento da estrutura
84
SOAP denominado
(a) root.
(b) body.
(c) envelope.xx
(d) fault.
(e) header.
85. NÃO é uma informação requerida para invocar um serviço de Web e encapsulada pelo WSDL na forma de
85
um documento XML:
(a) O local do serviço.
(b) As operações que o serviço apoia.
(c) Os parâmetros que o serviço espera.
(d) Os detalhes das mensagens do serviço.
(e) Os meios para publicar e localizar o serviço.xx
72
TI para concursos
6 Banco de Dados
6.1 Conceitos básicos
Dentre diversas definições, dado é tudo que pode ser processado e as informações são dados que
descrevem um domínio físico ou abstrato. Registros são informações produzidas como subprodutos de
35
atividades comerciais ou transações e retidas em virtude do seu valor.
Entidade é qualquer coisa do mundo real, abstrata ou concreta, na qual se deseja guardar informações.
Atributo é tudo o que se pode relacionar como propriedade da entidade. Domínio é o conjunto de
valores possíveis do atributo. Em banco de dados, fisicamente, entidades são tabelas, atributos são as
colunas e domínio é o tipo de dado contido na coluna.
Um atributo é dito obrigatório quando não puder ter seu valor omitido. Ele é identificador quando for
capaz de identificar uma linha única da tabela, caso em que é chamado de chave candidata. Uma
tabela deve possuir pelo menos uma chave candidata para poder ser gerenciada, caso em que a
coluna será chamada de chave primária. Se houver mais do que uma chave candidata, uma deverá ser
escolhida para se a chave primária, enquanto que as outras serão chamadas de chaves alternativas.
Bancos de dados (ou bases de dados) são conjuntos de registros dispostos em estrutura regular que
possibilita a reorganização dos mesmos e produção de informação, usualmente mantido e acessado
36
por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD).
Modelo de dados é forma como os dados são armazenados, que pode determinar a forma como as
informações podem ser processadas.
O modelo plano ou tabular consiste de tabelas, que são matrizes simples, bidimensionais, compostas
por elementos de dados: caracteres, números inteiros, reais etc. Este modelo plano é a base das
planilhas eletrônicas.
O modelo em rede permite que várias tabelas sejam usadas simultaneamente através do uso de
apontadores (ou referências). Algumas colunas contêm apontadores para outras tabelas ao invés de
dados. Assim, as tabelas são ligadas por referências, o que pode ser visto como uma rede. Uma
variação particular deste modelo em rede, o modelo hierárquico, limita as relações a uma estrutura
semelhante a uma árvore (hierarquia - tronco, galhos), ao invés do modelo mais geral direcionado por
grafos.
35 http://pt.wikipedia.org/wiki/Informa%C3%A7%C3%A3o
36 http://pt.wikipedia.org/wiki/Banco_de_dados
73
TI para concursos
6.2.1 Normalização
A normalização de dados é uma série de passos que se segue no projeto de um banco de dados que
permite um armazenamento consistente e um eficiente acesso aos dados em um banco de dados
relacional. Esses passos reduzem a redundância de dados e as chances dos dados se tornarem
37
inconsistentes.
No entanto, muitos SGBDs relacionais não têm separação suficiente entre o projeto lógico da base de
dados e a implementação física do banco de dados, e isso tem como conseqüência que as consultas
feitas a um banco de dados totalmente normalizado têm um mau desempenho. Nestes casos, usa-se
por vezes a desnormalização para melhorar o desempenho, com o custo de menores garantias de
consistência.
Dizemos que duas colunas de uma tabela têm dependência funcional quando a valor de uma determina
o valor da outra. Por exemplo, uma coluna com o número de matrícula e outra com o nome de um
aluno. Um número de matrícula só pode corresponder a uma aluno, portanto há dependência funcional
entre estas duas colunas.
Chamamos de chave a um conjunto de colunas que identifica unicamente cada linha da tabela. No
exemplo anterior, o número de matrícula do aluno é campo chave da tabela, supondo não poder haver
uma pessoa com dois números de matrícula. Em uma tabela contendo o número de matrícula do aluno,
o código da disciplina, a nota e frequência do aluno, as duas primeiras colunas formam uma chave da
tabela.
Se nossa tabela de exemplo contiver a coluna CPF e RG do aluno, teremos três números que
identificam de forma única nosso aluno, três chaves. Dizemos que o número de matrícula, o RG e o
CPF são chaves candidatas. Se escolhermos uma delas para identificar o aluno, esta será chamada de
chave primária.
Tirando as chaves, os demais campos são chamados de descritores.
Ao imprimir a lista de notas finais dos alunos, podemos ter:
Núm Matrícula Nome Núm Disc Disciplina Prova 1 Prova 2 Média Frequência
123456 Funalo de Tal 12 Matemática 5,0 7,0 6,0 95%
123456 Funalo de Tal 13 Português 8,0 9,0 8,5 100%
234567 Cicrano da Silva 12 Matemática 6,0 9,0 7,5 80%
234567 Cicrano da Silva 13 Português 3,0 8,0 5,5 70%
A chave da tabela é composta das colunas Núm Matrícula e Núm Disc. Dizemos que há dependência
parcial entre o nome a uma das colunas chave, entre o código e o nome da disciplina também.
Poderíamos preferir imprimir a lista sem repetir o nome de cada aluno:
Núm Matrícula Nome Núm Disc Disciplina Prova 1 Prova 2 Média Frequência
123456 Funalo de Tal
12 Matemática 5,0 7,0 6,0 95%
Onde, para cada linha de um aluno, teríamos uma lista de disciplinas e notas. Dizemos que os campos
número de matrícula e nome possuem valores atômicos, um só valor por linha.
Os demais campos são chamados de multivalorados, pois são listas de valores para uma mesma linha
da tabela.
Diz-se que uma tabela num banco de dados relacional está numa certa forma normal se satisfaz certas
condições. Considera-se que as bases de dados estão normalizadas se aderirem à terceira forma
normal.
Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela, sejam atômicos
(um número é um átomo, enquanto uma lista ou um conjunto não o são). A normalização elimina grupos
repetidos pondo-os cada um em uma tabela separada, conectando-os com uma chave primária ou
estrangeira. Por exemplo, pessoas têm diversos números de telefones. Uma tabela conterá as pessoas e
outra tabela os telefones, ligadas pelo código da pessoa.
37 http://pt.wikipedia.org/wiki/Normaliza%C3%A7%C3%A3o_de_dados
74
TI para concursos
Segunda Forma Normal (ou 2FN) requer que não haja dependência funcional não-trivial de um atributo que
não seja a chave, em parte da chave candidata. Por exemplo, uma tabela de pedidos com o código do
pedido, chave primária, código do produto, chave estrangeira, e descrição do produto, campo dependente
funcional do código do produto, que não é chave primária. O correto é levar a descrição e código do produto
para outra tabela e deixar somente o código do produto na tabela de pedidos.
Terceira Forma Normal (ou 3FN) requer não haver dependências funcionais não-triviais de atributos que
não sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata. Por exemplo, uma
coluna preço total, que é resultado do produto do valor da coluna quantidade pelo preço unitário e não
depende do código do pedido, chave primária. A coluna preço total deve ser eliminada, sendo o valor
calculado quando for necessário em relatórios.
Forma Normal de Boyce-Codd (ou BCNF) requer que não exista nenhuma dependência funcional não-trivial
de atributos em algo mais do que um superconjunto de uma chave candidata. Neste estágio, todos os
atributos são dependentes de uma chave, de uma chave inteira e de nada mais que uma chave (excluindo
dependências triviais, como A->A).
Quarta Forma Normal (ou 3FN) Uma relação está na 4ª forma normal, se está na Boyce-Codd, e se não
existem dependências multivalor
Forma Normal (ou 3FN) Uma relação está na 5ª forma normal, se está na 4ª FN, e se não existem
dependências de junção.
As quarta e quinta formas normais são raras e difíceis de detectar.
Frequentemente considera-se que uma relação na 3ª forma normal ou Boyce-Codd está num nível de
normalização aceitável.
6.2.3 Relacionamentos
As tabelas podem ser relacionadas para compor uma consulta de informações, desde que a chave
primária de uma seja uma coluna da outra, onde será chamada de chave estrangeira. No modelo
lógico, este relacionamento pode se dar de três formas:
A chave primária da primeira é chave estrangeira na segunda tabela, de forma que podem haver
diversas ocorrências de registros da primeira tabela na segunda, mas para cada linha da segunda
tabela só existirá uma linha correspondente na primeira. Chamamos isto de cardinalidade um para
ene (1:n). Por exemplo, uma tabela de clientes com o código do cliente e o nome, pode ser
relacionada com uma outra tabela de telefones contendo o código do telefone, o código do cliente e
o número do telefone.
As chaves primárias de duas tabelas podem formar uma terceira tabela, criando uma nova entidade
chamada de relacionamento. Assim, diversas linhas da primeira tabela podem se relacionar com
outras linhas da segunda, em uma cardinalidade ene para eme (n:m). Por exemplo, uma tabela de
38 http://www.macoratti.net/cbmd1.htm
75
TI para concursos
disciplinas, com o código da matéria e nome, pode se relacionar com uma tabela de alunos, com
código do aluno e nome, através de uma terceira tabela de matrículas com os dois códigos. Um
aluno pode se matricular em diversas matérias e uma matéria pode ter vários alunos.
A chave primária de uma tabela pode compor duas colunas de uma tabela de relacionamento,
formando uma auto-relacionamento. Por exemplo, uma tabela de empregados pode se relacionar
com ela mesmo através de uma tabela de chefia, com o código do empregado na coluna
subordinado e de outro empregado, como chefe do primeiro, na coluna superior.
6.2.4 Transação
Conjunto de procedimentos que é executado num banco de dados, que para o usuário é visto como
uma única ação. A integridade de uma transação depende de 4 propriedades, conhecidas como ACID.
Atomicidade - Todas as ações que compõem a unidade de trabalho da transação devem ser
concluídas com sucesso, para que seja efetivada. Qualquer ação que constitui falha na unidade de
trabalho e a transação deve ser desfeita (rollback). Quando todas as ações são efetuadas com
sucesso, a transação pode ser efetivada (commit).
Consistência - Nenhuma operação do banco de dados de uma transação pode ser parcial. O status
de uma transação deve ser implementado na íntegra. Por exemplo, um pagamento de conta não
pode ser efetivado se o processo que debita o valor da conta corrente do usuário não for efetivado
antes, nem vice-versa.
Isolamento - Cada transação funciona completamente à parte de outras estações. Todas as
operações são parte de uma transação única. O principio é que nenhuma outra transação, operando
no mesmo sistema, pode interferir no funcionamento da transação corrente (é um mecanismo de
controle). Outras transações não podem visualizar os resultados parciais das operações de uma
transação em andamento.
Durabilidade - Os resultados de uma transação são permanentes e podem ser desfeitos somente
por uma transação subseqüente.
Controle de concorrência é um método usado para garantir que as transações são executadas de uma
forma segura e segue as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ação
de transações completadas com sucesso (committed transactions) seja perdida ao desfazer transações
abortadas (rollback). Uma transação é uma unidade que preserva consistência.
39 http://pt.wikipedia.org/wiki/Modelo_de_Entidades_e_Relacionamentos
76
TI para concursos
Relação n..n (lê-se muitos para muitos) - quando tabelas têm entre si relação n..n, é necessário criar
uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave
composta, ou seja, formada por diversos campos-chave de outras tabelas. A relação então se reduz
para uma relação 1..n, sendo que o lado n ficará com a nova tabela criada.
40 http://pt.wikipedia.org/wiki/Modelagem_multidimensional
41 http://msdn.microsoft.com/pt-br/library/cc518031.aspx
77
TI para concursos
A Microsoft desenvolveu uma ferramenta em SQL Server, o MDX (Multidimensional Expressions),
que permite que você consulte objetos multidimensionais, como cubos, e retorna conjuntos de
células multidimensionais que contêm dados do cubo.
42 http://pt.wikipedia.org/wiki/OLAP
78
TI para concursos
Bottom-up, onde o foco é em uma área por vez, com o crescimento gradual do DW. A vantagem é a
obtenção de resultados a intervalos mais curtos, garantindo muitas vezes sustentação ao projeto. A
desvantagem é a maior dificuldade de se consolidar informações entre as diversas áreas.
Uma alternativa às estratégias acima, denominada Middle-out, é aproveitar as vantagens de cada uma
por meio do desenvolvimento iterativo do DW:
O modelo de dados corporativo é o primeiro a ser desenvolvido e é o responsável pela integração dos
demais;
As primeiras tabelas da área de interesse escolhida são povoadas: primeiras análises;
Povoamento de mais tabelas com dados históricos;
Alguns dados passam a compor o DW, saindo da base operacional;
Surgimento dos data marts (a seguir nesta seção);
O ciclo se repete até que o DW esteja completo. Bases de produção contêm apenas dados operacionais.
Outro fator crítico para o sucesso de um DW é o gerenciamento do volume. Embora o conceito de DW
se aplique a grandes quantidades de dados, chegando atualmente a ordem de TB, sua capacidade não
é infinita, devendo ser utilizada sabiamente. Apenas dados relevantes deveriam constar do DW. Pode
ser que o horário de uma determinada transação seja importante quando o foco for o curto prazo, mas
que apenas um contexto de agrupamento seja suficiente para dados de cinco anos atrás. Questões
como essa devem ser consideradas durante o planejamento do DW, pois ajudam a dimensioná-lo.
A remoção de dados do DW é um assunto tratado com receio pelos DBAs e pelos analistas de negócio.
A rigor, tão importante quanto saber que dados armazenar, é saber quando e quais dados remover do
DW. Algumas estratégias são:
Resumir dados mais antigos;
Armazenar os dados antigos em meio mais barato (fita);
Remover os dados do DW.
Tais estratégias não são excludentes, podendo ser utilizadas em conjunto.
A importância da remoção de dados está em manter o DW o mais enxuto possível, embora isso possa
parecer contraditório ao conceito de DW.
Com relação à granularidade, as bases de dados operacionais trabalham com o maior nível de detalhe
possível, ou seja, a maior granularidade. Já no DW pode haver diversos graus de agregação e resumo
dos dados. Por exemplo, os dados do ano corrente podem ser detalhados por item de pedidos, de um a
cinco anos, por total de cada pedido e, após isso, por total de pedidos por dia. A correta determinação
da granularidade exerce papel fundamental no planejamento de capacidade e desempenho do DW.
Ao contrário do que ocorre com as bases operacionais, o DW, por conter dados históricos, não
demanda alta taxa de atualização. Desse modo, pode ser atualizado a cada 24 horas ou até mesmo
uma vez por semana. Além disso, por sofrer poucas modificações, e de forma controlada (por
aplicações específicas para esse fim), seus relacionamentos podem ser implementados através de
entidades, embora isso não seja freqüente.
Data Marts (DM), são bancos de dados multidimensionais específicos por área de negócio para
realização de análises. Alguns conceitos sobre Data Marts não estão muito bem claros para o mercado.
79
TI para concursos
Um DW construído iterativamente possui porções agrupadas por segmento de negócio, região ou
qualquer outra forma que seja adequada à empresa. Essas porções alimentam os Data Marts, que
podem ser então consultados por ferramentas de análise.
6.5.1 ETL
Extract, Transform and Load (Extração, Transformação e Carga) são ferramentas de software cuja
função é a extração de dados de diversos sistemas, transformação desses dados conforme regras de
negócios e carga dos dados em um data mart ou um data warehouse. É considerada uma das fases
mais críticas do Data Warehouse e/ou Data Mart.
Os projetos de data warehouse consolidam dados de diferentes fontes. A maioria dessas fontes tendem
a ser bancos de dados relacionais ou flat files (texto plano), mas podem existir outras fontes. Um
sistema ETL tem que ser capaz de se comunicar com as bases de dados e ler diversos formatos de
arquivos utilizados por toda a organização. Essa pode ser uma tarefa não trivial, e muitas fontes de
dados podem não ser acessadas muito facilmente.
Existem ferramentas ETL, mas ETL não são ferramentas, mas sim uma metodologia.
6.6.1 SQL
Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de
pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das
características originais do SQL foram inspiradas na álgebra relacional.43
Uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. Padronizado
pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de
sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma
para plataforma sem mudanças estruturais principais.
O padrão do SQL (ANSI) utiliza operadores, funções de agregação e comandos, que dividem-se em
cinco subconjuntos. Os comandos podem ser escritos e executados por linhas de comando dentro de
algum aplicativo do próprio gerenciador de banco de dados, por lotes de comandos definidos dentro do
banco de dados (procedures) ou lotes de comandos por qualquer aplicativo com conexão com o banco
de dados.
A Microsoft oferece o MS SQL Server e a Oracle seu gerenciador de banco de dados de mesmo nome
obedecendo aos padrões ANSI e adicionando mais recursos para administração eficiente de dados.
43 http://pt.wikipedia.org/wiki/SQL
80
TI para concursos
CREATE SYNONYM - cria sinônimos, nomes alternativos para os objetos
82
TI para concursos
PL/SQL (Procedural Language/SQL) é uma extensão da linguagem padrão SQL para o Oracle. Permite
que a manipulação de dados seja incluída em unidades de programas. Blocos de PL/SQL são
passados e processados por uma PL/SQL Engine que pode estar dentro de uma ferramenta Oracle ou
do Server. A PL/SQL Engine filtra os comandos SQL e manda individualmente o comando SQL para o
SQL Statement Executor no Oracle Server, que processa o PL/SQL com os dados retornados do
Server. É a linguagem básica para criar programas complexos e poderosos, não só no banco de dados,
mas também em diversas ferramentas Oracle.44
A unidade básica em PL/SQL é um bloco. Todos os programas em PL/SQL são compostos por blocos,
que podem estar localizados uns dentro dos outros. Geralmente, cada bloco efetua uma ação lógica no
programa. Um bloco tem basicamente a seguinte estrutura:
DECLARE
Seção (opcional) para declaração de variáveis,tipos e subprogramas locais.
BEGIN
Seção Executável, nesta seção ficam as instruções procedurais e SQL. Esta é a única seção do bloco que é indispensável e obrigatória.
EXCEPTION
Seção/Setor (opcional) onde ficam as instruções de tratamento de erro.
END
44 http://pt.wikipedia.org/wiki/PL/SQL
83
TI para concursos
6.7 Exercícios
86. (ICMS-SP 2009) A arquitetura ANSI/SPARC aplicada aos bancos de dados divide-os em níveis com as
seguintes características:
I. O que se ocupa do modo como os dados são fisicamente armazenados.
II. O que se ocupa do modo como os dados são vistos por usuários individuais.
III. Nível lógico de comunidade ou apenas lógico (mais abstrato que o físico e diferente da visão do usuário
individual).
86
Em um projeto arquitetural, os itens I, II e III são classificados, respectivamente, como níveis
(a) externo, conceitual e interno.
(b) externo, interno e conceitual.
xx
(c) interno, externo e conceitual.
(d) interno, conceitual e externo.
(e) conceitual, externo e interno.
87. (ICMS-SP 2009) A independência de dados física e a independência de dados lógica são possibilitadas de
87
forma ideal, respectivamente, por um
(a) ou mais mapeamentos conceituais/internos e por um ou mais mapeamentos internos/externos.
xx
(b) mapeamento conceitual/interno e por um ou mais mapeamentos externos/conceituais.
(c) mapeamento interno/externo e por um mapeamento conceitual/interno.
(d) ou mais mapeamentos internos/externos e por um mapeamento conceitual/interno.
(e) mapeamento conceitual/externo e por um mais mapeamentos conceituais/internos.
88. (ICMS-SP 2009) O procedimento em que se aplicam os ajustes apropriados na organização do sistema de
banco de dados, principalmente na ocorrência das mudanças de requisitos, visando à manutenção constante
88
do melhor desempenho para a empresa, é denominado
(a) schema.
(b) dumping.
(c) mapping.
(d) restart.
xx
(e) tuning.
89. (ICMS-SP 2009) No ambiente de desenvolvimento com SQL Server, uma sintaxe usada para definir objetos
multidimensionais, bem como para examinar e manipular dados multidimensionais, corresponde à
89
linguagem
xx
(a) MDX.
(b) RDL.
(c) WQL.
(d) XSL.
(e) SMDL.
90. (ICMS-SP 2009) Uma assinatura criada e administrada pelo Publicador, com SQL Server, trata-se de uma
90
assinatura
(a) pull.
xx
(b) push.
(c) anônima.
(d) de cliente.
(e) de servidor.
91. (ICMS-SP 2009) No SQL Server, uma única dimensão de banco de dados unida à tabela de fatos em uma
91
chave estrangeira diferente, para produzir várias dimensões de cubo, é denominada dimensão
(a) de fatos.
(b) de referência.
(c) compartilhada.
xx
(d) com função múltipla.
(e) muitos para muitos.
92
92. (ICMS-SP 2009) No formato de um bloco de dados do Oracle, um overhead é uma referência ao
(a) Header.
(b) Space free.
(c) Table directory.
(d) Space free e Row data, coletivamente.
xx
(e) Header, Table directory e Row directory, coletivamente.
93. (ICMS-SP 2009) NÃO é um conjunto de extensões do Oracle que contém todos os dados para uma estrutura
93
lógica de armazenamento dentro de uma tablespace:
(a) Automatic Undo Management.
xx
(b) Automatic Storage Management.
(c) Temporary Segments.
(d) Index Segments.
(e) Data Segments.
84
TI para concursos
94
94. (ICMS-SP 2009) Um database Oracle é constituído de um ou mais
(a) datafiles, estruturas físicas de armazenamento, e cada datafile consiste de um ou mais tablespaces,
unidades lógicas de armazenamento.
(b) datafiles, unidades lógicas de armazenamento, e cada datafile consiste de um ou mais tablespaces,
estruturas físicas de armazenamento.
(c) tablespaces, unidades lógicas de armazenamento, e cada tablespace consiste de um ou mais datafiles,
xx
estruturas físicas de armazenamento.
(d) tablespaces, estruturas físicas de armazenamento, e cada tablespace consiste de um ou mais datafiles,
unidades lógicas de armazenamento.
(e) tablespaces, unidades lógicas de armazenamento, e cada tablespace consiste de um ou mais datafiles,
também unidades lógicas de armazenamento.
95. (ICMS-SP 2009) Considere a seguinte regra de Codd, aplicada aos bancos de dados relacionais:
A descrição do banco de dados é representada no nível lógico da mesma forma que os dados ordinários,
permitindo que usuários autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares.
95
O sentido dessa regra diz respeito à
xx
(a) formação do catálogo.
(b) manipulação, por meio de visões.
(c) independência física.
(d) independência lógica.
(e) independência de distribuição.
96. (ICMS-SP 2009) Considere a afirmativa a seguir.
Uma tabela está na I , se e somente se ela estiver na II e os atributos não-chave forem III .
96
I, II e III podem ser corretamente preenchidos por:
(a) FNBC, 1FN, totalmente dependentes da totalidade da chave primária
(b) 3FN, 2FN, independentes da chave primária
(c) 3FN, 1FN, totalmente dependentes de parte da chave primária
(d) 2FN, 1FN, totalmente dependentes de parte da chave primária
xx
(e) 2FN, 1FN, totalmente dependentes da totalidade da chave primária
97. (ICMS-SP 2009) Considere a relação 1:N entre cliente e seus pedidos e a necessidade de exclusão de um
determinado cliente. A fim de manter informações históricas sobre pedidos já efetuados, independentemente
da existência do cliente que os fez, deseja-se que aqueles pedidos já efetuados pelo cliente excluído não
sejam apagados. As chaves primárias de ambas e em cada tabela são definidas como única. Em um banco
97
de dados relacional normalizado até a 3FN, o atendimento de tal requisito pode ser obtido por meio de
xx
(a) restrição de chave estrangeira on delete set null.
(b) colocação de uma constante (ex. ‘9999’) nas chaves primárias dos pedidos do cliente excluído.
(c) colocação de uma constante (ex. ‘9999’) nas chaves primárias de cada cliente excluído.
(d) não limpeza das chaves estrangeiras dos pedidos, existentes na tabela do cliente.
(e) restrição de chave estrangeira on delete cascade.
98. (ICMS-SP 2009) Em um banco de dados multidimensional, considere, por exemplo, que os dados podem ser
representados como um array de três dimensões, correspondendo a produtos, clientes e períodos de tempo.
Dessa forma, um determinado valor individual em uma célula pode representar a quantidade de um produto
98
vendido a um cliente em um dado momento. De acordo com essa consideração,
(a) produtos e clientes são variáveis independentes, e períodos de tempo e quantidade são variáveis
dependentes.
(b) produtos, clientes e períodos de tempo são variáveis dependentes, e quantidade é uma variável
independente.
(c) produtos, clientes e períodos de tempo são variáveis independentes, e quantidade é uma variável
xx
dependente.
(d) produtos são variáveis dependentes, e clientes, períodos de tempo e quantidade são variáveis
independentes.
(e) produtos são variáveis independentes, e clientes, períodos de tempo e quantidade são variáveis
dependentes.
99. (ICMS-SP 2009) As variáveis dimensionais aplicadas em um MOLAP estão frequentemente relacionadas em
hierarquias, que determinam meios para agregar dados das células a elas associados. Nesse contexto, os
operadores do processador que permitem percorrer (para acesso e não para criação) as hierarquias do nível
99
de agregação mais baixo para o mais alto executam a função
(a) snow flake.
(b) roll back.
(c) drill down.
(d) rolap.
xx
(e) drill up.
85
TI para concursos
100. (ICMS-SP 2009) Se uma empresa de grande porte, com alto volume de transações e informações, resolver
iniciar um projeto usando o conceito de Data Mart (DM) em vez de Data Warehouse (DW),
independentemente disso ser ou não a melhor opção, os fatores que a levam a tal decisão podem ser
justificados por:
I. Possibilidade de extrair e preparar os dados diretamente de fontes de interesse específicas, fornecendo
acesso mais rápido pela não necessidade de sincronia com dados de outras fontes.
II. Menor risco quanto ao sucesso do projeto.
III. Necessidade imediata de informações organizacionais integradas.
100
Está correto o que consta em
(a) I, apenas.
xx
(b) I e II, apenas.
(c) I e III, apenas.
(d) I, II e III.
(e) II e III, apenas.
101. O grande desafio do profissional de TI que gerencia qualquer processo é a análise dos fatos relacionados à
função que exerce em uma organização. Essa análise deve ser feita com as ferramentas e os dados
disponíveis, permitindo aos executivos e gerentes detectar as tendências e tomar as decisões com eficiência
e eficácia. Devido a essa necessidade, surgiu o conceito de Business Intelligence – “BI”.
101
Assinale a alternativa que indique duas características dos atuais sistemas de Business Intelligence.
(a) procurar relações de causa e efeito / extrair e integrar dados de múltiplas fontes.xx
(b) evitar a utilização de ferramentas automatizadas / desprezar dados contextualizados.
(c) extrair e integrar dados de múltiplas fontes / evitar a utilização de ferramentas automatizadas.
(d) desprezar dados contextualizados / trabalhar exclusivamente com fatos reais e não hipotéticos.
(e) trabalhar exclusivamente com fatos reais e não hipotéticos / procurar relações de causa e efeito.
102. (TRT FCC 2008) No âmbito do OLAP, gráficos de produtos são generalizações da estrutura de ......
apresentada por HRU (Harinarayan, Rajaraman e Ullman), na qual as dimensões podem ter hierarquias
102
associadas. Preenche corretamente a lacuna:
(a) tabela.
(b) roll-up.
(c) data mart.
xx
(d) hipercubo.
(e) drill-down.
103. Uma das funcionalidades do OLAP, utilizada para realizar operações de projeção nas dimensões,
compreende a extração de informações sumarizadas de um cubo de dados e extração de um "subcubo", a
103
partir do valor de uma dimensão. Trata-se de
(a) sorting.
(b) pivot and sorting.
(c) drill-up.
(d) selection.
xx
(e) slice and dice.
104
104. Para eliminar a condição de existência de valores não atômicos em uma coluna de tabela relacional,
(a) deve ser aplicada, no mínimo, a primeira Forma Normal.xx
(b) devem ser aplicadas, no mínimo, as quatorze regras de Codd.
(c) deve ser aplicada, no mínimo, a Forma Normal Boyce-Codd.
(d) deve ser aplicada, no mínimo, a terceira Forma Normal.
(e) devem ser aplicadas, no mínimo, as regras de integridade referencial.
105
105. Um banco de dados relacional normalizado significa que as relações que o compõe atendem à
(a) 1FN, no máximo.
xx
(b) 3FN, no mínimo.
(c) 2FN, mas não necessariamente 1FN.
(d) 2FN, no máximo.
(e) 3FN, mas não necessariamente a 1FN e 2FN.
106
106. Uma relação estará na Segunda Forma Normal (2FN) se ela estiver na 1FN e todos os atributos
(a) não chave forem dependentes não transitivos da chave primária.
xx
(b) não chave forem totalmente dependentes da chave primária.
(c) chave forem dependentes não transitivos das chaves estrangeiras.
(d) chave forem totalmente dependentes das chaves estrangeiras.
(e) chave forem totalmente dependentes dos atributos não chave.
107
107. Em um modelo E-R, o tipo de associação unária é aquela em que
(a) uma entidade se relaciona unicamente com uma outra entidade.
(b) uma entidade se relaciona com ela própria.xx
(c) uma entidade não se relaciona com qualquer outra entidade, nem com ela própria.
(d) um relacionamento é do tipo 1:1, somente.
(e) um relacionamento é do tipo 1:1 ou N:1.
86
TI para concursos
108. Sobre um modelo E-R, considere que uma chave primária
I. simples pode ser constituída de um atributo atômico ou de um atributo composto.
II. simples pode ser constituída de apenas um atributo atômico.
III. composta pode ser constituída de um atributo composto.
IV. composta pode ser constituída de dois ou mais atributos atômicos.
108
Está correto o que consta APENAS em
(a) III e IV.
(b) II e III.
(c) II e IV.
(d) I e II.
xx
(e) I e IV.
109. Um sistema de informação que fornece um arquivo para ser tratado pelo sistema objeto da modelagem,
109
utilizando DFD da análise estruturada, é caracterizado como
(a) fluxo de dados.
xx
(b) entidade externa.
(c) depósito de dados.
(d) processo funcional do sistema.
(e) processo do diagrama de contexto.
110
110. Na modelagem funcional
xx
(a) uma entidade externa pode enviar ou receber um fluxo de dados de uma função.
(b) uma função pode enviar, mas não receber um fluxo de dados de um depósito de dados.
(c) uma entidade externa representa a mesma coisa que uma entidade no modelo entidade relacionamento.
(d) uma entidade externa pode enviar, mas não receber um fluxo de dados de um depósito de dados.
(e) uma entidade externa pode receber, mas não enviar um fluxo de dados a um depósito de dados.
111. Quando dois conjuntos de dados são concatenados de acordo com uma determinada condição, representa o
111
resultado da operação relacional
(a) junção.xx
(b) união.
(c) restrição.
(d) projeção.
(e) intersecção.
112. Um comando SQL executa uma operação que exibe
I. certas colunas de uma relação, denominada subconjunto vertical.
II. todas as linhas que aparecem em ambas as relações.
III. apenas aquelas linhas que existem em ambos os conjuntos.
112
As definições acima correspondem, respectivamente, aos operadores relacionais
(a) união, projeção e intersecção.
(b) união, intersecção e projeção.
(c) intersecção, projeção e união.
xx
(d) projeção, união e intersecção.
(e) projeção, intersecção e união.
113
113. A linguagem PL/SQL, introduzida nos gerenciadores de banco de dados ORACLE,
(a) aumenta a capacidade não-procedural da SQL, oferecendo e combinando blocos de construtores
procedurais.xx
(b) constitui uma interface básica pela qual pode-se entrar e executar comandos SQL para manipulações
genéricas de um banco.
(c) trata-se de uma linguagem que identifica quais as informações necessárias e não como buscá-las.
(d) tem os seus comandos executados pelo executor de SQL do Kernel.
(e) tem os seus comandos enviados para serem processados pelo SGBD um por vez.
114. A linguagem PL/SQL é uma estrutura em blocos, compostos basicamente das partes declarativa, executável
114
e manipulação de exceções, as quais são, respectivamente, de uso
(a) opcional, para todas as partes.
(b) obrigatório, para todas as partes.
(c) opcional, obrigatório e obrigatório.
(d) obrigatório, obrigatório e opcional.
xx
(e) opcional, obrigatório e opcional.
115
115. Um bloco PL/SQL que está associado a um evento ocorrido no banco de dados Oracle é do tipo
(a) função.
xx
(b) gatilho.
(c) anônimo.
(d) procedimento.
(e) dinâmico.
87
TI para concursos
116. A estrutura lógica de armazenamento nas bases de dados Oracle é representada na seqüência hierárquica
116
de
(a) segmentos, blocos de dados e extensões.
(b) segmentos, extensões e blocos de dados.xx
(c) extensões, segmentos e blocos de dados.
(d) extensões, blocos de dados e segmentos.
(e) blocos de dados, segmentos e extensões.
117
117. Na estrutura lógica do Oracle NÃO estão contidos
(a) extents.
(b) data blocks.
xx
(c) data files.
(d) schemas.
(e) tablespaces.
118
118. Todos os dados de uma tabela Oracle são armazenados em extents de um
xx
(a) data segment.
(b) index segment.
(c) temporary segment.
(d) rollback segment.
(e) redlog segment.
119
119. Quando um banco de dados Oracle é iniciado, será alocado para os processos background
(a) um schema.
(b) um ou mais redo log files.
(c) um ou mais control files.
(d) uma tablespace.
xx
(e) uma área global de sistema.
120
120. As cláusulas do comando de consulta da linguagem SQL devem ser escritas na seqüência
(a) SELECT, HAVING, FROM, WHERE, GROUP BY e ORDER BY.
(b) SELECT, HAVING, FROM, WHERE, ORDER BY e GROUP BY.
(c) SELECT, FROM, WHERE, ORDER BY, HAVING e GROUP BY.
(d) SELECT, FROM, WHERE, GROUP BY, HAVING e ORDER BY.xx
(e) SELECT, FROM, WHERE, GROUP BY, ORDER BY e HAVING.
121. Para mostrar a composição de peças e respectivos componentes (peças são compostas de peças), em um
121
DER, usa-se
(a) o grau de relacionamento quaternário.
(b) a cardinalidade ternária.
(c) a entidade fraca.
(d) a entidade associativa.
xx
(e) o auto-relacionamento.
122
122. Um relacionamento pode ser representado graficamente no diagrama de Entidade-Relacionamento por
(a) uma elipse.
(b) um retângulo.
(c) um círculo.
xx
(d) um losango.
(e) números da cardinalidade.
123. Considere, as definições abaixo:
I. Especificação do número de ocorrências de um objeto que pode ser relacionado ao número de ocorrências
de outro objeto.
II. Especificação da participação (ou não) do relacionamento de um objeto em particular.
123
Na modelagem de dados estas definições pertencem, respectivamente, a
(a) grau e cardinalidade.
(b) cardinalidade e grau.
xx
(c) cardinalidade e modalidade.
(d) modalidade e cardinalidade.
(e) modalidade e grau.
124. Em um banco de dados relacional, a operação de exclusão sobre a tabela referenciada se propaga para
124
todas as chaves estrangeiras correspondentes quando usada a expressão SQL ANSI on delete
(a) set default.
(b) spread.
(c) propagate.
(d) cascade.xx
(e) set null.
88
TI para concursos
125. Uma transação executará qualquer operação somente depois que o gerenciador de banco de dados
125
conceder o bloqueio do dado por meio do
(a) gerenciador de arquivos.
(b) seletor de estratégia.
xx
(c) controlador de concorrência.
(d) gerenciador de recuperação.
(e) gerenciador de buffer.
89
TI para concursos
7 Programação de Sistemas
7.1 Lógica de Programação
O computador, como todo componente eletrônico, só entende sinais de carga elétrica sequenciadas,
um choquinho após o outro. Dividido em diversos tipos de componentes físicos que se comportam de
forma diferente ao estímulo elétrico, pode-se determinar a ação de um equipamento eletrônico
alterando-se o sequenciamento destas peças pela ação de chaves (componentes eletrônicos) que
desviam o fluxo de energia. Esta definição da sequência de chaves, que determina por onde e quando
a corrente elétrica vai passar resultando em um comportamento previsto do sistema elétrico, é
chamada de programação.
Os primeiros programadores definiam e alteravam estas chaves diretamente com fios em placas. A
evolução permitiu que a programação pudesse ser feita por sequenciamento lógico de números que
poderiam ser transferidos para os computadores através de cartões perfurados ou textos digitados que
alteravam o estado das chaves sem o programador ter que manusear o equipamento diretamente.
Programas pré-concebidos traduziam palavras (em inglês), textos inteligíveis, em comandos em
linguagem da máquina (números). Estes programas são os compiladores. Endereços de memória que
contém dados recebem nomes pelo programador (variáveis). Programar passou, então, a ser redigir um
texto obedecendo certas regras de sintaxe, submeter o texto a um compilador que faz a tradução para
a linguagem que a máquina consegue processar.
Por certo tempo, programação consistia em sequenciar comandos e atribuir “endereços” (números ou
índices), a eles. Para se repetir uma sequencia de comandos, ou seja, fazer uma iteração, utilizava-se
um comando para desviar o processamento para o endereço do primeiro comando da sequencia. Os
comandos eram basicamente: leia, armazene na variável, faça a conta, grave (na tela, disco ou
impressora) e desvie para o endereço tal, além do comando de condição SE (IF - se o valor for tanto,
pule para o endereço tal). Era a programação indexada. Tudo era controlado por números e o
programador tinha que pensar como máquina. Um exemplo, era a linguagem Basic:
10 CLS
20 INPUT “DIGITE UM VALOR PARA A: “ A
30 INPUT “DIGITE UM VALOR DIFERENTE PARA B “ B
40 IF A=B GOTO 30
50 IF A>B GOTO 80
60 PRINT “O VALOR A E´ MENOR DO QUE B”
70 GOTO 90
80 PRINT “O VALOR A E´ MAIOR DO QUE B”
90 PRINT “FIM DE PROCESSAMENTO”
Com a criação dos comandos do tipo declaração (statement): enquanto (while), repita-até que (repeat
until), caso (case) e para-faça (for do); o sequenciamento de comandos passou a apresentar o formato
de uma contrução lógica, dispensando a numeração das linhas de programação. Os comandos
passaram a ser agrupados em blocos, chamados de sub-rotinas, ou procedimentos (procedures e
functions), que recebem um nome e podem ser utilizados como novos comandos. Esta era a
programação estruturada, procedural ou procedimental. O próprio programa passa a ser visto como um
grande bloco formado por blocos menores e comandos. Por exemplo, um programa para calcular
fatorial em linguagem turbo pascal.
90
TI para concursos
Program Fatorial;
Var
Numero : integer;
Begin
repeat
Clrscr;
Write(‘Digite um número inteiro positivo (zero para terminar): ‘);
Readln(Numero);
If Numero>=0 then
Writeln(‘O fatorial de ‘, Numero, ‘ é ‘, Calcula_Fatorial(Numero))
Else
Writeln(‘Valor inválido’);
Until Numero=0;
Writeln(‘Fim de processamento.’);
End.
A grande revolução na arte da programação de computadores foi quando alguém percebeu que o
homem não deve pensar como máquina para escrever um programa, mas deve fazer o computador
comportar-se como gente e compreender comandos humanos. Criou-se uma técnica de raciocínio em
que o programa de computador podia ser visto como um objeto que se comporta como aquilo que
conhecemos na vida real.
Tem qualidades, aspectos, características ou, genericamente, atributos.
Tem comportamento. Pode ser móvel ou não, fazer coisas.
É formado por objetos menores (até o átomo, ou menor) que possuem também atributos e
comportamentos
Quando esta técnica se transformou em uma linguagem, criou-se a programação orientada a objetos.
Ela utiliza uma nova forma de fazer programas, não jogou fora todos os aspectos positivos da
programaçao procedimental e estruturada, mas evoluiu estes conceitos. Os procedimentos e funções
são chamados de métodos quando estão dentro de um objeto. As variáveis internas ao objeto são
chamadas de propriedades ou atributos.
O conjunto de valores das propriedades formam o estado do objeto. Mensagens são ações de
dispositivos externos (teclado, mouse, placa de rede, scanner, outros programas) ou de outros objetos
que provocam mudanças de estado. Algumas mudanças do estado do objeto podem determinar uma
situação em que algum método deve ser executado (ação). Por exemplo, um clique do mouse sobre
um objeto botão muda a propriedade “Clicado” de falso para verdadeiro. O seu novo estado pode
desencadear uma sequencia de comandos ou métodos. Mudanças de estado que fazem uma ação são
chamadas de eventos. Neste exemplo, o clique do mouse aciona um evento chamado “OnClick” (se
existir).
A partir disto, um programa deixou de ser um simples sequenciamento de comandos para ser uma
série de ações que provocam mudanças de estado que podem desencadear outras ações.
91
TI para concursos
De forma geral, define-se como numérico os valores que serão utilizados para cálculos algébricos. São
de tipo lógico as variáveis que assumem apenas dois estados, verdadeiro ou falso, ou equivalente (0 ou
1, v ou t, sim ou não etc). São alfanuméricas as variáveis que não são destinadas a cálculos, mas
somente operações de comparações, buscas, concatenações ou simples exibição. São de tipo
apontador, variáveis que armazenam endereços de memória.
Dependendo da linguagem de programação, as variáveis numéricas podem se subdividir em reais ou
inteiras, e também em outras variações destes dois tipos, como inteiro não negativo, monetário, inteiro
longo etc. O tipo alfanumérico também pode receber variações como memorando (texto), ou texto
formatado.
Existem também outros tipos de armazenamento de dados na memória, que são agrupamentos de
variáveis:
Vetor – conjunto de variáveis identificado por um nome e números inteiros positivos (começando em
zero) para cada elemento. A parte numérica do nome da variável fica entre parênteses ou colchetes
à direita do nome. Para se referir a uma posição do vetor, a parte numérica pode ser resultado de
uma operação matemática. Um vetor que utiliza mais do que um número (dimensões) para
identificar cada uma de suas posições (separados por vírgulas) é chamado de matriz.
Registro – grupo de variáveis de vários tipos, identificado por um nome. Cada variável dentro de um
registro é chamada de campo.
Lista – conjunto de registros ligados por apontadores, usado em conjunto de dados hierárquicos em
que a relação entre os dados não precisa ser representada em forma de matrizes, ou para
armazenar dados de uma tabela na memória para algum tratamento especial.
Fila – sequência de dados ordenados, em que o primeiro dado que entra na fila deve ser o primeiro
a sair (FIFO – First in first out ou LILO - Last in last out)
Deque – fila em que os elementos podem ser inseridos ou removidos de qualquer extremo.
Pilha – sequência de dados em que o último valor adicionado deve ser o primeiro a sair (LIFO - Last
in first out ou FILO - First in last out)
7.2.1 Objetos
Objeto é uma abstração do mundo real. Objetos de software são modelados de acordo com os objetos
do mundo real, ou seja, possuem estado e comportamento. Um objeto de software armazena seu
estado em variáveis e implementa seu comportamento com métodos. Estas variáveis e métodos são
formalmente chamados de variáveis de instância e métodos de instância a fim de distingui-los de
variáveis e métodos de classe.
As variáveis de um objeto fazem parte do seu núcleo (centro). Os métodos envolvem e escondem
(empacotam) o núcleo do objeto de outros componentes da aplicação. Empacotar as variáveis de um
92
TI para concursos
objeto sobre proteção de seus métodos é chamado de encapsulamento. O encapsulamento é utilizado
para esconder detalhes de implementação. Este é um dos princípios fundamentais da programação
orientada a objetos.
Às vezes, por razões de eficiência ou implementação, um objeto deseja expor algumas de suas
variáveis ou esconder alguns de seus métodos. Esta capacidade de controlar quais componentes
podem acessar seus métodos e suas variáveis é chamada de Controle de Acesso.
Cada objeto tem sua identidade, o que significa que dois objetos são distintos mesmo que eles
apresentem exatamente as mesmas características (atributos iguais). Esta identificação de objeto deve
ser única, uniforme e independente do conteúdo do objeto.
Em geral, os objetos possuem, pelo menos, dois métodos:
Construtor: define o comportamento no momento da criação de um objeto de uma classe;
Destrutor: define o comportamento no momento da destruição do objeto de uma classe.
Normalmente utilizado para liberar recurso (memória) do sistema.
7.2.2 Classe
Objetos podem apresentar métodos e atributos (propriedades) idênticos. Em relação a estes elementos
em comum, dizemos que eles pertencem a uma mesma classe. Na programação orientada a objeto,
classe é uma abstração, enquanto que, neste contexto, objeto é considerado um elemento fático.
Uma classe é um modelo, ou protótipo, que define as variáveis (estado) e os métodos (comportamento)
comuns a todos os objetos do mesmo tipo. Na classe são definidas as variáveis e implementados os
métodos. Os objetos são criados a partir de suas classes.
Dois botões na tela pertencem à classe botão. Espera-se deles que respondam ao clique do mouse,
costumam ser cinzas, em alto-relevo e ficam em baixo-relevo ao clicar.
Por outro ponto de vista, podemos dizer que uma classe botão, cinza, em alto-relevo, com determinado
comportamento ao clicar, pode ter duas instâncias na tela. Definidas as características de um tipo de
botão, ao criar (instanciar) um objeto, por uma instrução determina-se que ele fará parte da classe, e
isto fará com que ele herde todas as características de um botão típico. Depois de instanciado, ações
poderão alterar seu estado, como sua aparência e comportamento.
Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos
presentes no sistema de software. Cada classe determina o comportamento (métodos e eventos) e os
estados possíveis (valores dos atributos) de seus objetos, assim como o relacionamento com outros
objetos.
As classes não são diretamente suportadas em todas as linguagens de objetos, e não são necessárias
para que a linguagem seja orientada a objetos.
A classe define as características comuns e os objetos são instâncias dessa classe, com estado
próprio.
7.2.3 Persistência
Alguns objetos são criados, cumprem sua função e são destruidos logo em seguida. Outros objetos
continuam por tempo indeterminado e isto é chamado de persistência. Não faz sentido falar de
persistência de classes, somente de instâncias (objetos).
7.2.4 Métodos
Método é uma sub-rotina interna a um objeto, que pode ser executado por uma ação externa, isto é, ao
receber uma mensagem, ou por uma ação interna de um evento.
93
TI para concursos
7.2.5 Atributos
Os atributos são os elementos que definem a estrutura de uma classe. Os atributos também são
conhecidos como variáveis de classe, e podem ser divididos em dois tipos básicos: atributos de
instância e de classe.
Os valores dos atributos de instância determinam o estado de cada objeto. Um atributo de classe
possui um estado que é compartilhado por todos os objetos de uma classe. Atributos de classe podem
ser chamados também de atributos estáticos ou constantes.
7.2.6 Mensagens
Objetos modificam seu estado por meio do recebimentos de mensagens. Alguns métodos de um objeto
que recebe a mensagem precisam de informações, os parâmetros, para saber exatamente o que fazer.
Assim, três componentes fazem parte de uma mensagem:
o objeto para onde a mensagem é endereçada;
o nome do método a realizar;
parâmetro(s) necessários para realizar o método;
7.2.7 Herança
A herança é um mecanismo que permite criar novas classes a partir de classes já existentes,
aproveitando-se das características existentes na classe a ser extendida. Com a herança é possível
criar classes derivadas (sub-classes) a partir de classes bases (superclasses).
As subclasses herdam todas as características de suas superclasses, como suas variáveis (estado) e
seus métodos (comportamento). Entretanto, as subclasses não estão limitadas ao comportamento
herdado de sua super-classe. As subclasses podem adicionar variáveis e métodos a aqueles herdados.
As subclasses, também, podem redefinir (override) métodos herdados e oferecer implementações
especializadas para estes métodos. O conceito de herança pode ser aplicado para mais de um nível. A
árvore de herança, ou hierarquia de classe, pode ser tão profunda quanto necessário. Os métodos e
variáveis são herdados por meio dos níveis. Em geral, quanto mais baixa na hierarquia for a posição da
classe, mais específico é o seu comportamento.
Como benefícios do conceito de herança, podemos citar:
Programadores podem definir classes abstratas que determinam comportamentos genéricos.
Subclasses oferecem comportamentos especializados a partir de elementos básicos comuns,
oferecidos pela superclasse.
A utilização de herança promove o reuso e reaproveitamento de código existente, tornando a
manutenção do código mais eficiente.
A superclasse define e pode implementar parcialmente o comportamento de uma classe, mas a maioria
das informações da classe fica indefinida ou não é implementada.
A herança múltipla ocorre quando uma classe pode estender características de várias outras classes ao
mesmo tempo, ou seja, quando a subclasse possui mais de uma superclasse. Algumas linguagens
evitam utilizar este mecanismo, pois pode levar uma codificação confusa o que dificulta a manutenção
do código. A linguagem Java não suporta herança múltipla, apenas herança simples. Já a linguagem
C++ oferece suporte à herança múltipla.
Uma linguagem ao utilizar herança múltipla está sujeita a dois problemas: colisão de nomes (nomes
idênticos nas classes superiores) e herança repetida (classe herda de uma classe superior que herda
de uma classe comum);
7.2.8 Polimorfismo
Segundo a terminologia de orientação a objetos, polimorfismo significa que uma mesma mensagem
enviada a diferentes objetos resulta em um comportamento que é dependente da natureza do objeto
que está recebendo a mensagem. Ou seja, duas ou mais classes derivadas de uma mesma super-
classe podem invocar métodos que têm a mesma assinatura (nome, lista de parâmetros e retorno),
mas comportamentos distintos, especializado para cada classe derivada, usando para tanto uma
referência a um objeto do tipo superclasse.
A decisão sobre qual método deve ser selecionado, de acordo com o tipo da classe derivada, é tomada
em tempo de execução por meio do mecanismo de ligação tardia. No caso do polimorfismo, é
94
TI para concursos
necessário que os métodos tenham exatamente a mesma identificação, sendo utilizado o mecanismo
de redefinição de métodos.
Os benefícios do polimorfismo são: a clareza e manutenção do código, a divisão da complexidade e
aplicações flexíveis. Algumas linguagens promovem o polimorfismo principalmente por meio do uso de
classes abstratas e interfaces, como é o caso da linguagem Java.
7.2.9 Sobrecarga
A sobrecarga é um tipo de polimorfismo que permite a existência de vários métodos de mesmo nome,
porém com assinaturas levemente diferentes, ou seja, variando no número e tipo de argumentos e o
valor de retorno. Ficará a cargo de o compilador escolher de acordo com as listas de argumento os
procedimentos ou métodos a serem executados. Por exemplo:
public class Soma
{ public int Soma (int x, int y)
{return x+y;}
7.2.10 Interfaces
Interface é a relação de métodos, com seus parâmetros, das propriedades que podem ser acessados
por outros objetos e também pode incluir declarações de constantes.
Uma interface apresenta somente as definições de métodos, sem sua implementação. A classe que
implementa a interface deve implementar todos os métodos definidos na interface.
7.2.11 Pacotes
Para tornar as classes mais fáceis de serem encontradas e utilizadas, para evitar conflitos de nomes e
para controlar o acesso, pode-se agrupar classes relacionadas em pacotes (packages). Os pacotes
organizam as classes e as interfaces relacionadas. Cada pacote criado corresponde a um diretório, ou
seja, as classes e as interfaces de um mesmo pacote devem estar em um mesmo diretório.
A utilização de pacotes proporciona as seguintes vantagens:
Fica mais fácil para outros programadores determinar quais classes e interfaces estão relacionadas.
Os nomes das classes de um pacote não irão conflitar com nomes e classes de outros pacotes.
Pode-se permitir que classes dentro de um mesmo pacote tenham acesso irrestrito entre si, e
restringir o acesso por parte de classes definidas fora do pacote.
Apenas os membros (classe, variáveis e métodos) públicos são acessíveis fora do pacote onde foram
definidos.
45 http://pt.wikipedia.org/wiki/World_Wide_Web
95
TI para concursos
URI, um sistema que especifica como cada página de informação recebe um "endereço" único onde
pode ser encontrada.
HTTP, um protocolo que especifica como o navegador e servidor web comunicam entre si.
HTML, uma linguagem de marcação para codificar a informação de modo que possa ser exibida em
uma grande quantidade de dispositivos.
Desta forma, programar para Web é escrever páginas em HTML. Para isto, o programador pode
escrever um texto em HTML puro e gravar este arquivo em um servidor web. Estes textos são
chamados de páginas estáticas. Elas só mudam quando o programador alterar o arquivo.
Porém, o servidor web utilizado pode ter instalado programas que geram páginas HTML no momento
em que a requisição chega. Neste caso, o texto requisitado não é um texto HTML, mas é um código em
alguma linguagem de programação que, ao ser processado pelo servidor, gera um texto HTML dentro
das especificações da requisição. Estes textos são chamados de páginas dinâmicas. Estas páginas
permitem a interação com o usuário e com gerenciadores de bancos de dados, podendo gerar páginas
HTML diferentes a cada instante.
Assim, ao projetar um site, o programador decide se vai usar páginas estáticas, dinâmicas ou as duas.
<body>
texto,
imagem,
links,
...
</body>
</html>
De uma maneira geral o HTML é um poderoso recurso, sendo uma linguagem de marcação muito
simples e acessível voltada para a produção e compartilhamento de documentos e imagens.
As tags HTML não são sensíveis à maiúsculas ou minúsculas, portanto tanto faz escrever <HTML>,
<Html>, <html> ou <HtMl>.
As tags básicas de HTML, cuja presença é altamente recomendada nas páginas são:
46 http://pt.wikipedia.org/wiki/HTML
96
TI para concursos
<html>: define o início de um documento HTML e indica ao navegador que todo conteúdo posterior
deve ser tratado como uma série de códigos HTML.
<head>: define o cabeçalho de um documento HTML, que traz informações sobre o documento que
está sendo aberto.
<body>: define o conteúdo principal, o corpo do documento. Esta é a parte do documento HTML que
é exibida no navegador. No corpo podem-se definir propriedades comuns a toda a página, como cor
de fundo, margens, e outras formatações.
Dentro do cabeçalho podemos encontrar os seguintes comandos:
<title>: define o título da página, que é exibido na barra de título dos navegadores.
<style>: define formatação em CSS (Cascading Style Sheets), uma linguagem de estilo utilizada
para definir a apresentação de documentos escritos em HTML ou XML.
<script>: define programação de certas funções em página com scripts (códigos de programa) em
diversas linguagens web cliente, como Javascrip, Visual Basic Script, DHTML ou CSS.
Applets de Java
<link>: define ligações da página com outros arquivos como feeds, CSS, scripts etc.
<meta>: define propriedades da página, como codificação de caracteres, descrição da página, autor,
etc. São meta informações sobre documento. Tais campos são muitos usados por mecanismos de
busca (como o Google) para obterem mais informações sobre o documento, a fim de classificá-lo
melhor. Por exemplo, pode-se adicionar o código <meta name="description" content="descrição da
sua página" /> no documento HTML para indicar ao motor de busca que texto de descrição
apresentar junto com a ligação para o documento.
As tags <style> e <script> servem tanto para delimitar o espaço usados pelos códigos na página quanto
para invocar códigos existentes em outros arquivos externos.
Dentro do corpo podemos encontrar outras várias tags, como por exemplo:
<h1>, <h2>,... <h6>: cabeçalhos e títulos no documento em diversos tamanhos. (quanto menor for o
número, maior sera o tamanho da letra)
<p>: novo parágrafo.
<br>: quebra de linha.
<table>: cria uma tabela (linhas são criadas com <TR> e novas células com <TD>. Já os cabeçalhos
de coluna são criados com a tag <TH>.)
<div>: determina uma divisão na página a qual pode possuir variadas formatações.
<font>: altera a formatação (fonte, cor e tamanho) de um trecho do texto.
<b>, <i>, <u> e <s>: negrito, itálico, sublinhado e riscado, respectivamente.
<img>: imagem.
<a>: hiper-ligação para um outro local, seja uma página, um e-mail ou outro serviço.
<textarea>: caixa de texto (com mais de uma linha); estas caixas de texto são muito usadas em
blogs, elas podem ser auto selecionáveis e conter outros códigos a serem distribuídos.
<acronym>: acrônimo (sigla)
<cite>: citação
<address>: endereço
Uma propriedade importante dos documentos HTML é a possibilidade de fazer hiperligações. Para isso
usa-se a tag <a> (do inglês, anchor). Esta tem os atributos: href que define o alvo da hiperligação (que
pode ser uma página de Internet, uma parte da mesma página ou um endereço de email) ou name que
define um alvo nessa página (a onde se pode fazer uma hiperligação usando a tag a com o atributo
href). Exemplos:
<a href="http://pt.wikipedia.org/">Clique aqui para aceder à página principal da Wikipédia em português.</a>
<a name="nome">texto</a>
Os caracteres especiais definem-se usando comandos que começam com & e terminam com um ;.
Alguns exemplos incluem á (á), à (à), ã (ã), â (â), ä (ä) e ç (ç).
Qualquer outra vogal pode ser substituída pelo a destes exemplos, incluindo maiúsculas.
7.3.3 XML
O XML (eXtensible Markup Language) é um formato para a criação de documentos com dados
organizados de forma hierárquica, como se vê, frequentemente, em documentos de texto formatados,
imagens vetoriais ou bancos de dados.
É um subtipo de SGML (Standard Generalized Markup Language) capaz de descrever diversos tipos de
47
dados. Seu propósito principal é a facilidade de compartilhamento de informações através da Internet.
Pela sua portabilidade, já que é um formato que não depende das plataformas de hardware ou de
software, um banco de dados pode, através de uma aplicação, escrever em um arquivo XML, e um
outro banco distinto pode ler então estes mesmos dados.
Este exemplo demonstra a sintaxe flexível do XML sendo usada para descrever uma receita de pão:
<?xml version="1.0" encoding="ISO-8859-1"?>
<receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
<titulo>Pão simples</titulo>
<ingredientes>
<ingrediente quantidade="3" unidade="xícaras">Farinha</ingrediente>
<ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
<ingrediente quantidade="1.5" unidade="xícaras" estado="morna">Água</ingrediente>
<ingrediente quantidade="1" unidade="colheres de chá">Sal</ingrediente>
</ingredientes>
<instrucoes>
<passo>Misture todos os ingredientes, e dissolva bem.</passo>
<passo>Cubra com um pano e deixe por uma hora em um local morno.</passo>
<passo>Misture novamente, coloque numa bandeja e asse num forno.</passo>
</instrucoes>
</receita>
Onde temos na primeira linha:
<Receita nome="pão" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
"Receita" é o nome principal para o seu documento. Note que a semelhança entre XML e HTML é
grande, na 1ª linha abrimos a tag Receita e na última linha a fechamos, como em HTML, assim se
estendendo por todo o exemplo.
Assim como em HTML, os conteúdos são inseridos entre tags (marcadores) de mesmo nome, sendo
que a segunda tag tem uma barra (/) antes do nome.
O XML apresenta algumas regras básicas:
Letras maiúsculas e minúsculas são diferentes.
<passo> é diferente de <Passo>
Nenhuma tag pode ficar aberta. Toda <tag> deve ter uma </tag>.
<passo>Misture todos os ingredientes, e dissolva bem.</passo>
As tags não podem ficar sobrepostas. Uma tag aberta dentro de outra tag deve ser fechada antes.
<instrucoes>
<passo>Misture todos os ingredientes, e dissolva bem.</passo>
</instrucoes>
Os atributos devem estar entre aspas.
<ingrediente quantidade="3" unidade="xícaras">
47 http://pt.wikipedia.org/wiki/XML
98
TI para concursos
7.4.7 ADO.Net
Esta camada é responsável pela comunicação das aplicações com os banco de dados. Basicamente, o
ADO.net trabalha de duas formas:
• Modo conectado: utilizando objetos das classes managed provider, que permitem que você se
conecte ao banco de dados e execute instruções SQL diretamente;
• Modo desconectado: neste modo, você armazena informações de um banco de dados localmente, na
memória do computador onde a aplicação está executando. Estas informações são armazenadas em
objetos das classes Dataset, que permitem qualquer operação aceita por um banco de dados, também
conhecida pela sigla CRUD (Create, Retrieve, Update, Delete) ou seja, criar, recuperar, atualizar e
excluir linhas (ou registros). Periodicamente, uma conexão é feita com o banco e as informações são
sincronizadas. Deste modo, você pode criar aplicações para Web ou dispositivos móveis (tipo Pocket
PC), que não tem uma conexão permanente com o banco, ou mesmo aplicações Windows rodando
numa rede local ou remota.
7.5 Exercícios
(ICMS-SP 2009) Instruções: Para responder às cinco próximas questões, utilize um computador hipotético
que tem um registrador R (valor inicial: R=10) e 5 posições de memória de M1 até M5 (valores iniciais:
M1=030, M2=005, M3=020, M4=015 e M5=010), com capacidade de 3 dígitos cada posição para armazenar
valores inteiros de −999 e +999, e que reconhece os seguintes tipos de instruções (cada instrução tem um
endereço “n” sequencial e termina com um ponto-e-vírgula):
INI; (= inicia o programa).
FIM; (= termina o programa).
IMP; (= imprime o conteúdo de R).
LER nnn; (= carrega em R o número “nnn” digitado pelo teclado).
CAR Mx; (= carrega em R o conteúdo de Mx).
CAR n; (= carrega em R o número “n”).
MOV Mx; (= move para Mx o conteúdo de R).
SOM Mx; (= soma Mx com R, o resultado fica em R).
SOM n; (= soma “n” com R, o resultado fica em R).
SUB Mx; (= subtrai Mx de R, o resultado fica em R).
SUB n; (= subtrai “n” de R, o resultado fica em R).
MUL Mx; (= multiplica Mx por R, o resultado fica em R).
DIV Mx; (= divide Mx por R, o resultado fica em R).
IRP n; (= ir para a instrução de endereço “n”).
SE condição instruções1 SENAO instruções2; (= se “condição” =VERDADEIRA executa “instruções1”, se
=FALSA executa “instruções2”).
126. (ICMS-SP 2009) Dado o programa:
1.INI; 2.LER 050; 3.SOM M3; 4.MOV M1; 5.SUB M5; 6.FIM;
126
Ao término da execução, os conteúdos de M1, M3 e M5 são, respectivamente,
xx
(a) 070, 020 e 010.
(b) 070, 070 e 060.
(c) 030, 020 e 010.
(d) 050, 020 e 010.
(e) 050, 070 e 060.
127. (ICMS-SP 2009) Dado o programa:
1.INI; 2.CAR M2; 3.CAR M4; 4.MOV M4; 5.MOV M2; 6.FIM;
127
Ao término da execução, os conteúdos de R, M2 e M4 são, respectivamente,
(a) 015, 005 e 015
(b) 015, 015 e 005
xx
(c) 015, 015 e 015
(d) 010, 015 e 005
(e) 010, 005 e 015
128. (ICMS-SP 2009) Dado o programa:
1.INI; 2.MOV M1; 3.SE M1=015 IRP 4 SENAO SOM 1 IRP 5; 4.SOM M1; 5.IMP; 6.FIM;
128
Ao término da execução, o conteúdo impresso será igual a
(a) 10
xx
(b) 11
(c) 15
(d) 25
(e) 30
102
TI para concursos
129. (ICMS-SP 2009) A lógica principal do programa apresentado na questão anterior representa uma estrutura de
129
controle denominada estrutura
(a) sequence.
(b) de repetição do-until.
(c) de repetição do-while.
xx
(d) de seleção if-then-else.
(e) de seleção case.
130. (ICMS-SP 2009) Dado o programa:
1.INI; 2.CAR M1; 3.CAR M2; 4.CAR M3; 5.CAR M4; 6.CAR M5; 7.SUB M5; 8.FIM;
130
O programa que obtém o mesmo resultado final é:
(a) 1.INI; 2.SUB M5; 3.CAR M1; 4.CAR M2; 5.CAR M3; 6.CAR M4; 7.CAR M5; 8.FIM;
(b) 1.INI; 2.CAR M5; 3.CAR M4; 4.CAR M3; 5.CAR M2; 6.CAR M1; 7.SUB M5; 8.FIM;
(c) 1.INI; 2.SUB M5; 3.CAR M5; 4.CAR M4; 5.CAR M3; 6.CAR M2; 7.CAR M1; 8.FIM;
(d) 1.INI; 2.SUB M5; 3.CAR M5; 4.FIM;
xx
(e) 1.INI; 2.CAR M5; 3.SUB M5; 4.FIM;
131. (ICMS-SP 2009) Os valores das propriedades de um objeto em um determinado instante, que podem mudar
131
ao longo do tempo, representam
(a) a instância de uma classe.
(b) a identidade de um objeto.
xx
(c) o estado de um objeto.
(d) o comportamento de um objeto.
(e) as operações de uma classe.
132
132. (ICMS-SP 2009) Na orientação a objetos, ao nível de classe, são definidos os
(a) atributos e os valores dos atributos.
(b) atributos e a invocação das operações.
xx
(c) atributos e os métodos.
(d) métodos e os valores dos atributos.
(e) métodos e a invocação das operações.
133. (ICMS-SP 2009) Uma classe é uma abstração que ajuda a lidar com a complexidade e um bom exemplo de
133
abstração é
(a) um aluno e as disciplinas que está cursando.
(b) um professor e os cursos nos quais ministra aulas.
(c) um funcionário e o departamento em que trabalha.
xx
(d) uma pessoa e o número do seu CPF na Receita Federal.
(e) uma casa e a empresa que a projetou e construiu.
134. (ICMS-SP 2009) O método utilizado para inicializar objetos de uma classe quando estes são criados é
134
denominado
(a) void.
(b) interface.
(c) agregação.
(d) composição.
xx
(e) construtor.
135. (ICMS-SP 2009) Sobre a visibilidade dos métodos na orientação a objetos considere:
I. Os métodos públicos de uma classe definem a interface da classe.
II. Os métodos privativos de uma classe não fazem parte da interface da classe.
III. O nome dos métodos é a informação reconhecida como a assinatura dos métodos.
135
Está correto o que consta APENAS em
xx
(a) I e II.
(b) I e III.
(c) II e III.
(d) II.
(e) I.
136. (ICMS-SP 2009) A .NET Framework trata-se de uma arquitetura da estratégia Microsoft .NET
I. constituída das partes Common Language Runtime, bibliotecas de classes, ASP.NET e ADO.NET.
II. para construir, implementar e executar aplicações e webservices.
III. desenvolvida como um componente integral do Windows.
136
Está correto o que consta em
(a) I, apenas.
(b) II, apenas.
(c) I e II, apenas.
xx
(d) II e III, apenas.
(e) I, II e III.
103
TI para concursos
137. (ICMS-SP 2009) NÃO é uma linguagem de programação do pacote Visual Studio 2005 que utiliza o mesmo
137
IDE e as funcionalidades da .NET Framework:
(a) Visual Basic.
xx
(b) Visual FoxPro.
(c) Visual C++.
(d) Visual C#.
(e) Visual J#.
138. (ICMS-SP 2009) A .NET Framework 3.0 é o modelo de programação de código gerenciado da Microsoft, que
138
integra os componentes da .NET Framework 2.0 às novas tecnologias
(a) WPF (Windows Presentation Foundation) e WCF (Windows Communication Foundation), apenas.
(b) WF (Windows Workflow Foundation) e Windows CardSpace, apenas.
(c) WPF, WCF e WF, apenas.
(d) WPF, WCF e Windows CardSpace, apenas.
xx
(e) WPF, WCF, WF e Windows CardSpace.
139. (ICMS-SP 2009) O IDE do Visual Studio 2005 fornece suporte completo para publicação de aplicativos e para
atualização de aplicativos implantados por meio diretamente do ClikOnce apenas para projetos criados
139
com
xx
(a) Visual Basic, Visual C# e Visual J#.
(b) Visual Basic, Visual FoxPro e Visual C++.
(c) Visual Basic e Visual FoxPro.
(d) Visual C# e Visual J#.
(e) Visual C# e Visual C++.
140. (ICMS-SP 2009) A opção de escolha no Visual Studio 2005 para usar Web Forms como interface de usuário
140
no desenvolvimento de um aplicativo indica que o aplicativo deverá ser implantado no
(a) servidor e que o .NET Framework deverá ser executado tanto no servidor quanto no computador cliente.
(b) servidor, que o .NET Framework deverá ser executado no servidor e que o computador cliente exigirá
xx
apenas um navegador.
(c) servidor e que o .NET Framework deverá ser executado apenas no computador cliente e não no
servidor.
(d) computador cliente e que o .NET Framework deverá ser executado apenas no computador cliente e não
no servidor.
(e) computador cliente e que o .NET Framework deverá ser executado tanto no servidor quanto no
computador cliente.
141. Uma ou mais instruções são executadas ou não, dependendo do resultado do teste efetuado. Esta afirmação
141
define uma estrutura de controle de programação do tipo
(a) pilha.
(b) seleção.xx
(c) fila.
(d) repetição.
(e) seqüência.
142. A estrutura de dados de iteração na qual uma ação será executada pelo menos uma vez, antes da avaliação
142
da condição, é implementada pelo comando básico
(a) condicional.
(b) faça enquanto.
(c) seqüencial.
xx
(d) de repetição.
(e) de seleção.
143. Em uma hierarquia de classes é possível especificar operações com a mesma assinatura em pontos
143
diferentes da hierarquia. Portanto, essas operações presentes nas classes-filha
(a) anulam o comportamento das operações existentes nas classes-mãe.xx
(b) herdam os atributos existentes nas classes-mãe.
(c) são composições de alguns atributos existentes nas classes-mãe.
(d) complementam o comportamento das operações existentes nas classes-mãe.
(e) agregam as operações existentes nas classes-mãe.
144
144. As instâncias de uma classe são
(a) seus atributos.
(b) suas superclasses.
(c) suas operações.
(d) seus objetos.xx
(e) seus relacionamentos.
145. A nomenclatura da linguagem C++ para Chamada de Função e Classe Base corresponde, respectivamente,
145
na programação orientada a objetos a
(a) Método e Subclasse.
(b) Método e Superclasse.
(c) Hereditariedade e Subclasse.
(d) Mensagem e Subclasse.
xx
(e) Mensagem e Superclasse.
104
TI para concursos
146. Em um diagrama entidade relacionamento, uma situação de composição tal qual "empregado gerencia
146
empregado", geralmente é apresentada como
(a) entidade fraca.
(b) relacionamento associativo.
(c) auto relacionamento.xx
(d) relacionamento interativo.
(e) relacionamento restritivo.
147
147. A execução de uma expressão lógica obedece como prioridade a ordem dos operadores
(a) Or, And e Not.
(b) Not, And e Or.xx
(c) And, Not e Or.
(d) And, Or e Not.
(e) Not, Or e And.
148
148. Respeitando as ordens de inserção e de retirada dos dados, uma estrutura de
(a) fila é também denominada LIFO ou LILO.
(b) fila é também denominada FIFO ou FILO.
(c) fila é também denominada FIFO ou LIFO.
(d) pilha é também denominada FIFO ou FILO.
xx
(e) pilha é também denominada LIFO ou FILO.
149. Uma fila dupla que se trata de uma lista linear na qual os elementos podem ser inseridos ou removidos de
149
qualquer extremo denomina-se
(a) hashing.
(b) grafo.
xx
(c) deque.
(d) lista aberta.
(e) lista fechada.
150. Sobre a sintaxe XML, considere:
I. Um elemento <CALCULA> deve ter sempre uma tag de fechamento <FIMCALCULA>.
II. Uma tag <Lista> é diferente da tag <lista>.
III. Um elemento <A> aberto no interior do elemento <B> pode ser fechado fora do elemento <B>.
150
Está correto o que consta APENAS em
(a) III.
(b) II.xx
(c) II e III.
(d) I e III.
(e) I e II.
151
151. Em XML pode-se definir um atributo, como informação adicional ao elemento, conforme o exemplo abaixo:
(a) <funcionario> <sexo> masculino ...
(b) <funcionario sexo=masculino> ...
(c) <funcionario sexo="masculino">xx...
(d) <funcionario> <sexo> "masculino" ...
(e) <funcionario <sexo>= "masculino"> ...
152
152. NÃO é um tipo de dados considerado primitivo:
(a) real.
(b) inteiro.
(c) lógico.
(d) caracter.
xx
(e) matriz.
105
TI para concursos
8 Segurança da informação
8.1 Conceitos básicos
Segurança da Informação é a proteção de um conjunto de dados, no sentido de preservar o valor que
possuem para um indivíduo ou uma organização.
O conceito de Segurança Informática ou Segurança de Computadores inclue a segurança dos
dados/informação e a dos sistemas em si.48
Entende-se por informação todo e qualquer conteúdo ou dado que tenha valor para alguma
organização ou pessoa. Ela pode estar guardada para uso restrito ou exposta ao público para consulta
ou aquisição.
Podem ser estabelecidas métricas para a definição do nível de segurança existente e, com isto, serem
estabelecidas as bases para análise da situação. A segurança de uma determinada informação pode
ser afetada por fatores comportamentais e de uso de quem se utiliza dela, pelo ambiente ou infra-
estrutura.
Os atributos básicos da segurança:
Confidencialidade - propriedade que limita o acesso a informação às entidades legítimas, ou seja,
àquelas autorizadas pelo proprietário da informação.
Integridade - propriedade que garante que a informação mantenha todas as características originais
estabelecidas pelo proprietário da informação, incluindo controle de mudanças e garantia do seu
ciclo de vida (nascimento, manutenção e destruição).
Disponibilidade - propriedade que garante que a informação esteja sempre disponível para o uso
legítimo, ou seja, por aqueles usuários autorizados pelo proprietário da informação.
O nível de segurança desejado, pode se consubstanciar em uma "política de segurança" que é seguida
pela organização ou pessoa, para garantir que uma vez estabelecidos os princípios, aquele nível
desejado seja perseguido e mantido. Para a montagem desta política, deve-se levar em conta:
Riscos associados à falta de segurança;
Benefícios;
Custos de implementação dos mecanismos.
O suporte para as recomendações de segurança pode ser encontrado em:
Controles físicos: são barreiras que limitam o contato ou acesso direto a informação ou a infra-
estrutura que a suporta, como portas, trancas, paredes, blindagem, guardas etc.
Controles lógicos: são barreiras que impedem ou limitam o acesso a informação, que está em
ambiente controlado, geralmente eletrônico.
Mecanismos de criptografia. Permitem a transformação reversível da informação de forma a torná-la
ininteligível a terceiros. Utiliza-se para tal, algoritmos determinados e uma chave secreta para, a partir de
um conjunto de dados não criptografados, produzir uma sequência de dados criptografados. A operação
inversa é a decifração. Os algoritmos com chave dupla, ou chaves assimétricas, podem usar uma chave
pública para criptografar e uma chave diferente, privada, secreta, para decifrar.
Assinatura digital. Um conjunto de dados criptografados, associados a um documento do qual são função,
garantindo a integridade do documento associado, mas não a sua confidencialidade.
Mecanismos de garantia da integridade da informação. Usando funções de "Hashing" ou de checagem,
consistindo na adição.
Mecanismos de controle de acesso. Palavras-chave, sistemas biométricos, firewalls, cartões inteligentes.
Mecanismos de certificação. Atesta a validade de um documento.
Integridade. Medida em que um serviço/informação é genuíno, isto é, está protegido contra a personificação
por intrusos.
Honeypot: É o nome dado a um software, cuja função é detectar ou de impedir a ação de um cracker, de
um spammer, ou de qualquer agente externo estranho ao sistema, enganando-o, fazendo-o pensar que
esteja de fato explorando uma vulnerabilidade daquele sistema.
Protocolos seguros: uso de protocolos que garantem um grau de segurança.
Existe hoje em dia um elevado número de ferramentas e sistemas que pretendem fornecer segurança.
Alguns exemplos são os detectores de intrusões, os anti-vírus, firewalls, firewalls locais, filtros anti-
spam, fuzzers, analisadores de código, etc.
48 http://pt.wikipedia.org/wiki/Seguran%C3%A7a_da_informa%C3%A7%C3%A3o
106
TI para concursos
As ameaças à segurança da informação são relacionadas diretamente à perda de uma de suas três
características principais, quais sejam:
Perda de Confidencialidade: quebra de sigilo de uma determinada informação (ex: a senha de um
usuário ou administrador de sistema) permitindo com que sejam expostas informações restritas as
quais seriam acessíveis apenas por um determinado grupo de usuários.
Perda de Integridade: determinada informação fica exposta a manuseio por uma pessoa não
autorizada, que efetua alterações que não foram aprovadas e não estão sob o controle do
proprietário (corporativo ou privado) da informação.
Perda de Disponibilidade: a informação deixa de estar acessível por quem necessita dela.
No caso de ameaças à rede de computadores ou a um sistema, estas podem vir de agentes
maliciosos, muitas vezes conhecidos como crackers (hackers não são agentes maliciosos, pois tentam
ajudar a encontrar possiveis falhas). Estas pessoas são motivadas para fazer esta ilegalidade por
vários motivos. Os principais são: notoriedade, auto-estima, vingança e o dinheiro. De acordo com
pesquisa elaborada pelo Computer Security Institute, mais de 70% dos ataques partem de usuários
legítimos de sistemas de informação (Insiders) -- o que motiva corporações a investir largamente em
controles de segurança para seus ambientes corporativos (intranet).
Depois de identificado o potencial de ataque, as organizações têm que decidir o nível de segurança a
estabelecer para uma rede ou sistema os recursos físicos e lógicos a necessitar de proteção. No nível
de segurança devem ser quantificados os custos associados aos ataques e os associados à
implementação de mecanismos de proteção para minimizar a probabilidade de ocorrência de um
ataque.
Segurança física - Considera as ameaças físicas como incêndios, desabamentos, relâmpagos,
alagamento, acesso indevido de pessoas, forma inadequada de tratamento e manuseamento do
material.
Segurança lógica - Atenta contra ameaças ocasionadas por vírus, acessos remotos à rede, backup
desatualizados, violação de senhas etc.
De acordo com o RFC 2196 (The Site Security Handbook), uma política de segurança consiste num
conjunto formal de regras que devem ser seguidas pelos utilizadores dos recursos de uma organização.
As políticas de segurança devem ter implementação realista, e definir claramente as áreas de
responsabilidade dos utilizadores, do pessoal de gestão de sistemas e redes e da direção. Deve
também adaptar-se a alterações na organização. As políticas de segurança fornecem um
enquadramento para a implementação de mecanismos de segurança, definem procedimentos de
segurança adequados, processos de auditoria à segurança e estabelecem uma base para
procedimentos legais na sequência de ataques.
O documento que define a política de segurança deve deixar de fora todos os aspectos técnicos de
implementação dos mecanismos de segurança, pois essa implementação pode variar ao longo do
tempo. Deve ser também um documento de fácil leitura e compreensão, além de resumido.
Algumas normas definem aspectos que devem ser levados em consideração ao elaborar políticas de
segurança. Entre essas normas estão a BS 7799 (elaborada pela British Standards Institution) e a NBR
ISO/IEC 17799 (a versão brasileira desta primeira). A ISO começou a publicar a série de normas
27000, em substituição à ISO 17799 (e por conseguinte à BS 7799), das quais a primeira, ISO 27001,
foi publicada em 2005.
Existem duas filosofias por trás de qualquer política de segurança: a proibitiva (tudo que não é
expressamente permitido é proibido) e a permissiva (tudo que não é proibido é permitido).
Os elementos da política de segurança devem ser considerados:
Disponibilidade: o sistema deve estar disponível de forma que quando o usuário necessitar possa
usar. Dados críticos devem estar disponíveis ininterruptamente.
Utilização: o sistema deve ser utilizado apenas para os determinados objetivos.
Integridade: o sistema deve estar sempre íntegro e em condições de ser usado.
Autenticidade: o sistema deve ter condições de verificar a identidade dos usuários, e este ter
condições de analisar a identidade do sistema.
Confidencialidade: dados privados devem ser apresentados somente aos donos dos dados ou ao
grupo por ele liberado.
107
TI para concursos
8.3 Vulnerabilidade
A vulnerabilidade na computação significa ter brecha em um sistema computacional, também
conhecida como bug. Esta mesma pode ser explorada em um determinado sistema ou serviço
vulnerável que esteja rodando na máquina.
As vulnerabilidades mais exploradas nos dias de hoje, são as do tipo buffer overflow, que muitas vezes
pode dar privilégios de administrador para o invasor, rodar códigos maliciosos remotamente, burlar
particularidades de cada sistema, ataques de Negação de Serviços (DDoS), e acesso irestrito ao
sistema.
Existem ferramentas específicas para se explorar as vulnerabilidades, cada ferramenta para a sua
respectiva vulnerabilidade a ser explorada (na maioria das vezes escritas em linguagem C e Assembly),
essas ferramentas são chamadas de exploits.
Um exploit, em segurança da informação, é um programa de computador, uma porção de dados ou
uma sequência de comandos que se aproveita das vulnerabilidades de um sistema computacional –
como o próprio sistema operacional ou serviços de interação de protocolos (ex: servidores Web). São
geralmente elaborados por hackers como programas de demonstração das vulnerabilidades, a fim de
que as falhas sejam corrigidas, ou por crackers a fim de ganhar acesso não autorizado a sistemas. Por
49 http://pt.wikipedia.org/wiki/Plano_de_continuidade_de_neg%C3%B3cios
108
TI para concursos
isso muitos crackers não publicam seus exploits, conhecidos como 0days, e o seu uso massificado
deve-se aos script kiddies.
Até meados dos anos 90, acreditava-se que os exploits exploravam exclusivamente problemas em
aplicações e serviços para plataformas Unix. A partir do final da década, especialistas demonstraram a
capacidade de explorar vulnerabilidades em plataformas de uso massivo, por exemplo, sistemas
operacionais Win32 (Windows 9x, NT, 2000 e XP). Como exemplo temos o CodeRed, o MyDoom, o
Sasser em 2004 e o Zotob em 2005.
Para um exploit atacar, o sistema precisa ter uma vulnerabilidade, ou seja, um meio de comunicação
com a rede que possa ser usado para entrar, uma porta ou uma consola.
Um exploit muito usado é no sistema RPC do Windows:
o usuário localiza a porta e envia à porta RPC uma sequência de bytes, que são interpretados como dados
pelo servidor
quando são recebidos, estes dados deixam propositadamente o sistema em pane
o sistema passa o controle a estes próprios dados que então são uma sequência de ordem para dominar a
CPU.
Desta forma esta sequência de informações toma conta do PC e abre-o para o hacker que aguarda na
outra ponta.
Ameaças à segurança das redes que fazem com que os micros infectados por esses tipos de vírus
formem redes de computadores "zumbis" que são comandados simultaneamente por seus invasores
para enviar mensagens indesejadas (spam), colocar sites fora do ar e promover fraudes são
categorizadas como botnet (robôs).
Keylogger é um programa capaz de capturar e armazenar as teclas digitadas pelo usuário no teclado
de um computador.
No sistema Linux, quando existem vulnerabilidades, sempre são publicadas, como já houve no sistema
Apache, Samba ou MySQL, que também apresentam vulnerabilidades e possibilita o controle do PC
por um hacker remoto. Com isso um hacker pode ter acesso a todos seus arquivos pessoais, Usando o
proprio CMD do windows.
50 http://pucrs.campus2.br/~annes/sas_audit.doc
109
TI para concursos
Sobre microcomputadores;
Sobre ambiente cliente-servidor.
Auditoria da segurança de informações determina a postura da organização com relação à segurança.
Avalia a política de segurança e controles relacionados com aspectos de segurança institucional mais
globais, faz parte da auditoria da TI. Seu escopo envolve:
Avaliação da política de segurança;
Controles de acesso lógico;
Controles de acesso físicos;
Controles ambientais;
Planos de contingência e continuidade de serviços.
Auditoria de aplicativos verifica a segurança e o controle de aplicativos específicos, incluindo aspectos
intrínsecos à área a que o aplicativo atende:
Controles sobre o desenvolvimento de sistemas aplicativos;
Controles de entradas, processamento e saída de dados;
Controle sobre conteúdo e funcionamento do aplicativo, com relação à área por ele atendida.
A natureza especializada da auditoria de sistemas de informação (SI) e a capacidade necessária para
realizar essas auditorias requerem o estabelecimento de normas que se apliquem especificamente à
auditoria de SI. 51
A Associação de Auditoria e Controle de Sistemas de Informação, ISACA, desenvolve normas
aplicáveis globalmente, de forma a suportar essa visão. A estrutura das Normas de Auditoria de SI
apresenta diversos níveis de orientação:
Normas: definem requisitos obrigatórios para auditorias e relatórios de SI. Informam:
Os auditores de SI sobre o nível mínimo de desempenho aceitável exigido para cumprir as
responsabilidades profissionais estabelecidas no Código de Ética Profissional
A gestão e outras partes interessadas sobre as expectativas da profissão no que se refere às atividades
daqueles que a exercem
Diretrizes: fornecem orientação para a aplicação das normas de auditoria de SI. O auditor de SI
deve levá-las em consideração para determinar como alcançar a implementação das normas,
utilizar a avaliação profissional na sua aplicação e estar preparado para justificar qualquer
divergência. O objetivo das Directrizes de Auditoria de SI é fornecer informações adicionais sobre
como cumprir as Normas de Auditoria de SI.
Procedimentos: fornecem exemplos de procedimentos que um auditor de SI pode seguir durante a
realização de uma auditoria. Os documentos de procedimentos fornecem informações sobre como
cumprir as normas ao realizar a auditoria de SI, mas não estabelecem requisitos. O objetivo dos
Procedimentos de Auditoria de SI é fornecer informações adicionais sobre como cumprir as Normas
de Auditoria de SI.
As normas da ISACA contêm princípios básicos e procedimentos essenciais que são obrigatórios,
juntamente com orientações relacionadas com os mesmos, com o objetivo de estabelecer e fornecer
orientações sobre áreas de governança de TI que o auditor de SI deve considerar durante o processo
de auditoria.
O auditor de SI deve analisar e avaliar:
ambiente de controle da organização.
conformidade com a organização: missão, visão, valores, qualidade de informações, objetivos e
estratégias.
conformidade com as leis: ambientais, trabalhistas, fiduciárias e de segurança.
eficiência e eficácia de SI, as suas realizações e os processos de gestão de desempenho.
riscos que podem causar efeitos adversos no ambiente de SI.
Diretrizes de auditoria de SI:
Carta de auditoria
Conceitos de materialidade para auditoria de sistemas de informações
Relacionamento e independência organizacionais
Uso da avaliação de riscos no planeamento de auditoria
Planeamento - lista detalhada das tarefas
Impacto de terceiros em controles de TI de uma organização
51 http://www.isaca.org/Template.cfm?Section=Home&Template=/ContentManagement/ContentDisplay.cfm&ContentFileID=10775
110
TI para concursos
Impacto de função de não auditoria na independência do auditor de SI
8.6 Exercícios
153. (ICMS-SP 2009) Segundo as normas ABNT sobre segurança da informação, o tratamento de risco está
153
inserido no processo de
xx
(a) gestão de riscos.
(b) aceitação do risco.
(c) análise de riscos.
(d) avaliação de riscos.
(e) análise/avaliação de riscos.
52 http://pt.wikipedia.org/wiki/ISO_27001
111
TI para concursos
154. (ICMS-SP 2009) As ações a serem tomadas imediatamente após a ocorrência de um incidente que coloque
em risco as operações do negócio devem estar descritas no plano de continuidade de negócios como
154
procedimentos
(a) operacionais temporários.
(b) de ensaio geral.
(c) de recuperação.
(d) de restauração.
xx
(e) de emergência.
155. (ICMS-SP 2009) Se qualquer não-conformidade for encontrada como um resultado da análise crítica nas
áreas sobre o cumprimento das políticas e normas de segurança da informação, NÃO convém que os
155
gestores
(a) determinem as causas da não-conformidade.
(b) determinem e implementem ação corretiva apropriada.
(c) analisem criticamente a ação corretiva tomada.
xx
(d) avaliem a necessidade de ações para assegurar que a conformidade não se repita.
(e) registrem os resultados das análises e das ações corretivas e que esses registros sejam mantidos.
156. (ICMS-SP 2009) No modelo PDCA adotado para estruturar todos os processos do SGSI – Sistema de
Gestão de Segurança da Informação, os resultados das atividades da auditoria interna do SGSI estão
156
vinculados ao ciclo PDCA como entrada dos processos na etapa
(a) Plan (Planejar): estabelecer o SGSI.
(b) Do (Fazer): implementar e operar o SGSI.
(c) Check (Verificar): monitorar o SGSI.
(d) Control (Controlar): analisar criticamente o SGSI.
xx
(e) Act (Agir): manter e melhorar o SGSI.
157. No Brasil, a NBR ISO17799 constitui um padrão de recomendações para práticas na gestão de Segurança da
Informação. De acordo com o estabelecido nesse padrão, três termos assumem papel de importância capital:
confidencialidade, integridade e disponibilidade.
157
Nesse contexto, a confidencialidade tem por objetivo:
(a) salvaguardar a exatidão e a inteireza das informações e métodos de processamento.
(b) salvaguardar os dados gravados no backup por meio de software que utilize assinatura digital.
(c) permitir que os usuários tenham acesso aos arquivos de backup e aos métodos de criptografia
empregados.
(d) permitir que os usuários autorizados tenham acesso às informações e aos ativos associados, quando
necessário.
(e) garantir que as informações sejam acessíveis apenas para aqueles que estejam autorizados a acessá-
xx
las.
158. Para garantir a segurança da informação em uma rede de computadores, um sistema de autenticação típico
158
é composto apenas do código do usuário, uma senha e um
(a) processo de certificação.
(b) método de criptografia.
(c) sistema de detecção de intrusão.
(d) plano de recuperação.
xx
(e) firewall.
159
159. NÃO é um algoritmo de chave simétrica o sistema de criptografia de chave
(a) única.
(b) pública.xx
(c) secreta.
(d) simétrica.
(e) compartilhada.
160. Um conjunto de dados de computador, em observância à Recomendação Internacional ITUT X.509, que se
destina a registrar, de forma única, exclusiva e intransferível, a relação existente entre uma chave de
160
criptografia e uma pessoa física, jurídica, máquina ou aplicação é
(a) uma autoridade certificadora.
(b) uma trilha de auditoria.
(c) uma chave assimétrica.
(d) uma assinatura digital.
xx
(e) um certificado digital.
112
TI para concursos
161. Considere a seguinte definição: "Evitar violação de qualquer lei criminal ou civil, estatutos, regulamentação
ou obrigações contratuais; evitar a violação de direitos autorais dos software - manter mecanismos de
controle dos softwares legalmente adquiridos". De acordo com as especificações das normas brasileiras de
161
segurança da informação, esta definição se inclui corretamente em
(a) Gestão de Incidentes e Segurança da Informação.
xx
(b) Conformidade.
(c) Controle de Acesso.
(d) Gestão da Continuidade do Negócio.
(e) Gestão de Ativos.
162
162. É um elemento biométrico de identificação
xx
(a) a impressão digital.
(b) o cartão bancário.
(c) a senha da internet.
(d) o certificado digital.
(e) a assinatura eletrônica.
163. Ameaças à segurança das redes que fazem com que os micros infectados por esses tipos de vírus formem
redes de computadores "zumbis" que são comandados simultaneamente por seus invasores para enviar
163
mensagens indesejadas (spam), colocar sites fora do ar e promover fraudes são categorizadas como.
(a) Advance Fee Fraud.
(b) Botnet.xx
(c) Hoax.
(d) Phishing.
(e) Rootkit.
164. Programa capaz de capturar e armazenar as teclas digitadas pelo usuário no teclado de um computador é o
164
(a) Worm.
(b) Spyware.
(c) Backdoor.
(d) Keylogger.xx
(e) Cavalo de Tróia.
165. Por meio da análise dos procedimentos para estabelecer e finalizar uma conexão utilizada para troca de
informações entre dois hosts, obtém-se informações que permitem uma prospecção sobre os serviços por
165
eles oferecidos. Essa técnica, utilizada para descobrir um possível ataque do tipo DoS, é denominada
(a) network security.
(b) file scan.
(c) packet sniffer.
(d) network scan.xx
(e) scan vírus.
166
166. A integridade de software é medida
(a) em defeitos por KLOC (milhares de linhas de código).
(b) por sua usabilidade.
(c) pelo mean-time-to-change - MTTC.
(d) por sua conectividade.
xx
(e) pela capacidade do sistema resistir a ataques à sua segurança.
167
167. Em relação aos conceitos de segurança, é correto afirmar:
(a) Confidencialidade é a propriedade que se refere ao fato de determinada informação não poder ser
alterada ou destruída de maneira não autorizada.
(b) Medidas físicas e organizacionais de proteção relacionam-se não apenas à proteção de hardware, mas
xx
também a elementos lógicos de um sistema.
(c) Umidade e temperatura não podem ser consideradas ameaças a uma rede de SI.
(d) Negação de uso é um ataque que visa atingir a integridade de um sistema computacional.
(e) Um firewall de rede tornou-se, em dias atuais, um equipamento desnecessário, desde que todos os
computadores da rede sejam dotados de antivírus ativos e atualizados.
168. A Disponibilidade do sistema, a Integridade dos dados e a Confidencialidade dos dados são objetivos de
168
segurança dos sistemas, respectivamente, sujeitos às ameaças de
(a) Adulteração dos dados, Recusa de serviço e Exposição aos dados.
(b) Recusa de serviço, Exposição aos dados e Adulteração dos dados.
(c) Exposição aos dados, Recusa de serviço e Adulteração dos dados.
xx
(d) Recusa de serviço, Adulteração dos dados e Exposição aos dados.
(e) Exposição aos dados, Adulteração dos dados e Recusa de serviço.
169. Na disciplina de segurança de redes e criptografia, a propriedade que traduz a confiança em que a
169
mensagem não tenha sido alterada desde o momento de criação é:
(a) autenticidade.
(b) criptologia.
(c) não-repúdio.
xx
(d) integridade.
(e) confidencialidade.
113
TI para concursos
170. Os mecanismos de segurança para autenticação efetiva de um usuário devem ser baseados em:
I. Conhecimento individual.
II. Posse de alguma coisa.
III. Característica pessoal.
IV. Local em que se encontra.
170
É correto o que se afirma em
(a) I, II e III, apenas.
(b) I, II e IV, apenas.
(c) I, III e IV, apenas.
(d) II, III e IV, apenas.
xx
(e) I, II, III e IV.
171. Receber as solicitações de serviços, oriundas de clientes internos, e enviá-las para a rede externa como se
171
fosse o cliente de origem é uma função do
(a) criptógrafo.
(b) firewall.
xx
(c) proxy.
(d) soquete.
(e) broadcast.
172
172. Sobre segurança da informação, é correto afirmar que
(a) vulnerabilidades determinam controles de segurança.
(b) riscos são determinados pelas vulnerabilidades.
(c) controles de segurança eliminam os riscos.
xx
(d) ameaças exploram vulnerabilidades.
(e) vulnerabilidades provocam ameaças.
173. O controle de acesso lógico pode utilizar, para proteção aos arquivos de dados e de programas, uma senha
173
pessoal como recurso de
(a) permissão de acesso.
(b) direito de acesso.
(c) monitoração de acesso.
xx
(d) autenticação do usuário.
(e) identificação do usuário.
114
TI para concursos
9 Sistemas Operacionais
9.1 Conceitos de administração de servidores em plataforma Windows
A administração de servidores Windows é feita sobre uma interface gráfica, com mouse, janelas e
botões. Nem por isto a tarefa se torna fácil. O usuário precisa saber em que ícones clicar e que
controles modificar.
Administrar servidores em plataforma Windows é instalar e manter em funcionamento os serviços que a
rede necessita. Este serviços são acessíveis a partir do Painel de Controle e do menu Ferramentas
administrativas.
O primeiro serviço que deve funcionar muito bem é administração de usuários, que consiste em criar
contas, que são identificadas por um nome de usuário (login) e atribuir direitos a eles. Para esta função,
utiliza-se o aplicativo “Contas de usuário”, no painel de controle. Usuários com direitos de
administradores, conforme a sua configuração, podem fazer tudo, enquanto que usuário comuns só
podem usar recursos definidos pelo administrador.
O Windows administra os recursos da rede dividindo-a em subredes chamadas de domínios. Em cada
domínio há uma lista distinta de usuários e um servidor para controlar.
Um servidor na rede que centraliza a configuração de usuários em um domínio é o Primary Domain
Controller (PDC), ou controlador primário de domínio. Em uma rede pode haver diversos servidores
Windows, mas apenas um servidor primário de domínio para cada domínio, sendo os demais Backup
Domain Controle (BDC), ou servidores de backup.
Os recursos oferecidos na rede estão, em geral, ligados a um computador. Este computador faz o
papel de servidor deste recurso, como serviço de impressão, de conexão internet (proxy e firewall), de
armazenamento de dados etc. Mas a permissão de acesso a todos os serviços passa pelo servidor
primário do domínio.
Dois domínios diferentes podem se comunicar e os usuários de um ser autorizado pelo outro. Para isto
o Windows utiliza o conceito de relação de confiança, que é estabelecido entre os dois domínios. Eles
passam a se comportar como um único domínio, mas com duas lista de usuários.
O Windows utiliza o recurso Active Directory para administrar os domínios como se fossem uma
estrutura de diretórios, agrupando domínios em árvores e estas em florestas.
115
TI para concursos
53
9.2.1.1 Gerenciando Usuários
Para adicionar um usuário:
adduser <usuário>
Em seguida é necessário definir uma senha para este usuário, utilizando o comando:
passwd <usuário>
Para remover um usuário e seu diretório home:
userdel -r usuário
Para obter as permissões de outros usuários:
su <usuário>
Se o campo <usuário> for omitido, o su intenderá como root. E para simular um login, executando os
scripts de inicialização do usuário acrescenta-se “- “ entre su e o <usuário> , como no exemplo:
su - vinicius
53 http://apostilas.netsaber.com.br/apostilas/1662.pdf
116
TI para concursos
117
TI para concursos
usuário e outros dados importantes para analisar o servidor.
O arquivo responsável pelas configuração do syslogd é o /etc/syslog.conf .
Os registros deste arquivo são divididos em facility, priority e destino, podendo haver derivações como
dois conjuntos “facility.priority” para um mesmo destino.
As “facilities” podem ser: auth, auth-priv, cron, daemon, kern, lpr, mail, mark, news, security (mesmo
que auth), syslog, user, uucp e local0.
Já as “priorities” seguem em ordem crescente: debug, info, notice, warning, warn (memo que
warning), err, error (mesmo que err), crit, alert, emerg, panic (mesmo que emerg).
Um arquivo gerado na grande maioria dos sistemas *nix é o /var/log/messages, que contém
informações genéricas sobre todo o sistema.
Outro arquivo muito comum é o /var/log/debug que contém informações mais detalhadas.
118
TI para concursos
echo “/usr/local/sbin/sshd” >> /etc/rc.d/rc.local
rc.local: Este arquivo é executado sempre na hora do boot, como o Autoexec.bat do DOS
54 http://www.gta.ufrj.br/ensino/CPE758/artigos-basicos/cap4-v2.pdf
119
TI para concursos
O elemento central de um computador é seu processador. Cada processador tem um conjunto de
instruções de máquina que pode seguir um determinado padrão. Por exemplo, Intel e AMD, fabricam
processadores que implementam um mesmo padrão ISA, o Intel IA-32 (x86). Os projetistas de software
compilam seu programas para obter códigos binários para um determinado ISA. Portanto, o conjunto de
instruções (ISA) é uma interface entre o hardware e o software.
Tipicamente, um sistema de computação oferece três tipos de interfaces:
instruções de máquina (privilegiadas) - interface que permite que apenas alguns programas, os com
privilégios especiais, como o sistema operacional, possam executar todas as instruções, entre elas, as de
manipulação de recursos de hardware, como entrada e saída e interrupções.
instruções de máquina (não privilegiadas) e chamadas de sistema - interface que possibilita que um
programa de usuário execute instruções não-privilegiadas diretamente no processador, mas não permite o
acesso aos recursos de hardware (instruções privilegiadas). As chamadas de sistema são uma forma de
permitir que os programas de usuários acessem de forma indireta, e controlada, os recursos de hardware.
Através delas, os programas de usuário executam, após ter sido garantido a autenticidade e a validade da
operação, operações de acesso a recursos de hardware (tipicamente E/S).
interface aplicativa de programação – mais conhecida como API (Application Program Interface), são
funções de biblioteca que fazem com que as chamadas de sistema sejam ocultadas.
Considerando essas interfaces, a implementação de máquinas virtuais pode ser feita de três modos:
programa de aplicação que forneçe um ambiente de execução para outras aplicações. Esse
ambiente pode possuir um conjunto de instruções abstratas que são interpretadas para gerar as
instruções de máquinas não-privilegiadas, as chamadas de sistema e de API de bibliotecas que
correspondem à ação abstrata desejada. É o caso da máquina virtual java (JVM).
programa de aplicação que emula chamadas de sistemas de outro sistema operacional, como
ocorre quando se executa Linux em sistemas Windows com a ferramenta VMware player . Esse tipo
de virtualização é o que se denomina de máquina virtual de processo.
camada de software entre o hardware e o sistema operacional protegendo o acesso direto deste aos
recursos físicos da máquina. Essa camada oferece como interface ao sistema operacional um
conjunto de instruções de máquina que pode ser o mesmo do processador físico, ou um outro. O
ponto importante é que essa interface deve estar disponível sempre que o computador estiver ligado
e que ela possa ser usada simultaneamente por diferentes programas. O resultado final é que
possível ter diversos sistemas operacionais (programas) executando independentemente na mesma
plataforma. Genericamente, essa máquina virtual é referenciada como monitor de máquina virtual
(Virtual Machine Monitor ou VMM), também conhecido como hypervisor, ou ainda, máquina virtual
de sistema.
O processo ou sistema que executa sobre uma máquina virtual é denominado de hóspede, enquanto o
ambiente sobre o qual ele executa é chamado de hospedeiro.
Os fabricantes de processadores, AMD e Intel, desenvolveram extensões para a arquitetura x86 para
suportarem a virtualização:
Pacífica – AMD-V (AMD-Virtualization), se aplica às arquiteturas x86 de 64 bits como o Athon,
Turion, Phenom e as linhas mais recentes. A AMD implementa funções especiais no processador
que são executadas por um hypervisor e que podem controlar, em seu nome, se determinados
acessos de um sistema hóspede são permitidos.
Vanderpool – IVT (Intel Virtualization Technology) para as arquiteturas x86 de 32 e 64 bits. A Intel
introduziu mecanismos similares (virtual machines extensions) que complementam a idéia do
conceito de anéis de proteção com dois novos modos: root e não-root. Esses modos são
controlados pelo hypervisor (que executa em modo root) e que pode transferir a execução de um
sistema operacional hóspede para o modo não-root no qual instruções do anel zero são executadas
sem risco para o sistema.
As soluções da AMD e da Intel foram desenvolvidas independentemente uma da outra e são
incompatíveis, embora sirvam para o mesmo propósito.
Existem diversas soluções comerciais, gratuitas, em software livre ou integradas a sistemas
operacionais. Entre as mais conhecidas destacam-se o VMware e o Xen
O VMware é uma infra-estrutura de virtualização completa com produtos abrangendo desde desktops a
data centers organizados em três categorias:
gestão e automatização, forma automatizada e centralizada de gerência de todos os recursos da
infra-estrutura virtual permitindo a monitoração do sistema, auxiliando na conversão de sistemas
físicos em virtuais, na recuperação de desastres, entre outros.
120
TI para concursos
infra-estrutura virtual, monitoração e alocação de recursos entre as máquinas virtuais de forma a
atender requisitos e regras de negócios. Soluções para alta disponibilidade, backup, migração de
máquinas virtuais e atualização de versões de software.
virtualização de plataformas, destinado a criar máquinas virtuais.
O Xen é um monitor de máquina virtual (hypervisor ou VMM), em software livre, licenciado nos termos
da GNU General Public Licence (GPL), para arquiteturas x86, que permite vários sistemas operacionais
hóspedes serem executados em um mesmo sistema hospedeiro. O Xen é originário de um projeto de
pesquisa da universidade de Cambridge, que resultou em um empresa, a XenSource inc, adquirida
pela CitrixSystem em outubro 2007.
Os dois principais conceitos do Xen são:
domínios - máquinas virtuais do Xen e são de dois tipos:
privilegiada (domínio 0) - máquina virtual única que executa um núcleo linux modificado e que possuí
privilégios especiais para acessar os recursos físicos de entrada e saída e interagir com as demais
máquinas virtuais (domínios U). Por ser um sistema operacional modificado, possui os drivers de
dispositivos da máquina física e dois drivers especiais para tratar as requisições de acesso a rede e ao
disco efetuados pelas máquinas virtuais dos domínios U.
não-privilegiada (domínio U)
hypervisor - controla os recursos de comunicação, de memória e de processamento das máquinas
virtuais e não possui drivers de dispositivos. O hypervisor Xen não é capaz de suportar nenhum tipo
de interação com sistemas hóspedes, é necessário que exista um sistema inicial para ser invocado
pelo hypervisor. Esse sistema inicial é o domínio 0. As outras máquinas virtuais só podem ser
executadas depois que ele for iniciado. As máquinas virtuais de domínio U são criadas, iniciadas e
terminadas através do domínio 0.
O Virtual PC 2007 é uma máquina virtual para família Windows que pode ser configurada para executar
qualquer outro sistema operacional. O Virtual PC oferece mecanismos para interconectar logicamente
as diferentes máquinas virtuais. Cada máquina virtual tem seu próprio endereço MAC e endereço IP.
Além disso, o Virtual PC oferece um servidor de DHCP, um servidor NAT e switches virtuais. Dessa
forma, é possível construir cenários de rede usando máquinas virtuais. O virtual PC 2007 é disponível
para download, assim como um white paper que ensina a configurar as máquinas virtuais e um
ambiente de rede.
O Windows 2008 Server Hyper-V explora eficientemente as arquiteturas de 64 bits, processadores
multicore e meios de armazenamento e oferece todo um ambiente integrado de gerenciamento da
virtualização (monitoração, automatização de procedimentos, migração, recuperação de desastres etc).
Entre as principais vantagens do Windows 2008 Server Hyper-V estão várias ferramentas para
automatizar o processo de virtualização. Uma delas é o Manager Physical-to-virtual (P2V) que auxilia
na conversão de servidores físicos para virtuais. Há também o Volume Shadow Copy Services que
realiza automaticamente procedimentos de backup e de disponibilidade de forma que o sistema, como
um todo, opere de forma homogênea independente de falhas e de “picos” de carga. Isso é feito por
técnicas de migração de máquinas virtuais.
55 http://pt.wikipedia.org/wiki/Active_Directory
121
TI para concursos
Compatibilidade com sistemas operacionais MS Legados
Administração Delegada
Replicação Automática
O Active Directory (AD) surgiu da necessidade de se ter um único diretório – um banco de dados que
armazena as informações dos usuários, grupos, senhas, contas de computadores, relações de
confiança, informações sobre o domínio, unidades organizacionais etc – onde os usuários poderão ter
apenas uma senha para acessar todos os recursos disponíveis na rede.
Disponibiliza vários serviços, como: autenticação dos usuários, replicação do seu banco de dados,
pesquisa dos objetos disponíveis na rede, administração centralizada da segurança utilizando GPO,
entre outros serviços.
O AD é organizado de uma forma hierárquica, com o uso de domínios. Um domínio é um limite
administrativo com diferentes administradores e diferentes políticas de segurança.
Domínios baseados no AD pussuem os seguintes recursos:
Logon único: com esse recurso, o usuário necessita fazer apenas um logon para acessar os
recursos em diversos servidores da rede, inclusive email e banco de dados.
Conta de usuário única: os usuários possuem apenas um nome de usuário para acessar os
recursos da rede. As contas de usuários ficam armazenadas no banco de dados do AD.
Gerenciamento centralizado: com os domínios baseados no AD, temos uma administração
centralizada. Todas as informações sobre contas de usuários, grupos e recursos da rede, podem
ser administradas a partir de um único local no domínio.
Escalonabilidade: os domínios podem crescer a qualquer momento, sem limite de tamanho. A forma
de administração é a mesma para uma rede pequena ou grande.
Nos domínios baseados no AD, podemos ter dois tipos de servidores:
Controlador de Domínio (DC – Domain Controller): é o servidor que possui o AD instalado. Em um
mesmo domínio podemos ter mais de um Controlador de Domínio. As alterações efetuadas em um
DC são replicadas para todos os outros DC’s. São os DC’s quem fazem a autenticação dos usuários
de um domínio. Um destes DC é eleito o controlador primário do domínio (PDC). Quando ele sai da
rede, um controlador secundário assume a função.
Servidor Membro (Member Server) ou estação de trabalho (workstation): é um computador que não
possui uma cópia do AD, porém tem acesso aos objetos do AD. Não fazem a autenticação dos
usuários.
O AD utiliza o DNS para a nomeação de servidores e recursos, e também para resolução de nomes.
Esquema é um conjunto de regras que define as classes de objetos e atributos contidos no diretório, as
restrições e os limites das ocorrências desses objetos e o formato de seus nomes, que está incluído no
Active Directory.
Com a utilização de domínios, a rede pode refletir a estrutura de uma empresa. Diversos domínios
podem se interligar através do estabelecimento de relação de confiança, que permite aos usuários de
ambos os domínios acessar seus recursos. No Windows 2000, as relações de confianças são
bidirecionais e transitivas, ou seja, se o domínio X confia no domínio Y, e Y confia no domínio W, o
domínio X também confia no domínio W.
Algumas características próprias de cada domínio:
Um domínio armazena informações somente dos objetos do próprio domínio.
Um domínio possui suas próprias diretivas de segurança
9.5 Exercícios
174. (ICMS-SP 2009) Na arquitetura do sistema operacional Windows XP, o Executivo expõe serviços aos
174
processos usuários por meio
(a) dos Drivers de dispositivo.
(b) das DLL.
xx
(c) da API nativa.
(d) do Gerenciador de objeto.
(e) do Gerenciador de E/S.
122
TI para concursos
175
175. (ICMS-SP 2009) NÃO é uma característica do Active Directory do Windows XP:
(a) Um serviço de rede que permite aos usuários compartilhar informações, recursos e objetos por meio de
rede.
(b) Serviços de diretório para objetos compartilhados em uma rede, por exemplo: arquivos, impressoras,
usuários etc.
xx
(c) Um serviço de acesso remoto que permite aos usuários se conectarem remotamente com uma LAN.
(d) O cliente LDAP – Protocolo Leve de Acesso a Diretório, para pesquisar e modificar diretórios de Internet,
pode acessar o Active Directory.
(e) As localizações dos objetos são transparentes, ou seja, os usuários não sabem o endereço de um
objeto.
176. (ICMS-SP 2009) Os mecanismos IPC disponíveis, tais como Sinais, Pipes, Soquetes, Mensagens, Memória
176
compartilhada e Semáforos de System V, são implementados no núcleo do Linux pelo subsistema primário
(a) Sistemas de arquivos.
xx
(b) Sistema de comunicação interprocessos.
(c) Gerenciador de processo.
(d) Gerenciador de memória.
(e) Gerenciador de E/S.
177. Para configurar e gerenciar o processo de inicialização (boot) de um computador com o sistema operacional
177
Linux, pode-se utilizar o LILO ou o
(a) INIT
(b) BOOT.
(c) LINX.
(d) LOAD
xx
(e) GRUB
178. O Windows Server 2003 fornece várias ferramentas que podem ser usadas para gerenciar arquivos e pastas.
A respeito das práticas recomendadas, quando se trata de pastas compartilhadas, analise as afirmativas a
seguir:
I. A atribuição de permissões a grupos simplifica o gerenciamento dos recursos compartilhados, pois se pode
adicionar ou remover usuários nos grupos sem precisar reatribuir as permissões.
II. As permissões compartilhadas se aplicam somente aos usuários que acessam os recursos compartilhados
na rede e não a usuários que fazem logon localmente.
III. Na implementação das ferramentas, a descentralização das pastas de dados facilita o backup dos dados
178
e o gerenciamento do compartilhamento.
Assinale:
(a) se somente a afirmativa I estiver correta.
xx
(b) se somente as afirmativas I e II estiverem corretas.
(c) se somente as afirmativas I e III estiverem corretas.
(d) se somente as afirmativas II e III estiverem corretas.
(e) se todas as afirmativas estiverem corretas.
179. Um conjunto de regras que define as classes de objetos e atributos contidos no diretório, as restrições e os
limites das ocorrências desses objetos e o formato de seus nomes, que está incluído no Active Directory,
179
denomina-se
(a) floresta.
(b) domínio.
(c) diretiva de grupo.
xx
(d) esquema.
(e) catálogo global.
180
180. Quando se elimina o nó raiz de uma estrutura em árvore, o que dela restar forma
(a) outra árvore.
xx
(b) uma floresta.
(c) uma árvore binária.
(d) uma sub-árvore.
(e) um conjunto de sub-árvores.
181
181. Obtidas as permissões de acesso a um arquivo GNU/Linux: rw-r-xr-x Trata-se de um arquivo do tipo
(a) normal, cuja execução é permitida ao dono, aos usuários do grupo user e aos outros usuários do
arquivo.
xx
(b) normal, cujas alteração ou "deleção" são permitidas apenas ao dono do arquivo.
(c) normal, cujas alteração ou "deleção" são permitidas ao dono do arquivo ou aos usuários do grupo user
do arquivo.
(d) diretório, cujas leitura, gravação e execução são permitidas apenas ao dono do arquivo.
(e) diretório, cujas leitura e execução são permitidas ao dono, aos usuários do grupo user e aos outros
usuários do arquivo.
123
TI para concursos
182
182. O Kernel do Linux deve ser descompactado no diretório
xx
(a) /usr/src, após login como root.
(b) /root/src, após login como user.
(c) /sys/src, após login como root.
(d) /home, após login como wrapper.
(e) /boot, após login como kewl.
183. Para diversas partes de um programa serem executadas ao mesmo tempo, um sistema operacional utiliza
183
uma tecnologia de
(a) multitarefa.
(b) camadas.
xx
(c) threads.
(d) particionamento.
(e) multiprocessamento.
124
TI para concursos
10 Redes
10.1 Conceito de rede
Rede de computadores é um conjunto de computadores interligados por qualquer meio e que se
comunicam por uma codificação determinada (protocolo de rede). Existem diversos protocolos de rede,
mas o mais utilizado atualmente é o protocolo TCP/IP, transfer control protocol – internet protocol.
Computadores que se comunicam em um sistema fechado, estão em uma rede local (LAN). Quando
duas ou mais redes se ligam em um espaço mais amplo, diz-se que estão em uma rede WAN. Existem
milhões de computadores no mundo interligados em rede por um protocolo chamado TCP/IP, formando
uma única rede chamada de internet.
O meio de ligação entre os computadores (estações de trabalho) e a forma da disposição das conexões
são camados de topologia da rede. Cabos metálicos, fibras óticas ou comunicação sem fios formam os
enlaces entre computadores, ou entre computadores e outros equipamentos que fazem o papel de nós
que recebem e distribuem os sinais na rede.
A topologia de uma rede de comunicação refere-se à forma como os enlaces físicos e os nós estão
organizados, determinando os caminhos físicos existentes e utilizáveis entre quaisquer pares de
estações conectadas a essa rede. A topologia de uma rede muitas vezes caracteriza o seu tipo,
eficiência e velocidade.
Malha (fully) - A interconexão é total garantindo alta confiabilidade, porém a complexidade da
implementação física e o custo inviabilizam seu uso comercial;
Estrela (star) - A conexão é feita através de um nó central que exerce controle sobre a comunicação.
Sua confiabilidade é limitada à confiabilidade do nó central, cujo mau funcionamento prejudica toda a
rede;
Barramento (bus) - As estações são conectadas através de um cabo com difusão da informação para
todos os nós. é necessária a adoção de um método de acesso para as estações em rede
compartilharem o meio de comunicação, evitando colisões. é de fácil expansão, mas de baixa
confiabilidade, pois qualquer problema no barramento impossibilita a comunicação em toda a rede;
Anel (ring) - O barramento toma a forma de um anel, com ligações unidirecionais ponto a ponto. A
mensagem é repetida de estação para estação até retornar à estação de origem, sendo então retirada
do anel. Como o sinal é recebido por um circuito e reproduzido por outro há a regeneração do sinal no
meio de comunicação; entretanto há também a inserção de um atraso a cada estação. O tráfego passa
por todas as estações do anel, sendo que somente a estação destino interpreta a mensagem;
Árvore (tree) - é a expansão da topologia em barra herdando suas capacidades e limitações. O
barramento ganha ramificações que mantêm as características de difusão das mensagens e
compartilhamento de meio entre as estações;
Mistas (mesh) - Combinam duas ou mais topologias simples. Alguns exemplos são o de estrelas
conectadas em anel e as árvores conectadas em barramento. Procuram explorar as melhores
características das topologias envolvidas, realizar a conexão em um barramento único de módulos
concentradores aos quais são ligadas as estações em configurações mais complexas e mais
confiáveis.
125
TI para concursos
A cada equipamento conectado fisicamente na rede atribui-se um número chamado de endereço IP.
Este número é formado por quatro números de 0 a 255 separados por pontos. Por exemplo,
192.168.1.23 ou 10.10.0.128 são endereços IP válidos e 175.268.1.0 não é válido, pois contém um
número maior do que 255.
Estes números são, na verdade, uma representação decimal, pois a rede enxerga estes endereços
como quatro grupos de oito números binários (0 ou 1) ou octetos. Para transformar um número decimal
em binário, faz-se a divisão inteira daquele por sete vezes, então toma-se os restos das divisões em
ordem contrária:
Por exemplo, dividindo-se 244 por dois e guardando o resto da divisão:
div 2 sobra
244 0
122 0
61 1
30 0
15 1
7 1
3 1
1 1
temos que o número 244 do sistema decimal é representado por 11110100 no sistema binário.
Em uma rede local, sem conexão com outras redes que utilizam o protocolo TCP-IP, qualquer endereço
válido pode ser atribuída a qualquer computador. Porém, isto pode dificultar a sua manutenção e
prejudicar seu desempenho quando o número de computadores na rede aumentar.
O IP, elemento comum encontrado na internet pública, é descrito no documento RFC 791 (Request for
Comments) da IETF (Internet Engineering Task Force), que foi pela primeira vez publicado em
Setembro de 1981. Esta versão do protocolo é designada de versão 4, ou IPv4. O IPv6 tem
endereçamento de origem e destino de 128 bits, oferecendo mais endereçamentos que os 32 bits do
IPv4, com previsão de ser padrão na internet a partir de 2011.
Originalmente, o espaço do endereço IP foi dividido em poucas estruturas de tamanho fixo chamados
de "classes de endereço". As três principais são a classe A, classe B e classe C. Examinando os
primeiros bits de um endereço, o software do IP consegue determinar rapidamente qual a classe, e
logo, a estrutura do endereço.
Classe A: Primeiro bit é 0 (zero)
00000000.00000000.00000000.00000000 até 01111111.11111111.11111111.11111111 ou 0.0.0.0 até 127.255.255.255
Classe B: Primeiros dois bits são 10 (um, zero)
10000000.00000000.00000000.00000000 até 10111111.11111111.11111111.11111111 ou 128.0.0.0 até 191.255.255.255
Classe C: Primeiros três bits são 110 (um, um, zero)
11000000.00000000.00000000.00000000 até 11011111.11111111.11111111.11111111 ou 192.0.0.0 até 223.255.255.255
Classe D: (endereço multicast): Primeiros quatro bits são: 1110 (um, um, um, zero)
11000000.00000000.00000000.00000000 até 11011111.11111111.11111111.11111111 ou 224.0.0.0 até 239.255.255.255
Classe E: (endereço especial reservado): Primeiros cinco bits são 11110 (um, um, um, um, zero)
11000000.00000000.00000000.00000000 até 11011111.11111111.11111111.11111111 ou 240.0.0.0 até 247.255.255.255
Existem classes especiais na Internet que não são consideradas públicas, não são consideradas como
endereçáveis.
São reservados para a comunicação em uma rede privada os endereços que começam com 10.0.0.0, e
192.168.0.0 e os endereços na faixa 172.16.0.0 até 172.31.255.254.
É reservado para representar o computador local ("localhost") a faixa de endereços 127.0.0.0 a
127.255.255.255. Um computador usa qualquer destes endereços para designar a ele mesmo, como o
pronome pessoal “eu”.
É reservado para representar rede corrente o endereço 0.0.0.0. Um computador usa este endereço para
designar a própria rede.
A utilização destes endereços torna o computador inacessível por outros computadores na internet, o
que representa uma segurança. Por outro lado, para acessar a internet, a rede local precisa de pelo
menos um equipamento com um endereço público não reservado. Este equipamento pode fazer a
ligação entre a rede e a internet, ou roteamento. Pode ser um roteador ou um computador.
O endereço IP tem a função de identificar o computador, que chamamos de host, e também a rede em
que está conectado. O roteamento dos pacotes enviados na rede TCP/IP é feito procurando a rede e
depois o host (equipamento). Os bits à esquerda são utilizados para a rede. A quantidade de bits
utilizada é definida pelo administrador da rede por um número chamado de máscara de rede ou
netmask. O netmask é um conjunto de quatro octetos, como um endereço IP, iniciado por um grupo de
uns à esquerda e outro grupo com zeros à direita.
126
TI para concursos
Uma rede com endereços que comece com 192.168 e netmask 255.255.0.0, por exemplo, pode ter até
255x255=65536 endereços. O primeiro (192.168.0.0) é reservado para identificar a própria rede e o
último (192.168.255.255) é usado para distribuir dados para toda a rede (broadcast), os demais 65534
endereços são para os hosts. Todas as informações de todos os computadores nesta rede vai ser
inviada para todos os computadores, gerando colisões que podem tornar a rede muito lenta.
Para minimizar este problema, uma rede pode ser dividida em várias subredes alterando-se o natmask.
Um netmask 255.255.255.0 vai reduzir o número de endereços em cada rede para apenas 256 (254
para hosts) e aumentar o número de redes em 256 vezes. Cada subrede recebe um endereço para ser
identificada e outro para o broadcast a partir de operações lógicas entre a máscara de rede (netmask) e
cada endereço de cada equipamento.
Por exemplo, uma net mask pode ser 11111111. 11111111. 11111111.00000000, representada por 255.255.255.0.
A identificação de rede de um endereço IP é dada pela operação lógica ^ (e/and) entre a máscara e o
endereço. Nesta operação, comparam-se os octetos posição a posição, sendo atribuido o valor zero se
um dos dígitos for zero, ou valor um em caso contrário.
Um endereço 192.168.1.101 E uma máscara 255.255.255.0 produz o endereço 192.168.1.0, que identifica a rede.
A identificação de rede do broadcast é obtido pelo operação lógica v (ou/or) entre a negação da
máscara e o endereço.
Um endereço 192.168.1.101 OU uma máscara 255.255.255.0 produz o endereço 192.168.1.255, que identifica o broadcast.
O netmask não precisa usar somente grupos completos de oito bits. Desde que não haja “buracos”,
pode-se tomar mais algums bits.
Uma net mask pode ser 11111111. 11111111. 11111111.10000000, representada por 255.255.255.128, e um endereço, por exemplo,
192.168.1.132/25, dentro desta subrede será representada com o número de bits da máscara à sua direita, neste caso 25 (8+8+8+1).
Neste exemplo, o número de endereços se reduziu para 128 (126 para hosts) e o número de redes aumentou em 128 vezes.
Assim, podem ser criadas subredes com 128 endereços (126 hosts), 64, 32, 16, 8, 4 ou 2 endereços
(que não seve para nada). A conta de quantos hosts podem haver em uma subnet é dois elevado ao
número de zeros na netmask menos dois: hosts=2n-2. O número de subredes é dois elevado ao
número de uns do octeto incompleto: redes=2n.
Na nossa net mask 11111111. 11111111. 11111111.10000000, com sete zeros, teremos 27-2=126 endereços para hosts e 21=2 para
subredes.
Em uma net mask 11111111. 11111111. 11111111.11100000, com cinco zeros, teremos 25-2=30 endereços para hosts e 23=8
subredes.
Com isto tudo, o acesso de um equipamento a outro na mesma subrede é direta e rápida, enquanto
que computadores em redes distintas só conseguem se comunicar de forma remota.
56 http://pt.wikipedia.org/wiki/Arquitetura_de_rede
57 http://pt.wikipedia.org/wiki/Modelo_OSI
127
TI para concursos
7 Camada de aplicação
58 http://pt.wikipedia.org/wiki/Administrador_de_rede
59 http://pt.wikipedia.org/wiki/Wi-Fi
130
TI para concursos
Hotspot Wi-Fi existe para estabelecer ponto de acesso para conexão à internet. O ponto de acesso
transmite o sinal sem fios numa pequena distância – cerca de 100 metros. Quando um periférico que
permite "Wi-Fi", como um Pocket PC, encontra um hotspot, o periférico pode na mesma hora conectar-
se à rede sem fio. Muitos hotspots estão localizados em lugares que são acessíveis ao público, como
aeroportos, cafés, hotéis e livrarias. Muitas casas e escritórios também têm redes "Wi-Fi". Enquanto
alguns hotspots são gratuitos, a maioria das redes públicas é suportada por Provedores de Serviços de
Internet (Internet Service Provider - ISPs) que cobram uma taxa dos usuários para se conectarem.
Atualmente praticamente todos os computadores portáteis vêm de fábrica com dispositivos para rede
sem fio no padrão Wi-Fi (802.11 a, b, g ou n). O que antes era acessório está se tornando item
obrigatório, principalmente devido ao fato da redução do custo de fabricação.
10.6 Exercícios
184. (ICMS-SP 2009) As redes wireless utilizam os padrões IEEE 802.11 de conectividade sem fio para redes
locais, que determinam a velocidade, ou taxa de transmissão em Mbps, e a frequência, ou faixa de operação
184
em GHz. O padrão que tem as características de velocidade e frequência corretas corresponde a:
xx
(a) IEEE 802.11n 128 Mbps 5 GHz
(b) IEEE 802.11g 54 Mbps 5 GHz
(c) IEEE 802.11b 54 Mbps 5 GHz
(d) IEEE 802.11a 11 Mbps 2,4 GHz
(e) IEEE 802.11 11 Mbps 2,4 GHz.
185. (ICMS-SP 2009) A arquitetura OSI de 7 camadas (1. Física, 2. Enlace, 3. Rede, 4. Transporte, 5. Sessão, 6.
Apresentação e 7. Aplicação) pode funcionalmente representar um sistema de comunicação dividido em três
partes: redes (conectividade), transporte (ligação entre redes e aplicação) e aplicação (programas que
185
utilizam a rede). As camadas que representam as três partes são:
(a) Redes (camadas 1 e 2), Transporte (camadas 3 e 4) e Aplicação (camadas 5, 6 e 7).
xx
(b) Redes (camadas 1, 2 e 3), Transporte (camada 4) e Aplicação (camadas 5, 6 e 7).
(c) Redes (camadas 1 e 2), Transporte (camadas 3, 4 e 5) e Aplicação (camadas 6 e 7).
(d) Redes (camadas 1, 2 e 3), Transporte (camadas 4, 5 e 6) e Aplicação (camada 7).
(e) Redes (camada 1), Transporte (camadas 2, 3, 4 e 5) e Aplicação (camadas 6 e 7).
186. (ICMS-SP 2009) Em um modelo simplificado de gerenciamento de redes SNMP Internet, o programa
186
executado nas entidades a serem gerenciadas (hosts, hubs, roteadores etc.) é denominado
(a) MIB.
(b) SMI.
(c) SNMP.
xx
(d) Agente SNMP.
(e) Gerenciador SNMP.
187
187. Switches, Repetidores e Roteadores atuam respectivamente nas camadas
xx
(a) de enlace, física e de rede.
(b) de rede, de enlace e de transporte.
(c) física, de enlace e de rede.
(d) de enlace, de transporte e física.
(e) física, de rede e de enlace.
188. Entre os dispositivos utilizados para implementar fisicamente uma rede de computadores, pode-se citar o
__________ e o __________ , que operam, respectivamente, nas camadas 2 e 3 do modelo OSI. Assinale a
188
alternativa que completa, correta e respectivamente, as lacunas do texto.
(a) HUB ... Switch
(b) Roteador ... HUB
(c) Roteador ... Switch
(d) Switch ... HUB
xx
(e) Switch ... Roteador
189. No modelo de referência OSI, os pacotes e os quadros são unidades intercambiadas, respectivamente, pelas
189
camadas de
(a) enlace e de transporte.
(b) enlace e de rede.
(c) rede e física.
xx
(d) rede e de enlace.
(e) transporte e de enlace.
190. No modelo de referência TCP/IP, os protocolos IP, TCP e também aquele cujo objetivo é organizar máquinas
em domínios e mapear nomes de hosts em ambientes IP, são, respecivamente, partes integrantes das
190
camadas
(a) Inter-Redes, de Aplicação e de Transporte.
(b) Host/Rede, Inter-Redes e de Transporte.
(c) Inter-Redes, Host/Rede e de Aplicação.
xx
(d) Inter-Redes, de Transporte e de Aplicação.
(e) Host/Rede, de Transporte e de Aplicação.
131
TI para concursos
191. Para testar o funcionamento de uma placa controladora de rede Ethernet, instalada em um computador
pessoal com sistema operacional Windows XP, pode-se, a partir desse computador, aplicar o comando ping
191
para o endereço IP
(a) 0.0.0.0
(b) 1.1.1.1
xx
(c) 127.0.0.1
(d) 255.0.0.0
(e) 255.255.255.0
192. A Internet utiliza a pilha de protocolos TCP/IP para prover todos os serviços. Nesse contexto, o TCP é
encarregado de possibilitar o __________ e o IP é encarregado do __________ . Assinale a alternativa que
192
completa, correta e respectivamente, as lacunas do texto.
(a) roteamento ... endereçamento
(b) roteamento ... transporte
(c) transporte ... empacotamento
xx
(d) transporte ... endereçamento
(e) transporte ... sequenciamento
193. O processo de navegação na Internet é facilitado pelo uso de endereços de domínio no lugar dos endereços
IPs (mais difíceis de memorizar e relacionar com os sites endereçados). O serviço que faz o relacionamento
193
entre o domínio e o IP é denominado
(a) DHCP.
xx
(b) DNS.
(c) IMAP.
(d) PPP.
(e) TCP/IP.
194. O equipamento de rede de computador utilizado para armazenar cópias (cache) de páginas mais visitadas e,
194
além disso, verificar o conteúdo dessas páginas, é denominado
xx
(a) Proxy.
(b) Bridge.
(c) Spyware.
(d) Firewall.
(e) Gateway.
195. TCP/IP (transmission control protocol/Internetprotocol) são os dois protocolos mais importantes de um
conjunto de protocolos que deram seus nomes à arquitetura. Deles, surge a Internet, uma rede pública de
comunicação de dados que, com controle descentralizado, utiliza esse conjunto de protocolos como base
para sua estrutura de comunicação e seus serviços de rede. A arquitetura TCP/IP não só fornece os
protocolos que habilitam a comunicação de dados entre redes, mas também define uma série de aplicações
que contribuem para a eficiência e sucesso da arquitetura. Tendo como referência inicial as informações
195
acima, assinale a opção correta a respeito de Internet, intranet e padrões de tecnologia Web.
(a) Uma intranet é a aplicação da tecnologia criada na Internet e do conjunto de protocolos de transporte e
de rede TCP/IP em uma rede semiprivada, interna a uma empresa. Nela, grande quantidade de
informações e aplicações é disponibilizada por meio dos sistemas Web (protocolo HTTP) e correio-
eletrônico, sendo, comumente, verificadas funcionalidades como informações dos empregados e dos
clientes que a acessam em busca de informações sobre andamento de pedidos.
(b) O protocolo OSPF (open shortest path first), que é embasado no paradigma de chaveamento de pacotes
(packetswitching), especifica o formato dos pacotes que são enviados e recebidos entre roteadores e
sistemas finais.
(c) Os protocolos UDP e SMTP podem ser utilizados na transferência de arquivos para um computador
remoto que também os execute e em qualquer estrutura de rede, seja ela simples, como uma ligação
ponto-a-ponto, seja ela uma rede de pacotes complexa.
(d) O DNS (domain name system) é um sistema de banco de dados distribuído implementado em uma
hierarquia de servidores de nome (servidores DNS) e em um protocolo de camada de aplicação que
xx
permite a hospedeiros consultarem o banco de dados distribuído.
(e) O ICMP (Internet control message protocol), que é um protocolo de roteamento exterior auxiliar ao IP e
cuja finalidade é conectar dois ou mais sistemas autônomos, pode operar em conjunto com os
protocolos EGP (exterior gateway protocol) e BGP (border gateway protocol), o que permite maior
confiabilidade à ligação entre dois sistemas autônomos.
196. Para acesso aos recursos da Internet, os browsers possibilitam o uso de endereços de sites na forma de
mnemônicos, como, por exemplo, no portal do Governo do Estado do Rio de Janeiro –
http://www.governo.rj.gov.br/, deixando para o sistema automatizado a tarefa de realizar as necessárias
196
conversões para os correspondentes endereços IP´s. Esse recurso é conhecido pela sigla:
(a) ARP.
xx
(b) DNS.
(c) ISP.
(d) NAT.
(e) NFS.
132
TI para concursos
197. Dentre os recursos atualmente disponíveis no âmbito da tecnologia da informação, a Extranet constitui um
termo associado às facilidades de comunicação na busca do aumento da produtividade. Nesse sentido, a
197
Extranet é definida como:
(a) uma parte da Intranet que fica disponível à troca de informações com os funcionários de uma
organização, mas inibe todo tipo de acesso ao ambiente externo por meio do firewall.
(b) uma sub-rede sob sistema operacional Windows XP ou Linux que implementa recursos de VPN na sua
segurança, mas libera acesso por meio do firewall.
(c) uma parte da Intranet que fica disponível na Internet para interação com clientes e fornecedores de uma
xx
organização, mas com acesso autorizado, controlado e restrito.
(d) uma sub-rede que disponibiliza uma maior quantidade de microcomputadores com acesso à Internet por
meio da utilização do mecanismo NAT, mas restringe a intercomunicação com usuários indesejados à
organização.
(e) uma parte da Intranet que disponibiliza a comunicação com fornecedores e determinados clientes de
uma organização, mas inibe todo tipo de acesso ao ambiente interno por meio do firewall.
198. A Internet constitui o melhor exemplo de uma WAN operando por meio de uma infraestrutura baseada no
emprego de endereços IP´s para o roteamento dos pacotes de informações. Por definição na RFC 1918,
alguns endereços IP são reservados e não-roteáveis externamente, sendo somente usados para redes
internas, significando que nenhum computador conectado em rede local e usando qualquer uma das classes
desses endereços reservados conseguirá acessar a internet. A exceção ocorre se os microcomputadores
estiverem em rede e usando NAT (RFC 1631 – Network Address Translation). Para Intranets privadas, o
Internet Assigned Numbers Authority (IANA) reservou a faixa de endereços de 10.0.0.0 a 10.255.255.255
para a classe A e a de 172.16.0.0 a 172.16.255.255 para a classe B. Assinale a alternativa que apresente a
198
faixa de endereços reservada para a classe C.
(a) de 128.192.0.0 a 128.192.255.255
(b) de 128.146.0.0 a 128.146.255.255
(c) de 184.191.0.0 a 184.191.255.255
xx
(d) de 192.168.0.0 a 192.168.255.255
(e) de 198.162.0.0 a 198.162.255.255
199. Dada uma faixa de endereços que utilize a máscara de sub-rede 255.255.255.240, será possível atribuir
199
endereços IP para
(a) 2 redes e 62 estações em cada rede.
(b) 6 redes e 30 estações em cada rede.
xx
(c) 14 redes e 14 estações em cada rede.
(d) 30 redes e 6 estações em cada rede.
(e) 62 redes e 2 estações em cada rede.
200. Conecta segmentos de LAN que utilizam o mesmo protocolo de enlace de dados e de rede. Normalmente,
fornece portas para 4, 8, 16 ou 32 segmentos de LAN separados, permite que todas as portas estejam
simultaneamente em uso e pode conectar os mesmos ou diferentes tipos de cabo. Estas são características
200
de um
(a) concentrador.
(b) multiplexador.
xx
(c) comutador.
(d) modulador de amplitude.
(e) repetidor.
201. Padrão de protocolo da camada de transporte, sem conexão, não confiável, destinado a aplicações que não
querem controle de fluxo e nem manutenção da seqüência das mensagens enviadas, usado pelo TCP para
201
enviar mensagens curtas. Trata-se de
xx
(a) UDP.
(b) IP.
(c) SMTP.
(d) POP.
(e) Telnet.
202
202. As mensagens de correio eletrônico, a partir de um microcomputador pessoal, serão enviadas
(a) pelo protocolo SMTP, conectado pela porta 25, e serão recebidas pelos protocolos POP3 ou IMAP,
xx
conectado respectivamente pelas portas 110 ou 220.
(b) pelo protocolo SMTP, conectado pela porta 110, e serão recebidas pelos protocolos POP3 ou IMAP,
conectado respectivamente pelas portas 25 ou 220.
(c) pelos protocolos SMTP ou IMAP, conectado respectivamente pelas portas 25 ou 220, e serão recebidas
pelo protocolo POP3, conectado pela porta 110.
(d) pelos protocolos SMTP ou IMAP, conectado respectivamente pelas portas 110 ou 220, e serão
recebidas pelo protocolo POP3, conectado pela porta 25.
(e) pelo protocolo SMTP, conectado pela porta 110, serão recebidas pelo protocolo POP3, conectado pela
porta 25, e serão enviadas ou recebidas pelo protocolo IMAP, conectado pela porta 220.
133
TI para concursos
203
203. O daemon de correio eletrônico que se comunica com o SMTP permanece em escuta na porta
(a) 21
xx
(b) 15
(c) 69
(d) 80
(e) 110
204. Controlar o acesso ao canal compartilhado é uma questão que as redes de difusão têm a resolver na camada
204
de enlace de dados. Para cuidar desse problema existe
(a) o roteador.
(b) a VPN.
xx
(c) a subcamada MAC.
(d) o protocolo IP.
(e) o protocolo HTTP.
205. Serviço que permite ao usuário entrar em outro computador ligado à internet, transformando sua máquina
205
local em um terminal do computador remoto é o
xx
(a) Telnet.
(b) FTP.
(c) Usenet.
(d) Intranet.
(e) IRC.
206
206. As camadas LLC e MAC da arquitetura de rede IEEE 802 correspondem no modelo OSI à camada de
(a) Rede.
(b) Sessão.
xx
(c) Enlace.
(d) Transporte.
(e) Aplicação.
134
TI para concursos
11 Referências
Além das referências anotradas nos rodapés das páginas:
OBJECT Management Group, Inc. (OMG), Business Process Model and Notation (BPMN). Version 2.0 de
03/01/2011. Disponível em http://www.omg.org/spec/BPMN/2.0.
Acesso em 15/09/2012.
MAZZOLA, Vitório Bruno. “Engenharia de Software”. Disponível em
http://seriesloads.wordpress.com/2010/11/04/engenharia-de-software-vitorio-bruno-mazzola/ .
Acesso em 15/09/2012
PMI, Project Management Institute, Inc. “Um Guia do Conjunto de Conhecimentos em Gerenciamento de
Projetos (Guia PMBOK®)”. Terceira edição. ©2004.
135
TI para concursos
12 Sobre o autor
Walter de Tarso Faria Santos de Campos foi aprovado no concurso de AFR ICMS-SP de 2009 e está alocado no
Centro de Desenvolvimento de Sistemas do Departamento de Tecnologia de Informações (CDS-DTI) da
Secretaria da Fazenda de São Paulo.
Este material foi um resumo de tudo de TI que estudou para esta prova.
Formado em licenciatura em química pela Universidade de São Paulo, lecionou informática básica para alunos
do ensino fundamental e médio no Colégio Rio Branco por doze anos.
Exerceu consultoria de informática e desenvolveu mais de trinta sistemas para diversas intituições públicas e
privadas por 25 anos, para FIPE, FIA, FIPECAFI, Secretaria do Meio Ambiente, CDHU, Convap Engenharia e
Construções, GMR Arquitetos Associados, Fundação Padre Anchieta, Fundação Osesp, ABEM, Souza Cruz,
entre outras.
136
TI para concursos
13 Gabarito
47 94 141 188
(d) (c) (b) (e)
1 48 95 142 189
(b) (a) (a) (d) (d)
2 49 96 143 190
(a) (c) (e) (a) (d)
3 50 97 144 191
(e) (a) (a) (d) (c)
4 51 98 145 192
(b) (c) (c) (e) (d)
5 52 99 146 193
(e) (c) (e) (c) (b)
6 53 100 147 194
(b) (b) (b) (b) (a)
7 54 101 148 195
(d) (a) (a) (e) (d)
8 55 102 149 196
(e) (b) (d) (c) (b)
9 56 103 150 197
(b) (c) (e) (b) (c)
10 57 104 151 198
(a) (d) (a) (c) (d)
11 58 105 152 199
(c) (d) (b) (e) (c)
12 59 106 153 200
(a) (d) (b) (a) (c)
13 60 107 154 201
(b) (b) (b) (e) (a)
14 61 108 155 202
(d) (c) (e) (d) (a)
15 62 109 156 203
(b) (d) (b) (e) (b)
16 63 110 157 204
(d) (d) (a) (e) (c)
17 64 111 158 205
(a) (b) (a) (e) (a)
18 65 112 159 206
(c) (a) (d) (b) (c)
19 66 113 160
(a) (a) (a) (e)
20 67 114 161
(d) (c) (e) (b)
21 68 115 162
(c) (b) (b) (a)
22 69 116 163
(d) (c) (b) (b)
23 70 117 164
(c) (e) (c) (d)
24 71 118 165
(e) (d) (a) (d)
25 72 119 166
(b) (e) (e) (e)
26 73 120 167
(a) (c) (d) (b)
27 74 121 168
(d) (b) (e) (d)
28 75 122 169
(c) (e) (d) (d)
29 76 123 170
(e) (c) (c) (e)
30 77 124 171
(b) (e) (d) (c)
31 78 125 172
(a) (c) (c) (d)
32 79 126 173
(a) (c) (a) (d)
33 80 127 174
(d) (d) (c) (c)
34 81 128 175
(d) (d) (b) (c)
35 82 129 176
(d) (b) (d) (b)
36 83 130 177
(c) (b) (e) (e)
37 84 131 178
(d) (c) (c) (b)
38 85 132 179
(d) (e) (c) (d)
39 86 133 180
(a) (c) (d) (b)
40 87 134 181
(b) (b) (e) (b)
41 88 135 182
(b) (e) (a) (a)
42 89 136 183
(e) (a) (d) (c)
43 90 137 184
(c) (b) (b) (a)
44 91 138 185
(a) (d) (e) (b)
45 92 139 186
(d) (e) (a) (d)
46 93 140 187
(e) (b) (b) (a)
137