Material de referência
TI – ICMS
Walter de Tarso
Versão 1
2012
Pág. 2 de 143
Sumário
1 Gerência de Projetos ... 1
1.1 Conceitos básicos ... 1
1.2 Processos do PMBOK ... 2
1.2.1 Áreas de conhecimento do PMBOK ... 3
1.3 Planejamento e controle de métricas de projeto ... 13
1.4 Métodos de gerenciamento do tempo do projeto ... 14
1.5 Exercícios ... 14
2 Gestão de Processos de Negócio (BPM) ... 18
2.1 BPMN - Modelagem de processos ... 18
2.1.1 Elementos ... 18
2.2 Técnicas de análise de processos ... 20
2.2.1 Automação de processos ... 20
2.2.2 Fluxograma ... 20
2.2.3 Service blueprint ... 20
2.2.4 Mapa do serviço ... 21
2.2.5 IDEF ... 21
2.2.6 Estrutura de processamento de clientes ... 22
2.2.7 Walk-through-audit ... 22
2.2.8 Análise da transação de serviço (STA – Service Transaction Analysis) ... 23
2.3 Exercícios ... 23
3 Gerência de Serviços de TI ... 25
3.1 Fundamentos da ITIL V2 ... 26
3.1.1 Suporte a serviços ... 26
3.1.2 Entrega de Serviço... 27
3.2 Fundamentos de ITIL V3 ... 28
3.2.1 Estratégia do serviço (Service Strategy) ... 28
3.2.2 Desenho de serviço (Service Design) ... 28
3.2.3 Transição do serviço (Service Transition) ... 29
3.2.4 Operação do serviço (Service Operation) ... 29
3.2.5 Melhoria de serviço continuada (Continual Service Improvement) ... 29
3.3 Fundamentos de COBIT... 29
3.3.1 Planejar e Organizar ... 30
3.3.2 Adquirir e Implementar ... 30
3.3.3 Entregar e Dar Suporte ... 30
3.3.4 Monitorar e Avaliar ... 31
3.4 Exercícios ... 31
4 Engenharia de Software ... 33
4.1 Software ... 33
4.2 Ciclo de vida do software ... 34
4.2.1 Fase de Definição ... 34
4.2.2 Fase de Desenvolvimento ... 34
4.2.3 Fase de Operação ... 35
4.2.4 Fase de retirada ... 36
4.3 Metodologias de desenvolvimento de software. ... 36
4.3.1 Modelo caótico ... 36
4.3.2 Modelo Cascata ... 36
4.4 Desenvolvimento ágil ... 38
4.5 Planejamento e avaliação de iterações ... 39
4.6 Técnicas de avaliação de software ... 40
4.6.1 Análise por Pontos de Função ... 40
4.6.2 Método COCOMO ... 44
4.7 Gerência de Requisitos de Software ... 44
4.7.1 Conceitos de Requisitos ... 45
4.7.2 Requisitos Funcionais e Não-Funcionais ... 46
4.8 Gerência de Configuração e Mudança ... 47
4.8.1 Conceitos de Gerência de Configuração e Mudança de software ... 47
4.8.2 Solicitações de Mudança... 48
4.9 Testes e Avaliação de Qualidade de Software ... 49
4.9.1 Qualidade de Software ... 49
4.9.2 Teste de software ... 51
4.9.3 Documentos de Teste... 52
4.10 Exercícios ... 53
5 Arquitetura de Software ... 59
5.1 Conceitos básicos ... 59
5.2 UML ... 59
5.3 GED - Gerenciamento Eletrônico de Documentos e Workflow ... 61
5.3.1 Exercícios ... 62
5.4 Arquitetura Orientada a Serviço (SOA) ... 63
5.4.1 Serviço ... 63
5.4.2 Processos ... 63
5.4.3 Tecnologia ... 63
5.4.4 Definições de SOA ... 63
5.4.5 Web Services ... 64
5.4.6 SOAP ... 66
5.4.7 WSDL ... 67
5.4.8 UDDI ... 67
5.4.9 Segurança ... 68
5.4.10 Exercícios ... 68
5.5 Portais corporativos e colaborativos ... 69
5.6 Exercícios ... 70
6 Banco de Dados ... 73
6.1 Conceitos básicos ... 73
6.2 Modelagem de Dados Relacional ... 73
6.2.1 Normalização ... 74
6.2.2 Etapas de modelagem ... 75
6.2.3 Relacionamentos ... 75
6.2.4 Transação ... 76
6.3 Modelo Entidade Relacionamento... 76
6.4 Modelagem de Dados Multidimensional ... 77
6.4.1 Sistemas Transacionais X Sistemas Analíticos ... 78
6.5 Conceitos de Datawarehouse e ETL ... 78
6.5.1 ETL ... 80
6.6 Conceitos de desenvolvimento em banco de dados SQL Server e Oracle ... 80
6.6.1 SQL ... 80
6.6.2 Arquitetura de um Servidor Oracle... 82
6.6.3 Arquitetura de um Servidor SQL Server ... 83
6.7 Exercícios ... 84
7 Programação de Sistemas ... 90
7.1 Lógica de Programação ... 90
Pág. 4 de 143
7.1.1 Tipos de dados e variáveis ... 91
7.2 Programação orientada a objetos ... 92
7.2.1 Objetos... 92
7.2.2 Classe ... 93
7.2.3 Persistência ... 93
7.2.4 Métodos ... 93
7.2.5 Atributos ... 94
7.2.6 Mensagens ... 94
7.2.7 Herança ... 94
7.2.8 Polimorfismo... 94
7.2.9 Sobrecarga ... 95
7.2.10 Interfaces ... 95
7.2.11 Pacotes ... 95
7.3 Programação na WEB ... 95
7.3.1 Linguagem HTML ... 96
7.3.2 Linguagens web de servidor... 97
7.3.3 XML ... 98
7.4 Conceitos de linguagem de programação Microsoft .NET ... 98
7.4.1 arquitetura da .Net ... 99
7.4.2 Linguagens de programação ... 99
7.4.3 Common Language Specification (CLS) ... 100
7.4.4 Common Type System (CTS) ... 100
7.4.5 Framework Class Library (FCL) ... 100
7.4.6 Camada de apresentação ... 100
7.4.7 ADO.Net ... 100
7.4.8 .Net Remoting ... 100
7.4.9 Common Language Runtime (CLR)... 101
7.4.10 Common Language Infrastructure (CLI) ... 101
7.4.11 Operating System (OS) ... 101
7.4.12 Outros detalhes da .Net ... 101
7.5 Exercícios ... 102
8 Segurança da informação ... 106
8.1 Conceitos básicos ... 106
8.2 Plano de Continuidade de Negócio ... 108
8.3 Vulnerabilidade ... 108
8.4 Auditoria e conformidade ... 109
8.5 Conhecimento sobre norma ISO 27001 ... 111
8.6 Exercícios ... 111
9 Sistemas Operacionais ... 115
9.1 Conceitos de administração de servidores em plataforma Windows ... 115
9.2 Conceitos de administração de servidores em plataforma Linux ... 115
9.2.1 Alguns comandos no Linux ... 115
9.2.2 Gerenciando a iniciação do Linux ... 117
9.2.3 Fazendo Backups... 117
9.2.4 Recompilando e Adaptando o Kernel ... 117
9.2.5 Agendando Processos ... 117
9.2.6 Syslogd - A Caixa Preta do Linux ... 117
9.2.7 Técnicas Básicas para Trabalhar com Redes (ifconfig, route) ... 118
9.2.8 Gerenciando os Serviços - inetd ... 118
9.2.9 Utilizando Ferramentas de Busca ... 118
9.2.10 Instalando SSh / SShD ... 118
9.3 Conceitos de Virtualização ... 119
9.4 Active Directory ... 121
9.5 Exercícios ... 122
10 Redes ... 125
10.1 Conceito de rede ... 125
10.1.1 Configuração de redes TCP-IP ... 125
10.2 Arquitetura de Rede ... 127
10.2.1 Camada Física ... 128
10.2.2 Camada de Enlace ou Ligação de Dados ... 128
10.2.3 Camada de Rede ... 128
10.2.4 Camada de Transporte ... 129
10.2.5 Camada de Sessão ... 129
10.2.6 Camada de Apresentação ... 129
10.2.7 Camada de Aplicação ... 129
10.3 Noções de administração de redes... 130
10.4 Acesso Remoto ... 130
10.5 Rede Wireless ... 130
10.6 Exercícios ... 131
11 Referências ... 135
12 Sobre o autor ... 136
13 Gabarito... 137
Sumário de imagens
Ilustração 1 Métricas ... 13Ilustração 2 Exemplo de Fluxo utilizando pool, lanes, evento de início e fim, tarefas e gateway ... 19
Ilustração 3 Símbolos BMPN utilizados no MS Visio ... 19
1 Gerência de Projetos
1.1 Conceitos básicos
Um projeto1 é um esforço temporário empreendido para criar um produto, não necessariamente temporário, serviço ou resultado exclusivo. Os projetos e as operações diferem, principalmente, no fato de que os projetos são temporários e exclusivos, enquanto as operações são contínuas e repetitivas.
Os projetos são normalmente autorizados como resultado de uma ou mais considerações estratégicas.
Estas podem ser uma demanda de mercado, necessidade organizacional, solicitação de um cliente, avanço tecnológico ou requisito legal.
As principais características dos projetos são:
temporários, possuem um início e um fim definidos.
planejados, executado e controlado.
entregam produtos, serviços ou resultados exclusivos.
desenvolvidos em etapas e continuam por incremento com uma elaboração progressiva.
realizados por pessoas.
com recursos limitados.
Esse é um resumo da definição de projeto feita pelo Guia PMBOK®, um guia que identifica o subconjunto do conjunto de conhecimentos em gerenciamento de projetos, amplamente reconhecido como boa prática na maioria dos projetos na maior parte do tempo e utilizado como base pelo Project Management Institute ( PMI®).
Gerência de projetos é a disciplina de manter os riscos de fracasso em um nível tão baixo quanto necessário durante o ciclo de vida do projeto. Sua função é definir e alcançar objetivos ao mesmo tempo em que se otimiza o uso de recursos (tempo, dinheiro, pessoas, espaço etc).2
Na abordagem tradicional, distinguimos cinco grupos de processos no desenvolvimento de um projeto:
iniciação – autorização do projeto ou fase
planejamento – são processos iterativos de definição e refinamento de objetivos e seleção dos melhores caminhos para atingir os objetivos.
execução – realização dos planos do projeto: coordenação de pessoas e outros recursos para executar o plano
controle – medição e monitoramento do desempenho do projeto. Garantem que os objetivos do projeto são alcançados através do monitoramento e medição regular do progresso, de modo que ações corretivas possam ser tomadas quando necessário.
encerramento – aceitação formal do projeto (com verificação de escopo) ou fase para a sua finalização.
Repetir os processos de iniciação antes da execução de cada fase é uma maneira de se avaliar se o projeto continua cumprindo as necessidades de negócio. Envolver as partes interessadas no projeto em cada uma das fases é uma maneira de aumentar as probabilidades de satisfação dos requisitos do cliente.
O gerente de projetos precisa monitorar e comunicar o desempenho do projeto. Os resultados do trabalho que estiverem abaixo de um nível de desempenho aceitável precisam ser ajustados com ações corretivas para que o projeto volte a estar em conformidade com as linhas de base de custo, prazo e escopo. A comunicação do desempenho do projeto é um dos principais elementos para o gerenciamento de projetos bem sucedido.
O projeto ou empreendimento visa a satisfação de uma necessidade ou oportunidade, definida no texto acima como fase inicial na qual existem muitas áreas e/ou pessoas envolvidas.
Um programa é um conjunto de projetos com um objetivo comum.
Em geral, existe mais do que uma solução ou alternativas para atender às mesmas necessidades. A técnica usada para definir a solução final passa pelo desenvolvimento de alternativas extremas. A primeira, de baixo custo, que atende as necessidades mínimas para ser funcional. A segunda tenta atender a maior parte das as exigências das diversas áreas envolvidas no escopo, que resulta num projeto com custo muito maior e pouco competitivo. A partir de ambas as alternativas é desenvolvida
1 http://pt.wikipedia.org/wiki/Projeto
2 http://pt.wikipedia.org/wiki/Gerência_de_projetos
2
uma solução intermediária entre as mesmas, que atende a uma boa parte das exigências com um custo competitivo.
O gerenciamento de projetos tenta adquirir controle sobre as variáveis
tempo - influencia o prazo até o termino do projeto. Uma restrição de tempo pode significar custos aumentados e/ou escopo reduzido.
custo - informa o valor monetário incluído no orçamento disponível para o projeto. Um orçamento apertado pode significar tempo aumentado e/ou escopo reduzido.
escopo - designa o que deve ser feito para produzir o resultado de fim do projeto. O escopo aumentado pode significar o tempo aumentado e/ou o custo aumentado.
Na versão atual do PMBOK, tríplice restrição foi eliminada, passando a existir restrições do projeto que são elas: Escopo, Qualidade, Cronograma, Orçamento, Recursos e Riscos. Portanto, qualquer alteração em um desses itens certamente haverá restrições em um ou mais dos demais itens.
Para manter o controle sobre o projeto do início ao fim, um gerente de projetos utiliza várias técnicas, dentre as quais se destacam:
Planejamento de projeto
Análise de valor agregado
Gerenciamento de riscos de projeto
Cronograma
Melhoria de processo
1.2 Processos do PMBOK
O Guia PMBOK3 identifica um subconjunto do conjunto de conhecimentos em gerenciamento de projetos, que é amplamente reconhecido como boa prática, sendo em razão disso, utilizado como base pelo Project Management Institute (PMI). Uma boa prática não significa que o conhecimento e as práticas devem ser aplicadas uniformemente a todos os projetos, sem considerar se são ou não apropriados.
O Guia PMBOK também fornece e promove um vocabulário comum para se discutir, escrever e aplicar o gerenciamento de projetos possibilitando o intercâmbio eficiente de informações entre os profissionais de gerência 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 versão 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:
Definição do ciclo de vida e da organização de um projeto
Descrição dos cinco grupos de processos de gerenciamento de projetos
Grupo de processos de iniciação
Grupo de processos de planejamento
Grupo de processos de execução
Grupo de processos de monitoramento e controle
Grupo de processos de encerramento
Descrição das nove áreas de conhecimento
Existem três documentos principais descritos no Guia PMBOK® e cada um deles possui um objetivo específico:
Termo de abertura do projeto. Autoriza formalmente o projeto.
Declaração 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.
3 http://pt.wikipedia.org/wiki/PMBOK
1.2.1 Áreas de conhecimento do PMBOK
Os quarenta e dois processos dos cinco grupos definidos pelo PMBOK podem ser classificados em nove chamadas áreas de conhecimento.
Iniciação Planejamento Execução Monitoramento e controle Encerramento
4 - Integração
Desenvolver o termo de abertura do projeto Desenvolver o escopo preliminar do projeto
Desenvolver o plano de gerenciamento de projeto
Orientar e gerenciar a execução do projeto
Monitorar e controlar o trabalho do projeto Controle integrado de mudanças
Encerrar o projeto
5 - Escopo
Planejamento do escopo Definição do escopo Criar EAP
Verificação do escopo Controle do escopo
6 - Tempo
Definição das atividades Sequenciamento de atividades
Estimativa de recursos das atividades
Estimativa de duração das atividades
Desenvolvimento do cronograma
Controle do cronograma
7 - Custo Estimativa de custos
Orçamentação
Controle de custos
8 - Qualidade Planejamento da qualidade Realizar a garantia da
qualidade
Realizar o controle da qualidade
9 - RH
Planejamento de RH Controlar ou mobilizar a equipe do projeto Desenvolver a equipe do projeto
Gerenciar a equipe do projeto
10 - Comunicação
Planejamento das comunicações
Distribuição das informações
Relatório de desempenho Gerenciar as partes interessadas
11 - Riscos
Planejamento de gerenciamento de riscos Identificação dos riscos Análise qualitativa dos riscos
Análise quantitativa dos riscos
Planejamento de respostas a riscos
Monitoramento e controle de riscos
12 - Aquisições
Planejar compras e aquisições Planejar contratações
Solicitar respostas dos fornecedores Selecionar fornecedores
Administração de contratos Encerramentos de contratos
Os processos descritos se relacionam e interagem durante a condução do trabalho e a descrição de cada um deles é feita em termos de:
Entradas – documentos, planos, desenhos etc.
Ferramentas e técnicas - que se aplicam as entradas
Saidas – que podem ser entradas de outros processos
4
1.2.1.1 Integração de projetos
Núcleo do gerenciamento de projetos, é composto dos processos do dia-a-dia com os quais o gerente de projetos conta para garantir que todas as partes do projeto funcionem juntas. É um processo contínuo que o gerente completa para garantir que o projeto prossiga do início ao fim – é a atividade diária de completar o trabalho do projeto..