Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de TI para Concursos
Apostila de TI para Concursos
Material de referncia
TI ICMS
Walter de Tarso
Verso 1
2012
Curso de TI
Sumrio
1
1.2
1.2.1
1.3
1.4
1.5
Exerccios ........................................................................................................................................... 14
2.1.1
2.2
Elementos ................................................................................................................................................... 18
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2.2.8
2.3
Exerccios ........................................................................................................................................... 23
3.1.1
3.1.2
3.2
3.2.1
3.2.2
3.2.3
3.2.4
3.2.5
3.3
Fundamentos de COBIT.................................................................................................................... 29
3.3.1
3.3.2
3.3.3
3.3.4
3.4
Exerccios ........................................................................................................................................... 31
Software ............................................................................................................................................. 33
4.2
4.2.1
4.2.2
4.2.3
4.2.4
4.3
4.3.1
4.3.2
4.4
4.5
Pg. 2 de 143
Walter de Tarso
4.6
4.6.1
4.6.2
4.7
4.7.1
4.7.2
4.8
4.8.1
4.8.2
4.9
4.9.1
4.9.2
4.9.3
Qualidade de Software................................................................................................................................. 49
Teste de software......................................................................................................................................... 51
Documentos de Teste................................................................................................................................... 52
4.10
Exerccios ........................................................................................................................................ 53
Arquitetura de Software................................................................................................................ 59
5.1
5.2
UML ................................................................................................................................................... 59
5.3
5.3.1
5.4
Exerccios ................................................................................................................................................... 62
5.4.1
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5.4.7
5.4.8
5.4.9
5.4.10
5.5
5.6
Exerccios ........................................................................................................................................... 70
6.2
6.2.1
6.2.2
6.2.3
6.2.4
Normalizao .............................................................................................................................................. 74
Etapas de modelagem .................................................................................................................................. 75
Relacionamentos ......................................................................................................................................... 75
Transao .................................................................................................................................................... 76
6.3
6.4
6.4.1
6.5
6.5.1
6.6
6.6.1
6.6.2
6.6.3
6.7
Servio ........................................................................................................................................................ 63
Processos .................................................................................................................................................... 63
Tecnologia .................................................................................................................................................. 63
Definies de SOA ...................................................................................................................................... 63
Web Services .............................................................................................................................................. 64
SOAP .......................................................................................................................................................... 66
WSDL ......................................................................................................................................................... 67
UDDI .......................................................................................................................................................... 67
Segurana.................................................................................................................................................... 68
Exerccios ................................................................................................................................................... 68
Exerccios ........................................................................................................................................... 84
Curso de TI
7.1.1
7.2
7.2.1
7.2.2
7.2.3
7.2.4
7.2.5
7.2.6
7.2.7
7.2.8
7.2.9
7.2.10
7.2.11
7.3
7.3.1
7.3.2
7.3.3
7.4
7.4.1
7.4.2
7.4.3
7.4.4
7.4.5
7.4.6
7.4.7
7.4.8
7.4.9
7.4.10
7.4.11
7.4.12
7.5
Objetos........................................................................................................................................................ 92
Classe ......................................................................................................................................................... 93
Persistncia ................................................................................................................................................. 93
Mtodos ...................................................................................................................................................... 93
Atributos ..................................................................................................................................................... 94
Mensagens .................................................................................................................................................. 94
Herana ....................................................................................................................................................... 94
Polimorfismo............................................................................................................................................... 94
Sobrecarga .................................................................................................................................................. 95
Interfaces .................................................................................................................................................... 95
Pacotes ........................................................................................................................................................ 95
8.2
8.3
8.4
8.5
8.6
9.2
9.2.1
9.2.2
9.2.3
9.2.4
9.2.5
9.2.6
9.2.7
9.2.8
9.2.9
9.2.10
9.3
9.4
Pg. 4 de 143
Walter de Tarso
9.5
10
10.1
10.1.1
10.2
10.2.1
10.2.2
10.2.3
10.2.4
10.2.5
10.2.6
10.2.7
10.3
10.4
10.5
10.6
11
12
13
Gabarito................................................................................................................................... 137
Sumrio de imagens
Ilustrao 1 Mtricas .......................................................................................................................................... 13
Ilustrao 2 Exemplo de Fluxo utilizando pool, lanes, evento de incio e fim, tarefas e gateway ......................... 19
Ilustrao 3 Smbolos BMPN utilizados no MS Visio .......................................................................................... 19
TI para concursos
Gerncia de Projetos
1.1
Conceitos bsicos
1
http://pt.wikipedia.org/wiki/Projeto
http://pt.wikipedia.org/wiki/Gerncia_de_projetos
TI para concursos
uma soluo intermediria entre as mesmas, que atende a uma boa parte das exigncias com um
custo competitivo.
O gerenciamento de projetos tenta adquirir controle sobre as variveis
tempo - influencia o prazo at o termino do projeto. Uma restrio de tempo pode significar custos
aumentados e/ou escopo reduzido.
custo - informa o valor monetrio includo no oramento disponvel para o projeto. Um oramento
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 verso atual do PMBOK, trplice restrio foi eliminada, passando a existir restries do projeto que
so elas: Escopo, Qualidade, Cronograma, Oramento, Recursos e Riscos. Portanto, qualquer
alterao em um desses itens certamente haver restries em um ou mais dos demais itens.
Para manter o controle sobre o projeto do incio ao fim, um gerente de projetos utiliza vrias tcnicas,
dentre as quais se destacam:
Planejamento de projeto
Anlise de valor agregado
Gerenciamento de riscos de projeto
Cronograma
Melhoria de processo
1.2
Processos do PMBOK
O Guia PMBOK3 identifica um subconjunto do conjunto de conhecimentos em gerenciamento de
projetos, que amplamente reconhecido como boa prtica, sendo em razo disso, utilizado como base
pelo Project Management Institute (PMI). Uma boa prtica no significa que o conhecimento e as
prticas devem ser aplicadas uniformemente a todos os projetos, sem considerar se so ou no
apropriados.
O Guia PMBOK tambm fornece e promove um vocabulrio comum para se discutir, escrever e aplicar
o gerenciamento de projetos possibilitando o intercmbio eficiente de informaes entre os profissionais
de gerncia de projetos.
O guia baseado em processos e subprocessos para descrever de forma organizada o trabalho a ser
realizado durante o projeto. Essa abordagem se assemelha empregada por outras normas como a
ISO 9000 e o Software Engineering Institute's, CMMI.
A verso 2008 do guia, cita 42 processos agrupados em cinco grupos e nove reas de conhecimento.
O conhecimento de gerenciamento de projetos, descrito no Guia PMBOK consiste em:
Definio do ciclo de vida e da organizao de um projeto
Descrio dos cinco grupos de processos de gerenciamento de projetos
Grupo de processos de iniciao
Grupo de processos de planejamento
Grupo de processos de execuo
Grupo de processos de monitoramento e controle
Grupo de processos de encerramento
Descrio das nove reas de conhecimento
Existem trs documentos principais descritos no Guia PMBOK e cada um deles possui um objetivo
especfico:
Termo de abertura do projeto. Autoriza formalmente o projeto.
Declarao do escopo do projeto. Determina qual trabalho dever ser realizado e quais entregas
precisam ser produzidas.
Plano de gerenciamento do projeto. Determina como o trabalho ser realizado.
http://pt.wikipedia.org/wiki/PMBOK
TI para concursos
1.2.1
4 - Integrao
Planejamento
Desenvolver o plano de
gerenciamento de projeto
Planejamento do escopo
Definio do escopo
Criar EAP
Definio das atividades
Sequenciamento de
atividades
Estimativa de recursos das
atividades
Estimativa de durao das
atividades
Desenvolvimento do
cronograma
Estimativa de custos
Oramentao
Planejamento da qualidade
5 - Escopo
6 - Tempo
7 - Custo
8 - Qualidade
12 - Aquisies
Encerramento
Encerrar o projeto
Controle do cronograma
Controle de custos
Realizar o controle da
qualidade
Gerenciar a equipe do
projeto
Planejamento das
comunicaes
Planejamento de
gerenciamento de riscos
Identificao dos riscos
Anlise qualitativa dos
riscos
Anlise quantitativa dos
riscos
Planejamento de respostas
a riscos
Planejar compras e
aquisies
Planejar contrataes
Administrao de contratos
Planejamento de RH
11 - Riscos
Monitoramento e controle
Monitorar e controlar o
trabalho do projeto
Controle integrado de
mudanas
Verificao do escopo
Controle do escopo
Realizar a garantia da
qualidade
Controlar ou mobilizar a
equipe do projeto
Desenvolver a equipe do
projeto
Distribuio das
informaes
9 - RH
10 - Comunicao
Execuo
Orientar e gerenciar a
execuo do projeto
Relatrio de desempenho
Gerenciar as partes
interessadas
Monitoramento e controle
de riscos
Encerramentos de
contratos
TI para concursos
1.2.1.1
Integrao de projetos
Ncleo 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
contnuo que o gerente completa para garantir que o projeto prossiga do incio ao fim a atividade
diria de completar o trabalho do projeto..
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 criao da estrutura analtica de processos (EAP), ou Work Breakdown
Structure (WBS), uma ferramenta de decomposio do trabalho do projeto em partes manejveis,
uma estrutura em forma de rvore exaustiva, hierrquica (de mais geral para mais especfica) de
entregveis (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 relao a tempo de
execuo, recursos e custos.
TI para concursos
1.2.1.3
Tempo de projetos
Completar o projeto dentro do prazo.
TI para concursos
1.2.1.4
Custo de projetos
Completar o projeto dentro do oramento.
TI para concursos
1.2.1.5
Qualidade de projetos
Garantir que o projeto vai satisfazer as necessidades pelas quais ele foi feito. Qualidade no o
melhor resultado possvel, mas o atendimento justo dos requisitos, do cronograma e oramento.
Qualidade a totalidade de caractersticas de uma entidade que a torna capaz de satisfazer
necessidades declaradas ou implcitas .
Um aspecto crtico da gerncia da qualidade, no contexto do projeto, a necessidade de traduzir
as necessidades implcitas em necessidades declaradas, atravs da gerncia do escopo do
projeto
TI para concursos
1.2.1.6
TI para concursos
1.2.1.7
10
Comunicaes de projetos
Garantir rpida e adequada gerao, coleo, disseminao, armazenamento e disposio final
das informaes do projeto.
TI para concursos
1.2.1.8
11
Riscos de projetos
Identificar, analisar e responder aos riscos do projeto.
TI para concursos
1.2.1.9
12
Aquisies de projetos
Adquirir bens e servios externos.
TI para concursos
1.3
Finalidade
Andamento em termos
de tamanho e
complexidade
Planejamento de iterao
Abrangncia
Exemplos de medidas/perspectivas
Nmero de classes
SLOC
Pontos de funo
Cenrios
Casos de teste
Essas medidas tambm podem ser coletadas por classe e por pacote
Quantidade de retrabalho por iterao (nmero de classes)
Adaptabilidade
Convergncia
"Retrabalho" de software
Modularidade em
termos do escopo de
mudana
Convergncia
"Retalhamento" de software
Mdia de pessoa-horas/mudana
Essa medida tambm pode ser coletada por iterao e por pacote
Qualidade em termos
Planejamento de iterao
da quantidade e do tipo Indicador de retrabalho
de erros
Critrio de release
13
TI para concursos
Mtrica
Finalidade
Exemplos de medidas/perspectivas
Essas medidas tambm podem ser coletadas por classe e por pacote
Maturidade em termos
da freqncia de erros
Perfil de despesas do
projeto versus
despesas planejadas
1.4
Adequao/cobertura de
teste
Resistncia para uso
Viso financeira
Planejado versus real
1.5
14
Exerccios
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 esforo contnuo que visa manter um servio em funcionamento.
(c) Geralmente, o termo "temporrio" no se aplica ao produto, servio 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 servio.
2.
3.
(ICMS-SP 2009) No PMBOK, a tcnica que compara as realizaes tcnicas durante a execuo do projeto
com as do cronograma do plano de gerenciamento do projeto, podendo usar parmetros tcnicos
importantes do produto desenvolvido pelo projeto como uma mtrica de qualidade, sendo que os valores
3
medidos fazem parte das informaes 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.
TI para concursos
15
4.
(ICMS-SP 2009) Planos mais exatos e completos, resultantes de sucessivas iteraes do processo de
planejamento e estimativas mais exatas, elaboradas medida que o projeto se desenvolve, so produtos da
tcnica aplicada para melhoria e detalhamento contnuos dos planos. Essa tcnica, no PMBOK,
4
denominada
(a) Loop de rede.
xx
(b) Elaborao progressiva.
(c) Estrutura Analtica dos Recursos.
(d) Gerenciamento de Portflios.
(e) Estimativa paramtrica.
5.
6.
Os processos do PMBOK: criao da estrutura analtica do projeto (EAP) e verificao do escopo do projeto
6
devem ser realizados, respectivamente, nas etapas de
(a) planejamento e execuo.
xx
(b) planejamento e monitorao/controle.
(c) iniciao e execuo.
(d) iniciao e monitorao/controle.
(e) iniciao e encerramento.
7.
8.
Um instrumento facilitador do planejamento de projeto que o desmembra em atividades menores que podem
8
ser mais facilmente dimensionadas em relao a tempo de execuo, 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 gerncia de projetos, as simulaes para anlise de risco de
9
prazos so possveis utilizando
(a) o Arrow Diagramming Method.
xx
(b) a tcnica Monte Carlo.
(c) o modelo WBS.
(d) a anlise de custo/benefcio.
(e) o Project Charter.
10.
11.
10
TI para concursos
16
12.
13.
De acordo com o corpo de conhecimento da gerncia de projeto, para estimar os custos totais, quando ainda
existe uma quantidade limitada de informaes detalhadas sobre o projeto (por exemplo, nas fases iniciais),
13
freqentemente
(a) elaborado um modelo paramtrico.
xx
(b) usada uma estimativa por analogia.
(c) usada uma estimativa bottom-up.
(d) elaborada uma anlise de precedncia.
(e) elaborada uma anlise da variao.
14.
Existem mtodos que objetivam formas de comprimir as duraes das atividades sem alterao no escopo
do projeto. Um deles usado para quando existem negociaes de agenda e custos para determinar como
(e se) fazer a maior compresso para o menor custo. Outro usado para tentar programar atividades em
paralelo (simultneas), mas costuma gerar retrabalho e aumenta os riscos. So usual e respectivamente
14
denominados de mtodos
(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 informtica bem sucedido, a ordem de execuo das atividades deve
15
ser
(a) planejamento, integrao, organizao, medio e reviso.
xx
(b) planejamento, organizao, integrao, medio e reviso.
(c) organizao, planejamento, integrao, medio e reviso.
(d) organizao, planejamento, medio, integrao e reviso.
(e) planejamento, organizao, medio, reviso e integrao.
16.
(ARCE FCC 2006) O fator de mximo desempenho de um projeto est diretamente relacionado ao fator de
(a) escopo limitado.
(b) escopo genrico.
(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 mximo, ou
17
ponto timo, quando relacionado ao fator
xx
(a) custo alto.
(b) tempo reduzido.
(c) tempo excessivo.
(d) escopo limitado.
(e) escopo genrico.
18.
Duas atividades de um projeto podem ocorrer simultaneamente quando o inter-relacionamento das mesmas
18
do tipo
(a) incio para incio (SS) ou trmino para incio (FS).
(b) trmino para trmino (FF) ou trmino para incio (FS).
xx
(c) incio para incio (SS) ou trmino para trmino (FF).
(d) incio para trmino (SF) ou trmino para trmino (FF).
(e) trmino para incio (FS) ou incio para trmino (SF).
19.
Os produtos a serem entregues no mais baixo nvel da estrutura do projeto (WBS) geralmente so
xx
(a) pacotes de trabalho.
(b) planos do projeto.
(c) fases do projeto.
(d) recursos disponveis.
(e) cronogramas do projeto.
20.
20
19
16
TI para concursos
17
21.
22.
22
TI para concursos
2.1
2.1.1
Elementos
A modelagem em BPMN feita atravs de diagramas simples, com um pequeno conjunto de
elementos grficos. Isto facilita que os usurios de negcio, bem como os desenvolvedores, entendam
o fluxo e o processo. As quatro categorias bsicas de elementos so as seguintes:
Objetos de Fluxo definem o comporatmento do fluxo. Fazem a movimentao das informaes
atravs de aes.
Eventos Qualquer coisa que acontece durante o fluxo. Aes (trigger) que interferem no fluxo
(result), tipicamente prazos, tambm podendo ser uma chamada de um sistema externo (web
service) ou alguma alterao no banco de dados (watching). Representado por um crculo. H trs
tipos de eventos: incio, intermedirio e fim.
Atividades Aes (sub-processos ou tarefas) realizadas pelos usurios, chamados de atores,
normalmente por tela de algum programa de computador. Representada por um retngulo
arredondado.
Gateways Controla a convergncia e divergncia da sequncia de fluxos e atividades no fluxo.
Determina ramificaes (branch), bifurcaes (forking), mistura (merging) e junes (join) de
caminhos. Representado por um losango.
Objetos de Conexo
Fluxo de Sequncia seta em linha contnua ligando dois objetos, indica a ordem de execuo
dos objetos.
Fluxo de Mensagem seta em linha tracejada indicando o fluxo de mensagens entre participantes
Associao linha ou seta em linha pontilhada indicando uma ligao entre uma informao,
normalmente uma anotao, e um artefato.
Swim lane uma rea de agrupamento de objetos de fluxo representado por uma faixa que vai da
esquera direita da pgina, 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 interao entre pools feita atravs de fluxos de mensagens. Nenhum fluxo de
sequncia pode ser associado a black boxes, mas os fluxos de mensagem podem lig-los.
Lane subdiviso de uma pool.
http://pt.wikipedia.org/wiki/Business_Process_Management
18
TI para concursos
Dados possuem informaes que os objetos de fluxo necessitam para serem realizadas
Objetos de dados informaes armazenadas
Dados de entrada informaes solicitadas
Dados de sada informaes produzidas em uma atividade ou evento
Armazenamento gravao dos dados
Artefatos informaes adicionais sobre o fluxo
Grupo agrupamento de elementos de uma mesma categoria para fins de entendimento, sem
efeito sobre o fluxo. Representado por um retngulo arredondado tracejado.
Anotao uma observao para facilitar o entendimento do fluxo para o leitor. Represnetado por
uma linha de associao terminada por um colchete e o texto.
Mensagem informao enviada entre dois participantes. Representado por cone de uma carta.
Estas quatro categorias de elementos nos do a oportunidade de fazer um diagrama de processos de
negcio simples (BPD).
Ilustrao 2 Exemplo de Fluxo utilizando pool, lanes, evento de incio e fim, tarefas e gateway
19
TI para concursos
2.2
2.2.1
Automao de processos
Realizada pelos BPMS, divide-se em modelagem, simulao, execuo, controle e otimizao.
Um aplicativo do tipo BPMS, tipicamente, inclui o mapeamento dos processos de negcio ponta-aponta, desenho dos fluxos e formulrios eletrnicos, definio de workflow, regras de negcio,
integradores, monitorao em tempo real das atividades e alertas. uma poderosa ferramenta de
gesto, para garantir que os processos esto sendo efetivamente executados como modelados,
contribuindo para os objetivos da organizao.
A modelagem de processos feita no prprio BPMS. Alguns destes seguem a notao mais usada
atualmente, o BPMN (Business Process Modeling Notation). Esta notao trata-se de uma srie de
cones padres para o desenho de processos, o que facilita o entendimento do usurio. A modelagem
uma etapa importante da automao pois nela que os processos so descobertos e desenhados.
nela tambm que pode ser feita alguma alterao no percurso do processo visando a sua otimizao.
Aps o desenho e o estabelecimento dos usurios responsveis pela concluso de cada tarefa, pode
ser feita uma simulao, onde se pode testar se as regras pr-estabelecidas esto de acordo com o
objetivo da empresa e se as tarefas esto sendo encaminhadas para as pessoas corretas.
A execuo do processo ocorre aps as etapas anteriores j terem sido realizadas. O BPMS utilizado
faz com que as tarefas sejam enviadas para os seus devidos responsveis, controlando o seu tempo
de execuo por pessoa e pelo processo em geral. Podem ser utilizadas tambm regras de negcio
(Business Rules) pr-estabelecidas.
O controle ideal de BPM aquele que est presente durante todas as etapas do processo: antes,
durante e depois. Desde o incio da modelagem at a anlise ps-concluso da execuo, o controle
deve ser realizado. Um tipo de controle que existe em alguns BPMS so relatrios de fluxos em
andamento, onde fornecido o status do fluxo, com quem est parado, h quanto tempo est parado,
etc. Isso importante para evitar que os erros sejam encontrados somente quando o processo
concludo. H tambm relatrios de fluxos concludos, onde se pode ter uma noo geral de como se
desenvolveu o processo. Alguns softwares apresentam grficos e relatrios com bastantes detalhes
dos processos.
A otimizao tem crucial importncia quando se trata de BPM. essencial para que sejam feitas
melhorias nos processos de modo a alcanar resultados positivos mais rapidamente, melhorando o
servio aos clientes e, possivelmente, com menores custos. Depende, obviamente, das etapas
anteriores, principalmente do controle, onde deve haver uma busca pela perfeio.5
2.2.2
Fluxograma
Diagrama que descreve a sequncia de atividades de um processo empresarial atravs de uma
simbologia padronizada, utilizando retngulos para representar atividades, losangos para pontos de
deciso e setas para indicar o fluxo. Estes simbolos vm acompanhado de textos explicativos.
Fcil de utilizar, mas pouco apropriado para representar processos de grande complexidade e
divergncias.
O fluxograma considera o processo do ponto de vista da empresa.
2.2.3
Service blueprint
Tcnica de mapeamenteo de servios derivado do fluxograma que considera o aspecto de interao
com o cliente.
um mapa de todas as transaes que constituem o processo de entrega do servio.
Divide-se em duas regies separadas por uma linha, chamada de linha de visibilidade.
Na parte de cima da linha, a rea de evidncias fsicas percebida pelo cliente, as suas aes e
interaes com os empregados. Na parte de baixo, encontram-se as aes dos empregados e os
processos de suporte que so invisveis para o cliente.
As evidncias fsicas, mostradas na parte de cima, identificam elementos que o cliente pode usar como
indicador da qualidade do servio. Cada conexo vertical atravs da linha de interao indica um ponto
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 servio e podem ser
usados como pontos de potencial falhas no sistema de servio.
Fonte: http://www.lgti.ufsc.br/public/luciano.pdf
Apesar de ser mais evoluido do que os fluxogramas, tambm no consegue representar uma descrio
completa da experincia com o cliente. O foco est na tarefa e no no cliente.
2.2.4
Mapa do servio
Forma visual de trs elementos crticos de servios: processso de entrega de servio, os papis dos
clientes e empregados e elementos visveis de servio. A criao do mapa requer a identificao de
evidncias fsicas do servio, indicadores de qualidade, as pessoas envolvidas e o fluxo operacional de
atividades de entrega de servios. Foca os servios do ponto de vista do consumidor.
uma evoluo do service blueprint.
Logo acima da linha de visibilidade, h uma linha horizontal que indica o contato do cliente com os
empregados de atendimento. Abaixo da linha de visibilidade h outra que indica a relao entre o
suporte e o processso de entrega de servio. Mais abaixo, outra linha separa a gerncia do suporte.
O mapa pode ser lido horizontalmente para entender as aes ou passos realizados pelos clientes e
empregados, ou lido verticalmente para compreender as aes de suporte, os processos e estruturas.
2.2.5
IDEF
Famlia de mtodos de estruturar e analisar uma empresa. Utilizam-se de diagramas para representar
os processos.
21
TI para concursos
Cada tarefa representada por um retngulo. Cada lado representa uma informao de entrada, sada
de produtos e/ou informaes, recursos disponveis e condies para ativao.
A nfase no est na sequncia, mas no contedo das atividades e nos recursos envolvidos no
processo. Exemplo:
Controle
Entradas
Processo
Sadas
Mecanismo
2.2.5.1
IDEF0
Mtodo de modelagem funcional usado para processos associados a decises, aes e atividades.
2.2.5.2
IDEF1
Mtodo de modelagem de informao, para expresso dos requisitos de um sistema.
2.2.5.3
IDEF3
Mtodo de captura da descrio do processo, que relaciona causa e efeito entre processos.
2.2.5.4
IDEF4
Mtodo de desenho orientado a objeto, que auxilia no projeto de sistemas orientados a objetos.
2.2.5.5
IDEF5
Mtodo de identificao de ontologias associadas aos processos e informaes.
2.2.5.6
IDEF9
Mtodo para auxiliar na identificao de restries associadas a um sistema ou processo.
2.2.6
2.2.7
Walk-through-audit
Mtodo de auditoria, que consiste em uma srie de questes dirigidas aos clientes, e gerentes de
servios, para avaliao sistemtica da viso do cliente sobre o servio prestado.
Utilizam-se questes estruturadas que avaliam cada etapa do processo em uma escala de um a cinco,
respondidas durante ou imediatamente aps o servio, ou aplicadas em clientes da concorrncia.
22
TI para concursos
Alm de avaliar a percepo do cliente, tambm permite analisar a lacuna entre a opinio do cliente e
da gerncia e entre a empresa e a concorrncia.
Funciona em conjunto com alguma outra tcnica grfica.
2.2.8
2.3
23
Exerccios
23.
(ICMS-SP 2009) No diagrama de fluxos de negcio (BPMN), para estabelecer "quem faz o que" devem ser
23
representados os fluxos de negcio 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 negcio (BPMN), NO se aplica um End Event no tipo de
24
trigger
(a) Exception.
(b) Link.
(c) Message.
(d) Multiple.
xx
(e) Timer.
TI para concursos
25.
24
(ICMS-SP 2009) Na modelagem de processos de negcio (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.
TI para concursos
Gerncia de Servios de TI
http://www.trainning.com.br/download/Apostila_ITIL_Cobit.pdf
http://www.geraldoloureiro.com/wiki/images/9/98/WGov_Palestra_ClaudioCruz.pdf
25
TI para concursos
3.1
Fundamentos da ITIL V2
Estrutura abstrata (framework) de servios de TI. Orienta o como fazer das funes do gerente de
tecnologia, dividindo estes servios em dois grandes grupos suporte a servios e entrega de servios
unidos por uma central de atendimento (service desk).
3.1.1
Suporte a servios
O suporte a servios tem foco nos usurios da instituio, administrando incidentes, suas origens
(problema) e definindo formas de tratamento e de alteraes necessrias para resoluo.
3.1.1.1
3.1.1.2
3.1.1.3
3.1.1.4
3.1.1.5
26
TI para concursos
3.1.1.6
3.1.2
Entrega de Servio
A entrega de servios volta-se para o cliente, preocupando-se em garantir uma qualidade tima em
funo da estratgia do negcio, alm da efetividade do servio prestado como resultado de uma
gesto de recursos tecnolgicos (ativos) e financeiros.
3.1.2.1
3.1.2.2
Gerenciamento financeiro
Como JUSTIFICAR o oramento? Necessidades da TI para o negcio planejados a partir dos
processos (Mudana, Nvel, Capacidade e Disponibilidade) compe o oramento e acompanhamento
financeiro.
3.1.2.3
Gerenciamento de disponibilidade
Anlise de riscos, oportunidades, satisfao, produtividade e tempo de manuteno e indisponibilidade.
3.1.2.4
Gerenciamento de capacidade
Confronto entre capacidade, demanda e satisfao do cliente. Taxa de utilizao de recursos humanos
e sistemas.
3.1.2.5
27
TI para concursos
3.2
3.2.1
3.2.2
http://pt.wikipedia.org/wiki/ITILv3
28
TI para concursos
3.2.3
capacidade
continuidade de servios
segurana da informao
fornecedores
catlogo de servios.
3.2.4
3.2.5
3.3
Fundamentos de COBIT
O COBIT Control Objectives for Information and Related Technology, tem por misso explcita
pesquisar, desenvolver, publicar e promover um conjunto atualizado de padres internacionais de boas
prticas referentes ao uso corporativo da TI para os gerentes e auditores de tecnologia.
A metodologia COBIT foi criada pelo ISACA Information Systems Audit and Control Association
atravs do IT Governance Institute, organizao independente que desenvolveu a metodologia
considerada a base da governana tecnolgica. O COBIT funciona como uma entidade de
padronizao e estabelece mtodos documentados para nortear a rea de tecnologia das empresas,
incluindo qualidade de software, nveis de maturidade e segurana da informao.
29
TI para concursos
3.3.1
Planejar e Organizar
Uso de informao e tecnologia e como isso pode ser usado para que a empresa atinja seus objetivos
e metas. A forma organizacional e a infra-estrutura da TI deve ser considerada.
PO1 Definir um Plano Estratgico de TI e Orientaes
PO2 Definir a Arquitetura de Informao
PO3 Determinar o Gerenciamento Tecnolgico
PO4 Definir os Processos de TI, Organizao e Relacionamentos
PO5 Gerenciar o Investimento em TI
PO6 Comunicar os Objetivos de Gerenciamento e Orientar
PO7 Gerenciar os Recusos Humanos de TI
PO8 Gerenciar a Qualidade
PO9 Estimar e Gerenciar os Riscos de TI
PO10 Gerenciar Projetos
3.3.2
Adquirir e Implementar
Requisitos de TI, aquisio de tecnologia e implementao dentro dos processos de negcios da
companhia.
Desenvolvimento do plano de manuteno que a companhia adota para prolongar a vida do sistema de
TI e seus componentes.
AI1 Identificar Solues Automatizadas
AI2 Adquirir e Manter Software de Aplicao
AI3 Adquirir e Manter Infraestrutura de Tecnologia
AI4 Habilitar Operao e Uso
AI5 Obter Recursos de TI
AI6 Gerenciar Mudanas
AI7 Instalar e Credenciar Solues e Mudanas
3.3.3
30
TI para concursos
3.3.4
DS1
DS2
DS3
DS4
DS5
DS6
DS7
DS8
DS9
DS10
DS11
DS12
DS13
Monitorar e Avaliar
Estimativa estratgica das necessidades da companhia. Avalia se o atual sistema de TI atinge os
objetivos para o qual ele foi especificado e controla os requisitos para atender objetivos regulatrios.
Estimativa e capacidade de atingir os objetivos de negcio, controlando os processos internos da
companhia atravs de auditores internos e externos.
M1 Monitorar os processos
M2 Assegurar avaliao dos controles internos
M3 Obter avaliao independente
M4 Prover auditoria independente
3.4
31
Exerccios
26.
(ICMS-SP 2009) NO se trata de elemento que deve ser considerado como parte do controle de mudanas
26
no gerenciamento de configurao:
xx
(a) revises e auditoria das mudanas.
(b) confiabilidade das instalaes das modificaes.
(c) anlise de impacto de mudanas.
(d) conjunto de modificaes.
(e) pedido de modificaes.
27.
(ICMS-SP 2009) A rastreabilidade ou a histria das mudanas de cada software, incluindo quem fez o que,
por que e quando, pode ser realizada no gerenciamento de configurao de software por meio do seu
27
componente:
(a) Acordo de nvel de servio.
(b) Configurao da construo.
(c) Identificao do item de software.
xx
(d) Controle de verso.
(e) Controle de mudanas.
28.
29.
(ICMS-SP 2009) O processo Gerenciamento de Configuraes est definido no COBIT dentro do domnio
(a) Monitorao & Avaliao.
(b) Verificao & Controle.
(c) Aquisio & Implementao.
(d) Planejamento & Organizao.
xx
(e) Entrega & Suporte.
30.
28
30
29
TI para concursos
32
31
31.
32.
(ICMS-SP 2009) No gerenciamento de servios 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 servios de TI, segundo o ITIL v.2, tem foco ttico ou estratgico 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 servios Service Desk, segundo o ITIL v.2, NO
34
gerencia
(a) os contatos entre o provedor de servios e os usurios.
(b) a comunicao com os usurios.
(c) os incidentes nos servios.
xx
(d) os acordos de servios.
(e) as requisies de servios.
35.
O processo de Gerenciamento de Problemas, segundo o ITIL, deve ser executado no estgio do ciclo de vida
35
de servios denominado
(a) estratgia de servios.
(b) projeto de servios.
(c) transio de servios.
xx
(d) operao de servios.
(e) melhoria contnua de servios.
32
TI para concursos
Engenharia de Software
Engenharias da sistemas um campo interdisciplinar da engenharia que foca no desenvolvimento e
organizao de sistemas artificiais complexos. As tcnicas de Engenharia de Sistemas podem ser
utilizadas em desenvolvimento de softwares.
Engenharia de produo o ramo da engenharia que dedica-se concepo, melhoria e
implementao de sistemas que envolvem pessoas, materiais, informaes, 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 mo-de-obra, mquinas e
equipamentos, para melhorar processos, para o aumento da qualidade do produto, reduo de perdas
e maior produtividade.
Neste contexto, a engenharia de software aproveita diversas tcnicas de engenharia de sistemas, de
produto e de processos para a produo de aplicativos com maior eficincia e eficcia.
Nos anos 40, grande parte dos esforos e custos era concentrada no desenvolvimento do hardware.
medida que a tecnologia de hardware foi sendo dominada, as preocupaes se voltaram, no incio
dos anos 50, para o desenvolvimento dos sistemas operacionais e de linguagens de programao de
alto nvel, como FORTRAN e COBOL.
No incio dos anos 60, com o surgimento dos sistemas operacionais com caractersticas de
multiprogramao, a eficincia e utilidade dos sistemas computacionais tiveram um considervel
crescimento, surgindo a necessidade de desenvolver grandes sistemas de software em substituio
aos pequenos programas aplicativos utilizados at ento.
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 razo 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 instrues, estruturas de dados e documentao 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 usurio o prprio autor, a documentao pequena ou inexistente e a
preocupao com a existncia de erros de execuo no um fator muito relevante, pode no haver
grandes dificuldades na deteco e correo de falhas, nem preocupao como a portabilidade, a
flexibilidade e a possibilidade de reutilizao.
Um produto de software destinado ao uso por pessoas outras que os seus programadores, a sua
interface importante, reforada com uma documentao rica em informaes 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
usurios no estaro de detectar e corrigir os eventuais erros de execuo.
o software concebido e desenvolvido como resultado de um trabalho de engenharia e no
manufaturado no sentido clssico;
o software no se desgasta, no aumenta a possibilidade de falhas medida que o tempo passa;
a maioria dos produtos de software concebida inteiramente sob medida, sem a utilizao de
componentes pr-existentes.
Em funo destas caractersticas diferenciais, o processo de desenvolvimento de software pode
desembocar um conjunto de problemas, os quais tero influncia direta na qualidade do produto.
O processo de desenvolvimento de software procura responder:
http://jalvesnicacio.files.wordpress.com/2010/03/engenharia-de-software.pdf
33
TI para concursos
4.2
4.2.1
Fase de Definio
A fase de definio do software ocorre em conjunto com outras atividades como a modelagem de
processos de negcios e anlise de sistemas. Nesta atividade, diversos profissionais buscam o
conhecimento da situao atual e a identificao de problemas para que possam elaborar propostas de
soluo de sistemas computacionais que resolvam tais problemas. Dentre as propostas apresentadas,
deve-se fazer um estudo de viabilidade, incluindo anlise custo-benefcio, para se decidir qual soluo
ser a escolhida.
O resultado desta atividade deve incluir a deciso da aquisio ou desenvolvimento do sistema,
indicando informaes sobre hardware, software, pessoal, procedimentos, informao e documentao.
Caso seja decidido pelo desenvolvimento do sistema, no escopo da engenharia de software,
necessrio elaborar o documento de proposta de desenvolvimento de software. Esse documento pode
ser a base de um contrato de desenvolvimento.
Profissionais de engenharia de software atuam nesta atividade com o objetivo de identificar os
requisitos de software e modelos de domnio que sero utilizados na fase de desenvolvimento. Os
requisitos so tambm fundamentais para que o engenheiro possa elaborar um plano de
desenvolvimento de software, indicando em detalhes os recursos necessrios (humanos e materiais),
bem como as estimativas de prazos e custos (cronograma e oramento).
No existe um consenso sobre o que caracteriza o final da fase de definio. Isto varia de acordo com
o modelo de processo adotado. Em algumas propostas, a fase de definio considerada concluda
com a apresentao da proposta de desenvolvimento apenas. Outros modelos de processo, considera
que o software apenas est completamente definido com a especificao de requisitos e com a
elaborao do plano de desenvolvimento de software.
De acordo com o modelo de processo adotado, pode-se iniciar atividades da fase de desenvolvimento
mesmo que a fase de definio no esteja completamente concluda.
4.2.2
Fase de Desenvolvimento
A fase de desenvolvimento ou de produo do software inclui todas as atividades que tem por objetivo
a construo do produto. Ela inclui principalmente o design, a implementao e a verificao e
validao do software.
4.2.2.1
Design
A atividade de design compreende todo o esforo de concepo e modelagem que tm por objetivo
descrever como o software ser implementado. O design inclui:
Design conceitual
Design da interface de usurio
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 elaborao das idias e conceitos bsicos que determinam os elementos
fundamentais do software em questo. Por exemplo, um software de correio eletrnico tradicional inclui
os conceitos: mensagem, caixa de entrada, caixa de sada, 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 conversao do Gmail
um exemplo.
O design conceitual exerce influncia na interface de usurio e na arquitetura do software.
O design da interface de usurio envolve a elaborao da maneira como o usurio pode interagir para
realizar suas tarefas, a escolha dos objetos de interfaces (botes, 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 viso macroscpica do software em termos de
componentes que interagem entre si. O conceito de componente em arquitetura varia de acordo com a
viso arquitetnica adotada. So exemplos de vises arquitetnicas, a viso conceitual, viso de
mdulos, viso de cdigo e viso de execuo.
Na viso conceitual, os componentes de software so derivados do design conceitual. Estes
componentes so abstraes que devem definir outros elementos menos abstratos. Exemplos so
arquiteturas cliente-servidor e arquitetura em camadas. Na viso de cdigo, deve-se determinar como
as classes e/ou funes esto organizadas e interagindo entre si. Estas classes implementam os
componentes abstratos ou conceituais. Na viso de mdulos, deve-se determinar quais so os mdulos
que sero utilizados na implementao e como eles organizam as classes e/ou funes. Na viso de
execuo, a arquitetura deve descrever os diferentes processos que so ativados durante a execuo
do software e como eles interagem entre si. Enquanto as anteriores oferecem uma viso esttica, esta
uma viso dinmica do software.
O design de algoritmos e estrutura de dados, tambm conhecido como design detalhado, visa
determinar, de maneira independente da linguagem de programao adotada, as solues algortmicas
e as estruturas de dados associados. Deve-se decidir, por exemplo, como as informaes podem ser
ordenadas (algoritmo de bolha ou quicksort) e em qual tipo de estrutura de dados (array, lista
encadeada) elas vo ser armazenados.
4.2.2.2
Implementao
A implementao envolve as atividades de codificao, compilao, integrao e testes. A codificao
visa traduzir o design num programa, utilizando linguagens e ferramentas adequadas. A codificao
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 implementao. A depurao de erros ocorre durante a programao utilizando algumas
tcnicas e ferramentas. fundamental um controle e gerenciamento de verses para que se tenha um
controle correto de tudo o que est sendo codificado.
4.2.2.3
Verificao e validao
Verificao e validao destinam-se a mostrar que o sistema est de acordo com a especificao e que
ele atende s expectativas de clientes e usurios. A validao visa assegurar se o programa est
fazendo aquilo que foi definido na sua especificao (fazendo a coisa certa). A verificao visa verificar
se o programa est correto, isto , no possui erros de execuo (fazendo certo a coisa). Existem
diferentes formas de verificao e validao. Inspeo analtica e reviso de modelos, documentos e
cdigo fonte so formas que podem ser usadas antes mesmo que o programa seja completamente
codificado. Os testes de correo, desempenho, confiabilidade, robustez, usabilidade, dentre outros,
visam avaliar diversos fatores de qualidade a partir da execuo do software. Diferentes tcnicas de
testes podem ser aplicadas para cada um destes fatores.
4.2.3
Fase de Operao
A fase de operao envolve diferentes tipos de atividades:
Distribuio e entrega
Instalao e configurao
Utilizao
Manuteno
35
TI para concursos
A distribuio 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 genricos).
O processo de instalao e configurao, normalmente, pode ser feito com a ajuda de software de
instalao disponibilizados pelos fabricantes dos ambientes operacionais.
A atividade de utilizao o objeto do desenvolvimento do software. A qualidade da utilizao a
usabilidade do software.
A manuteno normalmente ocorre de duas formas: corretiva e evolutiva. A manuteno corretiva visa
a resoluo de problemas referentes a qualidade do software (falhas, baixo desempenho, baixa
usabilidade, falta de confiabilidade etc.). A manuteno evolutiva ou adaptativa visa a produo de
novas verses do software de forma a atender a novos requisitos dos clientes, ou adaptar-se s novas
tecnologias que surgem (hardware, plataformas operacionais, linguagens, etc). Mudanas no domnio
de aplicao implicam em novos requisitos e incorporao de novas funcionalidades. Surgimento de
novas tecnologias de software e hardware e mudanas para uma plataforma mais avanada tambm
requerem evoluo.
4.2.4
Fase de retirada
A fase retirada um grande desafio para os tempos atuais. Diversos software que esto em
funcionamento em empresas possuem excelente nveis de confiabilidade e de correo. No entanto,
eles precisam evoluir para novas plataformas operacionais ou para a incorporao de novos requisitos.
A retirada desses software legados em uma empresa sempre uma deciso difcil: como abrir mo
daquilo que confivel e ao qual os funcionrios esto acostumados, aps anos de treinamento e
utilizao?
Processos de reengenharia podem ser aplicados para viabilizar a transio ou migrao de um
software legado para um novo software de forma a proporcionar uma retirada mais suave.
4.3
4.3.1
Modelo catico11
O produto construdo sem qualquer especificao ou projeto. O
produto retrabalhado quantas vezes forem necessrias para
satisfazer o cliente. Este modelo pode funcionar razoavelmente
para micro projetos (at 400 homens.hora). No entanto para
projetos maiores ele inadequado.
4.3.2
Modelo Cascata
Recomendado para sistemas onde a segurana e a confiabilidade tem grande importncia.
Orientado para documentao, que abrange representaes grficas e simulaes, e com uma
abordagem disciplinada, a cada fase so feitos procedimentos de verificao e validao (incluindo
testes), so liberadas definies da documentao e todos produtos so formalmente revisados.
Uma vez definido o modelo de ciclo de desenvolvimento, existem trs abordagens para implement-lo
Cascata Pura
Incremental
Evolucionria
4.3.2.1
11
http://www2.dem.inpe.br/ijar/CicoloVidaSoftPrado.html
36
TI para concursos
4.3.2.2
Abordagem Incremental
Nesta abordagem o desenvolvedor executa mltiplas fases de PD, TR e OM. Dentro desta abordagem
est a abordagem cascata.
A abordagem incremental adequada quando:
a liberao do software deve estar de acordo com um conjunto de prioridades definidas nos
Requisitos do Usurio
necessrio melhorar a eficincia da integrao do software com outra partes de um sistema
maior
so requeridas antecipadamente evidncias de que o produto ser aceito
4.3.2.3
RU Requisitos do usurio
RS Requisitos do software
PA Projeto da arquitetura
PD Projeto detalhado
TR Treinamento
OM Operao e Manuteno
Abordagem Evolucionria
Nesta abordagem, o desenvolvimento formado por mltiplos ciclos da abordagem cascata pura,
ocorrendo sobreposio das fases da operao e manuteno do sistema anterior com o novo
desenvolvimento. Esta abordagem adequada quando:
necessrio alguma experincia do usurio para refinar e
completar requisitos
algumas partes da implementao podem depender da existncia
de tecnologia ainda no disponvel
existem requisitos do usurio no bem conhecidos
alguns requisitos so muito mais difceis de serem implementados
do que outros, decidindo-se no implement-lo para no atrasar o
projeto
4.3.2.4
Modelo Espiral
Modelo em cascata onde cada fase precedida
por uma anlise de risco e sua execuo feita
evolucionariamente (ou incrementalmente).
A dimenso radial representa o custo acumulado
atualizado e a dimenso angular representa o
progresso atravs da espiral. Cada setor da espiral
corresponde
a
uma
tarefa
(fase)do
desenvolvimento.
Um ciclo se inicia com a tarefa "Determinao de
objetivos, alternativas e restries", onde ocorre o
comprometimento
dos
envolvidos
e
o
estabelecimento de uma estratgia para alcanar
os objetivos.
Na tarefa "Avaliao de alternativas, identificao e
soluo de riscos", executa-se uma anlise de risco. Prototipao uma boa ferramenta para tratar
riscos. Se o risco for considerado inaceitvel, pode parar o projeto.
Na terceira tarefa ocorre o desenvolvimento do produto. Neste quadrante pode-se considerar o modelo
cascata.
Na quarta tarefa o produto avaliado e se prepara para iniciar um novo ciclo.
Variaes do modelo espiral consideram entre trs e seis tarefas ou setores da espiral. Por exemplo, as
regies:
37
TI para concursos
4.4
Desenvolvimento gil12
Desenvolvimento gil de software (do ingls Agile software development) ou Mtodo gil um conjunto
de metodologias de desenvolvimento de software. O desenvolvimento gil, tal como qualquer
metodologia de software, providencia uma estrutura conceitual para reger projetos de engenharia de
software.
Existem inmeros frameworks de processos para desenvolvimento de software. A maioria dos mtodos
geis tenta minimizar o risco pelo desenvolvimento do software em curtos perodos, chamados de
iterao, os quais gastam tipicamente menos de uma semana a at quatro. Cada iterao como um
projecto de software em miniatura de seu prprio, e inclui todas as tarefas necessrias para implantar o
mini-incremento da nova funcionalidade: planejamento, anlise de requisitos, projeto, codificao, teste
e documentao. Enquanto em um processo convencional, cada iterao no est necessariamente
focada em adicionar um novo conjunto significativo de funcionalidades, um projecto de software gil
busca a capacidade de implantar uma nova verso do software ao fim de cada iterao, etapa a qual a
equipe responsvel reavalia as prioridades do projecto.
Mtodos geis enfatizam comunicaes em tempo real, preferencialmente face a face, a documentos
escritos. A maioria dos componentes de um grupo gil deve estar agrupada em uma sala. Isso inclui
todas as pessoas necessrias para terminar o software: no mnimo, os programadores e seus clientes
(clientes so as pessoas que definem o produto, eles podem ser os gerentes, analistas de negcio, ou
realmente os clientes). Nesta sala devem tambm se encontrar os testadores, projectistas de iterao,
redactores tcnicos e gerentes.
Mtodos geis tambm enfatizam trabalho no software como uma medida primria de progresso.
Combinado com a comunicao face-a-face, mtodos geis produzem pouca documentao em
relao a outros mtodos, sendo este um dos pontos que podem ser considerados negativos.
recomendada a produo de documentao que realmente ser til.
Os princpios do desenvolvimento gil valorizam:
Garantir a satisfao do consumidor entregando rapidamente e continuamente softwares
funcionais;
Softwares funcionais so entregues frequentemente (semanas, ao invs de meses);
Softwares funcionais so a principal medida de progresso do projecto;
At mesmo mudanas tardias de escopo no projecto so bem-vindas.
Cooperao constante entre pessoas que entendem do negcio e desenvolvedores;
Projetos surgem atravs de indivduos motivados, entre os quais existe relao de confiana.
Design do software deve prezar pela excelncia tcnica;
Simplicidade;
Rpida adaptao s mudanas;
Indivduos e interaes mais do que processos e ferramentas;
Software funcional mais do que documentao extensa;
Colaborao com clientes mais do que negociao de contratos;
Responder a mudanas mais do que seguir um plano.
A maioria dos mtodos geis compartilha a nfase no Desenvolvimento iterativo e incremental para a
construo de verses implantadas do software em curtos perodos de tempo. Mtodos geis diferem
dos mtodos iterativos porque seus perodos de tempo so medidos em semanas, ao invs de meses,
e a realizao efetuada de uma maneira altamente colaborativa. estendendo-se a tudo.
Algumas equipes geis usam o modelo em cascata em pequena escala, repetindo o ciclo de cascata
inteiro em cada iterao. Outras equipes, mais especificamente as equipes de Programao extrema,
trabalham com atividades simultaneamente.
12
http://pt.wikipedia.org/wiki/Desenvolvimento_gil_de_software
38
TI para concursos
4.5
39
TI para concursos
equipe etc. Estas necessidades iro orientar a atribuio das prioridades ao que deve ser feito em uma
iterao de Elaborao.
Uma das principais vantagens da abordagem iterativa em relao abordagem em cascata o fato de
as iteraes fornecerem marcos naturais para avaliar o progresso e os riscos provveis. Na iterao, a
avaliao do progresso e do risco dever continuar (se realizada informalmente) para garantir que as
dificuldades no desviem o projeto.
A Avaliao de Iterao captura o resultado de uma iterao, at que ponto os critrios de avaliao
foram respeitados e as mudanas que devem ser feitas.
Cada iterao concluda por uma Avaliao de Iterao, na qual a organizao de desenvolvimento
para para refletir sobre o que aconteceu, o que foi ou no alcanado e por qu, e as lies aprendidas.
Essa avaliao uma etapa decisiva em uma iterao e no deve ser ignorada. Se a Avaliao de
Iterao no for feita corretamente, muitos dos benefcios oferecidos por uma abordagem iterativa
podero se perder.
Algumas vezes, o procedimento correto nesta etapa rever os critrios de avaliao, em vez de
retrabalhar o sistema. s vezes, a vantagem da Avaliao de Iterao est em revelar que um
determinado requisito no importante, muito caro para ser implementado ou cria uma arquitetura
que no pode ser mantida. Nesses casos, uma anlise de custo e benefcio deve ser feita e uma
deciso de negcios deve ser tomada.
A mtrica deve ser usada como base dessa avaliao.
Quase no final de cada iterao, a equipe central do projeto dever se reunir para avaliar a iterao,
enfatizando o seguinte:
A iterao obteve xito no cumprimento de suas metas?
Os riscos foram reduzidos ou eliminados?
O release cumpriu suas metas de funcionalidade, qualidade, desempenho e capacidade?
So necessrias mudanas no projeto e nos planos de iterao futuros?
Alguma das descobertas capturadas no artefato, na avaliao da organizao de desenvolvimento,
foi invalidada pelas mudanas durante a iterao e, como conseqncia, exige mudanas em outros
artefatos?
Houve alguma dificuldade no processo de desenvolvimento durante a iterao?
Que parte do release atual servir como baseline? Sofrer retrabalho?
Novos riscos foram identificados?
Houve mudanas externas (mudanas no mercado, na comunidade de usurios ou nos requisitos)?
Avalie os resultados da iterao com relao aos critrios de avaliao que foram estabelecidos para o
plano de iterao: funcionalidade, desempenho, capacidade, medidas de qualidade.
Use as mtricas obtidas nas atividades de teste e no passo coletar mtricas como a base da avaliao,
quando disponveis, para quantific-la. As medidas qualitativas so adequadas para a fase de iniciao
e talvez para a iterao inicial, enquanto as fases posteriores de elaborao, construo e transio
devem depender de medies de teste especficas para avaliar a qualidade, o desempenho, a
capacidade etc. Aborde outros problemas pendentes que foram capturados nas avaliaes de status
durante a iterao e quaisquer outros problemas na lista de problemas do gerente de projeto.
Se todos os riscos tiverem sido reduzidos a nveis aceitveis, toda a funcionalidade tiver sido
implementada e todos os objetivos de qualidade tiverem sido atingidos, o produto estar concludo. O
planejamento e a execuo eficientes so vitais para isso ocorrer no final da fase de Transio.
4.6
4.6.1
13
http://pt.wikipedia.org/wiki/An%C3%A1lise_de_pontos_de_fun%C3%A7%C3%A3o
40
TI para concursos
14
http://www.inf.ufes.br/~falbo/download/aulas/es-g/2005-1/APF.pdf
41
TI para concursos
4.6.1.2
Nmero de Registros
Lgicos
1 a 19
20 a 50
51 ou mais
Apenas 1
Simples
Simples
Mdia
2a5
Simples
Mdia
Complexa
6 ou mais
Mdia
Complexa
Complexa
Nmero de arquivos
referenciados
1a4
5 a 15
16 ou mais
0 ou 1
Simples
Simples
Mdia
Simples
Mdia
Complexa
3 ou mais
Mdia
Complexa
Complexa
4.6.1.3
Nmero de arquivos
referenciados
1a5
6 a 19
20 ou mais
0 ou 1
Simples
Simples
Mdia
2 ou 3
Simples
Mdia
Complexa
4 ou mais
Mdia
Complexa
Complexa
onde
NCi,j = nmero funes do tipo i (i variando de 1 a 5, segundo os tipos de funo 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, mdia e complexa).
42
TI para concursos
Ci,j
Mdia
Complexa
arquivos lgicos
internos - ALI
10
16
arquivos de interface
externa - AIE
10
entradas externas - SE
sadas externas - EE
consultas externas - CE
2. O total de pontos de funo no ajustados (PFNA) dado pelo somatrio dos pontos das tabelas de
funo:
sendo que i varia de 1 a 5, segundo os tipos de funo existentes (AIL, AIE, EE, SE e CE).
4.6.1.4
Comunicao de Dados
Processamento de Dados Distribudo
Desempenho
Utilizao do Equipamento (Restries de Recursos Computacionais)
Volume de Transaes
Entrada de Dados On-line
Eficincia do Usurio Final (Usabilidade)
Atualizao On-line
Processamento Complexo
Reusabilidade
Facilidade de Implantao
Para cada uma dessas 14 caractersticas deve-se atribuir um valor de 0 (nenhuma influncia) a 5 (forte
influncia), dito grau ou nvel de influncia, que indica o quanto determinada caracterstica tem
influncia no sistema. Os 14 graus de influncia (GIs) informados so somados, resultando no nvel de
influncia total (NIT):
Considerando que o valor mximo do NIT 14x5=70 e o mnimo zero, ento, o valor do VFA varia de
0,65 a 1,35.
43
TI para concursos
4.6.1.5
4.6.2
Mtodo COCOMO
O mtodo COCOMO (ou COnstructive COst MOdel) um modelo de estimativa do tempo de
desenvolvimento de um produto. Criado por Barry Boehm. baseado no estudo de sessenta e trs
projetos. Os programas examinaram de 2.000 a 100.000 linhas de cdigo em linguagens de
programao de Assembly a PL/I.15
A partir de um conjunto de atributos, premissas e modos de desenvolvimento o COCOMO estima os
prazos, custos e recursos necessrios para cada etapa do ciclo de vida do produto.
COCOMO consiste em trs implementaes:
Bsico - um modelo esttico que calcula o esforo de desenvolvimento de software e seu custo,
em funo do tamanho de linhas de cdigos desenvolvidas.
Cocomo bsico bom por ser rpido em estimativas e custos de software, mas sua exatido
limitada por causa de sua falta de fatores para explicar as diferenas entre ferramentas, qualidade
de pessoal e experincia, uso de ferramentas modernas e tcnicas, e outros atributos de projeto que
influenciam nos custos de software.
Intermedirio - Calcula o esforo de desenvolvimento
de software em funo do tamanho do programa, que
inclui custo, avaliao subjetiva do produto, hardware,
pessoal e atributos de projeto. O mtodo intermedirio
uma extenso do mtodo bsico, mas com mais
categorias de controle como: atributos do produto,
atributos de hardware, atributos pessoais, atributos do
projeto.
Avanado - So incorporadas caractersticas da
verso intermediria com uma avaliao de impacto
de custo em cada passo de todo o projeto.
4.7
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
Conceitos de Requisitos
Um requisito definido como "uma condio ou uma capacidade com a qual o sistema deve estar de
acordo".17
Os requisitos do utilizador destinam-se aos vrios nveis hierrquicos da organizao e so descritos
usando apenas linguagem natural, formulrios e diagramas muito simples. Neste nvel de
especificao, surgem algumas dificuldades:
Ambiguidade: torna-se difcil descrever os requisitos de uma forma inequvoca sem tornar a sua
descrio muito longa ou de difcil compreenso.
Confuso: ainda que possa no ser to relevante do ponto de vista do cliente, a distino entre
requisitos funcionais/no-funcionais e objetivos do sistema torna-se difcil.
Agrupamento de requisitos: ao descrever as funcionalidades de um sistema, pode ser difcil
separar claramente os requisitos, o que leva a que vrios requisitos sejam expressos como sendo
apenas um.
Algumas consideraes:
Usar o mesmo formato em todos os requisitos para evitar omisses e facilitar a verificao dos
requisitos.
Distinguir claramente, atravs do uso de expresses, entre comportamentos esperados "O sistema
permitir criar (...)" ou desejveis "Dever ser possvel criar (...)". importante deixar claro o que o
sistema tem de fazer e sugestes de como o deve fazer e, acima de tudo, usar este tipo de
expresses de forma consistente ao longo de todo o documento.
Usar formatao de texto para salientar determinados aspectos do documento (negrito,
sublinhado, itlico).
Evitar usar termos demasiado tcnicos ou fora do mbito do sistema, identificando e definindo de
uma forma clara quando for absolutamente necessrio us-los.
Os requisitos do sistema tm um carcter mais tcnico, consistindo numa descrio detalhada dos
requisitos do utilizador recorrendo ao uso de linguagens estruturadas e notaes grficas. Estes
requisitos destinam-se aos utilizadores do sistema, s equipes de especificao de arquitetura do
sistema e de desenvolvimento.
O uso de linguagem natural levanta problemas:
As mesmas palavras podem, de acordo com a interpretao de cada pessoa, designar conceitos
diferentes.
O mesmo requisito pode ser descrito de formas diferentes, o que leva a que cada pessoa tenha de
saber quando que descries diferentes se referem ou no a requisitos diferentes.
4.7.1.1
Elicitao
Tcnica de obteno de dados junto aos usurios detententores das informaes, principalmente para
a construo de um sistema ou um produto ou, ainda para melhorar um processo de trabalho.
4.7.1.2
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 no opina nos assuntos discutidos, mas pode direcionar os assuntos
conforme o planejamento inicial. Cabe a ele tambm evitar que determinados indivduos dominem
reunio.
O anotador est dedicado a registrar os assuntos discutidos e decises tomadas, liberando assim os
outros membros a participar das discuss es sem perder tempo com anotaes.
O gerenciador de tempo vai evitar que determinadas discusses demorem demasiadamente, evitando
assim que outros assuntos no sejam abordados.
O quadro do projeto serve para lembrar os assuntos em foco e os que esto fora do foco, impedindo
assim discusses infrutferas.
4.7.1.3
Estudo etnogrfico19
Estudo etnogrfico uma tcnica, proveniente das disciplinas de Antropologia Social, que consiste no
estudo de um objeto por vivncia direta da realidade onde este se insere, permitindo analisar a
componente social das tarefas desempenhadas numa dada organizao tornam-se, no mbito da
Engenharia de Requisitos, extremamente uteis para ultrapassar a dificuldade que existe na coleta dos
requisitos derivados de formas rotineiras e tcitas de trabalhar:
modo como realmente as pessoas executam as suas funes que muitas vezes difere da forma
como as definies dos processos sugerem que elas devem fazer;
cooperao e conhecimento das atividades de outras pessoas.
Para isso, um socilogo, externo organizao em causa, passa algum tempo observando e
analisando a atividade das pessoas sem que estas necessitem explicar o seu trabalho (interaes
implcitas), extraindo da concluses importantes acerca de fatores sociais e organizacionais. Desta
forma, necessrio assumir que as pessoas em estudo so competentes na realizao do seu
trabalho.
Estes estudos tm mostrado que o trabalho das pessoas , normalmente, mais rico e complexo do que
o descrito pelas definies dos processos e pelos modelos dos sistemas.
O principal problema da aplicao deste mtodo fruto da dificuldade na generalizao dos resultados.
um mtodo qualitativo que se insere na corrente filosfica do Interpretivismo.
4.7.2
fatores humanos
esttica
consistncia na interface do usurio
ajuda online e contextual
assistentes e agentes
documentao do usurio
materiais de treinamento
Confiabilidade
freqncia e gravidade de falha
possibilidade de recuperao
possibilidade de previso
19
http://pt.wikipedia.org/wiki/Estudo_etnogr%C3%A1fico
46
TI para concursos
exatido
tempo mdio entre falhas (MTBF)
Desempenho
velocidade
eficincia
disponibilidade
exatido
taxa de transferncia
tempo de resposta
tempo de recuperao
uso de recurso
Suportabilidade
possibilidade de teste
extensibilidade
adaptabilidade
manutenibilidade
compatibilidade
possibilidade de configurao
possibilidade de servio
possibilidade de instalao
possibilidade de localizao (internacionalizao)
restries de design
especifica ou restringe o design de um sistema
requisitos de implementao
padres obrigatrios
linguagens de implementao
polticas de integridade de banco de dados
limites de recursos
ambientes operacionais
requisitos de interface
um item externo com o qual o sistema deve interagir
restries de formatos, tempos ou outros fatores usados por tal interao
requisitos fsicos
material
forma
tamanho
peso
4.8
4.8.1
20
http://pt.wikipedia.org/wiki/Ger%C3%AAncia_de_Configura%C3%A7%C3%A3o_de_Software
47
TI para concursos
4.8.2
Solicitaes de Mudana
As mudanas nos artefatos de desenvolvimento so propostas atravs de Solicitaes de Mudana
(CRs ou Change Requests), que so usadas para documentar e controlar defeitos, solicitaes de
melhorias e qualquer outro tipo de solicitao de mudana no produto.
A vantagem das CRs que elas fornecem um registro das decises e, devido a seu processo de
21
avaliao, garantem que os impactos das mudanas sejam entendidos no projeto.
A necessidade de mudana parece ser inerente aos sistemas de software existentes e em
desenvolvimento. O Gerente de Controle de Mudana responsvel pela definio dos procedimentos
de Gerenciamento de Solicitaes de Mudana e pela manuteno de CRs, garantindo que as
mudanas em um sistema sejam efetuadas de maneira controlada, para que seu efeito no sistema
possa ser previsto. As CRs podem ser usadas para documentar e controlar todos os tipos de
solicitaes de mudanas no sistema, inclusive defeitos e solicitaes de melhoria.
As solicitaes de melhoria so usadas pelo Analista de Sistemas para determinar futuros recursos a
serem includos no produto. Sero usadas como base durante a coleta de solicitaes dos principais
envolvidos (stakeholders) para que se possa compreender as necessidades dos investidores.
Um defeito uma anomalia ou falha em um produto de trabalho liberado. Alguns exemplos so
omisses e imperfeies localizadas durante as fases iniciais do ciclo de vida e sintomas (falhas) de
erros contidos em softwares maduros o suficiente para teste e operao. Os defeitos tambm podem
incluir desvios das expectativas ou qualquer questo que precise ser controlada e resolvida.
A finalidade de um defeito comunicar os detalhes da questo, permitindo a ao corretiva, a soluo
e o acompanhamento.
As seguintes pessoas usam as CRs:
O Analista de Sistemas usa as CRs identificadas como Solicitaes de Melhoria para determinar
novos recursos do produto.
O Gerente de Projetos usa CRs para atribuir trabalho.
Os Testadores usam CRs para identificar e descrever os defeitos localizados no teste.
O Implementador usa CRs para analisar o defeito e localizar os erros ou causas das CRs.
O Designer de Teste usa CRs a fim de planejar o teste para verificar as CRs solucionadas e analisar
um conjunto de defeitos para medir a qualidade do software e do processo.
Os seguintes atributos so teis para tomar uma deciso sobre qualquer CR enviada:
Tamanho
Que volume de trabalho existente precisar ser alterado?
Que volume de trabalho extra precisar ser adicionado?
Alternativas
Existe alguma?
Complexidade
A mudana proposta fcil de ser efetuada?
Quais so as possveis ramificaes provenientes dessa mudana?
Gravidade
Qual o impacto da no implementao desta solicitao?
H alguma perda de trabalho ou de dados envolvida?
Esta uma solicitao de melhoria?
um problema secundrio?
Cronograma
Quando a mudana necessria?
Ela vivel?
Impacto
Quais as conseqncias de efetuar a mudana?
Quais as conseqncias de no efetuar a mudana?
21
http://www.wthreex.com/rup/process/artifact/ar_crqst.htm
48
TI para concursos
Custo
Qual a economia proveniente desta mudana?
Relacionamento com Outras Mudanas
Outras mudanas substituiro ou invalidaro esta ou isso depende de outras mudanas?
Teste
H algum requisito especial de teste?
As prticas de Gerenciamento de Mudanas normalmente so institucionalizadas ou estabelecidas no
incio do ciclo de vida do projeto. Desse modo, as CRs, que integram o processo de mudana, podem
surgir a qualquer momento durante o curso do projeto.
A principal origem de defeitos consiste nos resultados da execuo dos testes integrao, sistema e
desempenho. Contudo, os defeitos podem aparecer em qualquer ponto do ciclo de vida de
desenvolvimento do software e abranger a identificao de documentao, 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
Solicitao de Mudana realizada por uma Equipe de Reviso ou um Comit de Controle de Mudana
(CCB).
O Gerente de Controle de Mudana responsvel pela integridade do defeito, garantindo que:
Sejam exatas todas as informaes que identificam e descrevem o defeito e indicam como ele foi
descoberto.
O defeito seja exclusivo ou que no seja outra ocorrncia de um defeito j identificado.
Os campos e os dados reais necessrios para identificar, descrever e controlar defeitos com preciso
so variados e dependem do sistema de controle de mudanas, das diretrizes e dos padres
implementados.
4.9
4.9.1
Qualidade de Software
rea de conhecimento da engenharia de software que objetiva garantir a qualidade do software atravs
da definio e normatizao de processos de desenvolvimento. Apesar dos modelos aplicados na
garantia da qualidade de software atuarem principalmente no processo, o principal objetivo garantir
um produto final que satisfaa s expectativas do cliente, dentro daquilo que foi acordado inicialmente.
A qualidade o grau em que um conjunto de caractersticas inerentes a um produto, processo ou
sistema cumpre os requisitos inicialmente estipulados.22
A engenharia de software objetiva garantir a qualidade atravs da definio e normatizao de
processos de desenvolvimento, com um produto final que satisfaa s expectativas do cliente.
Os atributos qualitativos previstos na norma ISO 9126 so:
funcionalidade
confiabilidade
usabilidade
eficincia
manutenibilidade
portabilidade.
CMM
http://pt.wikipedia.org/wiki/Qualidade_de_software
49
TI para concursos
Nvel
Nvel
Nvel
Nvel
Nvel
Nvel
0: Incompleto (Ad-hoc)
1: Executado (Definido)
2: Gerenciado
3: Definido
4: Quantitativamente gerenciado
5: Em otimizao
Representao Por Estgios, que oferece uma seqncia pr-determinada para melhoria baseada em
estgios que no deve ser desconsiderada, pois cada estgio serve de base para o prximo.
caracterizado por Nveis de Maturidade (Maturity Levels):
4.9.1.2
Nvel
Nvel
Nvel
Nvel
Nvel
1: Inicial (Ad-hoc)
2: Gerenciado
3: Definido
4: Quantitativamente gerenciado
5: Em otimizao
23
http://pt.wikipedia.org/wiki/Qualidade_de_software
50
TI para concursos
4.9.2
Teste de software
O teste do software a investigao do software a fim de fornecer informaes sobre sua qualidade em
relao ao contexto em que ele deve operar. Isso inclui o processo de utilizar o produto para encontrar
seus defeitos.
O teste um processo realizado pelo testador de software, que permeia outros processos da
engenharia de software, e que envolve aes que vo do levantamento de requisitos at a execuo do
teste propriamente dito.
No se pode garantir que todo software funcione corretamente, sem a presena de erros, visto que os
mesmos muitas vezes possuem um grande nmero de estados com frmulas, atividades e algoritmos
complexos. O tamanho do projeto a ser desenvolvido e a quantidade de pessoas envolvidas no
processo aumentam ainda mais a complexidade. Idealmente, toda permutao possvel do software
deveria ser testada. Entretanto, isso se torna impossvel para a ampla maioria dos casos devido
quantidade impraticvel de possibilidades. A qualidade do teste acaba se relacionando qualidade dos
profissionais envolvidos em filtrar as permutaes relevantes.
Falhas podem ser originadas por diversos motivos. Por exemplo, a especificao pode estar errada ou
incompleta, ou pode conter requisitos impossveis de serem implementados, devido limitaes de
hardware ou software. A implementao tambm pode estar errada ou incompleta, como um erro de
um algoritmo. Portanto, uma falha o resultado de um ou mais defeitos em algum aspecto do sistema.
Todas as metodologias de desenvolvimento de software tm uma disciplina dedicada aos testes.
Atualmente esta uma tarefa indispensvel, porm muitas vezes efetuada de maneira ineficiente, seja
pelo subestimar dos que desenvolvem, pela falta de tempo ou mesmo pela falta de recursos humanos e
financeiros.
O gerenciamento de projetos define alguns princpios em relao aos testes: 24
Estratgia de Teste
Cronograma bsico
Plano de Teste
Cronograma final
Anlise de Risco
Anlise de Pontos deTeste
Elaborao
Execuo
Casos de Teste
Roteiros de Teste
Controle
Relatrios de Defeitos
Relatrios de Progresso
24
http://www.iteste.com.br/Portals/0/Palestra%20Gerencia%20de%20Teste_1%20hora.pdf
51
TI para concursos
Existem tcnicas de testes chamadas de funcionais, que verificam se o sistema faz o que deveria:25
Teste de caixa-branca - Tambm chamado de teste estrutural ou orientado lgica, avalia o
comportamento interno do componente de software. Essa tcnica trabalha diretamente sobre o cdigo fonte
do componente de software para avaliar aspectos tais como: teste de condio, teste de fluxo de dados,
teste de ciclos, teste de caminhos lgicos, cdigos nunca executados.
Teste de caixa-preta - Tambm chamado de teste funcional, orientado a dado ou orientado a entrada e
sada, avalia o comportamento externo do componente de software. Dados de entrada so fornecidos, o
teste executado e o resultado obtido comparado a um resultado esperado previamente conhecido.
H, por outro lado, as tcnicas no funcionais, que testam como a operao correta do sistema se
comporta em situaes anormais, como casos de entradas invlidas ou inesperadas.
teste de desempenho com teste de carga, verifica se o software consegue processar grandes quantidades
de dados nas especificaes de tempo de processamento exigidas, o que determina a escalabilidade do
software.
teste de usabilidade, necessrio para verificar se a interface de usurio fcil 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 recuperao, usado para verificar a robustez do software em retornar a um estado estvel de
execuo aps estar em um estado de falha.
4.9.3
Documentos de Teste
IEEE 829-1998, tambm conhecido como o Padro 829 para Documentao de Teste de Software,
um padro IEEE que especifica a forma de uso de um conjunto de documentos em oito estgios
definidos de teste de software, cada estgio potencialmente produzindo seu prprio tipo de documento.
O padro especifica o formato desses documentos mas no estipula se todos eles devem ser
produzidos, nem inclui qualquer critrio de contedo para esses documentos.26
Documentao de Teste consiste em um conjunto de documentos relacionados ao teste das diversas
classes e seus relacionamentos no sistema. Dentre eles pdemos ter:27
Plano de Teste, que prescreve o escopo, a abordagem, os recursos e o cronograma de testes. No
mnimo os seguintes tpicos devem ser tratados:
Descrio do programa a ser testado: o que faz; estrutura
Objetivo dos testes: por exemplo, se so testes caixa branca ou caixa preta, se so testes de integrao ou
de unidade
Escopo dos testes: que itens sero testados, quais no sero
Projetos de Teste, que detalha o planejamento de testes e identifica os elementos a serem testados.
No caso de testes de unidades, cada unidade um item. Defino das estruturas provisrias
(drivers, stubs, arquivos ou bancos de dados criados para os testes, entre outros) que sero usadas
nos testes.
Casos de Teste especificados no projeto. A descrio de cada caso de teste deve conter os
seguintes tpicos:
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 provisrias que sejam especficas desse caso
de teste
Procedimentos: identificao do procedimento de teste (dentre os j listados na seo anterior) que ser
usado para executar o caso de teste
Dependncias: condies prvias para a execuo do caso de teste, inclusive outros casos de teste que
devam ser executados obrigatoriamente antes deste
Sadas observadas: resultados fornecidos pelo item em teste ou anomalias ocorridas durante a execuo
Impacto: consequncias do incidente de teste (evento indesejvel que tenha ocorrido durante os testes).
Como para a inspeo, classific-los em categorias:
MA: maior. Causa resultados errados/anomalia na execuo do programa
ME: menor. Causa outro tipo de problema que no afeta a execuo do programa
Procedimentos de Teste, que especifica os passos para execuo. Definio dos procedimentos
associados ao conjunto de testes:
Uma identificao do procedimento .
O objetivo do procedimento.
Os requisitos especiais para a execuo 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.
Descrio de cada um dos casos de teste gerado.
4.10
Exerccios
36.
53
TI para concursos
37.
54
38
38.
39.
40.
(ICMS-SP 2009) O processo de confirmao que um software vai ao encontro das especificaes de
40
software se trata de um conceito-chave de qualidade denominado
(a) Validao.
xx
(b) Verificao.
(c) Preciso.
(d) Acurcia.
(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 integrao.
(c) de configurao.
(d) operacional.
(e) funcional.
42.
(ICMS-SP 2009) O teste de ameaa normalmente deve ser aplicado dentro de um projeto de software nas
42
etapas de
(a) desenvolvimento inicial e desenvolvimento intermedirio.
(b) desenvolvimento intermedirio e teste de aceitao.
(c) desenvolvimento intermedirio e teste de sistema.
(d) teste de integrao e teste de aceitao.
xx
(e) teste de integrao e teste de sistema.
39
TI para concursos
43.
(ICMS-SP 2009) Na prtica 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 mtricas e medio.
(d) definir estratgias de testes.
(e) definir planos de desenvolvimento de teste.
44.
(ICMS-SP 2009) O processo de engenharia de software denominado ciclo de vida clssico refere-se ao
44
modelo
xx
(a) em cascata.
(b) incremental.
(c) evolucionrio.
(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.
47.
(FCC - 2008 - TRT) A frase "o tempo mdio de resposta do sistema no deve ultrapassar 5 segundos" indica
47
(a)
(b)
(c)
(d)
(e)
55
46
48.
(FCC - 2008 TCE AL) Em um sistema cujo objetivo principal seja emitir guias de cobrana de impostos e
48
fazer o controle de contribuintes, NO um produto inerente ao trabalho de levantamento de requisitos
xx
(a) uma descrio da relao possvel entre as linhas de cdigo com os pontos de funo.
(b) uma declarao da necessidade e da viabilidade.
(c) uma descrio do ambiente tcnico do sistema.
(d) uma afirmao limitada do escopo do sistema.
(e) um conjunto de cenrios que fornecem informaes sobre o uso do sistema sob diferentes condies de
operao.
49.
50.
O modelo FURPS, para melhoria de qualidade de software, representa as dimenses, que so mais
50
relevantes para os clientes:
xx
(a) Funcionalidade, Usabilidade, Confiabilidade, Desempenho e Suportabilidade.
(b) Funcionalidade, Usabilidade, Reusabilidade, Pontualidade e Suportabilidade.
(c) Flexibilidade, Usabilidade, Conformidade, Desempenho e Atendimento.
(d) Flexibilidade, Usabilidade, Reusabilidade, Performance e Suportabilidade.
(e) Integridade, Usabilidade, Conformidade, Portabilidade e Atendimento.
51.
Segundo o modelo CMM, migrar do nvel 3 de maturidade para o nvel 4 representa uma melhoria da
51
qualidade de processos
(a) otimizados para processos gerenciados.
(b) definidos para processos repetveis.
xx
(c) definidos para processos gerenciados.
(d) gerenciados para processos otimizados.
(e) repetveis para processos definidos.
49
TI para concursos
52.
O metamodelo CMMI contnuo define que cada rea de processo avaliada formalmente, com base em
52
metas e prticas especficas, e classificada de acordo com seis nveis de capacitao. O nvel 3 o
(a) Quantitativamente gerido.
(b) Realizado.
xx
(c) Definido.
(d) Gerido.
(e) Otimizado.
53.
54.
NO uma das nove caractersticas em um tratamento detalhado das mtricas 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 coeso.
55.
O mtodo que busca medir esforo, prazo, tamanho de equipe e custo necessrio para o desenvolvimento do
software, desde que se tenha a dimenso 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.
53
(ICMS-SP 2009) Instrues: Para responder s trs prximas questes, considere a tabela e os dados de
referncia para os clculos de pontos de funo.
56
Tipos
Simples
Mdio
Complexo
EE
SE
CE
ALI
10
15
AIE
10
TI para concursos
Nveis de Influncia:
0 Nenhuma influncia.
1 Influncia mnima.
2 Influncia moderada.
3 Influncia mdia.
4 Influncia significante.
5 Influncia forte.
Caractersticas Gerais de Sistema:
1. Comunicao de Dados.
2. Processamento de Dados Distribudo (Funes Distribudas).
3. Performance.
4. Configurao do equipamento.
5. Volume de Transaes.
6. Entrada de Dados On line.
7. Interface com o usurio.
8. Atualizao On line.
9. Processamento Complexo.
10. Reusabilidade.
11. Facilidade de Implantao.
12. Facilidade Operacional.
13. Mltiplos Locais.
14. Facilidade de mudanas.
57
56.
57.
(ICMS-SP 2009) Mantida a pontuao bruta obtida na questo de nmero 22 e considerando que as
influncias por caractersticas gerais do sistema foram estimadas como:
Forte em performance.
Significante em entrada de dados on line e em processamento distribudo.
Demais caractersticas sem influncia.
57
O resultado final mais aproximado, aps o ajuste, foi
(a) 98,0
(b) 107,8
(c) 110,6
xx
(d) 109,2
(e) 116,0
58.
(ICMS-SP 2009) Aps um levantamento mais apurado do sistema referido, funes foram modificadas,
adicionadas ou excludas e, em razo das modificaes sugeridas, chegou-se s seguintes e novas
informaes:
Complexidade de:
Consulta: 5 complexas, 10 mdias e 11 simples.
Arquivo mantido fora da fronteira do sistema: 1 complexo e 1 mdio.
Entrada: 2 complexas, 4 mdias e 5 simples.
Sada: 5 complexas, 10 mdias e 3 simples.
Arquivo mantido dentro da fronteira do sistema: 3 complexos, 1 mdio e 4 simples.
As novas influncias por caractersticas gerais do sistema foram estimadas como:
Forte em performance.
Significante em entrada de dados on line, em processamento distribudo, em facilidade de mudanas e em
interface com o usurio.
Mnima em volume de transaes.
Moderada em comunicao de dados.
Demais caractersticas sem influncia.
58
Com base nessas novas informaes levantadas, o resultado final mais aproximado, aps o ajuste, foi
(a) 263,7
(b) 298,9
(c) 300,5
xx
(d) 305,3
(e) 432,8
TI para concursos
58
59.
Considere 1952 pontos por funo brutos e a aplicao do valor 3 a todos os fatores de ajuste. Os pontos por
59
funo ajustados so
(a) 1268,80.
(b) 1542,08.
(c) 1815,36.
xx
(d) 2088,64.
(e) 2635,00.
60.
Durante a medio do grau de complexidade de um sistema foram apurados 550 pontos de funo brutos.
Considerando que o somatrio dos graus atribudos aos fatores de ajuste foi 30, a medida final em pontos de
60
funo foi
(a) 520
xx
(b) 522,5
(c) 552,5
(d) 580
(e) 585,5
61.
Se em uma seqncia de atividades de um projeto todas elas tiverem retardo de zero dias em relao s
61
suas predecessoras
(a) o projeto invivel.
(b) isso indica a ausncia de caminho crtico.
xx
(c) essa seqncia o caminho crtico.
(d) a seqncia est errada.
(e) o projeto deve ser desmembrado.
62.
TI para concursos
Arquitetura de Software
5.1
Conceitos bsicos
A arquitetura de software de um sistema consiste dos componentes de software, suas propriedades
externas e seus relacionamentos com outros softwares. O termo tambm se refere documentao da
arquitetura de software do sistema. A documentao da arquitetura do software facilita a comunicao
entre os stakeholders, registra as decises iniciais acerca do projeto de alto nvel e permite o reuso do
projeto dos componentes e padres entre projetos.28
A arquitetura de software organizada em vises, que descrevem a arquitetura na perspectiva de um
conjunto de pessoas interessadas, como:
Viso funcional/lgica
Viso de cdigo
Viso de desenvolvimento/estrutural
Viso de concorrncia/processo/thread
Viso fsica/evolutiva
Viso de ao do usurio/feedback
Vrias linguagens para descrio da arquitetura de software foram inventadas, mas nenhum consenso
foi ainda alcanado em relao a qual conjunto de smbolos ou sistema representao deve ser
adotado. Alguns acreditam que a UML ir estabelecer um padro para representao de arquitetura de
software. Outros acreditam que os desenvolvimentos efetivos de software devem contar com a
compreenso nica das restries de cada problema, e notaes to universais so condenadas a um
final infeliz porque cada uma prov um notao diferenciada que necessariamente torna a notao intil
ou perigosa para alguns conjuntos de tarefas. Eles apontam a proliferao de linguagens de
programao e a sucesso de tentativas falhas para impor uma simples 'linguagem universal' na
programao, como uma prova da tendncia do software para a diversidade e no para padres.
H muitas formas comuns de projetar mdulos de software de computador e suas comunicaes, entre
elas:
Cliente-Servidor
Computao distribuda
P2P
Blackboard
Criao implcita
Pipes e filtros
Plugin
Sistema Monoltico
Modelo em trs camadas
Analise de sistema estruturada (baseada em mdulos, mas usualmente monolticas em dentro dos
mdulos)
Arquitetura orientada a servio
Arquitetura orientada a busca
5.2
UML
A Unified Modeling Language (UML) uma linguagem de modelagem no proprietria de terceira
gerao que auxilia a visualizar o desenho e a comunicao entre objetos de um sistema de
29
informaes.
Basicamente, a UML permite que desenvolvedores visualizem os produtos de seu trabalho em
diagramas padronizados. Junto com uma notao grfica, a UML tambm especifica significados
(semntica).
RUP (Rational Unified Process) um processo proprietrio criado pela Rational Software Corporation,
adquirida pela IBM, ganhando um novo nome IRUP que agora uma abreviao de IBM Rational
Unified Process, que usa a abordagem da orientao a objetos em sua concepo e projetado e
documentado utilizando a notao UML para ilustrar os processos em ao.
28
http://pt.wikipedia.org/wiki/Arquitetura_de_software
29
http://pt.wikipedia.org/wiki/UML
59
TI para concursos
Diagramas Estruturais
Diagrama de classes - representao da estrutura e relaes das classes que servem de modelo para
objetos. Uma propriedade, atributo ou operao 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 cdigo fonte do software.
Diagrama de instalao - descreve os componentes de hardware e software e sua interao com outros
elementos de suporte ao processamento.
Diagrama de pacotes - descreve grupos de classes, de outros elementos ou pedaos do sistema divididos
em agrupamentos lgicos mostrando as dependncias entre estes.
Diagrama de estrutura - descreve a colaborao interna de classes, interfaces ou componentes para
especificar uma funcionalidade.
Diagramas de Interao
Diagrama de sequncia - representa a sequncia de mensagens passadas entre objetos num programa de
30
computador. Utiliza-se tambm o termo cenrio associado com diagramas de seqncia.
Diagrama de Interatividade descreve o fluxo de atividades mostrando como elas trabalham em uma
sequncia de eventos.
Diagrama de colaborao ou comunicao - exibe uma interao, 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 interao em uma escala de tempo,
focalizando as condies que mudam no decorrer desse perodo.
30
Classe
Classe ativa
Interface
Componente
Colaborao
N (cubo) - objeto fsico em tempo de execuo que representa um recurso computacional, possuindo,
geralmente, pelo menos uma memria, bem como, uma capacidade de processo. Objetos em tempo de
execuo e componentes podem residir em n. Graficamente, um N representado pelo desenho de um
Cubo.
http://www.macoratti.net/vb_uml2.htm
60
TI para concursos
De comportamento:
Casos de uso
Iterao
Mquina de estados
De agrupamento:
Pacote
Modelo
Subsistema
Framework
De anotao:
Notas
De relacionamentos
Associao (bidirecional ou unidirecional)
Generalizao
Composio
5.3
31
http://www.serpro.gov.br/imprensa/publicacoes/tematec/2001/ttec57
61
TI para concursos
5.3.1
62
Exerccios
63.
(ICMS-SP 2009) A tecnologia de armazenamento de relatrios em discos ticos (COLD) envolvida no GED
63
tratada como sinnimo 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.
(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.
64
TI para concursos
5.4
5.4.1
Servio
Um servio, do ponto de vista da arquitetura SOA, uma funo de um sistema computacional que
disponibilizado para outro sistema. Um servio deve funcionar de forma independente do estado de
outros servios, exceto nos casos de servios compostos (composite services), e deve possuir uma
interface bem definida. Normalmente, a comunicao entre o sistema cliente e aquele que disponibiliza
o servio realizada atravs de web services.
5.4.2
Processos
A Arquitetura Orientada a Servios pode ser bem representada a partir do seguinte processo, chamado
de "find-bind-execute paradigm" o que significa aproximadamente paradigma de "procura-consolidaexecuta". Tal conceito anlogo a "Ciclo de Deming" aplicado aos servios, que define o ciclo que
envolve o planejamento, a execuo, o monitoramento e a tomada de ao pr-ativa para a melhoria
da qualidade.
Esquema adaptado do paradigma "find-bind-execute", tecnicamente falando, o processo preconiza que
os provedores de servios registrem informaes em um registro central, com suas caractersticas,
indicadores, e aspectos relevantes s tomadas de decises. O registro utilizado pelo cliente para
determinar as caractersticas dos servios necessrios, e se o mesmo estiver disponvel no registro
central, como por exemplo por um catlogo de servios, o cliente poder utiliz-lo, sendo este
oficializado atravs de um contrato que enderece este servio.
5.4.3
Tecnologia
O termo "Service-Oriented Architecture" (SOA) ou Arquitetura Orientada a Servios expressa um
conceito no qual aplicativos ou rotinas so disponibilizadas como servios em uma rede de
computadores (Internet ou Intranets) de forma independente e se comunicando atravs de padres
abertos. A maior parte das implementaes de SOA se utilizam de Web services (SOAP , REST e
WSDL). Entretanto, uma implementao de SOA pode se utilizar de qualquer tecnologia padronizada
baseada em web.
5.4.4
Definies de SOA
O SOA coloca a prestao de servio como eixo de todo o negcio, dando destaque gesto de
servios e ao cliente.
Servio - uma funo independente, sem estado (stateless) que aceita uma ou mais requisies e
devolve uma ou mais respostas atravs de uma interface padronizada e bem definida. Servios
podem tambm realizar partes discretas de um processo tal como editar ou processar uma
transao. Servios no devem depender do estado de outras funes ou processos. A tecnologia
utilizada para prover o servio, tal como uma linguagem de programao, no pode fazer parte da
definio do servio.
Orquestrao - Processo de sequenciar servios e prover uma lgica adicional para processar
dados. No inclui uma representao de dados.
32
http://pt.wikipedia.org/wiki/Service-oriented_architecture
63
TI para concursos
Stateless
Provedor
O recurso que executa o servio em resposta a uma requisio de um consumidor.
Consumidor - quem consome ou pede o resultado de um servio fornecido por um provedor.
Descoberta - SOA se baseia na capacidade de identificar servios e suas caractersticas.
Conseqentemente, esta arquitetura depende de um diretrio que descreva quais os servios
disponveis dentro de um domnio.
Binding - A relao entre os servios do provedor e do consumidor deve ser idealmente dinmica;
ela estabelecida em tempo de execuo atravs de um mecanismo de binding.
5.4.5
Web Services
Web Service um componente de software identificado por uma URI Identificador de Recursos
Uniforme, uma cadeia de caracteres compacta usada para identificar ou denominar um recurso na
Internet que independe de implementao ou de plataforma e pode ser descrito, publicado e invocado
sobre uma rede por meio de mensagens padro XML. As mensagens XML so transportadas usando
protocolos padres da Internet. Com web service possvel realizar a integrao entre sistemas
desenvolvidos em diferentes linguagens e plataforma, e disponibilizar servios interativos na Web.
uma tecnologia de padro aberto e padronizada pelo W3C.
A arquitetura do Web Service constituda por trs componentes bsicos:
o servidor de registro (broker server ou service registry)
o provedor de servios (service provider)
o solicitante de servios (service requestor). As interaes entre esses componentes so de
busca, publicao e interao de operaes.
Na operao de publicao o provedor publica a descrio do servio de tal forma que um solicitante
possa localiz-la. Na operao de busca o solici-tante obtm a descrio do servio diretamente ou
consulta o servidor de registro procurando pelo tipo de servio desejado. Essa operao pode ser
executada em duas fases distintas: desenvolvimento ou execuo. Na operao de interao o
solicitante chama ou inicia uma interao com o provedor, em tempo de ex-ecuo, utilizando os
detalhes contidos na descrio do servio para lo calizar, contactar e chamar o servio. A figura 26.1
mostra os componentes e a interao entre eles.
O provedor de servios representa a plataforma que hospeda o web service permitindo que os clientes
acessem o servio. O provedor de servios fornece o servio e responsvel por publicar a descrio
do servio que prov. O solic-itante de servios a aplicao que est procurando, invocando uma
interao com o web service, ou seja, requisita a execuo de um servio. O solicitante de servio pode
ser uma pessoa acessando por meio do browser ou uma aplicao realizando uma invocao aos
mtodos descritos na interface do web service. O servidor de registro um repositrio central que
contm a descrio (informao) de um web service, e por meio do servidor de registro que essas
descries so publicadas e disponibilizadas para localizao.
TI para concursos
65
TI para concursos
Pode-se definir, resumidamente, o web service como sendo um servio 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 disseminao no uso de web services nos ltimos anos incentivou o mercado a oferecer uma grande
variedade de ferramentas e aplicaes para prover suporte a essa tecnologia. Atualmente, as principais
plataformas para web services so:
Sun Microsystems, IBM, BEA, Apache, Systinet e Microsoft.
5.4.6
SOAP
Simple Object Access Protocol um protocolo leve para troca de informaes em um ambiente
descentralizado e distribudo que permite comunicao entre aplicaes de forma simples e
completamente independente de sistema operacional, linguagem de programao ou plataforma. o
protocolo de comunicao para os Web Services.
A comunicao realizada por meio de trocas de mensagens, transmitidas em formato XML, incluindo
os parmetros usados nas chamadas, bem como os dados de resultados. Tambm pode ser utilizado
para invocar, publicar e localizar web services no registro UDDI.
Parte da sua especificao composta por um conjunto de regras de como utilizar o XML para
representar os dados. Outra parte define o formato de mensagens, convenes para representar as
chamadas de procedimento remoto (RPC Remote Procedure Calls) utilizando o SOAP, e associaes
ao protocolo HTTP. O protocolo HTTP o nico protocolo padronizado pelo SOAP, mas existem
algumas implementaes 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 incio e o fim das mensagens;
Header um cabealho opcional. Ele carrega informaes adicionais, como
exemplo, se a mensagem deve ser processada por um n intermedirio.
Quando utilizado, o Header deve ser o primeiro elemento do envelope;
Body obrigatrio e contm 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 nsao pro
cessarem a mensagem;
TI para concursos
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, operaes,
esquemas de codificao, o contedo das mensagens, onde o servio est disponvel e quais os
protocolos de comunicao so usados para conversar com o servio e entre outros neste documento.
Um documento WSDL define um XML Schema para descrever um web service.
A descrio de um servio consiste de duas partes: definio de implementao do servio e definio
da interface do servio. A separao entre as duas camadas permite que elas sejam utilizadas
separadamente.
A parte de definio de interface do servio descreve o web service, incluindo mtodos que so
invocados e parmetros que so enviados. A parte de definio de implementao de servios
descreve como uma interface de servio im-plementada por um provedor: onde o servio est
instalado e como pode ser acessado. As descries dos elementos das duas partes:
Binding descreve protocolos, formato de data, segurana e outros atributos para uma interface
(portType) em particular;
Porttype informa elementos de operaes do web service;
Message define entrada e sada de dados referentes a operaes;
Type define tipos de dados complexos em uma mensagem;
Service contm uma coleo de elementos port com elementos binding;
Port a combinao de um binding com endereo de rede, fornecendo o endereo alvo para a
comunicao dos servios.
To logo o cliente tenha acesso descrio do servio a ser utilizado, a implementao do Web
Service pode ser feita em qualquer linguagem de pro-gramao. Normalmente so utilizadas linguagem
construdas para interao 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
obtm a descrio do servio (atravs da localizao do respectivo documento WSDL), e em seguida
constri a mensagem, passando os tipos de dados corretos (parmetros, etc) de acordo com a
definio encontrada no documento. As duas partes envolvidas em uma interao web service precisam ter acesso mesma descrio WSDL para conseguirem entender uma outra. Em seguida, a
mensagem enviada para o endereo onde o servio est localizado, a fim de que possa ser
processada. O web service, quando recebe esta mensagem valida-a conforme as informaes contidas
no documento WSDL. A partir de ento, o servio 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 servio seja utilizado necessrio que o cliente consiga localiz-lo, e essa localizao
pode ser feita por meio do UDDI (Universal Description, Discovery and Integration), que uma
especificao tcnica para descrever, descobrir e publicar web services.
Uma implementao de UDDI corresponde a um registro web service, que prov um mecanismo para
busca e publicao de web services. Um registro UDDI contm informaes categorizadas sobre os
servios e as funcionalidades que eles oferecem, e permite a associao desses servios com suas
informaes tcnicas, geralmente definidas usando WSDL.
67
TI para concursos
O UDDI possui um componente central chamado UDDI Project, que ma-nipula um registro global e
pblico chamado business registry. A informao oferecida pelo bussines registry consiste de trs
componentes: white pages, yel-low pages e green pages.
A informao fornecida por um registro UDDI pode ser comparada uma lista telefnica. As pginas
brancas (white pages), fornecem informaes tais como nome da organizao, contato e
identificadores. As pginas amarelas (yellow pages) so compostas por um ndice de servios e pro
dutos e as pginas verdes (green pages) contm informaes a respeito de transaes, descries de
servio e invocao de aplicaes.
As informaes contidas em arquivos de descrio de servio (WSDL) com-pletam aquelas que esto
no registro. No entanto, UDDI no fornece suporte a vrios tipos de descrio de servio, mas no
suporta a criao de descries WSDL de forma direta.
Uma descrio WSDL completa consiste da combinao dos documentos de interface e de
implementao de servio. A primeira publicada no registro UDDI como businessservice e a segunda
como tmodel.
5.4.9
Segurana
A segurana no envio de mensagens SOAP um tpico importante. Em um nvel mais baixo,
mensagens SOAP podem ser trocadas pela rede utilizando HTTPS ao invs de HTTP. Como HTTPS
utiliza SSL no seu transporte, fica garantida a proteo contra possveis intervenes. Alm disso, o
cliente e servidor podem verificar cada um suas respectivas identidades.
Embora HTTPS resolva o problema de proteo das mensagens contra possveis invasores, este no
ajuda muito quando se necessita da segurana necessria para a autenticao de usurios de web
services especficos. Estes servios iro fornecer algum tipo de combinao de usurio/senha durante
a fase inicial de registro no servio e ento esta ser utilizada para acessos futuros. No h ainda um
padro de autenticao para Web services, mas pode utilizar os firewalls, VPNs, NTFS, produtos de
single-in para oferecer a autenticao e autorizao de usurios.
5.4.10
68
Exerccios
65.
66.
(ICMS-SP 2009) Para uma Web Service sncrona, quem chamou a funo
(a) deve esperar o retorno para prosseguir e, para uma Web Service assncrona, no precisa esperar o
xx
retorno, podendo manter mais uma linha de execuo no cdigo.
(b) deve esperar o retorno para prosseguir e, para uma Web Service assncrona, no precisa esperar o
retorno, no podendo manter mais uma linha de execuo no cdigo.
(c) no precisa esperar o retorno, podendo manter mais uma linha de execuo no cdigo e, para uma Web
Service assncrona, deve esperar o retorno para prosseguir.
(d) no precisa esperar o retorno, no podendo manter mais uma linha de execuo no cdigo e, para uma
Web Service assncrona, deve esperar o retorno para prosseguir.
(e) no precisa esperar o retorno, tal qual para uma Web Service assncrona, porm, para a forma sncrona
pode manter mais uma linha de execuo no cdigo e para a forma assncrona no pode.
66
TI para concursos
5.5
67.
68.
(ICMS-SP 2009) O Service-Oriented Architecture SOA tem foco tanto nos negcios quanto em tecnologia
68
da informao, sendo que o SOA com foco em negcios normalmente inclui
(a) pessoas, processo e conectividade.
xx
(b) pessoas, processos e informaes.
(c) reusabilidade, pessoas e processos.
(d) conectividade, processos e informaes.
(e) conectividade, reusabilidade e informaes.
33
http://pt.wikipedia.org/wiki/Portal_(internet)
69
TI para concursos
passaram a oferecer contedo 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 informaes ao usurios;
Portais Colaborativos - Portais que habilitam as equipes de trabalho estabelecerem reas de
projetos virtuais ou comunidades atravs de ferramentas de colaborao;
Portais Especialistas - Portais que conectam pessoas com base em suas experincias, interesses e
informaes que precisam;
Portais do Conhecimento - Portais que combinam todas as caractersticas dos anteriores para
prover contedo personalizado com base no que cada usurio faz..
Um Portal Corporativo ou um Enterprise Information Portal um conceito para um website que serve
como interface ou canal nico para a informao de uma companhia e sua base de conhecimento para
seus colaboradores e, possivelmente, para clientes, parceiros de negcios e tambm para o pblico em
geral.
Para se classificar um software como Portal Corporativo necessrio ter:
5.6
Exerccios
69.
34
(ICMS-SP 2009) As ferramentas de modelagem de anlise, que utilizam a notao UML, fornecem
69
capacidade de desenvolver modelos baseados em
(a) cenrios, fluxos e dados.
(b) cenrios, classes e dados.
xx
(c) cenrios, classes e objetos.
(d) classes, fluxos e objetos.
(e) classes, fluxos e dados.
http://www.portalcolaborativo.com.br/midias-sociais/home/comunidades-em-portais.html
70
TI para concursos
71
70.
71.
(ICMS-SP 2009) A rea de BI Business Intelligence est diretamente envolvida com os projetos de
71
implementao das aplicaes 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.
73.
(ICMS-SP 2009) As empresas que implementam portais corporativos por meio dos quais estabelecem
relacionamentos de negcios, com um certo nvel de acoplamento eletrnico entre os seus sistemas de
73
compras, vendas, logstica, distribuio e outros, adotam uma forma de e-Business conhecida por
(a) B2C.
(b) B2G.
xx
(c) B2B.
(d) C2B.
(e) C2C.
74.
75.
Dos diagramas definidos na UML 2.0, aplicado na modelagem do comportamento de uma interface, classe
75
ou colaborao, o Diagrama de
(a) Componente.
(b) Objeto.
(c) Estrutura Composta.
(d) Pacote.
(e) Estado de Mquina.xx
76.
Em
(a)
(b)
(c)
(d)
(e)
77.
Em
(a)
(b)
(c)
(d)
(e)
78.
74
76
77
78
TI para concursos
72
79
79.
Um diagrama de objetos
(a) tem a mesma funo que um diagrama de atividades diferenciando deste apenas na representao
grfica.
(b) capta um conjunto de abstraes como um grupo de interesse e em tal contexto expe sua semntica e
seus relacionamentos com outras abstraes 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 seqncia de execuo de atividades entre objetos relacionados, no tempo, e a durao 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 operao 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.
82.
Um cubo, graficamente na UML, um elemento fsico existente em tempo de execuo que representa um
recurso computacional com pelo menos alguma memria, e, freqentemente, com capacidade de
82
processamento. Trata-se de
(a) pacote.
(b) n.xx
(c) interface.
(d) objeto.
(e) nota.
83.
84.
A identificao 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.
NO uma informao requerida para invocar um servio de Web e encapsulada pelo WSDL na forma de
85
um documento XML:
(a) O local do servio.
(b) As operaes que o servio apoia.
(c) Os parmetros que o servio espera.
(d) Os detalhes das mensagens do servio.
(e) Os meios para publicar e localizar o servio.xx
TI para concursos
Banco de Dados
6.1
Conceitos bsicos
Dentre diversas definies, dado tudo que pode ser processado e as informaes so dados que
descrevem um domnio fsico ou abstrato. Registros so informaes produzidas como subprodutos de
35
atividades comerciais ou transaes e retidas em virtude do seu valor.
Entidade qualquer coisa do mundo real, abstrata ou concreta, na qual se deseja guardar informaes.
Atributo tudo o que se pode relacionar como propriedade da entidade. Domnio o conjunto de
valores possveis do atributo. Em banco de dados, fisicamente, entidades so tabelas, atributos so as
colunas e domnio o tipo de dado contido na coluna.
Um atributo dito obrigatrio quando no 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 primria. Se houver mais do que uma chave candidata, uma dever ser
escolhida para se a chave primria, enquanto que as outras sero chamadas de chaves alternativas.
Bancos de dados (ou bases de dados) so conjuntos de registros dispostos em estrutura regular que
possibilita a reorganizao dos mesmos e produo de informao, 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 so armazenados, que pode determinar a forma como as
informaes podem ser processadas.
O modelo plano ou tabular consiste de tabelas, que so matrizes simples, bidimensionais, compostas
por elementos de dados: caracteres, nmeros inteiros, reais etc. Este modelo plano a base das
planilhas eletrnicas.
O modelo em rede permite que vrias tabelas sejam usadas simultaneamente atravs do uso de
apontadores (ou referncias). Algumas colunas contm apontadores para outras tabelas ao invs de
dados. Assim, as tabelas so ligadas por referncias, o que pode ser visto como uma rede. Uma
variao particular deste modelo em rede, o modelo hierrquico, limita as relaes a uma estrutura
semelhante a uma rvore (hierarquia - tronco, galhos), ao invs do modelo mais geral direcionado por
grafos.
6.2
Toda informao tem de ser representada como dados e qualquer tipo de atributo (coluna) representa
relaes entre conjuntos de dados (linhas).
As bases de dados relacionais permitem aos utilizadores (incluindo programadores) escreverem
consultas (queries) que no foram antecipadas por quem projetou a base de dados. Como resultado,
bases de dados relacionais podem ser utilizadas por vrias aplicaes em formas que os projetistas
originais no previram, o que especialmente importante em bases de dados que podem ser utilizadas
durante dcadas. Isto tem tornado as bases de dados relacionais muito populares no meio empresarial.
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
Normalizao
A normalizao de dados uma srie 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 redundncia de dados e as chances dos dados se tornarem
37
inconsistentes.
No entanto, muitos SGBDs relacionais no tm separao suficiente entre o projeto lgico da base de
dados e a implementao fsica do banco de dados, e isso tem como conseqncia que as consultas
feitas a um banco de dados totalmente normalizado tm um mau desempenho. Nestes casos, usa-se
por vezes a desnormalizao para melhorar o desempenho, com o custo de menores garantias de
consistncia.
Dizemos que duas colunas de uma tabela tm dependncia funcional quando a valor de uma determina
o valor da outra. Por exemplo, uma coluna com o nmero de matrcula e outra com o nome de um
aluno. Um nmero de matrcula s pode corresponder a uma aluno, portanto h dependncia funcional
entre estas duas colunas.
Chamamos de chave a um conjunto de colunas que identifica unicamente cada linha da tabela. No
exemplo anterior, o nmero de matrcula do aluno campo chave da tabela, supondo no poder haver
uma pessoa com dois nmeros de matrcula. Em uma tabela contendo o nmero de matrcula do aluno,
o cdigo da disciplina, a nota e frequncia 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 trs nmeros que
identificam de forma nica nosso aluno, trs chaves. Dizemos que o nmero de matrcula, o RG e o
CPF so chaves candidatas. Se escolhermos uma delas para identificar o aluno, esta ser chamada de
chave primria.
Tirando as chaves, os demais campos so chamados de descritores.
Ao imprimir a lista de notas finais dos alunos, podemos ter:
Nm Matrcula
Nome
Nm Disc
Disciplina
123456
Funalo de Tal
12
Matemtica
Prova 1
5,0
Prova 2
7,0
Mdia
6,0
Frequncia
95%
123456
Funalo de Tal
13
Portugus
8,0
9,0
8,5
100%
234567
Cicrano da Silva
12
Matemtica
6,0
9,0
7,5
80%
234567
Cicrano da Silva
13
Portugus
3,0
8,0
5,5
70%
A chave da tabela composta das colunas Nm Matrcula e Nm Disc. Dizemos que h dependncia
parcial entre o nome a uma das colunas chave, entre o cdigo e o nome da disciplina tambm.
Poderamos preferir imprimir a lista sem repetir o nome de cada aluno:
Nm Matrcula Nome
123456
Funalo de Tal
234567
Cicrano da Silva
Nm Disc Disciplina
12 Matemtica
5,0
7,0
6,0
95%
13 Portugus
8,0
9,0
8,5
100%
12 Matemtica
6,0
9,0
7,5
80%
13 Portugus
3,0
8,0
5,5
70%
Onde, para cada linha de um aluno, teramos uma lista de disciplinas e notas. Dizemos que os campos
nmero de matrcula e nome possuem valores atmicos, um s valor por linha.
Os demais campos so chamados de multivalorados, pois so 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
condies. Considera-se que as bases de dados esto normalizadas se aderirem terceira forma
normal.
Primeira Forma Normal (ou 1FN) requer que todos os valores de colunas em uma tabela, sejam atmicos
(um nmero um tomo, enquanto uma lista ou um conjunto no o so). A normalizao elimina grupos
repetidos pondo-os cada um em uma tabela separada, conectando-os com uma chave primria ou
estrangeira. Por exemplo, pessoas tm diversos nmeros de telefones. Uma tabela conter as pessoas e
outra tabela os telefones, ligadas pelo cdigo 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 no haja dependncia funcional no-trivial de um atributo que
no seja a chave, em parte da chave candidata. Por exemplo, uma tabela de pedidos com o cdigo do
pedido, chave primria, cdigo do produto, chave estrangeira, e descrio do produto, campo dependente
funcional do cdigo do produto, que no chave primria. O correto levar a descrio e cdigo do produto
para outra tabela e deixar somente o cdigo do produto na tabela de pedidos.
Terceira Forma Normal (ou 3FN) requer no haver dependncias funcionais no-triviais de atributos que
no sejam chave, em qualquer coisa exceto um superconjunto de uma chave candidata. Por exemplo, uma
coluna preo total, que resultado do produto do valor da coluna quantidade pelo preo unitrio e no
depende do cdigo do pedido, chave primria. A coluna preo total deve ser eliminada, sendo o valor
calculado quando for necessrio em relatrios.
Forma Normal de Boyce-Codd (ou BCNF) requer que no exista nenhuma dependncia funcional no-trivial
de atributos em algo mais do que um superconjunto de uma chave candidata. Neste estgio, todos os
atributos so dependentes de uma chave, de uma chave inteira e de nada mais que uma chave (excluindo
dependncias triviais, como A->A).
Quarta Forma Normal (ou 3FN) Uma relao est na 4 forma normal, se est na Boyce-Codd, e se no
existem dependncias multivalor
Forma Normal (ou 3FN) Uma relao est na 5 forma normal, se est na 4 FN, e se no existem
dependncias de juno.
6.2.2
Etapas de modelagem
A construo de modelos relacionais envolve as etapas:38
Modelo conceitual - Representa as regras de negcio sem limitaes tecnolgicas ou de
implementao:
Modelo Lgico - Leva em conta limites imposto por algum tipo de tecnologia de banco de dados:
Modelo Fsico - Leva em considerao limites imposto pelo SGBD (Sistema Gerenciador de Banco
de dados) e pelos requisitos no funcionais dos programas que acessam os dados. Caractersticas:
6.2.3
Relacionamentos
As tabelas podem ser relacionadas para compor uma consulta de informaes, desde que a chave
primria de uma seja uma coluna da outra, onde ser chamada de chave estrangeira. No modelo
lgico, este relacionamento pode se dar de trs formas:
A chave primria da primeira chave estrangeira na segunda tabela, de forma que podem haver
diversas ocorrncias 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 cdigo do cliente e o nome, pode ser
relacionada com uma outra tabela de telefones contendo o cdigo do telefone, o cdigo do cliente e
o nmero do telefone.
As chaves primrias 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 cdigo da matria e nome, pode se relacionar com uma tabela de alunos, com
cdigo do aluno e nome, atravs de uma terceira tabela de matrculas com os dois cdigos. Um
aluno pode se matricular em diversas matrias e uma matria pode ter vrios alunos.
A chave primria 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 atravs de uma tabela de chefia, com o cdigo do empregado na coluna
subordinado e de outro empregado, como chefe do primeiro, na coluna superior.
6.2.4
Transao
Conjunto de procedimentos que executado num banco de dados, que para o usurio visto como
uma nica ao. A integridade de uma transao depende de 4 propriedades, conhecidas como ACID.
Atomicidade - Todas as aes que compem a unidade de trabalho da transao devem ser
concludas com sucesso, para que seja efetivada. Qualquer ao que constitui falha na unidade de
trabalho e a transao deve ser desfeita (rollback). Quando todas as aes so efetuadas com
sucesso, a transao pode ser efetivada (commit).
Consistncia - Nenhuma operao do banco de dados de uma transao pode ser parcial. O status
de uma transao deve ser implementado na ntegra. Por exemplo, um pagamento de conta no
pode ser efetivado se o processo que debita o valor da conta corrente do usurio no for efetivado
antes, nem vice-versa.
Isolamento - Cada transao funciona completamente parte de outras estaes. Todas as
operaes so parte de uma transao nica. O principio que nenhuma outra transao, operando
no mesmo sistema, pode interferir no funcionamento da transao corrente ( um mecanismo de
controle). Outras transaes no podem visualizar os resultados parciais das operaes de uma
transao em andamento.
Durabilidade - Os resultados de uma transao so permanentes e podem ser desfeitos somente
por uma transao subseqente.
Controle de concorrncia um mtodo usado para garantir que as transaes so executadas de uma
forma segura e segue as regras ACID. Os SGBD devem ser capazes de assegurar que nenhuma ao
de transaes completadas com sucesso (committed transactions) seja perdida ao desfazer transaes
abortadas (rollback). Uma transao uma unidade que preserva consistncia.
6.3
39
http://pt.wikipedia.org/wiki/Modelo_de_Entidades_e_Relacionamentos
76
TI para concursos
Relao n..n (l-se muitos para muitos) - quando tabelas tm entre si relao n..n, necessrio criar
uma nova tabela com as chaves primrias das tabelas envolvidas, ficando assim uma chave
composta, ou seja, formada por diversos campos-chave de outras tabelas. A relao ento se reduz
para uma relao 1..n, sendo que o lado n ficar com a nova tabela criada.
6.4
40
http://pt.wikipedia.org/wiki/Modelagem_multidimensional
41
http://msdn.microsoft.com/pt-br/library/cc518031.aspx
77
TI para concursos
6.4.1
6.5
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
obteno de resultados a intervalos mais curtos, garantindo muitas vezes sustentao ao projeto. A
desvantagem a maior dificuldade de se consolidar informaes entre as diversas reas.
Uma alternativa s estratgias 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 responsvel pela integrao dos
demais;
As primeiras tabelas da rea de interesse escolhida so povoadas: primeiras anlises;
Povoamento de mais tabelas com dados histricos;
Alguns dados passam a compor o DW, saindo da base operacional;
Surgimento dos data marts (a seguir nesta seo);
O ciclo se repete at que o DW esteja completo. Bases de produo contm apenas dados operacionais.
79
TI para concursos
6.5.1
ETL
Extract, Transform and Load (Extrao, Transformao e Carga) so ferramentas de software cuja
funo a extrao de dados de diversos sistemas, transformao desses dados conforme regras de
negcios e carga dos dados em um data mart ou um data warehouse. considerada uma das fases
mais crticas 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 organizao. Essa pode ser uma tarefa no trivial, e muitas fontes de
dados podem no ser acessadas muito facilmente.
Existem ferramentas ETL, mas ETL no so ferramentas, mas sim uma metodologia.
6.6
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
caractersticas originais do SQL foram inspiradas na lgebra relacional.43
Uma consulta SQL especifica a forma do resultado e no o caminho para chegar a ele. Padronizado
pela ANSI e ISO, possui muitas variaes e extenses produzidos pelos diferentes fabricantes de
sistemas gerenciadores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma
para plataforma sem mudanas estruturais principais.
O padro do SQL (ANSI) utiliza operadores, funes de agregao e comandos, que dividem-se em
cinco subconjuntos. Os comandos podem ser escritos e executados por linhas de comando dentro de
algum aplicativo do prprio gerenciador de banco de dados, por lotes de comandos definidos dentro do
banco de dados (procedures) ou lotes de comandos por qualquer aplicativo com conexo 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 padres ANSI e adicionando mais recursos para administrao eficiente de dados.
6.6.1.1
6.6.1.2
6.6.1.3
43
http://pt.wikipedia.org/wiki/SQL
80
TI para concursos
6.6.1.5
6.6.1.6
Operadores Lgicos
Operadores lgicos relacionam elementos de uma expresso lgica.
AND Avalia os termos e devolve um valor verdadeiro caso ambos sejam corretos.
OR Avalia termos e devolve um valor verdadeiro se algum for correto.
NOT Devolve o valor contrrio da expresso.
6.6.1.7
Operadores Relacionais
Os operadores estabelecem critrios para uma expresso lgica.
<
Menor que
>
Maior que
<>
Diferente de
<=
Menor ou Igual que
>=
Maior ou Igual que
=
Igual a
BETWEEN Utilizado para especificar um intervalo de valores.
LIKE Utilizado na comparao de um modelo e para especificar registros de um banco de
dados."Like" + extenso % vai significar buscar todos resultados com o mesmo incio da extenso.
6.6.1.8
Funes de Agregao
As funes de agregao, dentro de uma clusula SELECT com clusula GROUP BY, devolve valores
agregados de um grupo de registros.
AVG calcular a mdia dos valores de um campo numrico determinado.
81
TI para concursos
6.6.1.9
COUNT
devolve o nmero de registros da seleo.
SUM devolve a soma de todos os valores de um campo numrico determinado.
MAX devolve o valor mais alto de um campo especificado.
MIN devolve o valor mais baixo de um campo especificado.
Conjuntos de dados
Os dados de uma ou mais tabelas podem ser agrupados em um nico conjunto de dados atravs de
operaes de seleo (select) de diversos tipos:
Juno dois conjuntos de dados so concatenados de acordo com uma determinada condio de
relao e seleo.
Restrio condio que limita a seleo das linhas de uma relao.
Projeo uma ou mais colunas de uma relao so selecionadas formando um subconjunto
vertical.
Unio so selecionadas todas as linhas que aparecem em ambas as relaes
Interseco so selecionadas apenas aquelas linhas que existem em ambos os conjuntos.
6.6.2
82
TI para concursos
PL/SQL (Procedural Language/SQL) uma extenso da linguagem padro SQL para o Oracle. Permite
que a manipulao de dados seja includa em unidades de programas. Blocos de PL/SQL so
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 bsica para criar programas complexos e poderosos, no s no banco de dados,
mas tambm em diversas ferramentas Oracle.44
A unidade bsica em PL/SQL um bloco. Todos os programas em PL/SQL so compostos por blocos,
que podem estar localizados uns dentro dos outros. Geralmente, cada bloco efetua uma ao lgica no
programa. Um bloco tem basicamente a seguinte estrutura:
DECLARE
Seo (opcional) para declarao de variveis,tipos e subprogramas locais.
BEGIN
Seo Executvel, nesta seo ficam as instrues procedurais e SQL. Esta a nica seo do bloco que indispensvel e obrigatria.
EXCEPTION
Seo/Setor (opcional) onde ficam as instrues de tratamento de erro.
END
6.6.3
44
http://pt.wikipedia.org/wiki/PL/SQL
83
TI para concursos
6.7
84
Exerccios
86.
(ICMS-SP 2009) A arquitetura ANSI/SPARC aplicada aos bancos de dados divide-os em nveis com as
seguintes caractersticas:
I. O que se ocupa do modo como os dados so fisicamente armazenados.
II. O que se ocupa do modo como os dados so vistos por usurios individuais.
III. Nvel lgico de comunidade ou apenas lgico (mais abstrato que o fsico e diferente da viso do usurio
individual).
86
Em um projeto arquitetural, os itens I, II e III so classificados, respectivamente, como nveis
(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.
88.
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) annima.
(d) de cliente.
(e) de servidor.
91.
(ICMS-SP 2009) No SQL Server, uma nica dimenso de banco de dados unida tabela de fatos em uma
91
chave estrangeira diferente, para produzir vrias dimenses de cubo, denominada dimenso
(a) de fatos.
(b) de referncia.
(c) compartilhada.
xx
(d) com funo mltipla.
(e) muitos para muitos.
92.
93.
(ICMS-SP 2009) NO um conjunto de extenses do Oracle que contm todos os dados para uma estrutura
93
lgica de armazenamento dentro de uma tablespace:
(a) Automatic Undo Management.
xx
(b) Automatic Storage Management.
(c) Temporary Segments.
(d) Index Segments.
(e) Data Segments.
92
TI para concursos
85
94
94.
95.
(ICMS-SP 2009) Considere a seguinte regra de Codd, aplicada aos bancos de dados relacionais:
A descrio do banco de dados representada no nvel lgico da mesma forma que os dados ordinrios,
permitindo que usurios autorizados utilizem a mesma linguagem relacional aplicada aos dados regulares.
95
O sentido dessa regra diz respeito
xx
(a) formao do catlogo.
(b) manipulao, por meio de vises.
(c) independncia fsica.
(d) independncia lgica.
(e) independncia de distribuio.
96.
97.
(ICMS-SP 2009) Considere a relao 1:N entre cliente e seus pedidos e a necessidade de excluso de um
determinado cliente. A fim de manter informaes histricas sobre pedidos j efetuados, independentemente
da existncia do cliente que os fez, deseja-se que aqueles pedidos j efetuados pelo cliente excludo no
sejam apagados. As chaves primrias de ambas e em cada tabela so 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) restrio de chave estrangeira on delete set null.
(b) colocao de uma constante (ex. 9999) nas chaves primrias dos pedidos do cliente excludo.
(c) colocao de uma constante (ex. 9999) nas chaves primrias de cada cliente excludo.
(d) no limpeza das chaves estrangeiras dos pedidos, existentes na tabela do cliente.
(e) restrio 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 trs dimenses, correspondendo a produtos, clientes e perodos de tempo.
Dessa forma, um determinado valor individual em uma clula pode representar a quantidade de um produto
98
vendido a um cliente em um dado momento. De acordo com essa considerao,
(a) produtos e clientes so variveis independentes, e perodos de tempo e quantidade so variveis
dependentes.
(b) produtos, clientes e perodos de tempo so variveis dependentes, e quantidade uma varivel
independente.
(c) produtos, clientes e perodos de tempo so variveis independentes, e quantidade uma varivel
xx
dependente.
(d) produtos so variveis dependentes, e clientes, perodos de tempo e quantidade so variveis
independentes.
(e) produtos so variveis independentes, e clientes, perodos de tempo e quantidade so variveis
dependentes.
99.
TI para concursos
100. (ICMS-SP 2009) Se uma empresa de grande porte, com alto volume de transaes e informaes, resolver
iniciar um projeto usando o conceito de Data Mart (DM) em vez de Data Warehouse (DW),
independentemente disso ser ou no a melhor opo, os fatores que a levam a tal deciso podem ser
justificados por:
I. Possibilidade de extrair e preparar os dados diretamente de fontes de interesse especficas, fornecendo
acesso mais rpido pela no necessidade de sincronia com dados de outras fontes.
II. Menor risco quanto ao sucesso do projeto.
III. Necessidade imediata de informaes 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 anlise dos fatos relacionados
funo que exerce em uma organizao. Essa anlise deve ser feita com as ferramentas e os dados
disponveis, permitindo aos executivos e gerentes detectar as tendncias e tomar as decises com eficincia
e eficcia. Devido a essa necessidade, surgiu o conceito de Business Intelligence BI.
101
Assinale a alternativa que indique duas caractersticas dos atuais sistemas de Business Intelligence.
(a) procurar relaes de causa e efeito / extrair e integrar dados de mltiplas fontes.xx
(b) evitar a utilizao de ferramentas automatizadas / desprezar dados contextualizados.
(c) extrair e integrar dados de mltiplas fontes / evitar a utilizao de ferramentas automatizadas.
(d) desprezar dados contextualizados / trabalhar exclusivamente com fatos reais e no hipotticos.
(e) trabalhar exclusivamente com fatos reais e no hipotticos / procurar relaes de causa e efeito.
102. (TRT FCC 2008) No mbito do OLAP, grficos de produtos so generalizaes da estrutura de ......
apresentada por HRU (Harinarayan, Rajaraman e Ullman), na qual as dimenses 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 operaes de projeo nas dimenses,
compreende a extrao de informaes sumarizadas de um cubo de dados e extrao de um "subcubo", a
103
partir do valor de uma dimenso. Trata-se de
(a) sorting.
(b) pivot and sorting.
(c) drill-up.
(d) selection.
xx
(e) slice and dice.
104. Para eliminar a condio de existncia de valores no atmicos em uma coluna de tabela relacional,
(a) deve ser aplicada, no mnimo, a primeira Forma Normal.xx
(b) devem ser aplicadas, no mnimo, as quatorze regras de Codd.
(c) deve ser aplicada, no mnimo, a Forma Normal Boyce-Codd.
(d) deve ser aplicada, no mnimo, a terceira Forma Normal.
(e) devem ser aplicadas, no mnimo, as regras de integridade referencial.
105. Um
(a)
(b)
(c)
(d)
(e)
banco de dados relacional normalizado significa que as relaes que o compe atendem
1FN, no mximo.
xx
3FN, no mnimo.
2FN, mas no necessariamente 1FN.
2FN, no mximo.
3FN, mas no necessariamente a 1FN e 2FN.
105
106
106. Uma relao estar na Segunda Forma Normal (2FN) se ela estiver na 1FN e todos os atributos
(a) no chave forem dependentes no transitivos da chave primria.
xx
(b) no chave forem totalmente dependentes da chave primria.
(c) chave forem dependentes no transitivos das chaves estrangeiras.
(d) chave forem totalmente dependentes das chaves estrangeiras.
(e) chave forem totalmente dependentes dos atributos no chave.
107. Em
(a)
(b)
(c)
(d)
(e)
86
107
104
TI para concursos
87
115
bloco PL/SQL que est associado a um evento ocorrido no banco de dados Oracle do tipo
funo.
xx
gatilho.
annimo.
procedimento.
dinmico.
TI para concursos
116. A estrutura lgica de armazenamento nas bases de dados Oracle representada na seqncia hierrquica
116
de
(a) segmentos, blocos de dados e extenses.
(b) segmentos, extenses e blocos de dados.xx
(c) extenses, segmentos e blocos de dados.
(d) extenses, blocos de dados e segmentos.
(e) blocos de dados, segmentos e extenses.
117
118
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. As clusulas do comando de consulta da linguagem SQL devem ser escritas na seqncia
(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.
120
121. Para mostrar a composio de peas e respectivos componentes (peas so compostas de peas), em um
121
DER, usa-se
(a) o grau de relacionamento quaternrio.
(b) a cardinalidade ternria.
(c) a entidade fraca.
(d) a entidade associativa.
xx
(e) o auto-relacionamento.
122
88
TI para concursos
125. Uma transao executar qualquer operao 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 estratgia.
xx
(c) controlador de concorrncia.
(d) gerenciador de recuperao.
(e) gerenciador de buffer.
89
TI para concursos
Programao de Sistemas
7.1
Lgica de Programao
O computador, como todo componente eletrnico, s entende sinais de carga eltrica sequenciadas,
um choquinho aps o outro. Dividido em diversos tipos de componentes fsicos que se comportam de
forma diferente ao estmulo eltrico, pode-se determinar a ao de um equipamento eletrnico
alterando-se o sequenciamento destas peas pela ao de chaves (componentes eletrnicos) que
desviam o fluxo de energia. Esta definio da sequncia de chaves, que determina por onde e quando
a corrente eltrica vai passar resultando em um comportamento previsto do sistema eltrico,
chamada de programao.
Os primeiros programadores definiam e alteravam estas chaves diretamente com fios em placas. A
evoluo permitiu que a programao pudesse ser feita por sequenciamento lgico de nmeros que
poderiam ser transferidos para os computadores atravs de cartes 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 ingls), textos inteligveis, em comandos em
linguagem da mquina (nmeros). Estes programas so os compiladores. Endereos de memria que
contm dados recebem nomes pelo programador (variveis). Programar passou, ento, a ser redigir um
texto obedecendo certas regras de sintaxe, submeter o texto a um compilador que faz a traduo para
a linguagem que a mquina consegue processar.
Por certo tempo, programao consistia em sequenciar comandos e atribuir endereos (nmeros ou
ndices), a eles. Para se repetir uma sequencia de comandos, ou seja, fazer uma iterao, utilizava-se
um comando para desviar o processamento para o endereo do primeiro comando da sequencia. Os
comandos eram basicamente: leia, armazene na varivel, faa a conta, grave (na tela, disco ou
impressora) e desvie para o endereo tal, alm do comando de condio SE (IF - se o valor for tanto,
pule para o endereo tal). Era a programao indexada. Tudo era controlado por nmeros e o
programador tinha que pensar como mquina. 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 criao dos comandos do tipo declarao (statement): enquanto (while), repita-at que (repeat
until), caso (case) e para-faa (for do); o sequenciamento de comandos passou a apresentar o formato
de uma contruo lgica, dispensando a numerao das linhas de programao. 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
programao estruturada, procedural ou procedimental. O prprio 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;
Function Calcula_Fatorial(n: integer) : integer;
Begin
If n>1 then
Calcula_Fatorial := n*Calcula_Fatorial(n-1)
Else
Calcula_Fatorial := 1;
End;
Begin
repeat
Clrscr;
Write(Digite um nmero inteiro positivo (zero para terminar): );
Readln(Numero);
If Numero>=0 then
Writeln(O fatorial de , Numero, , Calcula_Fatorial(Numero))
Else
Writeln(Valor invlido);
Until Numero=0;
Writeln(Fim de processamento.);
End.
A grande revoluo na arte da programao de computadores foi quando algum percebeu que o
homem no deve pensar como mquina para escrever um programa, mas deve fazer o computador
comportar-se como gente e compreender comandos humanos. Criou-se uma tcnica de raciocnio 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, caractersticas ou, genericamente, atributos.
Tem comportamento. Pode ser mvel ou no, fazer coisas.
formado por objetos menores (at o tomo, ou menor) que possuem tambm atributos e
comportamentos
Quando esta tcnica se transformou em uma linguagem, criou-se a programao orientada a objetos.
Ela utiliza uma nova forma de fazer programas, no jogou fora todos os aspectos positivos da
programaao procedimental e estruturada, mas evoluiu estes conceitos. Os procedimentos e funes
so chamados de mtodos quando esto dentro de um objeto. As variveis internas ao objeto so
chamadas de propriedades ou atributos.
O conjunto de valores das propriedades formam o estado do objeto. Mensagens so aes de
dispositivos externos (teclado, mouse, placa de rede, scanner, outros programas) ou de outros objetos
que provocam mudanas de estado. Algumas mudanas do estado do objeto podem determinar uma
situao em que algum mtodo deve ser executado (ao). Por exemplo, um clique do mouse sobre
um objeto boto muda a propriedade Clicado de falso para verdadeiro. O seu novo estado pode
desencadear uma sequencia de comandos ou mtodos. Mudanas de estado que fazem uma ao so
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
srie de aes que provocam mudanas de estado que podem desencadear outras aes.
7.1.1
91
TI para concursos
De forma geral, define-se como numrico os valores que sero utilizados para clculos algbricos. So
de tipo lgico as variveis que assumem apenas dois estados, verdadeiro ou falso, ou equivalente (0 ou
1, v ou t, sim ou no etc). So alfanumricas as variveis que no so destinadas a clculos, mas
somente operaes de comparaes, buscas, concatenaes ou simples exibio. So de tipo
apontador, variveis que armazenam endereos de memria.
Dependendo da linguagem de programao, as variveis numricas podem se subdividir em reais ou
inteiras, e tambm em outras variaes destes dois tipos, como inteiro no negativo, monetrio, inteiro
longo etc. O tipo alfanumrico tambm pode receber variaes como memorando (texto), ou texto
formatado.
Existem tambm outros tipos de armazenamento de dados na memria, que so agrupamentos de
variveis:
Vetor conjunto de variveis identificado por um nome e nmeros inteiros positivos (comeando em
zero) para cada elemento. A parte numrica do nome da varivel fica entre parnteses ou colchetes
direita do nome. Para se referir a uma posio do vetor, a parte numrica pode ser resultado de
uma operao matemtica. Um vetor que utiliza mais do que um nmero (dimenses) para
identificar cada uma de suas posies (separados por vrgulas) chamado de matriz.
Registro grupo de variveis de vrios tipos, identificado por um nome. Cada varivel dentro de um
registro chamada de campo.
Lista conjunto de registros ligados por apontadores, usado em conjunto de dados hierrquicos em
que a relao entre os dados no precisa ser representada em forma de matrizes, ou para
armazenar dados de uma tabela na memria para algum tratamento especial.
Fila sequncia 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 sequncia 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
7.2.1
Objetos
Objeto uma abstrao do mundo real. Objetos de software so modelados de acordo com os objetos
do mundo real, ou seja, possuem estado e comportamento. Um objeto de software armazena seu
estado em variveis e implementa seu comportamento com mtodos. Estas variveis e mtodos so
formalmente chamados de variveis de instncia e mtodos de instncia a fim de distingui-los de
variveis e mtodos de classe.
As variveis de um objeto fazem parte do seu ncleo (centro). Os mtodos envolvem e escondem
(empacotam) o ncleo do objeto de outros componentes da aplicao. Empacotar as variveis de um
92
TI para concursos
7.2.2
Classe
Objetos podem apresentar mtodos e atributos (propriedades) idnticos. Em relao a estes elementos
em comum, dizemos que eles pertencem a uma mesma classe. Na programao orientada a objeto,
classe uma abstrao, enquanto que, neste contexto, objeto considerado um elemento ftico.
Uma classe um modelo, ou prottipo, que define as variveis (estado) e os mtodos (comportamento)
comuns a todos os objetos do mesmo tipo. Na classe so definidas as variveis e implementados os
mtodos. Os objetos so criados a partir de suas classes.
Dois botes na tela pertencem classe boto. 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 boto, cinza, em alto-relevo, com determinado
comportamento ao clicar, pode ter duas instncias na tela. Definidas as caractersticas de um tipo de
boto, ao criar (instanciar) um objeto, por uma instruo determina-se que ele far parte da classe, e
isto far com que ele herde todas as caractersticas de um boto tpico. Depois de instanciado, aes
podero alterar seu estado, como sua aparncia e comportamento.
Na programao orientada a objetos, implementa-se um conjunto de classes que definem os objetos
presentes no sistema de software. Cada classe determina o comportamento (mtodos e eventos) e os
estados possveis (valores dos atributos) de seus objetos, assim como o relacionamento com outros
objetos.
As classes no so diretamente suportadas em todas as linguagens de objetos, e no so necessrias
para que a linguagem seja orientada a objetos.
A classe define as caractersticas comuns e os objetos so instncias dessa classe, com estado
prprio.
7.2.3
Persistncia
Alguns objetos so criados, cumprem sua funo e so destruidos logo em seguida. Outros objetos
continuam por tempo indeterminado e isto chamado de persistncia. No faz sentido falar de
persistncia de classes, somente de instncias (objetos).
7.2.4
Mtodos
Mtodo uma sub-rotina interna a um objeto, que pode ser executado por uma ao externa, isto , ao
receber uma mensagem, ou por uma ao interna de um evento.
93
TI para concursos
7.2.5
Atributos
Os atributos so os elementos que definem a estrutura de uma classe. Os atributos tambm so
conhecidos como variveis de classe, e podem ser divididos em dois tipos bsicos: atributos de
instncia e de classe.
Os valores dos atributos de instncia 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 tambm de atributos estticos ou constantes.
7.2.6
Mensagens
Objetos modificam seu estado por meio do recebimentos de mensagens. Alguns mtodos de um objeto
que recebe a mensagem precisam de informaes, os parmetros, para saber exatamente o que fazer.
Assim, trs componentes fazem parte de uma mensagem:
o objeto para onde a mensagem endereada;
o nome do mtodo a realizar;
parmetro(s) necessrios para realizar o mtodo;
7.2.7
Herana
A herana um mecanismo que permite criar novas classes a partir de classes j existentes,
aproveitando-se das caractersticas existentes na classe a ser extendida. Com a herana possvel
criar classes derivadas (sub-classes) a partir de classes bases (superclasses).
As subclasses herdam todas as caractersticas de suas superclasses, como suas variveis (estado) e
seus mtodos (comportamento). Entretanto, as subclasses no esto limitadas ao comportamento
herdado de sua super-classe. As subclasses podem adicionar variveis e mtodos a aqueles herdados.
As subclasses, tambm, podem redefinir (override) mtodos herdados e oferecer implementaes
especializadas para estes mtodos. O conceito de herana pode ser aplicado para mais de um nvel. A
rvore de herana, ou hierarquia de classe, pode ser to profunda quanto necessrio. Os mtodos e
variveis so herdados por meio dos nveis. Em geral, quanto mais baixa na hierarquia for a posio da
classe, mais especfico o seu comportamento.
Como benefcios do conceito de herana, podemos citar:
Programadores podem definir classes abstratas que determinam comportamentos genricos.
Subclasses oferecem comportamentos especializados a partir de elementos bsicos comuns,
oferecidos pela superclasse.
A utilizao de herana promove o reuso e reaproveitamento de cdigo existente, tornando a
manuteno do cdigo mais eficiente.
A superclasse define e pode implementar parcialmente o comportamento de uma classe, mas a maioria
das informaes da classe fica indefinida ou no implementada.
A herana mltipla ocorre quando uma classe pode estender caractersticas de vrias 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 codificao confusa o que dificulta a manuteno
do cdigo. A linguagem Java no suporta herana mltipla, apenas herana simples. J a linguagem
C++ oferece suporte herana mltipla.
Uma linguagem ao utilizar herana mltipla est sujeita a dois problemas: coliso de nomes (nomes
idnticos nas classes superiores) e herana repetida (classe herda de uma classe superior que herda
de uma classe comum);
7.2.8
Polimorfismo
Segundo a terminologia de orientao 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 superclasse podem invocar mtodos que tm a mesma assinatura (nome, lista de parmetros e retorno),
mas comportamentos distintos, especializado para cada classe derivada, usando para tanto uma
referncia a um objeto do tipo superclasse.
A deciso sobre qual mtodo deve ser selecionado, de acordo com o tipo da classe derivada, tomada
em tempo de execuo por meio do mecanismo de ligao tardia. No caso do polimorfismo,
94
TI para concursos
necessrio que os mtodos tenham exatamente a mesma identificao, sendo utilizado o mecanismo
de redefinio de mtodos.
Os benefcios do polimorfismo so: a clareza e manuteno do cdigo, a diviso da complexidade e
aplicaes flexveis. 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 existncia de vrios mtodos de mesmo nome,
porm com assinaturas levemente diferentes, ou seja, variando no nmero 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 mtodos a serem executados. Por exemplo:
public class Soma
{ public int Soma (int x, int y)
{return x+y;}
public String Soma (String x, String y)
{return x+y;}
public double Soma (double x, double y)
{return x+y;}
}
7.2.10
Interfaces
Interface a relao de mtodos, com seus parmetros, das propriedades que podem ser acessados
por outros objetos e tambm pode incluir declaraes de constantes.
Uma interface apresenta somente as definies de mtodos, sem sua implementao. A classe que
implementa a interface deve implementar todos os mtodos definidos na interface.
7.2.11
Pacotes
Para tornar as classes mais fceis 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 diretrio, ou
seja, as classes e as interfaces de um mesmo pacote devem estar em um mesmo diretrio.
A utilizao de pacotes proporciona as seguintes vantagens:
Fica mais fcil para outros programadores determinar quais classes e interfaces esto relacionadas.
Os nomes das classes de um pacote no iro 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, variveis e mtodos) pblicos so acessveis fora do pacote onde foram
definidos.
7.3
Programao na WEB
Visualizar uma pgina web ou outro recurso disponibilizado normalmente inicia ou ao digitar uma URL
no navegador ou seguindo (acessando) uma hiperligao. Primeiramente, a parte da URL referente ao
servidor web separada e transformada em um endereo IP, por um banco de dados da Internet
chamado Domain Name System (DNS). O navegador estabelece ento uma conexo TCP-IP com o
45
servidor web localizado no endereo IP retornado.
O prximo passo o navegador enviar uma requisio HTTP ao servidor para obter o recurso indicado
pela parte restante da URL (retirando-se a parte do servidor). No caso de uma pgina web tpica, o
texto HTML recebido e interpretado pelo navegador, que realiza ento requisies adicionais para
figuras, arquivos de formatao, arquivos de script e outros recursos que fazem parte da pgina.
O navegador ento renderiza a pgina na tela do usurio, assim como descrita pelos arquivos que a
compe.
A funcionalidade da Web baseada em trs padres:
45
http://pt.wikipedia.org/wiki/World_Wide_Web
95
TI para concursos
URI, um sistema que especifica como cada pgina de informao recebe um "endereo" nico onde
pode ser encontrada.
HTTP, um protocolo que especifica como o navegador e servidor web comunicam entre si.
HTML, uma linguagem de marcao para codificar a informao de modo que possa ser exibida em
uma grande quantidade de dispositivos.
Desta forma, programar para Web escrever pginas em HTML. Para isto, o programador pode
escrever um texto em HTML puro e gravar este arquivo em um servidor web. Estes textos so
chamados de pginas estticas. Elas s mudam quando o programador alterar o arquivo.
Porm, o servidor web utilizado pode ter instalado programas que geram pginas HTML no momento
em que a requisio chega. Neste caso, o texto requisitado no um texto HTML, mas um cdigo em
alguma linguagem de programao que, ao ser processado pelo servidor, gera um texto HTML dentro
das especificaes da requisio. Estes textos so chamados de pginas dinmicas. Estas pginas
permitem a interao com o usurio e com gerenciadores de bancos de dados, podendo gerar pginas
HTML diferentes a cada instante.
Assim, ao projetar um site, o programador decide se vai usar pginas estticas, dinmicas ou as duas.
7.3.1
Linguagem HTML
HTML (acrnimo para a expresso inglesa HyperText Markup Language, que significa Linguagem de
Marcao de Hipertexto) uma linguagem de marcao utilizada para produzir pginas na Web.
Documentos HTML podem ser interpretados por navegadores. A tecnologia fruto do "casamento" dos
padres HyTime e SGML.46
HyTime um padro para a representao estruturada de hipermdia e contedo baseado em tempo.
Um documento visto como um conjunto de eventos concorrentes dependentes de tempo (como
udio, vdeo, etc.), conectados por hiper-ligaes. O padro independente de outros padres de
processamento de texto em geral.
SGML um padro de formatao de textos. No foi desenvolvido para hipertexto, mas tornou-se
conveniente para transformar documentos em hiper-objetos e para descrever as ligaes.
Todo documento HTML apresenta tags (tags), elementos entre parnteses angulares (sinais de maior e
menor). Esses elementos so os comandos de formatao da linguagem. A maioria das tags tem sua
correspondente de fechamento:
<tag>...</ tag >
Isso necessrio porque as tags servem para definir a formatao de uma poro do documento, e
assim marcamos onde comea e termina o texto com a formatao especificada por ela. Alguns
elementos so chamados vazios, pois no marcam uma regio de texto, apenas inserem algum
elemento no documento:
Uma tag formada por comandos, atributos e valores. Os atributos modificam os resultados padres
dos comandos e os valores caracterizam essa mudana.
A estrutura de um documento HTML apresenta os seguintes componentes:
<html>
<head>
<title>Ttulo do Documento</title>
</head>
<body>
texto,
imagem,
links,
...
</body>
</html>
De uma maneira geral o HTML um poderoso recurso, sendo uma linguagem de marcao muito
simples e acessvel voltada para a produo e compartilhamento de documentos e imagens.
As tags HTML no so sensveis maisculas ou minsculas, portanto tanto faz escrever <HTML>,
<Html>, <html> ou <HtMl>.
As tags bsicas de HTML, cuja presena altamente recomendada nas pginas so:
46
http://pt.wikipedia.org/wiki/HTML
96
TI para concursos
<html>: define o incio de um documento HTML e indica ao navegador que todo contedo posterior
deve ser tratado como uma srie de cdigos HTML.
<head>: define o cabealho de um documento HTML, que traz informaes sobre o documento que
est sendo aberto.
<body>: define o contedo 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 pgina, como cor
de fundo, margens, e outras formataes.
Dentro do cabealho podemos encontrar os seguintes comandos:
<title>: define o ttulo da pgina, que exibido na barra de ttulo dos navegadores.
<style>: define formatao em CSS (Cascading Style Sheets), uma linguagem de estilo utilizada
para definir a apresentao de documentos escritos em HTML ou XML.
<script>: define programao de certas funes em pgina com scripts (cdigos de programa) em
diversas linguagens web cliente, como Javascrip, Visual Basic Script, DHTML ou CSS.
Applets de Java
<link>: define ligaes da pgina com outros arquivos como feeds, CSS, scripts etc.
<meta>: define propriedades da pgina, como codificao de caracteres, descrio da pgina, autor,
etc. So meta informaes sobre documento. Tais campos so muitos usados por mecanismos de
busca (como o Google) para obterem mais informaes sobre o documento, a fim de classific-lo
melhor. Por exemplo, pode-se adicionar o cdigo <meta name="description" content="descrio da
sua pgina" /> no documento HTML para indicar ao motor de busca que texto de descrio
apresentar junto com a ligao para o documento.
As tags <style> e <script> servem tanto para delimitar o espao usados pelos cdigos na pgina quanto
para invocar cdigos existentes em outros arquivos externos.
Dentro do corpo podemos encontrar outras vrias tags, como por exemplo:
<h1>, <h2>,... <h6>: cabealhos e ttulos no documento em diversos tamanhos. (quanto menor for o
nmero, maior sera o tamanho da letra)
<p>: novo pargrafo.
<br>: quebra de linha.
<table>: cria uma tabela (linhas so criadas com <TR> e novas clulas com <TD>. J os cabealhos
de coluna so criados com a tag <TH>.)
<div>: determina uma diviso na pgina a qual pode possuir variadas formataes.
<font>: altera a formatao (fonte, cor e tamanho) de um trecho do texto.
<b>, <i>, <u> e <s>: negrito, itlico, sublinhado e riscado, respectivamente.
<img>: imagem.
<a>: hiper-ligao para um outro local, seja uma pgina, um e-mail ou outro servio.
<textarea>: caixa de texto (com mais de uma linha); estas caixas de texto so muito usadas em
blogs, elas podem ser auto selecionveis e conter outros cdigos a serem distribudos.
<acronym>: acrnimo (sigla)
<cite>: citao
<address>: endereo
Uma propriedade importante dos documentos HTML a possibilidade de fazer hiperligaes. Para isso
usa-se a tag <a> (do ingls, anchor). Esta tem os atributos: href que define o alvo da hiperligao (que
pode ser uma pgina de Internet, uma parte da mesma pgina ou um endereo de email) ou name que
define um alvo nessa pgina (a onde se pode fazer uma hiperligao usando a tag a com o atributo
href). Exemplos:
<a href="http://pt.wikipedia.org/">Clique aqui para aceder pgina principal da Wikipdia em portugus.</a>
<a name="nome">texto</a>
Os caracteres especiais definem-se usando comandos que comeam com & e terminam com um ;.
Alguns exemplos incluem á (), à (), ã (), â (), ä () e ç ().
Qualquer outra vogal pode ser substituda pelo a destes exemplos, incluindo maisculas.
7.3.2
97
TI para concursos
7.3.3
XML
O XML (eXtensible Markup Language) um formato para a criao de documentos com dados
organizados de forma hierrquica, 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 propsito principal a facilidade de compartilhamento de informaes atravs da Internet.
Pela sua portabilidade, j que um formato que no depende das plataformas de hardware ou de
software, um banco de dados pode, atravs de uma aplicao, escrever em um arquivo XML, e um
outro banco distinto pode ler ento estes mesmos dados.
Este exemplo demonstra a sintaxe flexvel do XML sendo usada para descrever uma receita de po:
<?xml version="1.0" encoding="ISO-8859-1"?>
<receita nome="po" tempo_de_preparo="5 minutos" tempo_de_cozimento="1 hora">
<titulo>Po simples</titulo>
<ingredientes>
<ingrediente quantidade="3" unidade="xcaras">Farinha</ingrediente>
<ingrediente quantidade="7" unidade="gramas">Fermento</ingrediente>
<ingrediente quantidade="1.5" unidade="xcaras" 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>
"Receita" o nome principal para o seu documento. Note que a semelhana 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 contedos so inseridos entre tags (marcadores) de mesmo nome, sendo
que a segunda tag tem uma barra (/) antes do nome.
O XML apresenta algumas regras bsicas:
Letras maisculas e minsculas so 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 no 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>
7.4
47
http://pt.wikipedia.org/wiki/XML
98
TI para concursos
7.4.1
arquitetura da .Net
Existem termos e conceitos que devem ser entendidos para se utilizar a .Net.
7.4.2
Linguagens de programao
Esta a primeira camada da plataforma. Neste nvel ficam as ferramentas de desenvolvimento e os
respectivos compiladores.
A .Net oferece independncia de linguagem. Atualmente existem mais de trinta com suporte para .Net.
Todas as linguagens .Net obrigatoriamente devem seguir os padres da plataforma. Quando dizemos
que uma linguagem compatvel com .Net, entendemos que ela usa o CLR e a FCL.
A Microsoft oferece quatro linguagens com sua plataforma:
C# (leia-se C Sharp), com caractersticas herdadas do C++ e Java, mas muito mais fcil de
aprender e utilizar
VB.Net, a verso do Visual Basic que foi reescrito para a plataforma
C++ Embedded, a verso C++ da .Net, pouqussimo usada
J# (leia-se Jei Sharp), a verso Java da .Net, tambm muito pouco usada, cujo objetivo apenas
facilitar a migrao dos desenvolvedores Java para a .Net.
Oferece total compatibilidade com suas linguagens, onde cdigos escritos numa determinada
linguagem podem ser executadas em outra sem nenhum problema. Ou seja, possvel escrever uma
classe em C#, herd-la em VB.Net e us-la no C++ Embedded (a verso C++ da .Net).
99
TI para concursos
7.4.3
7.4.4
7.4.5
7.4.6
Camada de apresentao
Este nvel define o tipo de interao do sistema com o usurio, que pode ser atravs de uma aplicao
Web (utilizando o ASP.Net e Web Forms), Windows (utilizando Windows Forms) ou console (utilizando
um prompt de comando, em modo caracter). Na minha opinio, os sistemas para Smart Devices (como
Pockets, celulares, etc) tambm deveriam ser considerados uma camada de apresentao diferente,
mas neste esquema eles foram includos com os Windows Forms.
7.4.7
ADO.Net
Esta camada responsvel pela comunicao das aplicaes 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 instrues SQL diretamente;
Modo desconectado: neste modo, voc armazena informaes de um banco de dados localmente, na
memria do computador onde a aplicao est executando. Estas informaes so armazenadas em
objetos das classes Dataset, que permitem qualquer operao aceita por um banco de dados, tambm
conhecida pela sigla CRUD (Create, Retrieve, Update, Delete) ou seja, criar, recuperar, atualizar e
excluir linhas (ou registros). Periodicamente, uma conexo feita com o banco e as informaes so
sincronizadas. Deste modo, voc pode criar aplicaes para Web ou dispositivos mveis (tipo Pocket
PC), que no tem uma conexo permanente com o banco, ou mesmo aplicaes Windows rodando
numa rede local ou remota.
7.4.8
.Net Remoting
Remoting o processo no qual programas ou componentes se interagem dentro de certos limites.
Estes contextos normalmente so mquinas ou processos diferentes. Na .NET Framework, esta
tecnologia fornece a base para aplicaes distribudas, ou seja, ela simplesmente substitui o DCOM.
DCOM a abreviatura de Distributed Component Object Model, uma extenso do COM (Component
Object Model) que permite que objetos se comuniquem em uma rede. Componentes COM tradicionais
100
TI para concursos
somente executam esta comunicao entre processos na mquina local. O DCOM usa o mecanismo
RPC para enviar e receber informaes entre componentes COM (clientes e servidores) na mesma
rede.
o RPC a abreviatura para Remote Procedure Call, um tipo de protocolo que permite que um
programa num computador execute outro programa num servidor. Com esta tcnica, o desenvolvedor
no precisa criar procedimentos especficos para o servidor. O programa cliente envia uma mensagem
ao servidor, com os argumentos apropriados, e o servidor retorna uma mensagem contendo o resultado
do programa executado.
o A rede a que nos referimos pode ser uma LAN, WAN ou a prpria Internet (que no passa de uma
rede mundial gigantesca).
Implementaes Remoting geralmente fazem distino entre objetos remotos e objetos mveis.
Objetos remotos: Remoting fornece a capacidade de executar mtodos em servidores remotos,
passando parmetros e recebendo valores de retorno. O objeto remoto sempre fica num servidor e as
outras mquinas apenas passam uma referncia a ele.
Objetos mveis: Neste caso os dados enviados so serializados (organizados) num formato que pode
ser binrio ou legvel para ns, como XML, e de-serializados no outro contexto envolvendo o processo.
Ambos, servidor e cliente, mantm cpias do mesmo objeto. Nestas cpias, os mtodos so
executados no contexto local e nenhuma mensagem vai trafegar de volta a mquina que originou o
objeto. Na verdade, aps a serializao e de-serializao os objetos copiados so idnticos aos objetos
locais normais, e no h distino entre um objeto servidor e um objeto cliente.
A .NET expande este conceito para incluir a habilidade de definir contextos adicionais dentro de uma
aplicao em execuo, e o acesso a estes objetos alm dos seus limites tambm passaro pelo .NET
Remoting Framework.
7.4.9
7.4.10
7.4.11
7.4.12
101
TI para concursos
no sistema operacional como arquivos executveis com a extenso .exe ou como bibliotecas dinmicas
com a extenso .dll.
Metadados: So conjuntos de instrues geradas no processo de compilao de um programa .Net,
junto com o MSIL, e que contm informaes especficas da aplicao, que incluem, entre outras:
o Descrio de tipos: classes, estruturas, tipos enumerados, etc, que so usados no sistema, seja um
executvel ou dll;
o Descrio dos membros: propriedades, mtodos, eventos, etc;
o Descrio de cada assembly: que usado na aplicao e necessrio para sua execuo;
o Verso: permite que aplicaes homnimas, mas com verses diferentes, executem no mesmo
computador sem conflitos.
Com as informaes contidadas nos metadados, podemos dizer que uma aplicao .Net autoexplicativa, dispensando a utilizao do registro do Windows, usado pela maioria dos programas. Desta
forma, a no ser que voc crie chaves especficas no registro para seu uso, a instalao de um
programa .Net se resume em copiar os assemblies da aplicao para a mquina que ir execut-lo.
7.5
Exerccios
(ICMS-SP 2009) Instrues: Para responder s cinco prximas questes, utilize um computador hipottico
que tem um registrador R (valor inicial: R=10) e 5 posies de memria de M1 at M5 (valores iniciais:
M1=030, M2=005, M3=020, M4=015 e M5=010), com capacidade de 3 dgitos cada posio para armazenar
valores inteiros de 999 e +999, e que reconhece os seguintes tipos de instrues (cada instruo tem um
endereo n sequencial e termina com um ponto-e-vrgula):
INI; (= inicia o programa).
FIM; (= termina o programa).
IMP; (= imprime o contedo de R).
LER nnn; (= carrega em R o nmero nnn digitado pelo teclado).
CAR Mx; (= carrega em R o contedo de Mx).
CAR n; (= carrega em R o nmero n).
MOV Mx; (= move para Mx o contedo 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 instruo de endereo n).
SE condio instrues1 SENAO instrues2; (= se condio =VERDADEIRA executa instrues1, se
=FALSA executa instrues2).
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 trmino da execuo, os contedos de M1, M3 e M5 so, 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 trmino da execuo, os contedos de R, M2 e M4 so, 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 trmino da execuo, o contedo impresso ser igual a
(a) 10
xx
(b) 11
(c) 15
(d) 25
(e) 30
102
TI para concursos
129. (ICMS-SP 2009) A lgica principal do programa apresentado na questo anterior representa uma estrutura de
129
controle denominada estrutura
(a) sequence.
(b) de repetio do-until.
(c) de repetio do-while.
xx
(d) de seleo if-then-else.
(e) de seleo 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 obtm 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 instncia de uma classe.
(b) a identidade de um objeto.
xx
(c) o estado de um objeto.
(d) o comportamento de um objeto.
(e) as operaes de uma classe.
132
133. (ICMS-SP 2009) Uma classe uma abstrao que ajuda a lidar com a complexidade e um bom exemplo de
133
abstrao
(a) um aluno e as disciplinas que est cursando.
(b) um professor e os cursos nos quais ministra aulas.
(c) um funcionrio e o departamento em que trabalha.
xx
(d) uma pessoa e o nmero do seu CPF na Receita Federal.
(e) uma casa e a empresa que a projetou e construiu.
134. (ICMS-SP 2009) O mtodo utilizado para inicializar objetos de uma classe quando estes so criados
134
denominado
(a) void.
(b) interface.
(c) agregao.
(d) composio.
xx
(e) construtor.
135. (ICMS-SP 2009) Sobre a visibilidade dos mtodos na orientao a objetos considere:
I. Os mtodos pblicos de uma classe definem a interface da classe.
II. Os mtodos privativos de uma classe no fazem parte da interface da classe.
III. O nome dos mtodos a informao reconhecida como a assinatura dos mtodos.
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 estratgia Microsoft .NET
I. constituda das partes Common Language Runtime, bibliotecas de classes, ASP.NET e ADO.NET.
II. para construir, implementar e executar aplicaes 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) NO uma linguagem de programao 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 programao de cdigo 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 publicao de aplicativos e para
atualizao 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 opo de escolha no Visual Studio 2005 para usar Web Forms como interface de usurio
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 no no
servidor.
(d) computador cliente e que o .NET Framework dever ser executado apenas no computador cliente e no
no servidor.
(e) computador cliente e que o .NET Framework dever ser executado tanto no servidor quanto no
computador cliente.
141. Uma ou mais instrues so executadas ou no, dependendo do resultado do teste efetuado. Esta afirmao
141
define uma estrutura de controle de programao do tipo
(a) pilha.
(b) seleo.xx
(c) fila.
(d) repetio.
(e) seqncia.
142. A estrutura de dados de iterao na qual uma ao ser executada pelo menos uma vez, antes da avaliao
142
da condio, implementada pelo comando bsico
(a) condicional.
(b) faa enquanto.
(c) seqencial.
xx
(d) de repetio.
(e) de seleo.
143. Em uma hierarquia de classes possvel especificar operaes com a mesma assinatura em pontos
143
diferentes da hierarquia. Portanto, essas operaes presentes nas classes-filha
(a) anulam o comportamento das operaes existentes nas classes-me.xx
(b) herdam os atributos existentes nas classes-me.
(c) so composies de alguns atributos existentes nas classes-me.
(d) complementam o comportamento das operaes existentes nas classes-me.
(e) agregam as operaes existentes nas classes-me.
144. As instncias de uma classe so
(a) seus atributos.
(b) suas superclasses.
(c) suas operaes.
(d) seus objetos.xx
(e) seus relacionamentos.
144
145. A nomenclatura da linguagem C++ para Chamada de Funo e Classe Base corresponde, respectivamente,
145
na programao orientada a objetos a
(a) Mtodo e Subclasse.
(b) Mtodo 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 situao de composio 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 execuo de uma expresso lgica 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. Respeitando as ordens de insero e de retirada dos dados, uma estrutura de
(a) fila tambm denominada LIFO ou LILO.
(b) fila tambm denominada FIFO ou FILO.
(c) fila tambm denominada FIFO ou LIFO.
(d) pilha tambm denominada FIFO ou FILO.
xx
(e) pilha tambm denominada LIFO ou FILO.
148
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. Em
(a)
(b)
(c)
(d)
(e)
151
XML pode-se definir um atributo, como informao adicional ao elemento, conforme o exemplo abaixo:
<funcionario> <sexo> masculino ...
<funcionario sexo=masculino> ...
<funcionario sexo="masculino">xx...
<funcionario> <sexo> "masculino" ...
<funcionario <sexo>= "masculino"> ...
152
105
TI para concursos
Segurana da informao
8.1
Conceitos bsicos
Segurana da Informao a proteo de um conjunto de dados, no sentido de preservar o valor que
possuem para um indivduo ou uma organizao.
O conceito de Segurana Informtica ou Segurana de Computadores inclue a segurana dos
dados/informao e a dos sistemas em si.48
Entende-se por informao todo e qualquer contedo ou dado que tenha valor para alguma
organizao ou pessoa. Ela pode estar guardada para uso restrito ou exposta ao pblico para consulta
ou aquisio.
Podem ser estabelecidas mtricas para a definio do nvel de segurana existente e, com isto, serem
estabelecidas as bases para anlise da situao. A segurana de uma determinada informao pode
ser afetada por fatores comportamentais e de uso de quem se utiliza dela, pelo ambiente ou infraestrutura.
Os atributos bsicos da segurana:
Confidencialidade - propriedade que limita o acesso a informao s entidades legtimas, ou seja,
quelas autorizadas pelo proprietrio da informao.
Integridade - propriedade que garante que a informao mantenha todas as caractersticas originais
estabelecidas pelo proprietrio da informao, incluindo controle de mudanas e garantia do seu
ciclo de vida (nascimento, manuteno e destruio).
Disponibilidade - propriedade que garante que a informao esteja sempre disponvel para o uso
legtimo, ou seja, por aqueles usurios autorizados pelo proprietrio da informao.
O nvel de segurana desejado, pode se consubstanciar em uma "poltica de segurana" que seguida
pela organizao ou pessoa, para garantir que uma vez estabelecidos os princpios, aquele nvel
desejado seja perseguido e mantido. Para a montagem desta poltica, deve-se levar em conta:
Riscos associados falta de segurana;
Benefcios;
Custos de implementao dos mecanismos.
O suporte para as recomendaes de segurana pode ser encontrado em:
Controles fsicos: so barreiras que limitam o contato ou acesso direto a informao ou a infraestrutura que a suporta, como portas, trancas, paredes, blindagem, guardas etc.
Controles lgicos: so barreiras que impedem ou limitam o acesso a informao, que est em
ambiente controlado, geralmente eletrnico.
Mecanismos de criptografia. Permitem a transformao reversvel da informao de forma a torn-la
ininteligvel a terceiros. Utiliza-se para tal, algoritmos determinados e uma chave secreta para, a partir de
um conjunto de dados no criptografados, produzir uma sequncia de dados criptografados. A operao
inversa a decifrao. Os algoritmos com chave dupla, ou chaves assimtricas, podem usar uma chave
pblica para criptografar e uma chave diferente, privada, secreta, para decifrar.
Assinatura digital. Um conjunto de dados criptografados, associados a um documento do qual so funo,
garantindo a integridade do documento associado, mas no a sua confidencialidade.
Mecanismos de garantia da integridade da informao. Usando funes de "Hashing" ou de checagem,
consistindo na adio.
Mecanismos de controle de acesso. Palavras-chave, sistemas biomtricos, firewalls, cartes inteligentes.
Mecanismos de certificao. Atesta a validade de um documento.
Integridade. Medida em que um servio/informao genuno, isto , est protegido contra a personificao
por intrusos.
Honeypot: o nome dado a um software, cuja funo detectar ou de impedir a ao 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 segurana.
Existe hoje em dia um elevado nmero de ferramentas e sistemas que pretendem fornecer segurana.
Alguns exemplos so os detectores de intruses, os anti-vrus, firewalls, firewalls locais, filtros antispam, fuzzers, analisadores de cdigo, etc.
48
http://pt.wikipedia.org/wiki/Seguran%C3%A7a_da_informa%C3%A7%C3%A3o
106
TI para concursos
107
TI para concursos
8.2
8.3
Vulnerabilidade
A vulnerabilidade na computao significa ter brecha em um sistema computacional, tambm
conhecida como bug. Esta mesma pode ser explorada em um determinado sistema ou servio
vulnervel que esteja rodando na mquina.
As vulnerabilidades mais exploradas nos dias de hoje, so as do tipo buffer overflow, que muitas vezes
pode dar privilgios de administrador para o invasor, rodar cdigos maliciosos remotamente, burlar
particularidades de cada sistema, ataques de Negao de Servios (DDoS), e acesso irestrito ao
sistema.
Existem ferramentas especficas 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 so chamadas de exploits.
Um exploit, em segurana da informao, um programa de computador, uma poro de dados ou
uma sequncia de comandos que se aproveita das vulnerabilidades de um sistema computacional
como o prprio sistema operacional ou servios de interao de protocolos (ex: servidores Web). So
geralmente elaborados por hackers como programas de demonstrao das vulnerabilidades, a fim de
que as falhas sejam corrigidas, ou por crackers a fim de ganhar acesso no autorizado a sistemas. Por
49
http://pt.wikipedia.org/wiki/Plano_de_continuidade_de_neg%C3%B3cios
108
TI para concursos
isso muitos crackers no 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
aplicaes e servios para plataformas Unix. A partir do final da dcada, 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 comunicao
com a rede que possa ser usado para entrar, uma porta ou uma consola.
Um exploit muito usado no sistema RPC do Windows:
o usurio localiza a porta e envia porta RPC uma sequncia de bytes, que so interpretados como dados
pelo servidor
quando so recebidos, estes dados deixam propositadamente o sistema em pane
o sistema passa o controle a estes prprios dados que ento so uma sequncia de ordem para dominar a
CPU.
Desta forma esta sequncia de informaes toma conta do PC e abre-o para o hacker que aguarda na
outra ponta.
Ameaas segurana das redes que fazem com que os micros infectados por esses tipos de vrus
formem redes de computadores "zumbis" que so comandados simultaneamente por seus invasores
para enviar mensagens indesejadas (spam), colocar sites fora do ar e promover fraudes so
categorizadas como botnet (robs).
Keylogger um programa capaz de capturar e armazenar as teclas digitadas pelo usurio no teclado
de um computador.
No sistema Linux, quando existem vulnerabilidades, sempre so publicadas, como j houve no sistema
Apache, Samba ou MySQL, que tambm 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.
8.4
Auditoria e conformidade
A Auditoria da TI uma auditoria operacional, analisa a gesto de recursos, com o foco nos aspectos
de eficincia, eficcia, economia e efetividade. A abrangncia desse tipo de auditoria pode ser o
ambiente de informtica como um todo ou a organizao do departamento de informtica:50
Ambiente de informtica:
Auditoria da tecnologia da informao abrangente, engloba todos os controles que podem influenciar
a segurana de informao e o correto funcionamento dos sistemas de toda a organizao:
Controles organizacionais;
De mudana;
De operao de sistemas;
Sobre Banco de Dados;
50
http://pucrs.campus2.br/~annes/sas_audit.doc
109
TI para concursos
Sobre microcomputadores;
Sobre ambiente cliente-servidor.
Auditoria da segurana de informaes determina a postura da organizao com relao segurana.
Avalia a poltica de segurana e controles relacionados com aspectos de segurana institucional mais
globais, faz parte da auditoria da TI. Seu escopo envolve:
Avaliao da poltica de segurana;
Controles de acesso lgico;
Controles de acesso fsicos;
Controles ambientais;
Planos de contingncia e continuidade de servios.
Auditoria de aplicativos verifica a segurana e o controle de aplicativos especficos, incluindo aspectos
intrnsecos rea a que o aplicativo atende:
Controles sobre o desenvolvimento de sistemas aplicativos;
Controles de entradas, processamento e sada de dados;
Controle sobre contedo e funcionamento do aplicativo, com relao rea por ele atendida.
A natureza especializada da auditoria de sistemas de informao (SI) e a capacidade necessria para
realizar essas auditorias requerem o estabelecimento de normas que se apliquem especificamente
auditoria de SI. 51
A Associao de Auditoria e Controle de Sistemas de Informao, ISACA, desenvolve normas
aplicveis globalmente, de forma a suportar essa viso. A estrutura das Normas de Auditoria de SI
apresenta diversos nveis de orientao:
Normas: definem requisitos obrigatrios para auditorias e relatrios de SI. Informam:
Os auditores de SI sobre o nvel mnimo de desempenho aceitvel exigido para cumprir as
responsabilidades profissionais estabelecidas no Cdigo de tica Profissional
A gesto e outras partes interessadas sobre as expectativas da profisso no que se refere s atividades
daqueles que a exercem
Diretrizes: fornecem orientao para a aplicao das normas de auditoria de SI. O auditor de SI
deve lev-las em considerao para determinar como alcanar a implementao das normas,
utilizar a avaliao profissional na sua aplicao e estar preparado para justificar qualquer
divergncia. O objetivo das Directrizes de Auditoria de SI fornecer informaes adicionais sobre
como cumprir as Normas de Auditoria de SI.
Procedimentos: fornecem exemplos de procedimentos que um auditor de SI pode seguir durante a
realizao de uma auditoria. Os documentos de procedimentos fornecem informaes sobre como
cumprir as normas ao realizar a auditoria de SI, mas no estabelecem requisitos. O objetivo dos
Procedimentos de Auditoria de SI fornecer informaes adicionais sobre como cumprir as Normas
de Auditoria de SI.
As normas da ISACA contm princpios bsicos e procedimentos essenciais que so obrigatrios,
juntamente com orientaes relacionadas com os mesmos, com o objetivo de estabelecer e fornecer
orientaes sobre reas de governana 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 organizao.
conformidade com a organizao: misso, viso, valores, qualidade de informaes, objetivos e
estratgias.
conformidade com as leis: ambientais, trabalhistas, fiducirias e de segurana.
eficincia e eficcia de SI, as suas realizaes e os processos de gesto de desempenho.
riscos que podem causar efeitos adversos no ambiente de SI.
51
Carta de auditoria
Conceitos de materialidade para auditoria de sistemas de informaes
Relacionamento e independncia organizacionais
Uso da avaliao de riscos no planeamento de auditoria
Planeamento - lista detalhada das tarefas
Impacto de terceiros em controles de TI de uma organizao
http://www.isaca.org/Template.cfm?Section=Home&Template=/ContentManagement/ContentDisplay.cfm&ContentFileID=10775
110
TI para concursos
8.5
8.6
Exerccios
153. (ICMS-SP 2009) Segundo as normas ABNT sobre segurana da informao, o tratamento de risco est
153
inserido no processo de
xx
(a) gesto de riscos.
(b) aceitao do risco.
(c) anlise de riscos.
(d) avaliao de riscos.
(e) anlise/avaliao de riscos.
52
http://pt.wikipedia.org/wiki/ISO_27001
111
TI para concursos
154. (ICMS-SP 2009) As aes a serem tomadas imediatamente aps a ocorrncia de um incidente que coloque
em risco as operaes do negcio devem estar descritas no plano de continuidade de negcios como
154
procedimentos
(a) operacionais temporrios.
(b) de ensaio geral.
(c) de recuperao.
(d) de restaurao.
xx
(e) de emergncia.
155. (ICMS-SP 2009) Se qualquer no-conformidade for encontrada como um resultado da anlise crtica nas
reas sobre o cumprimento das polticas e normas de segurana da informao, NO convm que os
155
gestores
(a) determinem as causas da no-conformidade.
(b) determinem e implementem ao corretiva apropriada.
(c) analisem criticamente a ao corretiva tomada.
xx
(d) avaliem a necessidade de aes para assegurar que a conformidade no se repita.
(e) registrem os resultados das anlises e das aes corretivas e que esses registros sejam mantidos.
156. (ICMS-SP 2009) No modelo PDCA adotado para estruturar todos os processos do SGSI Sistema de
Gesto de Segurana da Informao, os resultados das atividades da auditoria interna do SGSI esto
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 padro de recomendaes para prticas na gesto de Segurana da
Informao. De acordo com o estabelecido nesse padro, trs termos assumem papel de importncia capital:
confidencialidade, integridade e disponibilidade.
157
Nesse contexto, a confidencialidade tem por objetivo:
(a) salvaguardar a exatido e a inteireza das informaes e mtodos de processamento.
(b) salvaguardar os dados gravados no backup por meio de software que utilize assinatura digital.
(c) permitir que os usurios tenham acesso aos arquivos de backup e aos mtodos de criptografia
empregados.
(d) permitir que os usurios autorizados tenham acesso s informaes e aos ativos associados, quando
necessrio.
(e) garantir que as informaes sejam acessveis apenas para aqueles que estejam autorizados a acessxx
las.
158. Para garantir a segurana da informao em uma rede de computadores, um sistema de autenticao tpico
158
composto apenas do cdigo do usurio, uma senha e um
(a) processo de certificao.
(b) mtodo de criptografia.
(c) sistema de deteco de intruso.
(d) plano de recuperao.
xx
(e) firewall.
159. NO um algoritmo de chave simtrica o sistema de criptografia de chave
(a) nica.
(b) pblica.xx
(c) secreta.
(d) simtrica.
(e) compartilhada.
159
160. Um conjunto de dados de computador, em observncia Recomendao Internacional ITUT X.509, que se
destina a registrar, de forma nica, exclusiva e intransfervel, a relao existente entre uma chave de
160
criptografia e uma pessoa fsica, jurdica, mquina ou aplicao
(a) uma autoridade certificadora.
(b) uma trilha de auditoria.
(c) uma chave assimtrica.
(d) uma assinatura digital.
xx
(e) um certificado digital.
112
TI para concursos
161. Considere a seguinte definio: "Evitar violao de qualquer lei criminal ou civil, estatutos, regulamentao
ou obrigaes contratuais; evitar a violao de direitos autorais dos software - manter mecanismos de
controle dos softwares legalmente adquiridos". De acordo com as especificaes das normas brasileiras de
161
segurana da informao, esta definio se inclui corretamente em
(a) Gesto de Incidentes e Segurana da Informao.
xx
(b) Conformidade.
(c) Controle de Acesso.
(d) Gesto da Continuidade do Negcio.
(e) Gesto de Ativos.
162
163. Ameaas segurana das redes que fazem com que os micros infectados por esses tipos de vrus formem
redes de computadores "zumbis" que so comandados simultaneamente por seus invasores para enviar
163
mensagens indesejadas (spam), colocar sites fora do ar e promover fraudes so 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 usurio no teclado de um computador o
164
(a)
(b)
(c)
(d)
(e)
Worm.
Spyware.
Backdoor.
Keylogger.xx
Cavalo de Tria.
165. Por meio da anlise dos procedimentos para estabelecer e finalizar uma conexo utilizada para troca de
informaes entre dois hosts, obtm-se informaes que permitem uma prospeco sobre os servios por
165
eles oferecidos. Essa tcnica, utilizada para descobrir um possvel ataque do tipo DoS, denominada
(a) network security.
(b) file scan.
(c) packet sniffer.
(d) network scan.xx
(e) scan vrus.
166
TI para concursos
170. Os mecanismos de segurana para autenticao efetiva de um usurio devem ser baseados em:
I. Conhecimento individual.
II. Posse de alguma coisa.
III. Caracterstica 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 solicitaes de servios, oriundas de clientes internos, e envi-las para a rede externa como se
171
fosse o cliente de origem uma funo do
(a) criptgrafo.
(b) firewall.
xx
(c) proxy.
(d) soquete.
(e) broadcast.
172
114
TI para concursos
Sistemas Operacionais
9.1
9.2
9.2.1
chown muda dono de um arquivo/diretrio. Opcionalmente pode tambm ser usado para mudar o
grupo.
chown [opes] [dono.grupo] [diretrio/arquivo]
chmod usado para alterar permisses de arquivos (ou ficheiros) e diretrios (directrios ou
pastas). Sua sintaxe a seguinte:
chmod [permisses] arquivo
115
TI para concursos
9.2.1.1
53
Gerenciando Usurios
Em seguida necessrio definir uma senha para este usurio, utilizando o comando:
passwd <usurio>
Se o campo <usurio> for omitido, o su intender como root. E para simular um login, executando os
scripts de inicializao do usurio acrescenta-se - entre su e o <usurio> , como no exemplo:
su - vinicius
9.2.1.2
Diretrio /etc
O diretrio /etc contm todas as configuraes do servidor, por isso deve-se conhecer todo o seu
contedo e tambm ter uma preocupao especial com as permisses de arquivos nele contidos:
passwd - ficam os usurios cadastrados no sistema. Cada linha corresponde a um usurio e o
caracter : separa os campos. Analisando o exemplo abaixo:
vinic:x:1001:0:Vinicius Schmidt,,,:/home/vinic:/bin/bash
login:Senha:Id:Gid:Nome e Dados:Diretrio:Shell
Login: a identificao do usurio que tambm pode ser usado para identificao do email.
Senha: x informa que a senha est em outro arquivo mais seguro.
Id: cdigo nico para o Linux identificar cada usurio. Nunca deve-se ter dois usurios com o mesmo
cdigo.
Gid: cdigo do grupo primrio que o usurio pertence.
Nome e Dados: usado para armazenar informaes sobre o usurio como nome, telefone, sala, etc.. Esses
dados so separados por , e devem obedecer um padro.
Diretrio: informa qual o directrio home, do usurio.
Shell: shell default do usurio. Para usurios que no precisam de shell deve-se colocar /dev/null.
53
http://apostilas.netsaber.com.br/apostilas/1662.pdf
116
TI para concursos
9.2.2
9.2.3
Fazendo Backups
Realizar backups do sistema hoje em dia uma tarefa essencial de todo administrador. No Linux podese usar o comando tar para compactar os arquivos.
Sintaxe: tar [opes] [-f arquivo]
Opes:
x : descompactar.
t : lista o contedo de um arquivo.
v : mostra na tela o que est sendo feito.
z : descompacta arquivos que tambm estejam gzipados .
f : especifica o nome do arquivo.
c : cria um novo arquivo.
Exemplos:
tar cvzf meu_backup.tgz ~
tar cvzf backup.tgz /home
tar xvzf /root/backup.tar.gz
9.2.4
9.2.5
Agendando Processos
Para agendar processos muito demorados como o download de um arquivo muito grande, ou qualquer
outro processo que necessite de uma execuo automtica, deve-se usar basicamente dois comandos:
at - agenda a execuo de um comando e logo depois que esse processo ocorre este comando no ser
mais executado
crontab - agenda processos que devem rodar periodicamente.
9.2.6
117
TI para concursos
(memo que
Um arquivo gerado na grande maioria dos sistemas *nix o /var/log/messages, que contm
informaes genricas sobre todo o sistema.
Outro arquivo muito comum o /var/log/debug que contm informaes mais detalhadas.
9.2.7
Tambm existem as rotas para o pacote IP poder sair para fora da rede local, caso haja um roteador.
Para exibir a tabela de rotas usa-se o comando:
route -n ou netstat -nr
9.2.8
9.2.9
9.2.10
118
TI para concursos
rc.local: Este arquivo executado sempre na hora do boot, como o Autoexec.bat do DOS
9.3
Conceitos de Virtualizao
Virtualizao a tcnica que permite particionar um nico sistema computacional em vrios outros
denominados de mquinas virtuais. Cada mquina virtual oferece um ambiente completo muito similar
a uma mquina fsica. Com isso, cada mquina virtual pode ter seu prprio sistema operacional,
aplicativos e servios de rede (Internet). possvel ainda interconectar (virtualmente) cada uma dessas
mquinas atravs de interfaces de redes, switches, roteadores e firewalls virtuais, alm do uso j
54
bastante difundido de VPN (Virtual Private Networks).
A virtualizao pode auxiliar a se trabalhar em um ambiente onde haja uma diversidade de plataformas
de software (sistemas operacionais) sem ter um aumento no nmero de plataformas de hardware
(mquinas fsicas). Assim, cada aplicao pode executar em uma mquina virtual prpria,
possivelmente incluindo suas bibliotecas e seu sistema operacional que, por sua vez, executam em
uma plataforma de hardware comum.
Ao se executar mltiplas instncias de mquinas virtuais em um mesmo hardware, tambm se est
proporcionando um uso eficiente de seu poder de processamento. Essa situao comumente
denominada de consolidao de servidores e especialmente interessante em data centers devido a
heterogeneidade de plataformas inerente ao prprio negcio. Alm disso, em data centers, a
diminuio de mquinas fsicas implica na reduo de custos de infra-estrutura fsica como espao,
energia eltrica, cabeamento, refrigerao, suporte e manuteno a vrios sistemas.
A flexibilidade e a portabilidade das mquinas virtuais tambm tornam interessante o uso da
virtualizao em desktops. possvel imaginar, por exemplo, o desenvolvimento de produtos de
software destinados a vrios sistemas operacionais sem ter a necessidade de uma plataforma fsica
para desenvolver e testar cada um deles. Assim, as mquinas virtuais em desktops podem ser usadas
para se definir ambientes experimentais sem comprometer o sistema operacional original da mquina,
ou ainda, para compor plataformas distribudas como clusters e grades computacionais.
As mquinas virtuais, por emularem um ambiente computacional sobre outro, impem algumas
restries de implementao e de desempenho. aqui que entra o desenvolvimento dos produtos de
software para a virtualizao.
As mquinas virtuais podem ser:
mquina virtual de processo aplicao sobre um sistema operacional
hypervisor ou monitor de mquina virtual camada de software posicionada entre o hardware da
mquina e o sistema operacional por duas tcnicas:
para-virtualizao o sistema hspede modificado para chamar a VMM sempre que for executada uma
instruo ou ao considerada sensvel. Dessa forma, o teste por instruo no necessrio. Os
dispositivos de hardware so acessados por drivers da prpria VMM. A substituio da chamada de uma
instruo sensvel pela chamada a um tratador de interrupo de software (trap) chamado de hypercall.
virtualizao total rplica do hadware subjacente de tal forma que o sistema operacional e as aplicaes
podem executar como se tivessem executando diretamente sobre o hardware original. A grande vantagem
dessa abordagem que o sistema operacional hspede no precisa ser modificado para executar sobre a
VMM.
Sistema operacional a camada de software inserida entre o hardware e as aplicaes que executam
tarefas para os usurios e cujo objetivo tornar a utilizao do computador, ao mesmo tempo, mais
eficiente e conveniente.
A utilizao mais eficiente busca um maior retorno no investimento feito no hardware. Maior eficincia
significa mais trabalho obtido pelo mesmo hardware. Isso obtido atravs da distribuio de seus
recursos (espao em memria principal, processador, espao em disco etc) entre diferentes programas.
Cada programa tem a iluso de estar executando sozinho no computador quando na realidade ele est
compartilhando com os demais. Uma utilizao mais conveniente do computador obtida, escondendose do usurio detalhes de hardware, em especial, dos perifricos de entrada e sada. Tipicamente, isso
feito atravs da criao de recursos de mais alto nvel oferecido atravs de interfaces grficas. Por
exemplo, os usurios usam espao em disco atravs do conceito de arquivos. Arquivos no existem no
hardware. Eles formam um recurso criado a partir do que o hardware oferece. Genericamente, isso
denominado de virtualizao de recursos.
54
http://www.gta.ufrj.br/ensino/CPE758/artigos-basicos/cap4-v2.pdf
119
TI para concursos
Considerando essas interfaces, a implementao de mquinas virtuais pode ser feita de trs modos:
programa de aplicao que fornee um ambiente de execuo para outras aplicaes. Esse
ambiente pode possuir um conjunto de instrues abstratas que so interpretadas para gerar as
instrues de mquinas no-privilegiadas, as chamadas de sistema e de API de bibliotecas que
correspondem ao abstrata desejada. o caso da mquina virtual java (JVM).
programa de aplicao 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 virtualizao o que se denomina de mquina virtual de processo.
camada de software entre o hardware e o sistema operacional protegendo o acesso direto deste aos
recursos fsicos da mquina. Essa camada oferece como interface ao sistema operacional um
conjunto de instrues de mquina que pode ser o mesmo do processador fsico, ou um outro. O
ponto importante que essa interface deve estar disponvel sempre que o computador estiver ligado
e que ela possa ser usada simultaneamente por diferentes programas. O resultado final que
possvel ter diversos sistemas operacionais (programas) executando independentemente na mesma
plataforma. Genericamente, essa mquina virtual referenciada como monitor de mquina virtual
(Virtual Machine Monitor ou VMM), tambm conhecido como hypervisor, ou ainda, mquina virtual
de sistema.
O processo ou sistema que executa sobre uma mquina virtual denominado de hspede, enquanto o
ambiente sobre o qual ele executa chamado de hospedeiro.
Os fabricantes de processadores, AMD e Intel, desenvolveram extenses para a arquitetura x86 para
suportarem a virtualizao:
Pacfica 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 funes especiais no processador
que so executadas por um hypervisor e que podem controlar, em seu nome, se determinados
acessos de um sistema hspede so 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 idia do
conceito de anis de proteo com dois novos modos: root e no-root. Esses modos so
controlados pelo hypervisor (que executa em modo root) e que pode transferir a execuo de um
sistema operacional hspede para o modo no-root no qual instrues do anel zero so executadas
sem risco para o sistema.
As solues da AMD e da Intel foram desenvolvidas independentemente uma da outra e so
incompatveis, embora sirvam para o mesmo propsito.
Existem diversas solues 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 virtualizao completa com produtos abrangendo desde desktops a
data centers organizados em trs categorias:
gesto e automatizao, forma automatizada e centralizada de gerncia de todos os recursos da
infra-estrutura virtual permitindo a monitorao do sistema, auxiliando na converso de sistemas
fsicos em virtuais, na recuperao de desastres, entre outros.
120
TI para concursos
9.4
Active Directory
Software da Microsoft utilizado em ambientes Windows, o Active Directory uma implementao de
servio de diretrio no protocolo LDAP que armazena informaes sobre objetos em rede de
computadores e disponibiliza essas informaes a usurios e administradores desta rede.55
O "diretrio ativo" permite que os administradores atribuam empresa polticas largas, ofeream
programas a muitos computadores, e apliquem updates crticos a uma organizao inteira. Uma
informao ativa e ajustes das lojas do diretrio que relacionam-se a uma organizao em uma central,
base de dados organizada, acessvel.
O Active Directory est relacionado :
Gerenciamento centralizado
GPO Polticas de Grupo
Catlogo Global
Gerenciamento de Desktop Intellimiror
Distribuio de Software Automtica
Interface de acesso ADSI
55
http://pt.wikipedia.org/wiki/Active_Directory
121
TI para concursos
9.5
Exerccios
174. (ICMS-SP 2009) Na arquitetura do sistema operacional Windows XP, o Executivo expe servios aos
174
processos usurios 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
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 binria.
(d) uma sub-rvore.
(e) um conjunto de sub-rvores.
181
181. Obtidas as permisses de acesso a um arquivo GNU/Linux: rw-r-xr-x Trata-se de um arquivo do tipo
(a) normal, cuja execuo permitida ao dono, aos usurios do grupo user e aos outros usurios do
arquivo.
xx
(b) normal, cujas alterao ou "deleo" so permitidas apenas ao dono do arquivo.
(c) normal, cujas alterao ou "deleo" so permitidas ao dono do arquivo ou aos usurios do grupo user
do arquivo.
(d) diretrio, cujas leitura, gravao e execuo so permitidas apenas ao dono do arquivo.
(e) diretrio, cujas leitura e execuo so permitidas ao dono, aos usurios do grupo user e aos outros
usurios do arquivo.
123
TI para concursos
182
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 codificao 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, esto em uma rede local (LAN). Quando
duas ou mais redes se ligam em um espao mais amplo, diz-se que esto em uma rede WAN. Existem
milhes de computadores no mundo interligados em rede por um protocolo chamado TCP/IP, formando
uma nica rede chamada de internet.
O meio de ligao entre os computadores (estaes de trabalho) e a forma da disposio das conexes
so camados de topologia da rede. Cabos metlicos, fibras ticas ou comunicao sem fios formam os
enlaces entre computadores, ou entre computadores e outros equipamentos que fazem o papel de ns
que recebem e distribuem os sinais na rede.
A topologia de uma rede de comunicao refere-se forma como os enlaces fsicos e os ns esto
organizados, determinando os caminhos fsicos existentes e utilizveis entre quaisquer pares de
estaes conectadas a essa rede. A topologia de uma rede muitas vezes caracteriza o seu tipo,
eficincia e velocidade.
Malha (fully) - A interconexo total garantindo alta confiabilidade, porm a complexidade da
implementao fsica e o custo inviabilizam seu uso comercial;
Estrela (star) - A conexo feita atravs de um n central que exerce controle sobre a comunicao.
Sua confiabilidade limitada confiabilidade do n central, cujo mau funcionamento prejudica toda a
rede;
Barramento (bus) - As estaes so conectadas atravs de um cabo com difuso da informao para
todos os ns. necessria a adoo de um mtodo de acesso para as estaes em rede
compartilharem o meio de comunicao, evitando colises. de fcil expanso, mas de baixa
confiabilidade, pois qualquer problema no barramento impossibilita a comunicao em toda a rede;
Anel (ring) - O barramento toma a forma de um anel, com ligaes unidirecionais ponto a ponto. A
mensagem repetida de estao para estao at retornar estao de origem, sendo ento retirada
do anel. Como o sinal recebido por um circuito e reproduzido por outro h a regenerao do sinal no
meio de comunicao; entretanto h tambm a insero de um atraso a cada estao. O trfego passa
por todas as estaes do anel, sendo que somente a estao destino interpreta a mensagem;
rvore (tree) - a expanso da topologia em barra herdando suas capacidades e limitaes. O
barramento ganha ramificaes que mantm as caractersticas de difuso das mensagens e
compartilhamento de meio entre as estaes;
Mistas (mesh) - Combinam duas ou mais topologias simples. Alguns exemplos so o de estrelas
conectadas em anel e as rvores conectadas em barramento. Procuram explorar as melhores
caractersticas das topologias envolvidas, realizar a conexo em um barramento nico de mdulos
concentradores aos quais so ligadas as estaes em configuraes mais complexas e mais
confiveis.
10.1.1
125
TI para concursos
A cada equipamento conectado fisicamente na rede atribui-se um nmero chamado de endereo IP.
Este nmero formado por quatro nmeros de 0 a 255 separados por pontos. Por exemplo,
192.168.1.23 ou 10.10.0.128 so endereos IP vlidos e 175.268.1.0 no vlido, pois contm um
nmero maior do que 255.
Estes nmeros so, na verdade, uma representao decimal, pois a rede enxerga estes endereos
como quatro grupos de oito nmeros binrios (0 ou 1) ou octetos. Para transformar um nmero decimal
em binrio, faz-se a diviso inteira daquele por sete vezes, ento toma-se os restos das divises em
ordem contrria:
Por exemplo, dividindo-se 244 por dois e guardando o resto da diviso:
div 2 sobra
244
0
122
0
61
1
30
0
15
1
7
1
3
1
1
1
temos que o nmero 244 do sistema decimal representado por 11110100 no sistema binrio.
Em uma rede local, sem conexo com outras redes que utilizam o protocolo TCP-IP, qualquer endereo
vlido pode ser atribuda a qualquer computador. Porm, isto pode dificultar a sua manuteno e
prejudicar seu desempenho quando o nmero de computadores na rede aumentar.
O IP, elemento comum encontrado na internet pblica, 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 verso do protocolo designada de verso 4, ou IPv4. O IPv6 tem
endereamento de origem e destino de 128 bits, oferecendo mais endereamentos que os 32 bits do
IPv4, com previso de ser padro na internet a partir de 2011.
Originalmente, o espao do endereo IP foi dividido em poucas estruturas de tamanho fixo chamados
de "classes de endereo". As trs principais so a classe A, classe B e classe C. Examinando os
primeiros bits de um endereo, o software do IP consegue determinar rapidamente qual a classe, e
logo, a estrutura do endereo.
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 D: (endereo multicast): Primeiros quatro bits so: 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: (endereo especial reservado): Primeiros cinco bits so 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
A utilizao destes endereos torna o computador inacessvel por outros computadores na internet, o
que representa uma segurana. Por outro lado, para acessar a internet, a rede local precisa de pelo
menos um equipamento com um endereo pblico no reservado. Este equipamento pode fazer a
ligao entre a rede e a internet, ou roteamento. Pode ser um roteador ou um computador.
O endereo IP tem a funo de identificar o computador, que chamamos de host, e tambm 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 so utilizados para a rede. A quantidade de bits
utilizada definida pelo administrador da rede por um nmero chamado de mscara de rede ou
netmask. O netmask um conjunto de quatro octetos, como um endereo IP, iniciado por um grupo de
uns esquerda e outro grupo com zeros direita.
126
TI para concursos
Uma rede com endereos que comece com 192.168 e netmask 255.255.0.0, por exemplo, pode ter at
255x255=65536 endereos. O primeiro (192.168.0.0) reservado para identificar a prpria rede e o
ltimo (192.168.255.255) usado para distribuir dados para toda a rede (broadcast), os demais 65534
endereos so para os hosts. Todas as informaes de todos os computadores nesta rede vai ser
inviada para todos os computadores, gerando colises que podem tornar a rede muito lenta.
Para minimizar este problema, uma rede pode ser dividida em vrias subredes alterando-se o natmask.
Um netmask 255.255.255.0 vai reduzir o nmero de endereos em cada rede para apenas 256 (254
para hosts) e aumentar o nmero de redes em 256 vezes. Cada subrede recebe um endereo para ser
identificada e outro para o broadcast a partir de operaes lgicas entre a mscara de rede (netmask) e
cada endereo de cada equipamento.
Por exemplo, uma net mask pode ser 11111111. 11111111. 11111111.00000000, representada por 255.255.255.0.
A identificao de rede de um endereo IP dada pela operao lgica ^ (e/and) entre a mscara e o
endereo. Nesta operao, comparam-se os octetos posio a posio, sendo atribuido o valor zero se
um dos dgitos for zero, ou valor um em caso contrrio.
Um endereo 192.168.1.101 E uma mscara 255.255.255.0 produz o endereo 192.168.1.0, que identifica a rede.
A identificao de rede do broadcast obtido pelo operao lgica v (ou/or) entre a negao da
mscara e o endereo.
Um endereo 192.168.1.101 OU uma mscara 255.255.255.0 produz o endereo 192.168.1.255, que identifica o broadcast.
O netmask no precisa usar somente grupos completos de oito bits. Desde que no 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 endereo, por exemplo,
192.168.1.132/25, dentro desta subrede ser representada com o nmero de bits da mscara sua direita, neste caso 25 (8+8+8+1).
Neste exemplo, o nmero de endereos se reduziu para 128 (126 para hosts) e o nmero de redes aumentou em 128 vezes.
Assim, podem ser criadas subredes com 128 endereos (126 hosts), 64, 32, 16, 8, 4 ou 2 endereos
(que no seve para nada). A conta de quantos hosts podem haver em uma subnet dois elevado ao
nmero de zeros na netmask menos dois: hosts=2n-2. O nmero de subredes dois elevado ao
nmero de uns do octeto incompleto: redes=2n.
Na nossa net mask 11111111. 11111111. 11111111.10000000, com sete zeros, teremos 27-2=126 endereos para hosts e 21=2 para
subredes.
Em uma net mask 11111111. 11111111. 11111111.11100000, com cinco zeros, teremos 25-2=30 endereos para hosts e 23=8
subredes.
Com isto tudo, o acesso de um equipamento a outro na mesma subrede direta e rpida, enquanto
que computadores em redes distintas s conseguem se comunicar de forma remota.
10.2
Arquitetura de Rede
Arquitetura de rede como se designa um conjunto de camadas e protocolos de rede. A especificao
de uma arquitetura deve conter informaes suficientes para permitir que um implementador
desenvolva programas ou construa o hardware de cada camada, de forma que ela obedea
56
corretamente ao protocolo adequado.
ISO foi uma das primeiras organizaes a definir formalmente uma forma comum de conectar
computadores. Sua arquitetura chamada OSI (Open Systems Interconnection), Camadas OSI ou
57
Interconexo de Sistemas Abertos.
Esta arquitetura um modelo que divide as redes de computadores em sete camadas, de forma a se
obter camadas de abstrao. Cada protocolo implementa uma funcionalidade assinalada a uma
determinada camada.
1 Camada fsica
Subcamada MAC
Subcamada LLC
2 Camada de enlace
3 Camada de rede
4 Camada de transporte
5 Camada de sesso
6 Camada de apresentao
56
http://pt.wikipedia.org/wiki/Arquitetura_de_rede
57
http://pt.wikipedia.org/wiki/Modelo_OSI
127
TI para concursos
7 Camada de aplicao
10.2.1
Camada Fsica
A camada fsica define as caractersticas tcnicas dos dispositivos eltricos (fsicos) do sistema. Ela
contm os equipamentos de cabeamento ou outros canais de comunicao que se comunicam
diretamente com o controlador da interface de rede. Preocupa-se, portanto, em permitir uma
comunicao bastante simples e confivel, na maioria dos casos com controle de erros bsico:
Move bits (ou bytes, conforme a unidade de transmisso) atravs de um meio de transmisso.
Define as caractersticas eltricas e mecnicas do meio, taxa de transferncia dos bits, tenses etc.
Controle de acesso ao meio.
Controle da quantidade e velocidade de transmisso de informaes na rede.
Os principais equipamentos relacionados camada fsica so:
Repeater ou repetidor - utilizado para interligao de redes idnticas, amplificam e regeneram
eletricamente os sinais transmitidos no meio fsico. Recebe todos os pacotes de cada uma das
redes que ele interliga e os repete nas demais redes sem realizar qualquer tipo de tratamento sobre
os mesmos.
HUB ou concentrador - concentra a ligao entre diversos computadores que esto em uma rede
local. Trabalha por broadcast, que envia a mesma informao dentro de uma rede para todas as
mquinas interligadas. Possui diversas portas que partilham o mesmo domnio de coliso.
10.2.2
10.2.3
Camada de Rede
A camada de Rede responsvel pelo endereamento dos pacotes, convertendo endereos lgicos
(ou IP) em endereos fsicos, de forma que os pacotes consigam chegar corretamente ao destino. Essa
camada tambm determina a rota que os pacotes iro seguir para atingir o destino, baseada em fatores
como condies de trfego da rede e prioridades.
Essa camada usada quando a rede possui mais de um segmento e, com isso, h mais de um
caminho para um pacote de dados percorrer da origem ao destino.
As funes da camada de rede so encaminhamento, endereamento, interconexo de redes,
tratamento de erros, fragmentao de pacotes, controle de congestionamento e sequenciamento de
pacotes.
Movimenta pacotes a partir de sua fonte original at seu destino atravs de um ou mais enlaces. Define
como dispositivos de rede descobrem uns aos outros e como os pacotes so roteados at seu destino
final.
Dispositivo: Swith L3
128
TI para concursos
Protocolo: IP.
10.2.4
Camada de Transporte
A camada de transporte responsvel por usar os dados enviados pela camada de Sesso e dividi-los
em pacotes que sero transmitidos para a camada de Rede. No receptor, a camada de Transporte
responsvel por pegar os pacotes recebidos da camada de Rede, remontar o dado original e assim
envi-lo camada de Sesso.
Isso inclui controle de fluxo, ordenao dos pacotes e a correo de erros, tipicamente enviando para o
transmissor uma informao de recebimento, informando que o pacote foi recebido com sucesso.
A camada de Transporte separa as camadas de nvel de aplicao (camadas 5 a 7) das camadas de
nvel fsico (camadas de 1 a 3). A camada 4, Transporte, faz a ligao entre esses dois grupos e
determina a classe de servio necessria como orientada a conexo e com controle de erro e servio
de confirmao, sem conexes e nem confiabilidade.
O objetivo final da camada de transporte proporcionar servio eficiente, confivel e de baixo custo. O
hardware e/ou software dentro da camada de transporte e que faz o servio denominado entidade de
transporte.
A ISO define o protocolo de transporte para operar em dois modos:
Orientado a conexo usando o protocolo TCP, mais confivel.
No-Orientado a conexo atravs do protocolo UDP, mais rpido.
Dispositivos: Swith L4.
10.2.5
Camada de Sesso
A camada de Sesso permite que duas aplicaes em computadores diferentes estabeleam uma
sesso de comunicao. Nesta sesso, essas aplicaes definem como ser feita a transmisso de
dados e coloca marcaes nos dados que esto sendo transmitidos. Se porventura a rede falhar, os
computadores reiniciam a transmisso dos dados a partir da ltima marcao recebida pelo
computador receptor.
Disponibiliza servios como pontos de controle peridicos a partir dos quais a comunicao pode ser
restabelecida em caso de pane na rede.
Abre portas (sockets) para que vrias aplicaes possam escalonar o uso da rede e aproveitar melhor
o tempo de uso. Por exemplo, um browser quando for fazer o download de vrias imagens pode
requisit-las juntas para que a conexo no fique ociosa em uma s imagem.
Protocolos: NetBIOS, IPX, Appletalk.
10.2.6
Camada de Apresentao
A camada de Apresentao, tambm chamada camada de traduo, converte o formato do dado
recebido pela camada de Aplicao em um formato comum a ser usado na transmisso desse dado, ou
seja, um formato entendido pelo protocolo usado. Um exemplo comum a converso do padro de
caracteres (cdigo de pgina) quando o dispositivo transmissor usa um padro diferente do ASCII.
Pode ter outros usos, como compresso de dados e criptografia.
A compresso de dados pega os dados recebidos da camada sete e os comprime, e a camada 6 do
dispositivo receptor fica responsvel por descompactar esses dados. A transmisso dos dados torna-se
mais rpida, j que haver menos dados a serem transmitidos: os dados recebidos da camada 7 foram
"encolhidos" e enviados camada 5.
Para aumentar a segurana, pode-se usar algum esquema de criptografia neste nvel, sendo que os
dados s sero decodificados na camada 6 do dispositivo receptor.
Ela trabalha transformando os dados em um formato no qual a camada de aplicao possa aceitar.
10.2.7
Camada de Aplicao
A camada de aplicao faz a interface entre o protocolo de comunicao e o aplicativo que pediu ou
receber a informao atravs da rede. Por exemplo, ao solicitar a recepo de e-mails atravs do
aplicativo de e-mail, este entrar em contato com a camada de Aplicao do protocolo de rede
efetuando tal solicitao. Tudo nesta camada direcionado aos aplicativos. Telnet e FTP so exemplos
de aplicativos de rede que existem inteiramente na camada de aplicao.
Protocolos: SMTP, FTP, Telnet, SSH, IRC, http, POP3, VFRAD
129
TI para concursos
10.3
10.4
Acesso Remoto
Acesso remoto utilizao de um computador atravs de outro por algum meio de comunicao.
Usualmente, o acesso remoto funciona como se o teclado e o mouse de um computador estivesse
ligado ao computador controlado e o monitor deste estivesse ligado no primeiro.
Existem diversos aplicativos que fazem este servio, como o VNC, PCAnyWhere, Dameware, Conexo
de rea de trabalho remota do Windows entre outros.
Muito utilizado em data centers para administrar diversos servidores com um s vdeo, teclado e
mouse.
10.5
Rede Wireless
Wi-Fi foi uma marca licenciada originalmente pela Wi-Fi Alliance para descrever a tecnologia de redes
sem fios embarcadas (WLAN) baseadas no padro IEEE 802.11. O termo Wi-Fi entendido como uma
tecnologia de interconexo entre dispositivos sem fios, usando o protocolo IEEE 802.11.59
O padro Wi-Fi opera em faixas de freqncias que no necessitam de licena para instalao e/ou
operao. Este fato as tornam atrativas. No entanto, para uso comercial no Brasil necessria licena
da Agncia Nacional de Telecomunicaes (Anatel).
Para se ter acesso internet atravs de rede Wi-Fi deve-se estar no raio de ao ou rea de
abrangncia de um ponto de acesso (normalmente conhecido por hotspot) ou local pblico onde opere
rede sem fios e usar dispositivo mvel, como computador porttil, Tablet PC ou Assistente Pessoal
Digital com capacidade de comunicao sem fio.
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 conexo internet. O ponto de acesso
transmite o sinal sem fios numa pequena distncia cerca de 100 metros. Quando um perifrico que
permite "Wi-Fi", como um Pocket PC, encontra um hotspot, o perifrico pode na mesma hora conectarse rede sem fio. Muitos hotspots esto localizados em lugares que so acessveis ao pblico, como
aeroportos, cafs, hotis e livrarias. Muitas casas e escritrios tambm tm redes "Wi-Fi". Enquanto
alguns hotspots so gratuitos, a maioria das redes pblicas suportada por Provedores de Servios de
Internet (Internet Service Provider - ISPs) que cobram uma taxa dos usurios para se conectarem.
Atualmente praticamente todos os computadores portteis vm de fbrica com dispositivos para rede
sem fio no padro Wi-Fi (802.11 a, b, g ou n). O que antes era acessrio est se tornando item
obrigatrio, principalmente devido ao fato da reduo do custo de fabricao.
10.6
Exerccios
184. (ICMS-SP 2009) As redes wireless utilizam os padres IEEE 802.11 de conectividade sem fio para redes
locais, que determinam a velocidade, ou taxa de transmisso em Mbps, e a frequncia, ou faixa de operao
184
em GHz. O padro que tem as caractersticas de velocidade e frequncia 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. Fsica, 2. Enlace, 3. Rede, 4. Transporte, 5. Sesso, 6.
Apresentao e 7. Aplicao) pode funcionalmente representar um sistema de comunicao dividido em trs
partes: redes (conectividade), transporte (ligao entre redes e aplicao) e aplicao (programas que
185
utilizam a rede). As camadas que representam as trs partes so:
(a) Redes (camadas 1 e 2), Transporte (camadas 3 e 4) e Aplicao (camadas 5, 6 e 7).
xx
(b) Redes (camadas 1, 2 e 3), Transporte (camada 4) e Aplicao (camadas 5, 6 e 7).
(c) Redes (camadas 1 e 2), Transporte (camadas 3, 4 e 5) e Aplicao (camadas 6 e 7).
(d) Redes (camadas 1, 2 e 3), Transporte (camadas 4, 5 e 6) e Aplicao (camada 7).
(e) Redes (camada 1), Transporte (camadas 2, 3, 4 e 5) e Aplicao (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
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 referncia OSI, os pacotes e os quadros so unidades intercambiadas, respectivamente, pelas
189
camadas de
(a) enlace e de transporte.
(b) enlace e de rede.
(c) rede e fsica.
xx
(d) rede e de enlace.
(e) transporte e de enlace.
190. No modelo de referncia TCP/IP, os protocolos IP, TCP e tambm aquele cujo objetivo organizar mquinas
em domnios e mapear nomes de hosts em ambientes IP, so, respecivamente, partes integrantes das
190
camadas
(a) Inter-Redes, de Aplicao e de Transporte.
(b) Host/Rede, Inter-Redes e de Transporte.
(c) Inter-Redes, Host/Rede e de Aplicao.
xx
(d) Inter-Redes, de Transporte e de Aplicao.
(e) Host/Rede, de Transporte e de Aplicao.
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 endereo 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 servios. 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 ... endereamento
(b) roteamento ... transporte
(c) transporte ... empacotamento
xx
(d) transporte ... endereamento
(e) transporte ... sequenciamento
193. O processo de navegao na Internet facilitado pelo uso de endereos de domnio no lugar dos endereos
IPs (mais difceis de memorizar e relacionar com os sites endereados). O servio que faz o relacionamento
193
entre o domnio 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 cpias (cache) de pginas mais visitadas e,
194
alm disso, verificar o contedo dessas pginas, denominado
xx
(a) Proxy.
(b) Bridge.
(c) Spyware.
(d) Firewall.
(e) Gateway.
195. TCP/IP (transmission control protocol/Internetprotocol) so os dois protocolos mais importantes de um
conjunto de protocolos que deram seus nomes arquitetura. Deles, surge a Internet, uma rede pblica de
comunicao de dados que, com controle descentralizado, utiliza esse conjunto de protocolos como base
para sua estrutura de comunicao e seus servios de rede. A arquitetura TCP/IP no s fornece os
protocolos que habilitam a comunicao de dados entre redes, mas tambm define uma srie de aplicaes
que contribuem para a eficincia e sucesso da arquitetura. Tendo como referncia inicial as informaes
195
acima, assinale a opo correta a respeito de Internet, intranet e padres de tecnologia Web.
(a) Uma intranet a aplicao 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
informaes e aplicaes disponibilizada por meio dos sistemas Web (protocolo HTTP) e correioeletrnico, sendo, comumente, verificadas funcionalidades como informaes dos empregados e dos
clientes que a acessam em busca de informaes 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 so enviados e recebidos entre roteadores e
sistemas finais.
(c) Os protocolos UDP e SMTP podem ser utilizados na transferncia de arquivos para um computador
remoto que tambm os execute e em qualquer estrutura de rede, seja ela simples, como uma ligao
ponto-a-ponto, seja ela uma rede de pacotes complexa.
(d) O DNS (domain name system) um sistema de banco de dados distribudo implementado em uma
hierarquia de servidores de nome (servidores DNS) e em um protocolo de camada de aplicao que
xx
permite a hospedeiros consultarem o banco de dados distribudo.
(e) O ICMP (Internet control message protocol), que um protocolo de roteamento exterior auxiliar ao IP e
cuja finalidade conectar dois ou mais sistemas autnomos, pode operar em conjunto com os
protocolos EGP (exterior gateway protocol) e BGP (border gateway protocol), o que permite maior
confiabilidade ligao entre dois sistemas autnomos.
196. Para acesso aos recursos da Internet, os browsers possibilitam o uso de endereos de sites na forma de
mnemnicos, 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 necessrias
196
converses para os correspondentes endereos IPs. 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 disponveis no mbito da tecnologia da informao, a Extranet constitui um
termo associado s facilidades de comunicao na busca do aumento da produtividade. Nesse sentido, a
197
Extranet definida como:
(a) uma parte da Intranet que fica disponvel troca de informaes com os funcionrios de uma
organizao, 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
segurana, mas libera acesso por meio do firewall.
(c) uma parte da Intranet que fica disponvel na Internet para interao com clientes e fornecedores de uma
xx
organizao, mas com acesso autorizado, controlado e restrito.
(d) uma sub-rede que disponibiliza uma maior quantidade de microcomputadores com acesso Internet por
meio da utilizao do mecanismo NAT, mas restringe a intercomunicao com usurios indesejados
organizao.
(e) uma parte da Intranet que disponibiliza a comunicao com fornecedores e determinados clientes de
uma organizao, 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 endereos IPs para o roteamento dos pacotes de informaes. Por definio na RFC 1918,
alguns endereos IP so reservados e no-roteveis externamente, sendo somente usados para redes
internas, significando que nenhum computador conectado em rede local e usando qualquer uma das classes
desses endereos reservados conseguir acessar a internet. A exceo 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 endereos 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 endereos 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 endereos que utilize a mscara de sub-rede 255.255.255.240, ser possvel atribuir
199
endereos IP para
(a) 2 redes e 62 estaes em cada rede.
(b) 6 redes e 30 estaes em cada rede.
xx
(c) 14 redes e 14 estaes em cada rede.
(d) 30 redes e 6 estaes em cada rede.
(e) 62 redes e 2 estaes 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 so caractersticas
200
de um
(a) concentrador.
(b) multiplexador.
xx
(c) comutador.
(d) modulador de amplitude.
(e) repetidor.
201. Padro de protocolo da camada de transporte, sem conexo, no confivel, destinado a aplicaes que no
querem controle de fluxo e nem manuteno da seqncia 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
133
TI para concursos
203
203. O daemon de correio eletrnico 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 questo que as redes de difuso tm 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. Servio que permite ao usurio entrar em outro computador ligado internet, transformando sua mquina
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) Sesso.
xx
(c) Enlace.
(d) Transporte.
(e) Aplicao.
134
TI para concursos
11
Referncias
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 Informaes (CDS-DTI) da
Secretaria da Fazenda de So Paulo.
Este material foi um resumo de tudo de TI que estudou para esta prova.
Formado em licenciatura em qumica pela Universidade de So Paulo, lecionou informtica bsica para alunos
do ensino fundamental e mdio no Colgio Rio Branco por doze anos.
Exerceu consultoria de informtica e desenvolveu mais de trinta sistemas para diversas intituies pblicas e
privadas por 25 anos, para FIPE, FIA, FIPECAFI, Secretaria do Meio Ambiente, CDHU, Convap Engenharia e
Construes, GMR Arquitetos Associados, Fundao Padre Anchieta, Fundao Osesp, ABEM, Souza Cruz,
entre outras.
136
TI para concursos
13
Gabarito
47
1
(b)
2
(a)
3
(e)
4
(b)
5
(e)
6
(b)
7
(d)
8
(e)
9
(b)
10
(a)
11
(c)
12
(a)
13
(b)
14
(d)
15
(b)
16
(d)
17
(a)
18
(c)
19
(a)
20
(d)
21
(c)
22
(d)
23
(c)
24
(e)
25
(b)
26
(a)
27
(d)
28
(c)
29
(e)
30
(b)
31
(a)
32
(a)
33
(d)
34
(d)
35
(d)
36
(c)
37
(d)
38
(d)
39
(a)
40
(b)
41
(b)
42
(e)
43
(c)
44
(a)
45
(d)
46
(e)
137
(d)
48
(a)
49
(c)
50
(a)
51
(c)
52
(c)
53
(b)
54
(a)
55
(b)
56
(c)
57
(d)
58
(d)
59
(d)
60
(b)
61
(c)
62
(d)
63
(d)
64
(b)
65
(a)
66
(a)
67
(c)
68
(b)
69
(c)
70
(e)
71
(d)
72
(e)
73
(c)
74
(b)
75
(e)
76
(c)
77
(e)
78
(c)
79
(c)
80
(d)
81
(d)
82
(b)
83
(b)
84
(c)
85
(e)
86
(c)
87
(b)
88
(e)
89
(a)
90
(b)
91
(d)
92
(e)
93
(b)
94
(c)
95
(a)
96
(e)
97
(a)
98
(c)
99
(e)
100
(b)
101
(a)
102
(d)
103
(e)
104
(a)
105
(b)
106
(b)
107
(b)
108
(e)
109
(b)
110
(a)
111
(a)
112
(d)
113
(a)
114
(e)
115
(b)
116
(b)
117
(c)
118
(a)
119
(e)
120
(d)
121
(e)
122
(d)
123
(c)
124
(d)
125
(c)
126
(a)
127
(c)
128
(b)
129
(d)
130
(e)
131
(c)
132
(c)
133
(d)
134
(e)
135
(a)
136
(d)
137
(b)
138
(e)
139
(a)
140
(b)
141
(b)
142
(d)
143
(a)
144
(d)
145
(e)
146
(c)
147
(b)
148
(e)
149
(c)
150
(b)
151
(c)
152
(e)
153
(a)
154
(e)
155
(d)
156
(e)
157
(e)
158
(e)
159
(b)
160
(e)
161
(b)
162
(a)
163
(b)
164
(d)
165
(d)
166
(e)
167
(b)
168
(d)
169
(d)
170
(e)
171
(c)
172
(d)
173
(d)
174
(c)
175
(c)
176
(b)
177
(e)
178
(b)
179
(d)
180
(b)
181
(b)
182
(a)
183
(c)
184
(a)
185
(b)
186
(d)
187
(a)
188
(e)
(d)
190
(d)
191
(c)
192
(d)
193
(b)
194
(a)
195
(d)
196
(b)
197
(c)
198
(d)
199
(c)
200
(c)
201
(a)
202
(a)
203
(b)
204
(c)
205
(a)
206
(c)
189