Você está na página 1de 121

Tecnologia da Informação

Ricardo Terra

rterrabh [at] gmail.com

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 1 / 121
CV

Nome: Ricardo Terra


Email: rterrabh [at] gmail.com
www: ricardoterra.com.br
Twitter: rterrabh
Lattes: lattes.cnpq.br/ 0162081093970868

Ph.D. (UFMG/UWaterloo),
Post-Ph.D. (INRIA/Université Lille 1)

Background
Acadêmico : UFLA (desde 2014), UFSJ (1 ano ), FUMEC (3 anos ), UNIPAC (1 ano ), FAMINAS (3 anos )
Profissional : DBA Eng. (1 ano ), Synos (2 anos ), Stefanini (1 ano )

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 2 / 121
Conteúdo

1 Tecnologia da Informação
Conceitos Gerais
Tipos de Sistemas de Informação

2 Infra-Estrutura de TI

3 Linguagem de Programação

4 Banco de Dados

5 Engenharia de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 3 / 121
Tecnologia da Informação

Conceitos Gerais

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 4 / 121
Tecnologia da Informação – Conceitos Gerais

Conteúdo da aula:
Conceitos básicos

Dado x Informação

Importância e objetivos empresariais de Sistemas de


Informação

Resolução de problemas

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 5 / 121
Tecnologia da Informação – Conceitos Gerais

Dado x Informação

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 6 / 121
Tecnologia da Informação – Conceitos Gerais

Sistemas de Informação
Importância no ambiente de negócios contemporâneo
Transformando os negócios:
Em 2005, mais contas de celular do que de telefones fixos
Mais de 35 milhões de norte-americanos recebem notícias
on-line; 32 milhões lêem blogs
Propaganda na Internet cresce 30% ao ano
Novas leis exigem que as empresas armazenem mais dados
por períodos mais longos
eCommerce, eBusiness, B2B, B2C, C2C, G2B, G2C, ...

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 7 / 121
Tecnologia da Informação – Conceitos Gerais

Objetivos Empresarias dos Sistemas de Informação


Excelência operacional
eficiência, produtividade ...

Novos produtos, serviços e modelos de negócios

Relacionamento mais estreito com clientes e fornecedores


Melhor tomada de decisão
evitam suposições, dados em tempo real melhoram a
capacidade de os gerentes tomarem decisões

Vantagem competitiva
devido ao alcance dos objetivos empresariais
cobrar menos por produtos superiores

Sobrevivência
Sistemas de Informação se tornaram imprescindíveis

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 8 / 121
Tecnologia da Informação – Conceitos Gerais

Programa x Sistemas de Informação


Programa
Formalização de um processo de tal forma que o
computador consiga realizá-lo

Sistemas de Informação
Pessoas + dados + processos + interfaces + redes + tecnologia
Suporte ao processo de negócio de uma organização

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 9 / 121
Tecnologia da Informação – Conceitos Gerais

Construção de Sistemas de Informação


Objetivo da construção de um sistema de informação:
Adicionar valor à empresa
Aumentar a produtividade
Reduzir mão-de-obra
Reduzir utilização de papéis (GED)
Centralização de dados e informações
Maior facilidade na geração de novo conhecimento (WalMart)
Maior segurança no armazenamento e acesso aos dados

A construção de um sistema de informação deve ser


economicamente justificável
Ganhos (tangíveis ou não) devem compensar construção

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 10 / 121
Tecnologia da Informação – Conceitos Gerais

Sistemas de Informação São Muito Mais do que Computadores

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 11 / 121
Tecnologia da Informação – Conceitos Gerais

Abordagem de Resolução de Problemas


Poucos problemas empresariais são simples ou fáceis de
compreender

Muitos problemas empresariais envolvem um conjunto de


fatores que podem ser categorizados como
organizacionais, tecnológicos e humanos

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 12 / 121
Tecnologia da Informação – Conceitos Gerais

Possível modelo para resolução de problemas

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 13 / 121
Tecnologia da Informação – Conceitos Gerais

Linguagem de Programação
Como escrever programas?

Banco de Dados
Onde e como armazenar dados?

Rede
Como entradas, programas, banco de dados se
comunicam?

Engenharia de Software
Existe algum processo de construção de sistemas de
software?

Segurança
Existem formas de prover uma maior segurança?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 14 / 121
Tecnologia da Informação

Tipos de Sistemas de Informação

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 15 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Conteúdo da aula:
Vários tipos de Sistemas de Informação
Veja referência do Florentino [?]

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 16 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Informação Rotineiros ou Transacionais


Mais simples e mais comuns

Apóiam as funções operacionais do dia-a-dia


processam dados

armazenam e recuperam dados

agiliza rotinas e tarefas (possível redução de pessoal)

Normalmente, os primeiros a serem implementados


mais fáceis e baratos

exemplos: sistemas de cadastro em geral, sistemas de


contabilidade, sistemas de venda, folha de pagamento,
controle de estoque...

dão origem aos sistemas mais avançados (SIG, SAD)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 17 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Gestão Empresarial Integrada – ERP (Enterprise


Resource Planning)
Unem e integram os diversos sistemas rotineiros de uma
organização
Integram os departamentos
agilizam processos
Just-in-Time (produção por demanda, sem estoques)
por exemplo, quando uma venda é feita, a entrada é dada
no sistema rotineiro de Vendas, mas o sistema de produção e o
sistema de compras já ficam sabendo o que terão que fazer

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 18 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Gestão de Suprimentos


Objetivo: controlar produtos, peças, matérias primas,
materiais, composição, aquisição e fluxo de materiais por
toda a cadeia produtiva
Inclui os seguintes subsistemas:
Component and Supplier Management

Sistemas de Controle de Supply Chain


procura
arquisição
previsão
planejamento
...

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 19 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Informações Gerenciais (SIG ou MIS – Management


Information Systems)
Objetivo: fornecer informações para a tomada de decisões
(sistemas que fornecem relatórios)
São sistemas que fornecem relatórios (planilhas, gráficos de
pizza, barra, linha...)

Relatórios em nível adequado (nem profundo nem


superficial)

Inicialmente, utilizado por gerentes


Hoje, qualquer funcionário que tome decisões

Aparecem nos três níveis da pirâmide administrativa


Estratégico, tático e operacional

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 20 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Apoio à Decisão (SAD ou DSS – Decision Support


Systems)
Entrada: alternativas para solução de um problema

Saída: Consequências de cada alternativa


Resultado: Possibilita avaliar qual é a melhor alternativa
SAD não decide nem indica alternativas

Diferença SIG e SAD: interatividade


o usuário pode entrar com várias alternativas e avaliá-las por
meio de técnicas de what-if, tais como projeção e regressão

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 21 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas Especialistas
Objetivo: tomar decisões.

Sistemas de Simulação
Objetivo: Apoiar decisões (como SAD), mas tendo o fator
tempo associado

SAD pode ser atemporal, mas os sistemas de simulação


avaliam as conseqüências das decisões durante um certo
período de tempo

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 22 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Informações Distribuídas


Objetivo: dados armazenados remotamente ou em pontos
diferentes + processamento distribuído

Sistemas de Automação
Objetivo: conectar computadores e máquinas

Inclui automação comercial, industrial e residencial

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 23 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Informações Geográficas (GIS)


Objetivo: integrar mapas e bancos de dados, mas
permitindo o geoprocessamento de imagens
cálculo de distâncias, localizar entidades no mapa,
identificar que entidade corresponde a certos objetos no
mapa

Análise e manipulação de dados geográficos e espaciais

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 24 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Hipertextos, Hipermídia e Multimídia


Objetivo: apresentações de informações
catálogos, produtos, treinamento...

Sistemas de Gestão Eletrônica de Documentos (GED)


Objetivo: armazenar e recuperar documentos, utilizando
bancos de dados
recuperação realizada por atributos do documento
(categoria, data, ano, envolvidos etc)

Além disso, o meio ambiente agradece

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 25 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Informações Textuais (Indexação e Recuperação


de Informações)
Objetivo: armazenar documentos textuais e recuperá-los
por conteúdo (por palavras presentes no texto)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 26 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Workflow
Objetivo: permitir o planejamento e controle do fluxo de
trabalho e o roteamento automático de documentos
Resolve problemas comuns:
demora
desconhecimento ou erros de encaminhamento
falta de informação sobre a situação (status)
perda de documentos

Suas funcionalidades incluem:


programação do fluxo (decisões, tempo de espera)
alertas e lembretes
situação (status)
rastreamento/localização
documentos eletrônicos

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 27 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Data Warehouse (Armazém de Dados)


Objetivo: Prover centralização de dados

Utilizados em uma organização para coletar dados de


várias fontes de dados e disponibilizá-los em uma única
base de dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 28 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Database Marketing


Objetivo: armazenar informações sobre clientes, com
objetivo de marketing direto ou de precisão, além de
permitir identificar perfis de clientes

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 29 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de CRM (Customer Relationship Management)


Automatizam as funções de contato com o cliente
Objetivam ajudar as empresas a criarem e manterem um
bom relacionamento com seus clientes
identificando perfis em tempo real

melhorar atendimento

fortalecer o relacionamento cliente/empresa

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 30 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Data Mining (Mineração de Dados)


Objetivo: encontrar padrões implícitos em bancos dados,
geralmente usando técnicas estatísticas

Também conhecidos como sistemas de descoberta de


conhecimento

Sistemas de Text Mining


Objetivo: encontrar padrões implícitos em textos,
geralmente usando técnicas estatísticas

Sistemas de Web Mining


Objetivo: encontrar padrões no comportamento de
usuários da web, geralmente usando técnicas estatísticas

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 31 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Groupware
Objetivo: apoiar trabalho em grupo (cooperação ou
colaboração)

Sistemas de Intranet
Objetivo: apoiar trabalho em grupo por meio de
tecnologias web

Sistemas de Extranet
Objetivo: criar uma conexão web entre dois pontos
distantes (filiais ou empresa-parceiro)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 32 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Portais Corporativos


Objetivo: integrar todos os sistemas da empresa (intranet,
ERP, CRM, E-Business etc) em um mesmo ponto de acesso

Normalmente, esse ponto de acesso é a web e podem ser


acessados através de um login único
Focam em maximizar o lucro das empresas
oferecem canais de comunicação e vendas para o cliente
fornecem informações e históricos de atendimento
recebem pesquisas de opinião do consumidor
registram números de série e garantia de produtos
oferecem catálogos dos produtos da empresa
direcionam contatos a representantes
etc

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 33 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de E-business
Objetivo: fazer, divulgar e administrar qualquer tipo de
negócio com a ajuda da Internet

Por exemplo:
catálogos

divulgação de produtos, serviços e informação

divulgação da empresa (mobile, commerce, advertising)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 34 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Comércio Eletrônico (E-commerce)


É um tipo especial de E-Business onde existe comércio
Em outras palavras, consiste na compra e vende de produtos
ou serviço por meio de sistemas eletrônicos, tais como
Internet e outras redes

São exemplos: B2B, B2C, C2C, G2C, G2B...

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 35 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Personalização e Recomendação


Objetivo: ofertar itens ou oferecer informações a
clientes/usuários sem que estes solicitem

Sistemas de Business Intelligence


Processo de coleta, organização, análise,
compartilhamento e monitoramento de informações que
oferecem suporte a gestão de negócios

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 36 / 121
Tecnologia da Informação – Tipos de Sistemas de Informação

Sistemas de Inteligência Competitiva


Objetivo: monitorar concorrentes (quem são os players,
onde estão, o que estão oferecendo e como, estratégias,
enfoques, novas tendências)

Sistemas de Gestão do Conhecimento


Objetivo: armazenar e recuperar conhecimento (provê
reúso)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 37 / 121
Conteúdo

1 Tecnologia da Informação

2 Infra-Estrutura de TI
Conceitos Gerais
Sistema Operacional

3 Linguagem de Programação

4 Banco de Dados

5 Engenharia de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 38 / 121
Infra-Estrutura de TI

Conceitos Gerais

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 39 / 121
Infra-Estrutura de TI – Conceitos Gerais

Conteúdo da aula:
Componentes da Infra-estrutura de TI

Tipos de tecnologia de hardware e de armazenamento e


entrada/saída de dados

Tipos de sistemas de software

Enumerar tendências de hardware e software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 40 / 121
Infra-Estrutura de TI – Conceitos Gerais

Discussão
Qual é sua opinião sobre a decisão da DreamWorks
Animation de investir pesadamente em tecnologia da
informação em vez de em talentos humanos mais
destacados?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 41 / 121
Infra-Estrutura de TI – Conceitos Gerais

Tipos de Computador
Há computadores de diferentes tamanhos, com várias
capacidades de processamento da informação
FLOPS

PC

Estação de Trabalho (workstation)

Computadores de médio porte

Mainframe

Supercomputador

Computador em grade

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 42 / 121
Infra-Estrutura de TI – Conceitos Gerais

Arquiteturas
Arquitetura stand-alone

Arquitetura cliente/servidor
Arquiteturas cliente/servidor multicamadas (N-camadas)
Cada vez mais comum

Servidor de Aplicativo

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 43 / 121
Infra-Estrutura de TI – Conceitos Gerais

Tecnologia de E/S
Armazenamento secundário
Discos magnéticos: discos rígidos, discos removíveis USB, RAID

Discos ópticos: CD-ROM, CD-RW, DVD

Fita magnética

Rede de armazenamento de dados: SANs

Dispositivos de entrada reúnem e convertem dados em


formato eletrônico

Dispositivos de saída exibem os dados depois que eles


foram processados

Processamento de dados em lote (batch) e on-line

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 44 / 121
Infra-Estrutura de TI – Conceitos Gerais

Tipos de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 45 / 121
Infra-Estrutura de TI – Conceitos Gerais

Tendências
Processadores n-cores
Dificuldade em desenvolver paralelo

Grid Computing

Sistemas de Código Aberto

SOA

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 46 / 121
Infra-Estrutura de TI – Conceitos Gerais

O Mundo Corporativo Migra para o Código-Fonte Aberto


Quais problemas o Linux e outros sistemas de software de
código aberto ajudam as empresas a endereçar?

Como o software de código aberto ajuda?

Quais questões e desafios estão levando ao crescimento do


software de código aberto?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 47 / 121
Infra-Estrutura de TI – Conceitos Gerais

Sistemas legados: substituir ou integrar?


Quais problemas os serviços Web e as arquiteturas
orientadas a serviços ajudaram as empresas a resolver?

Como as vantagens de uma SOA podem beneficiar


também os clientes e consumidores das empresas que a
empregam?

A SOA é a melhor solução em todos os casos?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 48 / 121
Infra-Estrutura de TI

Sistema Operacional

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 49 / 121
Infra-Estrutura de TI – Sistema Operacional

Sistemas Operacionais (W3Counter)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 50 / 121
Infra-Estrutura de TI – Sistema Operacional

Definição
É um programa ou um conjunto de programas cuja função
é gerenciar os recursos do sistema (definir qual programa
recebe atenção do processador, gerenciar memória, criar
um sistema de arquivos etc.), além de fornecer uma
interface entre o computador e o usuário

É o primeiro programa que a máquina executa no


momento em que é ligada e, a partir de então, não deixa
de funcionar até que o computador seja desligado

O sistema operacional reveza sua execução com a de


outros programas, como se estivesse vigiando, controlando
e orquestrando todo o processo computacional

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 51 / 121
Infra-Estrutura de TI – Sistema Operacional

Conceitualização por ponto de vista:


visão do usuário: é uma abstração do hardware, fazendo o
papel de intermediário entre o aplicativo (programa) e os
componentes físicos do computador (hardware)

visão de um profissional: é um gerenciador de recursos, i.e.,


controla quais aplicações (processos) podem ser
executadas, quando, que recursos (memória, disco,
periféricos) podem ser utilizados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 52 / 121
Infra-Estrutura de TI – Sistema Operacional

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 53 / 121
Infra-Estrutura de TI – Sistema Operacional

História
MS-DOS
Início da MS, monopólio do Windows

OS/2
Fracasso da IBM

Solaris
Alto processamento

Mac OS
Antes: arquitetura específica – Hoje: arquitetura Intel

UNIX
Berkeley

Linux
Base UNIX, GUI e free

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 54 / 121
Infra-Estrutura de TI – Sistema Operacional

Cada vez mais complexos...


Antigamente: sistema computacional simples (um
processador, memória, teclado e monitor)

Hoje: Pelo menos um processador, memória, discos,


impressoras, teclado, mouse, monitor, interfaces de rede e
outros dispositivos de entrada e saída

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 55 / 121
Infra-Estrutura de TI – Sistema Operacional

Funções
1 Gerenciamento de processos
Ilusão da execução simultânea de diversos processos
2 Gerenciamento de memória
Permitir que os processos tenham acesso seguro à memória
Memória Virtual
3 Sistema de arquivos
Permitir armazenar e recuperar informações de modo
permanente
4 Entrada e saída de dados (E/S)
Tratar toda entrada e saída de dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 56 / 121
Infra-Estrutura de TI – Sistema Operacional

Tipos de Interfaces de SOs:


GUI (Graphical User Interface)
Mais comum

TUI (Text User Interface)


MS-DOS

CUI (Command-Line User Interface)


Shell de Linux

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 57 / 121
Infra-Estrutura de TI – Sistema Operacional

GUI

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 58 / 121
Infra-Estrutura de TI – Sistema Operacional

TUI

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 59 / 121
Infra-Estrutura de TI – Sistema Operacional

CUI

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 60 / 121
Infra-Estrutura de TI – Sistema Operacional

Classificação quanto ao gerenciamento de processos


Monotarefa: apenas um processo de cada vez. Ex: MS-DOS

Multitarefa: vários processos estão sendo executados


simultaneamente ou aparecem estar

Multiprocessamento: distribuição de processos entre


diversos processadores

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 61 / 121
Infra-Estrutura de TI – Sistema Operacional

Classificação quanto a quantidade de usuários


Monousuário: apenas um usuário por vez (possui troca de
usuário). Ex: Windows

Multiusuário: vários usuários de uma vez, seja por diversos


terminais, conexão remota etc. Ex: Linux, UNIX

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 62 / 121
Infra-Estrutura de TI – Sistema Operacional

E um pouco sobre SOs para dispositivos móveis...


Exemplos: Android e Symbian
Funções: as mesmas, contudo focam mais em questões
como:
usabilidade e apreensibilidade

interface

economia de energia

Antigamente, muita preocupação com o poder de


processamento. No entanto, hoje em dia um iPhone tem
mais poder de processamento e memória do que uma boa
máquina de 10 anos atrás

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 63 / 121
Conteúdo

1 Tecnologia da Informação

2 Infra-Estrutura de TI

3 Linguagem de Programação
Visão Geral

4 Banco de Dados

5 Engenharia de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 64 / 121
Linguagem de Programação

Visão Geral

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 65 / 121
Linguagem de Programação – Visão Geral

Definição
É um conjunto de regras sintáticas e semânticas usadas
para definir um programa de computador
um método padronizado para expressar o que um
computador deve fazer

O programa escrito em uma linguagem de programação é


conhecido como código fonte
tal código fonte é traduzido para código de máquina e
executado pelo processador

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 66 / 121
Linguagem de Programação – Visão Geral

Metas
permitir que programadores tenham uma maior
produtividade

permitir expressar suas intenções mais facilmente do que


quando comparado com a linguagem que um
computador entende nativamente (código de máquina)

Assim...
linguagens de programação são projetadas para adotar
uma sintaxe de nível mais alto, que pode ser mais
facilmente entendida por programadores humanos

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 67 / 121
Linguagem de Programação – Visão Geral

Classificações
Programação Estruturada
Programação estruturada é uma forma de programação de
computadores que preconiza que todos os programas
possíveis podem ser reduzidos a apenas três estruturas:
sequência, decisão e iteração. Era a forma dominante de
programação e, apesar de ter sido sucedida pela POO,
pode-se dizer que a programação estruturada ainda é
marcantemente influente

Programação Orientada a objetos


É um paradigma de programação que utiliza “objetos” e a
interação entre eles para projetar aplicações e programas
de computador. Suas técnicas de programação podem
incluir características como encapsulamento, polimorfismo e
herança. Esse paradigma não era comumente usado no
desenvolvimento de aplicações de grande porte até início
de 1990. Atualmente, várias linguagens suportam POO
Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 68 / 121
Linguagem de Programação – Visão Geral

Ranking
Tiobe é um site popular de ranking de linguagens de
programação. Tiobe baseia seu ranking na disponibilidade
mundial de engenheiros especialistas, cursos e
fornecedores

As tabelas e imagens a seguir foram extraídas do Tiobe e


dão uma ideia de como se encontra esse mercado

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 69 / 121
Linguagem de Programação – Visão Geral

Ranking

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 70 / 121
Linguagem de Programação – Visão Geral

Ranking

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 71 / 121
Linguagem de Programação – Visão Geral

Tendência

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 72 / 121
Linguagem de Programação – Visão Geral

História
Em um material à parte será apresentado a evolução das
linguagens de programação
Em resumo:
Início: ADA (idealizada), Cobol (1954)

Meados: C/C++

Hoje em dia: C/C++, PHP, Java, C#

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 73 / 121
Linguagem de Programação – Visão Geral

Programa Hello World


Mesmo não sendo uma fonte muito confiável, existe uma
página na Wikipédia (PT) que apresenta versões do
aplicativo Hello World em uma vasta gama de linguagens
de programação:
http://pt.wikipedia.org/wiki/Programa_Olá_Mundo

Para um entendimento, veremos o programa Hello World


nas seguintes linguagens: Assembly, Fortran, C e Java

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 74 / 121
Linguagem de Programação – Visão Geral

HelloWorld em Assembly
1 variable :
. message db " Olá , Mundo! $ "
3 code :
mov ah , 9
5 mov dx , o f f s e t . message
i n t 0x21
7 ret

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 75 / 121
Linguagem de Programação – Visão Geral

HelloWorld em Fortran
1 PROGRAM HELLO
WRITE ( ∗ , 1 0 )
3 10 FORMAT( ’Olá , Mundo! ’ )
STOP
5 END

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 76 / 121
Linguagem de Programação – Visão Geral

HelloWorld em C
1 #include < s t d i o . h>

3 i n t main ( void ) {
p r i n t f ( " Olá , Mundo! \n " ) ;
5 return 0;
}

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 77 / 121
Linguagem de Programação – Visão Geral

HelloWorld em Java
public class H e l l o {
2 public s t a t i c void main ( S t r i n g [ ] args ) {
System . out . p r i n t l n ( " Olá , Mundo! " ) ;
4 }
}

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 78 / 121
Linguagem de Programação – Visão Geral

Compiladores X Interpretadores
Interpretador lê o código-fonte linha a linha, executando a
instrução específica daquela linha

Compilador lê o programa inteiro, converte-o em um


código-objeto (ou código de máquina) de modo que o
computador consiga executá-lo diretamente
Isso faz com que o código-objeto seja específico tipo da
arquitetura do computador

Qual é mais rápido?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 79 / 121
Linguagem de Programação – Visão Geral

Linguagens Multi-plataforma

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 80 / 121
Linguagem de Programação – Visão Geral

Grau de Abstração

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 81 / 121
Linguagem de Programação – Visão Geral

Grau de Abstração
Baixo Nível: símbolos são uma representação direta do
código de máquina que será gerado, onde cada
comando da linguagem equivale a um opcode do
processador. Ex: Assembly

Médio Nível: símbolos que podem ser convertidos


diretamente para código de máquina (goto, expressões
matemáticas, atribuição de variáveis), mas também
símbolos complexos que são convertidos por um
compilador. Exemplo: C, C++

Alto Nível: símbolos mais complexos, inteligível pelo ser


humano e não-executável diretamente pela máquina, no
nível da especificação de algoritmos. Ex: Pascal, Fortran,
ALGOL, Java, C#

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 82 / 121
Conteúdo

1 Tecnologia da Informação

2 Infra-Estrutura de TI

3 Linguagem de Programação

4 Banco de Dados
Visão Geral
Aplicações Práticas

5 Engenharia de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 83 / 121
Banco de Dados

Visão Geral

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 84 / 121
Banco de Dados – Visão Geral

Definições
Antes de mais nada, definiremos:
Banco de Dados

Sistema Gerenciador de Banco de Dados (SGBD)

Sistema de Banco de Dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 85 / 121
Banco de Dados – Visão Geral

Banco de Dados – Definição


Uma coleção de dados interrelacionados, representando
informações sobre um domínio específico

Exemplos
lista telefônica

controle do acervo de uma biblioteca

controle dos recursos humanos de uma empresa

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 86 / 121
Banco de Dados – Visão Geral

Banco de Dados – Definição


é uma coleção lógica coerente de dados com um
significado inerente
é projetado, construído e populado com dados para um
propósito específico
possui um conjunto pré definido de usuários e aplicações

um banco de dados representa algum aspecto do mundo


real, o qual é chamado de “mini-mundo”
alterações no “mini-mundo” são automaticamente refletidas
no banco de dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 87 / 121
Banco de Dados – Visão Geral

Sistema de Gerenciamento de Bancos de Dados (SGBD) –


Definição
É um software com recursos específicos para facilitar a
manipulação das informações dos bancos de dados e o
desenvolvimento de programas aplicativos

É, portanto, um sistema de software que facilita os


processos de definição, construção, manipulação e
compartilhamento de dados entre vários usuários
Exemplos:
Oracle, DB2, MySql, SQL Server etc

Access?

Falaremos bastante desses SGBDs...

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 88 / 121
Banco de Dados – Visão Geral

Sistema de Gerenciamento de Bancos de Dados (SGBD) –


Componentes
DDL (Data Definition Language)
especifica conteúdos, estrutura a base de dados e define os
elementos de dados

DML (Data Manipulation Language)


insert, select, update, delete

Dicionário de dados
(guarda definições dos dados e respectivas características,
i.e, qual seu tipo, tamanho, quem pode acessá-lo etc)

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 89 / 121
Banco de Dados – Visão Geral

Sistema de Banco de Dados – Definição


É um sistema de manutenção de registros por computador,
envolvendo quatro componentes principais:
dados

hardware

software

usuários

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 90 / 121
Banco de Dados – Visão Geral

Sistema de Banco de Dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 91 / 121
Banco de Dados – Visão Geral

Modelando um Banco de Dados


Existem diversos modelos de banco de dados (peixe,
hierárquico, orientado a objetos etc). No entanto, o mais
comum e amplamente adotado é o modelo relacional
Nele, a modelagem de um banco de dados se baseia em
três classes de objetos:
Entidade
normalmente representam uma pessoa, lugar, coisa...
Ex: PEÇA, FORNECEDOR, PEDIDO ...

Atributo
características de uma entidade
Ex: preço, cnpj, data ...

Relacionamento
associações entre entidades
Ex: PEÇA possui um FORNECEDOR

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 92 / 121
Banco de Dados – Visão Geral

Exercício Simples – puxando para o assunto da próxima aula


Como você faria algo para gerenciar vendas?
Enunciado:
Peça possui número, descrição, preço e seu fornecedor

Fornecedor possui número, nome, rua, cidade, estado e cep

Pedido possui a data e diversos itens

Item possui a peça e a respectiva quantidade

Dica: vamos tentar fazer com o Excel!

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 93 / 121
Banco de Dados – Visão Geral

Uma boa modelagem deve levar em consideração os seguintes


conceitos:
chave primária: campo que identifica de forma única o
registro
Por exemplo, cada FORNECEDOR é identificado por um
código único

chave estrangeira: campo que se refere a chave primária


de uma outra tabela
Por exemplo, cada PEÇA deve ter um código de
FORNECEDOR existente

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 94 / 121
Banco de Dados – Visão Geral

Modelagem já com dados

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 95 / 121
Banco de Dados – Visão Geral

Como funciona um SGBD?

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 96 / 121
Banco de Dados – Visão Geral

Vantagens da Utilização
Natureza autodescritiva do sistema de banco de dados
dicionário de dados

Isolamento entre os programas e os dados


Abstração dos dados
representação conceitual dos dados

não diz como são armazenados nem como as operações


são realizadas, simplesmente funciona

Suporte para múltiplas visões dos dados

Compartilhamento de dados

Processamento de transações de vários usuários

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 97 / 121
Banco de Dados – Visão Geral

Principais funcionalidades
Controle de redundância
Restrição de acesso
Armazenamento persistente
Estruturas para otimização (índices, por exemplo)
Backup and Recover
Múltiplas visões para os usuários
Restrições de Integridade
Inferências
Ações pelo uso de regras
Redução tempo de desenvolvimento...
Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 98 / 121
Banco de Dados

Aplicações Práticas

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 99 / 121
Banco de Dados – Aplicações Práticas

Data Warehouse – O que é?


É um banco de dados que armazena dados coerentes e
históricos de potencial interesse para os tomadores de
decisão de toda a empresa

Os dados se originam de diversas origens e, assim, os


consolida e padroniza as informações oriundas de
diferentes banco de dados de modo que elas possam ser
utilizadas por toda empresa para análise gerencial e
tomada de decisões

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 100 / 121
Banco de Dados – Aplicações Práticas

Data Warehouse!

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 101 / 121
Banco de Dados – Aplicações Práticas

BI (Business Inteligence)
As ferramentas que analisam dados e descobrem novos
padrões, relacionamentos e insights úteis para orientar a
tomada de decisão são chamadas de BI

Nesse aspecto, destacam-se as ferramentas de consulta e


relatório do banco de dados, as ferramentas OLAP e o data
mining

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 102 / 121
Banco de Dados – Aplicações Práticas

OLAP – O que é?
Permite a análise multidimensional de dados, de forma que
os usuários vejam os mesmos dados de diferentes maneiras,
pois usa múltiplas dimensões
Exemplo:
Por exemplo, “quantos parafusos foram vendidos nos últimos
3 meses?” é facilmente respondido por um consulta simples
no banco de dados

Mas, “quantos parafusos foram vendidos em cada região e


também comparar os resultados reais com a projeção de
vendas?” é possível devido ao OLAP que permite que se
veja os dados de diferentes visões

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 103 / 121
Banco de Dados – Aplicações Práticas

OLAP (Online analytical processing)!

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 104 / 121
Banco de Dados – Aplicações Práticas

Data Mining – O que é?


Em comparação com o OLAP. o data mining é mais
orientado por descoberta, percepções dos dados
corporativos que não podem ser obtidas com o OLAP,
descobrindo padrões e relacionamentos ocultos em
grande banco de dados

Tais informações podem então ser utilizadas para guiar o


processo de decisão e prever o efeito de tais decisões

Exemplos de tipos de informações que podem ser obtidas


com data mining: associações, sequências, classificações,
aglomerações e prognósticos

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 105 / 121
Banco de Dados – Aplicações Práticas

Data Mining!

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 106 / 121
Banco de Dados – Aplicações Práticas

Para fechar, vamos “brincar” com um SGBD?


Para entendermos na prática o que é DDL, DML e dicionário
de dados, vamos “brincar” um pouco. Que tal com alunos?

Para iniciar: Aluno tem uma matrícula única, nome e email


Tem que entender:
DDL

DML

Dicionário de Dados

Restrições

Segurança

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 107 / 121
Conteúdo

1 Tecnologia da Informação

2 Infra-Estrutura de TI

3 Linguagem de Programação

4 Banco de Dados

5 Engenharia de Software
Visão Geral

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 108 / 121
Engenharia de Software

Visão Geral

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 109 / 121
Engenharia de Software – Visão Geral

Sistema de Software
É um subconjunto do Sistema de Informação
Característica intrínseca: complexidade!
cresce à medida que cresce o tamanho do sistema

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 110 / 121
Engenharia de Software – Visão Geral

Características do software:
O software é desenvolvido e não manufaturado no sentido
clássico. Seus custos estão associados à engenharia
O software não se desgasta, não é sensível aos efeitos do
tempo que causam desgaste do hardware
Apesar de não se desgastar, o software se deteriora

A manutenção do software é mais cara e complexa que a


manutenção do hardware, pois não há peças
sobressalentes no software

Apesar da indústria estar caminhando para o


desenvolvimento de componentes, a maior parte dos
sistemas de software são construídos sob encomenda

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 111 / 121
Engenharia de Software – Visão Geral

Mitos relacionados aos Sistemas de Software:


Adicionar mais pessoal qualificado necessariamente reduz
o atraso na entrega do produto

A descrição geral dos objetivos é suficiente para começar


a escrever programas

É possível congelar os requisitos dos sistemas de software no


decorrer do desenvolvimento do mesmo

A qualidade do programa só pode ser avaliada depois que


ele estiver executando

O único produto do desenvolvimento é o programa


executável

A engenharia de software cria muita documentação e


atrasa o desenvolvimento
Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 112 / 121
Engenharia de Software – Visão Geral

FAQs
Por que se gasta tanto tempo para concluir o produto?

Por que os custos de desenvolvimento são tão altos?

Por que todos os erros não são eliminados antes de entregar


o produto ao cliente?

Por que existe a dificuldade de avaliar o progresso do


desenvolvimento do software?

Essas perguntas são a motivação que levam à adoção da


prática de Engenharia de Software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 113 / 121
Engenharia de Software – Visão Geral

Mas, o que é Engenharia de Software?


uma área do conhecimento da computação voltada para
a especificação, desenvolvimento e manutenção de
sistemas de software aplicando tecnologias e práticas de
gerência de projetos e outras disciplinas, objetivando
organização, produtividade e qualidade

Mas, por que Engenharia de Software?

Complexidade!!!
Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 114 / 121
Engenharia de Software – Visão Geral

Processo: sequência de passos bem definidos que deve ser


seguido para para ajudar a criar o produto, dentro do
prazo e custo

Métodos: técnicas usadas para construir o software,


incluindo análise de requisitos, desenho, implementação,
teste, manutenção...

Ferramentas: apoio automatizado às atividades de


construção do software
Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 115 / 121
Engenharia de Software – Visão Geral

Bom e velho triângulo mágico


Desenvolvimento de sistemas é uma tarefa árdua
Tentativas de lidar com essa complexidade levam as
empresas a definirem seu próprio processo de
desenvolvimento de software
Compreende todas as atividades necessárias para definir,
desenvolver, testar e manter um produto de software

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 116 / 121
Engenharia de Software – Visão Geral

Existem vários processos de desenvolvimento propostos na


literatura (RUP, PRAXIS ...)
Cada processo tem sua particularidade em relação ao
modo de arranjar e encadear as atividades que devem ser
executadas

No entanto, existem atividades típicas comuns à maioria


dos processos:
Levantamento de Requisitos: compreensão e especificação

Análise de Requisitos: estudo detalhado dos requisitos

Desenho: arquitetura do sistema

Implementação: codificação

Testes: encontrar ↑ defeitos com ↓ esforço

Implantação: treinamento e instalação


Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 117 / 121
Engenharia de Software – Visão Geral

Como saber se uma empresa tem um bom processo?


Existem certificações para o processo de software!
Assim, empresas obtêm um nível de maturidade
ideia principal: quanto maior a maturidade de uma
organização, melhor a qualidade do produto final

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 118 / 121
Engenharia de Software – Visão Geral

Qualidade do Processo de Software – CMMI

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 119 / 121
Engenharia de Software – Visão Geral

Qualidade do Processo de Software – Mps.BR

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 120 / 121
Referências

Kenneth C. Laudon e Jane P. Laudon.


Sistemas de Informação Gerenciais.
Prentice Hall, 7 edition, 2007.
Ramez E. Elmasri e Shamkant Navathe.
Sistemas de banco de dados.
Addison Wesley, 4 edition, 2005.
Pablo Vieira Florentino.
Sistemas de informação.
http://www.cefetba.br/professores/pablovf/-
repositorio/siTiposSi.pdf,
2011.

Ricardo Terra (rterrabh [at] gmail.com) Tecnologia da Informação Junho, 2011 121 / 121