Baixe o app para aproveitar ainda mais
Prévia do material em texto
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 umproblema 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 GeraisSistema 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, UNIXRicardo 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 se t . message i n t 0x21 7 re t 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 (∗ ,10) 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 <std io . 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 Hel lo { 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, 201185 / 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 Tecnologia da Informação Conceitos Gerais Tipos de Sistemas de Informação Infra-Estrutura de TI Conceitos Gerais Sistema Operacional Linguagem de Programação Visão Geral Banco de Dados Visão Geral Aplicações Práticas Engenharia de Software Visão Geral
Compartilhar