seai 2016 - informática aplicada

Upload: regiomontanus5423

Post on 06-Jul-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    1/294

    Enderson Neves Cruz

    [email protected]

    Pós-Graduação Lato SensuSistemas Eletroeletrônicos e Automação Industrial

    SEAI

    Informática Aplicada

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    2/294

    Powered by Enderson Neves Cruz

    Apresentação da disciplina

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    3/294

    Powered by Enderson Neves Cruz   3

    Plano de ensino•   Introdução (2 Horas/aula)

     – Apresentação da disciplina

     – Evolução histórica e conceitos básicos

    •   Unidade 1 – Componentes de um sistema informatizado (4 Horas/aula) – Componentes fundamentais de um sistema informatizado

     – Linguagens de programação

     – Sistemas operacionais

    •   Unidade 2 – A Informática como ferramenta (4 Horas/aula)

     – Softwares gráficos

     – Editoração e edição de imagens

     – Planilhas

     – Bancos de dados

     – Aplicativos em geral

    •   Unidade 3 – Tipos de Software para Engenharia e Indústria (4 Horas/aula) – Softwares comerciais

     – Sistemas Integrados de gestão (ERP)

     – Softwares industriais

     – Softwares para simulações (Aula prática PROTEUS)

    •   Unidade 4 – Inteligência Artificial (4 Horas/aula) – Conceitos básicos

     – Técnicas de AI

    •   Unidade 5 – Aula Prática Experimental (6 Horas/aula)

     – MATLAB – Banco de dados

    •   Unidade 6 – Lógica Fuzzy (3 Horas/aula) – Conceitos básicos

    •   Seminário (3 Horas/aula)

    3

    30 horas/aula

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    4/294

    Powered by Enderson Neves Cruz   4

    Avaliação

    Seminário = 60% (Grupo)

     – Data da apresentação: a definir (2012) – Integrantes por grupo: 5 – Tempo de apresentação: 40 minutos – Relatório + documentos da apresentação

    Trabalho de laboratório = 40% – Aula prática – Integrantes por grupo: a definir  – Deve ser entregue na data de apresentação do seminário – Relatório + arquivos das aula práticas

    4

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    5/294

    Powered by Enderson Neves Cruz   5

    Calendário

    5

    DATA HORARIO ATIVIDADE PROF.

    28/11/2015   08h00 às 12h1513h00 às 17h15  Aula: Máquinas Elétricas e Equipamentos Aula: Informática Aplicada ÚrsulaEnderson  ApresentaçãoUnidade 1 – Sistema informatizado

    12/12/2015  08h00 às 12h15

    13h00 às 17h15 Aula: Máquinas Elétricas e Equipamentos Aula: Informática Aplicada

    ÚrsulaEnderson

      Unidade 1 – Sistema informatizado

    06/02/2016  08h00 às 12h15

    13h00 às 17h15 Aula: Informática Aplicada Aula: Interruptores e Comandos Eletrônicos

    EndersonÚrsula

    Unidade 2 – A Informática comoferramenta

    27/02/2016  08h00 às 12h15

    13h00 às 17h15 Aula: Interruptores e Comandos Eletrônicos Aula: Informática Aplicada

    FranciscoEnderson

    Unidade 3 – Tipos de Software paraEngenharia e Indústria

     Aula Prática Experimental PROTEUS

    05/03/2016  08h00 às 12h15

    13h00 às 17h15 Aula: Informática Aplicada Aula: Máquinas Elétricas e Equipamentos

    EndersonÚrsula

      Unidade 4 – Inteligência Artificial

    12/03/201608h00 às 10h0010h15 às 12h15

    13h00 às 17h15

     Aula: Interruptores e Comandos Eletrônicos Aula: Informática Aplicada

     Aula: Informática Aplicada

    FranciscoEnderson

    Enderson

     Aula Prática Experimental MATLAB

    19/03/201608h00 às 10h0010h15 às 12h1513h00 às 17h15

     Aula: Máquinas Elétricas e Equipamentos Aula: Informática Aplicada Aula: Informática Aplicada

    ÚrsulaEndersonEnderson

    Unidade 6 – Lógica fuzzySeminário

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    6/294

    Powered by Enderson Neves Cruz

    Referências bibliográficas

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    7/294

    Powered by Enderson Neves Cruz

    ReferênciasOrganização dos computadores e Informática geral 

    • TANENBAUM, Andrew S. Organização Estruturada de Computadores.Prentice/Hall do Brasil, 2006. 6ª Edição. 464p.

    • MONTEIRO, Mário. Introdução à Organização de Computadores.

    LTC, 1996. 3ª Edição. 500p.

    • WHITE, Ron; DOWNS, Timothy E.. How Computers Work.

    Que, 2007. 9ª Edição. 464p.

    • WHITE, Ron; DOWNS, Timothy E.. How software works .

    Ziff-Davis Press, 1993. 1ª Edição. 198p.• NORTON, Peter. Introduction to Computers.

    Career Education, 2004. 6ª Edição. 688p.

    • NORTON, Peter. Introdução a Informática.

    Makron Books, 1996. 1ª Edição. 640p.

    • LAUDON K. C; LAUDON, J. P. Sistemas de Informação.

    LTC, 1999. 4ª Edição. 389p.

    • TANENBAUM, Andrew S. Sistemas Operacionais Modernos.

    Prentice/Hall do Brasil, 2009. 2ª Edição. 712p.

    • WIDMER, Neal S.; TOCCI, Ronald J.. Sistemas Digitais: Princípios e Aplicações.

    Pearson Education do Brasil, 2011. 11ª Edição. .

    7

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    8/294

    Powered by Enderson Neves Cruz   8

    ReferênciasOrganização dos computadores e Informática geral 

    •   http://www.rci.rutgers.edu/~cfs/472_html/Intro/timeline.pdf •   http://www.computerhistory.org

    •   http://www.howstuffworks.com

    •   http://www.hsw.uol.com.br 

    •   http://www.isa.org

    •   http://www.rogercom.com

    •   http://www.wired.com•   www.ieee.org

    •   http://www.nytimes.com

    •   http://www.davidpogue.com

    •   http://tecnologia.uol.com.br 

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    9/294

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    10/294

    Powered by Enderson Neves Cruz   10

    ReferênciasLinguagens de programação

    • DEITEL, Paul; DEITEL, Harvey. Java - Como Programar.Prentice Hall, 2010. 8ª Edição. 1152p.

    • Sierra, Kathy; BATES, Bert. Use a Cabeça! Java.

     Alta Books , 2007. 2ª Edição. 496p.

    • REAS, Casey; FRY, Ben. Getting Started with Processing.

    O'Reilly Media, 2010, 208p.

    • REAS, Casey; FRY, Ben. Processing : a programming handbook for visual designers and artists.

    MIT Press, 2007, 737p.

    • CRUZ, Enderson. Sistemas Microprocessados, notas de aula.

    Belo Horizonte: CEFET-MG, 2011, 323p.

    • BROOKSHEAR, J. G. Ciência da computação: uma visão abrangente. 5a. ed.

    Porto alegre: Bookman, 2000.

    • PILONE, Dan; PILONE, Tracey. Use a Cabeça! Desenvolvendo para iPhone.

     Alta Books , 2011. 1ª Edição. 552p.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    11/294

    Powered by Enderson Neves Cruz   11

    ReferênciasLinguagens de programação

    •   http://www.hardware.com.br/artigos/linguagens/•   http://www.levenez.com/lang/

    • http://www.scriptol.com/programming/languages.php

    • http://www.tiexpert.net/programacao/c/index.php

    • http://www.cprogramming.com/

    • http://informatica.hsw.uol.com.br/programacao-em-c.htm

    •   http://www.acm.uiuc.edu/webmonkeys/book/c_guide/•   http://www.cplusplus.com/doc/tutorial/

    • http://www.python.org

    • http://processing.org

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    12/294

    Powered by Enderson Neves Cruz   12

    Referências

    •   http://www.rci.rutgers.edu/~cfs/472_html/Intro/timeline.pdf 

    •   http://www.computerhistory.org•   http://www.howstuffworks.com

    •   http://www.hsw.uol.com.br 

    •   http://www.isa.org

    •   http://www.rogercom.com

    •   http://processing.org

    •   http://www.tiexpert.net/programacao/c/index.php

    •   http://www.cprogramming.com/•   http://informatica.hsw.uol.com.br/programacao-em-c.htm

    •   http://www.acm.uiuc.edu/webmonkeys/book/c_guide/

    •   http://www.scriptol.com/programming/languages.php

    •   http://www.wired.com

    •   www.ieee.org

    •   http://www.nytimes.com

    •   http://www.davidpogue.com

    •   http://tecnologia.uol.com.br 

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    13/294

    Powered by Enderson Neves Cruz

    Introdução 

    Evolução histórica e conceitos básicos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    14/294

    Powered by Enderson Neves Cruz

    Mario Sergio Cortella - Pasta de Dente

    http://www.youtube.com/watch?v=f0z56D5qCO0 

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    15/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Conceito de Informática

    15

    Informática

    Neologismo criado por Philippe Dreyfus em 1962 

    Ciência que trata do processamento racional da informaçãoatravés da utilização de máquinas automáticas.

    Ciência cujo objeto de estudo se relaciona com “o tratamento lógicode conjuntos de dados, utilizando técnicas e equipamentos que

    possibilitam o seu processamento de modo a obter informação que

    depois poderá ser armazenada e/ou transmitida”.

    Fonte: Prof. Doutor Rui Moreira – Universidade Fernando Pessoa link:www2.ufp.pt/~rmoreira/MTC/Aula3_II.pdf 

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    16/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Conceito de Informática

    16

    Informação Automática+Estruturação de dados num dado contexto e com

    um dado objetivo, ou seja, o relacionamento de

    dados e o seu armazenamento estruturado.

    Precisa – correta e verdadeira

    Oportuna – disponível no local e no momento necessário

    Completa – contendo todos os elementos necessários

    Concisa – fácil de manipular 

      Processamento

    Manipulação dos dados de forma a conseguir 

    informação.

      Armazenamento

    Garantir a preservação dos dados para futura

    utilização.

      Comunicação

    Troca de dados entre computadores através de

    redes, e entre o computador e o homem.

    Computador  Agente utilizado para armazenar, classificar, comparar, combinar e exibir a informação a elevadavelocidade, ou seja, é o dispositivo utilizado para gerir informação automaticamente.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    17/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Processamento de Dados

    • Série de atividades realizadas para produzir um conjunto de informações a partir de outras

    informações iniciais (dados).

    Processamento InformaçõesDados

    InformaçãoDados + Conhecimento

    17

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    18/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Computador – Analogia com o ser humano

    Melhor dispositivo para se processar informações, ou quase! 

    Neurônios

    Cérebro

    Processa

    Voz e

    movimentosSaídas

    Sentidos

    Entrada

    Memória

    Nervos Nervos

    Nervos

    Input    Output CPU 

    Memória

    CPU – Central Processing Unit (Unidade central de processamento)

    Dispositivos de I/O - Input/Output (Entrada/Saída)

    18

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    19/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Memória

    Dispositivos I/O

    Barramento de Endereços

    Barramento de Dados

    Barramento de Controle

    CPU

    Clock

    19

    Evolução histórica e conceitos básicos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    20/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    20

     Aquisição de Dados e Controle Manual 

    Composto por máquinas, componentes e dispositivos daplanta, como sensores, atuadores e dispositivos de campo.

      Sensores   Transdutores  Visão artificial   Sistemas de identificação   Leitores   Atuadores elétricos, pneumáticos, hidráulicos   Robótica   Protocolos de comunicação AS-i e Hart;

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    21/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    21

    Controle Individual 

    Nível onde se encontram os sistemas que executam ocontrole automático das atividades da planta.

      Controladores Lógicos Programáveis (CLP)   Computadores de Placa Única (SBC)   Controladores Programáveis para Automação (PAC)   Computadores (PC)   Inversores de Frequência e Controladores PID   Sistema digital de controle distribuído (SBCD)   Protocolos de comunicação: Profibus, DeviceNet,

    Foundation Fieldbus, ModBus RTU e EtherCAT

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    22/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    22

    Controle de grupo – Célula de trabalhoGerenciamento e otimização de processo

    Permite a supervisão do processo, normalmente possuibanco de dados com informações relativas ao processo.

      Sistemas Supervisórios, de Controle e de Aquisição deDadosSCADA – Supervisory Control and Data Aquisition

      Protocolos baseados em Ethernet como Profinet,Ethernet/IP, ModBus TCP/IP e EtherCAT

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    23/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    23

    Gerenciamento da planta

    Nível responsável pela programação e pelo planejamento daprodução realizando o controle, a logística de suprimentos.

      Sistema de Controle de ManufaturaMES – Manufacturing Execution System

      Planejamento e Controle da Produção (PCP)   Planejamento dos Recursos de Manufatura

    MRP – Manufacturing Resource Planning   Sistemas que integram ferramentas de planejamento com

    o nível controle, tendo como objetivo gerir e otimizar osprocessos produtivos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    24/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    24

    Planejamento estratégico e Gestão da empresa

     Administração dos recursos da empresa.

      Sistemas Integrados de Gestão Empresarial

    ERP – Enterprise Resource Planning

    Integram ferramentas para as áreas de finanças,manufatura, contábil, recursos humanos, marketing,vendas, compras entre outras, de diferentes unidadesfabris, de uma mesma empresa ou grupo de empresas,em diferentes localidades, até mesmo em diferentespaíses

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    25/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Pirâmide da automação (Automation System)

    25

    Aquisição de Dados e Controle Manual

    Controle individual

    Controle de grupoGerenciamento e otimização de processo

    Gerenciamento da planta

    Planejamento estratégico e Gestão da empresa

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    26/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Gerações de computadores

    • Geração 0 – Computadores Mecânicos (Anterior a 1945)

    • 1ª Geração – Válvulas (1945 à 1955)

    • 2ª Geração – Transistores (1955 à 1965)

    • 3ª Geração – Circuitos Integrados (1965 à 1980)• 4ª Geração – VLSI (1980 aos dias atuais)

    • 5ª Geração – Conectividade, mobilidade, computadores “inteligentes”

    26

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    27/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Geração 0 – Computadores Mecânicos (Anterior a 1945)

    1703

    LógicaFormal e matemática

    Gottfried W. Leibniz 

    1854

    ÁlgebraBooleana

    George Boole

    (1592-1635)

    Primeira máquinade calcular 

    Wilhelm Schickard 

    Máquina de calcular Wilhelm Schickard 

    2400a.C

    ÁbacoMesopotâmia

    China

    Ábaco

    1642

    Primeira máquinade calcular 

    Blaise Pascal 

    PascalineBlaise Pascal 

    1672

    Máquina de calcularcom 4 operações

    Gottfried W. Leibniz 

    Máquina de calcular Gottfried W. Leibniz 

    27

    Sec. IX

    Algoritmos

    Sec. IIIa.C

    Sistema binárioPingala

    Índia

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    28/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    Geração 0 – Computadores Mecânicos (Anterior a 1945)

    1936

    Z-1 Primeirocomputador a relés

    Konrad Zuze

    Máquina de Turing Alan Turing 

    1904

    VálvulaJohn Ambrose Fleming 

    1801

    Tear mecânicocom cartõesperfurados

    Joseph Marie Jacquard 

    Tear mecânico com cartõesJoseph Marie Jacquard 

    1834

    Máquina AnalíticaCharles Babbage

     Ada Augusta Lovelace

    Máquina AnalíticaCharles Babbage

    1890

    Máquina de tabulaçãoHerman Hollerith

    Máquina de tabulaçãoHerman Hollerith

    1944

    MARK IUSA

    Mark I

    1911

    Fundação daTabulating Machine

    Company (TMC)Herman Hollerith

    1924

    IBM - InternationalBusiness MachinesThomas J. Watson

    28

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    29/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    1ª Geração – Válvulas (1945 à 1955)

    1943

    ColossusInglaterra

    1952

    IAS MachineJohn von Neumann

    Princeton - EUA

    1948 1951

    Whirlwind IPrimeiro

    computadorde tempo-real

    MIT 

    Teoria da informaçãoClaude Shannon

    UNIVACJ. Presper Ecker 

    John Mauchly

    1946

    ENIACElectronic Numerical

    Integrator and Computer John Presper Eckert

    e John Mauchly EUA

    ENIAC 

    1953

    IBM 701Primeiro

    computadorcomercial

    IBM 

    IBM 701

    1947

    Transistor John BardeenWalter Brattain

    William Shockley Bell Labs

    Transistor 

    29

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    30/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    2ª Geração – Transistores (1955 à 1965)

    1957

    Fundação daDigital Computer Corporation (DEC)

    Ken Olsen

    FORTRANJohn W. Backus

    IBM 

    1962

    Jogo SpaceWar Slug Russel Shag Graetz  Alan Kotok 

    MIT 

    1958

    Circuito IntegradoJack Kilby (Texas)

    Robert Noyce (Fairchild)

    Circuito Integrado

    BASICThomas Kurtz John Kemeny 

    1964

    Supercomputador CDC 6600

    Seymour Cray CDC 

    CDC 6600 

    COBOLPentágonoFabricantes

    1961

    1401IBM 

    1960

    PDP-IDEC 

    PDP-1DEC 

    1956

    TX-0Primeiro Computador 

    TransistorizadoMIT EUA

    TX-0 MIT 

    30

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    31/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    3ª Geração – Circuitos Integrados (1965 à 1980)

    1971

    Kenbak-1Primeiro

    computador pessoal

    1966

    HP-2115Hewlett-Packard 

    Disco IBM RAMACIBM 

    LOGOSeymour Papert

    1967 1969

    ARPANETUSA ARMY 

    1972

    Fundação daAtari

    Nolan Bushnell 

    Linguagem CKen Thompson

    Denis RichieBell Labs

    Microprocessador Intel 4004

    Intel 

    1968

    Fundação daIntel CorporationGordon E. Moore

    Robert Noyce

    1965

    Minicomputador PDP-8DEC 

    System/360IBM 

    System/360 IBM 

    UNIXKen Thompson

    Denis RichieBell Labs

    31

    MATLABCleve Moler University ofNew Mexico

    1970

    PASCALNiklaus Wirth

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    32/294

    Powered by Enderson Neves Cruz

    Evolução histórica e conceitos básicos

    3ª Geração – Circuitos Integrados (1965 à 1980)

    Aula 01 – Introdução

    1979

    VisiCalcPlanilha

    Daniel BricklinRobert Frankston

    Harvard

    1973

    EthernetRobert Metcalfe

     Xerox 

    1980

    Hard DiskSeagate

     Apple II 

    Microcomputador pessoal Apple I

    Steve JobsSteve Wozniak 

     Apple

    1977

    Microcomputador pessoal Apple II

    Steve JobsSteve Wozniak 

     Apple

    1975

    Microcomputador pessoal

    Altair 8800Kit de montar 

    MITS

    1976

    MicroprocessadorZilog Z80 

    1978

    MicroprocessadorIntel 8088

    32

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    33/294

    Powered by Enderson Neves Cruz

    Evolução histórica e conceitos básicos

    4ª Geração – VLSI (1980 aos dias atuais)

    Aula 01 – Introdução

    1983

    Lotus 1-2-3Mitch Kapor 

    1987

    Microcomputador PS/2IBM

    1984

    IBM PC-ATIBM 

    1985

    INTERNETCD-ROM

    Linguagem C++Bjarne Stroustrup

    1988

    MicroprocessadorIntel 80486

    1986

    Microcomputador Deskpro 386

    Compaq

    MicroprocessadorIntel 80386

    1981

    Microcomputador pessoal IBM PC

    IBM 

    MS-DOSMicrosoft 

    IBM PC 

    33

     Apple Macintosh

    MacintoshMAC OS Apple

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    34/294

    Powered by Enderson Neves Cruz

    Evolução histórica e conceitos básicos

    4ª Geração – VLSI (1980 aos dias atuais)

    Aula 01 – Introdução

    1991

    Power PC Apple

    IBM Motorola

    1995

    PlayStationSony 

    1993

    PDA Newton Apple

    1998

    GoogleLarry PageSergey Brin

    Pentium IIIntel 

    iMAC Apple

    Windows 98Microsoft 

    1994

    NetscapeMarc Andreesen

    Jim Clark

    Microprocessador Pentium

    Intel 

    Windows 3.0Microsoft 

    1999

    LINUXLinus Torvalds

    1990

    HTMLWWW

    Tim Berners-Lee

    34

    Toy StoryPixar 

    Windows 95Microsoft 

    JavaSun Microsystems

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    35/294

    Powered by Enderson Neves Cruz

    Evolução histórica e conceitos básicos

    4ª Geração – VLSI (1980 aos dias atuais)

    Aula 01 – Introdução

    2006

    Core 2 DuoIntel 

    2000

    Microprocessador Pentium III

    Intel 

    Bug do Milênio

    2001

    MAC OS X Apple

    Windows XPMicrosoft 

    2007

    iPhone Apple

    WiiNintendo

    iPhone Apple

    2010

    Tablet iPad Apple

    iPad  Apple

    2008

    AndroidGoogle

    Core i7Intel 

    2009

    Windows 7Microsoft 

    35

    iPod  Apple

    iPod Apple

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    36/294

    Powered by Enderson Neves Cruz

    Aula 01 – IntroduçãoEstrutura básica de um sistema microcontrolado

    Modelo de John von Neumann

    Memória

    Dispositivos I/O

    Barramento de Endereços

    Barramento de Dados

    Barramento de Controle

    CPU

    Clock

    CPU (Unidade central de processamento): Processa asinformações, executando as instruções armazenadas namemória e realizando as operações lógicas e aritméticas.

    Memória. Armazena as instruções e os dados a seremexecutadas pela CPU

    • Dispositivos I/O (Dispositivos de entrada e saída): Para

    fazer comunicação digital com o mundo exterior.

    • Barramento de dados: Por onde trafegam as informações(dados) a serem processadas.

    • Barramento de endereços: Indica a posição de memóriaonde uma informação (dado) será escrita ou lida e pelaseleção do dispositivo que terá acesso ao barramento dedados.

    • Barramentos de controle: Indica o tipo da operação (leitura

    ou escrita) e onde a operação está sendo realizada (memóriaou dispositivo de I/O).

    • Clock: Para manter todo o sistema sincronizado.

    36

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    37/294

    Powered by Enderson Neves Cruz

    Aula 01 – Introdução

    Evolução histórica e conceitos básicos

    ConceitosHardware

    É a parte física do computador, ou seja, éo conjunto de componentes eletrônicos,circuitos integrados e placas, que secomunicam através de barramentos.

    Software

    É a parte lógica, ou seja, o conjunto deinstruções e dados processados pelocircuitos eletrônicos que compõe ohardware.

    37

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    38/294

    Powered by Enderson Neves Cruz

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    39/294

    Powered by Enderson Neves Cruz

    UNIDADE 1 

    Componentes de um sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    40/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    40

    Usuáriose

    Processos

    Hardware

    Software

    ProcedimentosBanco

    de Dados

    Rede

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    41/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    41

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    42/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Dispositivos Físicos

    • Componentes elétricos/eletrônicos e mecânicos básicos

    que permitem a construção dos circuitos

    - Circuitos integrados

    - Transistores

    - Fios

    - Capacitores

    - Resistores

    - etc.

    42

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    43/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Micro Arquitetura

    • Dispositivos físicos agrupados para formar unidades

    funcionais como, etc.

    - Memórias

    - Registradores

    - ULA(Unidade LógicaAritmética)

    - etc.

    43

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    44/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Linguagem de Máquina

    • Conjunto de instruções interpretadas pelos dispositivos que

    compõem a micro arquitetura.

    • Toda fabricante publica um manual onde descreve o

    conjunto das instruções de máquina (ISA)

    •   ISA – Instruction Set Architecture

    •   Assembly  é o termo utilizado para linguagem de máquina

    ou linguagem de montagem.

    44

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    45/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Sistema Operacional

    Sistema Operacional (SO)

    • Responsável por gerenciar os dispositivos de hardware do

    computador (como memória, unidade de disco rígido,

    unidade de CD) e realizar a interação entre o usuário e

    esses dispositivos.

    • Oferecer o suporte para os outros programas funcionarem

    (como Word, Excel etc.).

    • Exemplos: UNIX, LINUX, Windows, Mac OS, iOS, Android,

    etc.

    45

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    46/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Sistema Operacional

    Compiladores e Interpretadores

    Compiladores e Interpretadores

    • Programas que traduzem o código de fonte de uma

    linguagem de programação de alto nível para uma

    linguagem de programação de baixo nível (por exemplo:

    assembly)

    • Exemplos: Borland C++, Microsoft Visual Basic, etc.

    46

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    47/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Sistema Operacional

    Compiladores e Interpretadores

    Aplicativos  Aplicativos

    • Um programa de computador que permite ao usuário fazer 

    uma ou mais tarefas específicas.

    • Tem por objetivo o desempenho de tarefas, em geral

    ligadas ao processamento de dados, como o trabalho em

    escritório ou empresarial, lazer etc.

    - Editores de texto, planilhas eletrônicas

    - Tratamento de imagens

    - Navegadores de internet

    - Bancos de dados

    - Jogos

    47

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    48/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Sistema Operacional

    Compiladores e Interpretadores

    Aplicativos

    Software

    Hardware

    48

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    49/294

    Powered by Enderson Neves Cruz

    Unidade 1 – Sistema informatizado

    Componentes de um sistema informatizado

    Máquina Multinível Contemporânea (Camadas)

    Nível de Lógica Digital

    Nível de Microarquitetura

    Nível de Arquitetura de Conjunto de Instruções (ISA)

    Nível de Máquina de Sistema Operacional

    Nível de Linguagem de Montagem (Assembly)

    Nível de Linguagem Orientada a Problemas

    Nível 0

    Nível 1

    Nível 2

    Nível 3

    Nível 4

    Nível 5

    Tradução (compilador)

    Tradução (montador ou assembler )

    Interpretação parcial (sistema operacional)

    Interpretação (microprograma) ou execução direta

    Hardware

    (Portas lógicas)

    (Memória, registradores e ALU)

    (Instruções em linguagem de máquina)

    (Híbrida – Instruções ISA ou SO)

    (Mnemônicos para as Instruções em linguagem de máquina)

    (Linguagens de alto nível: C, C++, Java, Visual Basic...)

    49

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    50/294

    Powered by Enderson Neves Cruz

    1. Análise: nessa etapa estuda-se o enunciado do problema para definir os dados de entrada, oprocessamento e os dados de saída.

    2. Algoritmo: onde ferramentas do tipo descrição narrativas, fluxograma ou português estruturado(portugol) são utilizadas para o descrever o problema com suas soluções.

    3. Codificação: onde o algoritmo é transformado em códigos da linguagem de programaçãoescolhida para ser trabalhada. Portanto, um programa é a codificação de um algoritmo em umadeterminada linguagem de programação. (ASCENCIO, 1999).

    Linguagens de programação

    Desenvolvimento de um programa

    50

    Unidade 1 – Sistema informatizado

    1. AnáliseEntender o problema

    2. AlgoritmoDesenhar a solução

    3. CodificaçãoProgramar 

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    51/294

    Powered by Enderson Neves Cruz   51

    Unidade 1 – Sistema informatizado

    Problema

    Solução

     Adaptação   Algoritmo  Programa

    FonteCodificação   Tradução

      ProgramaExecutável

    Linguagem deprogramação

    Linguagens de programação

    Desenvolvimento de um programa

    “ Algoritmo é uma seqüência de passos que deve ser seguida

    para a realização de uma tarefa”(ASCENCIO, 1999)

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    52/294

    Powered by Enderson Neves Cruz   52

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Fases de desenvolvimento de um sistema

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    53/294

    Powered by Enderson Neves Cruz   53

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    TIOBE Programming Community Index for October 2011

    Ranking de linguagens criado pelaTIOBE Software que demonstra, numperíodo de um ano, quais linguagens

    tornam-se mais populares e quais vãoperdendo popularidade.

    Fonte:

    http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    54/294

    Powered by Enderson Neves Cruz   54

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    55/294

    Powered by Enderson Neves Cruz   55

    http://ocw.mit.edu/index.htm

    http://see.stanford.edu/see/courses.aspx

    Referências

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    56/294

    Powered by Enderson Neves Cruz   56

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Classificação das linguagens de programação

    http://www.scriptol.com/programming/choose.php

      Quanto a geração

    Não existe consenso

     – Primeira Geração: Linguagem de máquina

    • Código de Máquina (0s e 1s).

     – Segunda Geração:

    • Linguagem de Montagem - Assembler 

     – Terceira Geração

    • Imperativas: FORTRAN, Cobol, Basic, Algol, ADA, Pascal, C

    • Lógicas e Funcionais: LISP, ML, Prolog

     – Quarta Geração

    • Geradores de Relatórios, Linguagens de Consultas: SQL, CSP

     – Quinta Geração

    • Orientação a objetos : Smalltalk, Java, Eiffel, Simula 67

     – Sexta Geração ?

    • Web e Linguagens Dinâmicas : Python, JavaScript, Ruby

      Quanto ao grau de abstração

      Linguagem de programação de baixo nível 

      Linguagem de programação de médio nível 

      Linguagem de programação de alto nível 

      Estrutura de tipos

      Fracamente tipada

      Fortemente tipada

      Dinamicamente tipada

      Estaticamente tipada.

      Paradigma

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    57/294

    Powered by Enderson Neves Cruz   57

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Paradigmas da programação

      Forma de pensar do programador e como ele busca a solução dos problemas.

      Restringe a utilização de técnicas de programação.

      Conjunto de modelos, normas e padrões que estabelecem os princípios, funcionalidades eobjetivos de uma linguagem de programação existentes.

    Visão que o programador possui sobre a estruturação e execução do programa.

    • Procedimento, Função, Objeto ou Lógica? Linguagens de Programação vistas pelos seus paradigmas

    Maria Cecília Calani Baranauskas   http://www.nied.unicamp.br/publicacoes/arquivos/3XaQ1o8Nmk

    • Programming Paradigms for Dummies: What Every Programmer Should Know

    Peter Van Roy

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    58/294

    Powered by Enderson Neves Cruz   58

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    GAP Semântico

    Diferença entre uma representação de um contexto do conhecimento (processo, problema, etc.)em uma linguagem poderosa (linguagem natural) e uma representação do conhecimento em uma

    linguagem formal (linguagem de programação).

       F  o  n   t  e  :   P  a  r  a   d   i  g  m  a  s  e   L   i  n  g

      u  a  g  e  n  s   d  e   P  r  o  g  r  a  m  a  ç   ã  o

       P  r  o   f .   M  a  n  o  e   l   G  o  m

      e  s   d  e   M  e  n   d  o  n  ç  a   N  e   t  o

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    59/294

    Powered by Enderson Neves Cruz   59

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Paradigmas da programação

    “More is not better (or worse) than less, just different.” “Mais não é melhor (ou pior) do que menos, apenas diferente.” 

    Peter Van Roy 

    Linguagens ConceitosParadigmas

    Cada linguagem suportaum ou mais paradigmas

    Cada paradigmaconsiste de um

    conjunto deconceitos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    60/294

    Powered by Enderson Neves Cruz   60

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Paradigmas da programação

      Programação não estruturada

      Programação imperativa ou procedural 

      Programação estruturada

      Linguagem orientada a objetos

      Programação funcional 

      Programação natural 

      Programação lógica

    http://academicearth.org/courses/programming-paradigms

    http://see.stanford.edu/see/courseInfo.aspx?coll=2d712634-2bf1-4b55-9a3a-ca9d470755ee

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    61/294

    61

    Programação não estruturada – Exemplo linguagem Assembly

    Comandos em sequênciaordenada, ou declarações,

    geralmente um em cada linha

     As linhas são numeradas oupode ter etiquetas (labels),isto permite que o fluxo de

    execução saltar paraqualquer linha do programa

     Apresenta os conceitosbásicos de controle de

    fluxo, como loops e saltos

    Loop

    Embora não existe o conceitode procedimentos, sub-rotinas

    são permitidas.

    Salto incondiconal

    Não existe o conceito devariáveis locais, salvar ocontexto antes do uso deregistradores é comum.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    62/294

    Powered by Enderson Neves Cruz   62

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação não estruturada – Exemplo linguagem BASIC

    10 dim i

    20 i = 10

    30 i = i + 1

    40 if i 10 then goto 90

    50 if i = 10 then goto 70

    60 goto 30

    70 print "Programa concluído"

    80 end

    90 print i; "ao quadrado ="; i*i

    100 goto 30

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    63/294

    Powered by Enderson Neves Cruz   63

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação não estruturada

    Vantagens

    • Oferece grande liberdade aos programadores.

    • Existem linguagens de programação de alto e baixo nívelque utilizam este paradigma.

    Desvantagens

    • Código dificilmente legível (“espaguete").

    • Considerado inadequado para a criação de grandesprojetos.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    64/294

    Powered by Enderson Neves Cruz   64

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação não estruturada

    Exemplos principais que utilizam este paradigma

    Linguagem de montagem

    Assembly

      Primeiras versões do BASIC (Beginner's All-purpose Symbolic Instruction Code)

      JOSS

      FOCAL

      MUMPS

      TELCOMP

    COBOL (COmmon Business-Oriented Language)

      Algumas linguagens de script

    Linguagem de arquivo em lotes (batch).

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    65/294

    Powered by Enderson Neves Cruz   65

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Procedural ou Imperativa

      É o que mais se aproxima do uso da arquitetura von Neumann como modelo para representaçãoda solução de um problema a ser resolvido pela máquina.

      Programas centrados no conceito de um estado (modelado por variáveis) e ações (comandos) quemanipulam o estado.

      Programar o computador significa "dar-lhe ordens" que são executadas sequencialmente.

    Programa SaídaEntrada

    Estados

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    66/294

    Powered by Enderson Neves Cruz   66

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Procedural ou Imperativa

      Representar a solução de um problema para ser resolvido pelo computador envolveescrever uma série de ações (procedimentos) que, se executadas sequencialmente, levam àsolução.

    − Procedimentos ( procedures), também conhecidos como rotinas, subrotinas, métodos, oufunções contém um conjunto de passos computacionais a serem executados.

    − Um procedimento pode ser chamado a qualquer hora durante a execução de um programa,inclusive por outros procedimentos ou por si mesmo.

      Programação estruturada

      Linguagem orientada a objetos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    67/294

    Powered by Enderson Neves Cruz   67

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Estruturada

    Estabelece que todos os programas possíveis podem ser reduzidos a apenas trêsestruturas:

    − Sequencial

    − Condicional/Seleção (if, then, else, elseif, switch, case)

    − Iteração (repetição) (for, while, do while, do until, repeat)

      Através destas três estruturas consegue-se criar procedimentos e funções, de fácil compreensão,e manutenção.

      Restrição a utilização das estruturas de desvio incondicional (GoTo), pois tem a tendênciade tornar um programa incompreensível.

    Geralmente é a primeira abordagem que alguém aprende em programação

    Modularização - Separar o programa em partes (blocos) que possam ser logicamentedesenvolvidos e compreendidos de forma isolada.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    68/294

    Powered by Enderson Neves Cruz   68

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Estruturada – Exemplo linguagem BASIC

    dim i

    i = 10

    for i =1then to 10

    print i; "ao quadrado ="; i*inext

    print "Programa concluído"

    Código mais simples

    Código mais limpo

    Código mais estruturado

    Mais legível.

    10 dim i

    20 i = 10

    30 i = i + 1

    40 if i 10 then goto 90

    50 if i = 10 then goto 70

    60 goto 30

    70 print "Programa concluído"

    80 end

    90 print i; "ao quadrado ="; i*i

    100 goto 30

    EstruturadaNão estruturada

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    69/294

    Powered by Enderson Neves Cruz   69

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Estruturada – Exemplos usando linguagem C

    Calculando número de caracteres.c

    Fonte do exemplo: Fundamentos de Linguagem C - Centro Tecnológico de Mecatrônica – SENAI – Caxias do Sul/RS

    Notas de alunos.c

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    70/294

    Powered by Enderson Neves Cruz   70

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Estruturada

    Vantagens

    • Eficiência (embute o modelo Von Neumann);

    • Paradigma dominante e bem estabelecido;

    • Modelagem “natural” de aplicações do mundo real;

    • Muito flexivel;

    • Permitir o reaproveitamento de código já construído;

    • Evitar que um trecho de código que seja repetido váriasvezes dentro de um mesmo programa;

    • Permitir a alteração de um trecho de código de umaforma mais rápida;

    • Facilitar o entendimento do programa.

    • O fato de utilizar uma função que já foi testada emdiversos programas, reduz o risco de erros. É como secostuma dizer: “não reinventar a roda”.

    Desvantagens

    • Focaliza o "como" e não “o que"

    • Relacionamento indireto com a E/S:

    − difícil legibilidade

    − erros introduzidos durante manutenção

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    71/294

    Powered by Enderson Neves Cruz   71

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Estruturada

    Exemplos principais que utilizam este paradigma

    ABAP (Advanced Business Application Programming)

    Ada

    ALGOL (ALGOrithmic Language)

      BASIC (Beginner's All-purpose Symbolic Instruction Code)

    COBOL (COmmon Business-Oriented Language)

    FORTRAN (FORmula TRANnslating System)

    Linguagem C

    MATLAB (MATrix LABoratory)

    PASCAL

    PHP (Personal Home Page ou Hypertext Preprocessor)

      PL/I (Programming Language One)

    Tcl (Tool Command Language)

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    72/294

    Powered by Enderson Neves Cruz   72

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Estende as linguagens imperativas com a introdução do conceitos de objetos.

    As bases conceituais tem origem no campo de estudo da cognição no campo da abstraçãode conceitos do mundo real.

    Mundo real está repleto de objetos.

    Agrupa-se objetos semelhantes em classes.

    Na compreensão do mundo real, as pessoas empregam constantemente três métodos de organização, sempre presentes emtodos os seus pensamentos:

    1. Diferenciação, baseado na experiência de cada um, de objetos particulares e seus atributos.

    Exemplo: quando distinguem uma árvore, e seu tamanho ou relações espaciais, dos outros objetos,

    2. Distinção entre objetos como um todo e entre suas partes componentes.

    Exemplo: quando separam uma árvore dos seus galhos.

    3. Formação de, e distinção entre, as diferentes classes de objetos .

    Exemplo: quando formam uma classe de todas as árvores, uma outra classe de todas as rochas e distinguem-nas.

    Fonte: Enciclopédia britânica

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    73/294

    Powered by Enderson Neves Cruz   73

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Estabelece que que um problema pode ser solucionado seguindo estas etapas:

    − Procurar objetos existentes no problema.

    − Determinar características e responsabilidades de cada objeto.

    − Estabelecer como ocorrerá a interação entre os objetos.

    Procura enxergar o sistema como um conjunto de objetos ( classes ) que interagem entre si e apresentam

    características e comportamentos próprios ( métodos ) representados por seus atributos e suas operações

    ( mensagens ).

    Os atributos estão relacionados aos dados, e as operações, aos processos que um objeto executa.

     Alicerces da programação orientada a objetos

      Abstração

      Encapsulamento   Herança

      Polimorfismo

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    74/294

    Powered by Enderson Neves Cruz   74

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Mulher 

    Pessoa

    Classe

    Conjunto de objetos com características afins.Cada classe descreve um conjunto (possivelmente infinito) de objetos individuais.

    É uma abstração que descreve propriedades importantes para uma aplicação e simplesmente ignora oresto.

    Classe

    Homem

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    75/294

    Powered by Enderson Neves Cruz   75

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Objeto

    Entidade habilitada a ter um estado (informação) e oferece um determinado número de operações(comportamentos) que podem examinar ou afetar o estado do objeto. Instância de uma classe.

    Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assimcomo se relacionar e enviar mensagens a outros objetos.

    Homem Mulher  

    Pessoa

    Objetos

    Classe

    Um objeto é umaentidade do mundoreal que tem uma

    identidade.

    Objetos podemrepresentar entidades

    concretas ouentidades conceituais

    1 S f

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    76/294

    Powered by Enderson Neves Cruz   76

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Homem Mulher  

    Pessoa

    Objetos

    Classe

    MétodosDefinem as habilidades/comportamentos dos objetos.

    É a implementação de uma operação para uma classe.

     Atributos

    São características de um objeto.

    Rock star 

    Théo

    Motociclista

    Beatriz

    Astronauta

    Bailarina

    Pode tocar bateria

    Pode cultivar bonsais

    Pode nadar

    Pode lutar karatê

    Pode pilotar 

    Pode controlar robôs

    Pode lutar karatê

    Pode nadar (rápido)

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    77/294

    Powered by Enderson Neves Cruz   77

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Homem Mulher  

    Pessoa

    Objetos

    Classe

    Mensagem ou Operação

    Chamada a um objeto para invocar um de seus métodos, ativando um comportamento descrito por sua classe.Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático).

     Através das mensagens que um objeto solicita a outro que realize determinada tarefa.

    Chamar o métodoThéo.Lutar_karatê

    Chamar o métodoBeatriz.Controlar_robôs

    Homem Mulher  

    Pessoa

    Objetos

    ClasseRock star 

    Théo

    Motociclista

    Beatriz

    Astronauta

    Bailarina

    Pode tocar bateria

    Pode cultivar bonsais

    Pode nadar

    Pode lutar karatê

    Pode pilotar 

    Pode controlar robôs

    Pode lutar karatê

    Pode nadar (rápido)

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    78/294

    Powered by Enderson Neves Cruz   78

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Ligações e Associações

    Ligações e associações são os mecanismos para estabelecer relacionamentos entre objetos e classes.

    Ligação é uma conexão física ou conceitual entre duas instâncias de objetos.

     Associação descreve um grupo de ligações com estrutura e semântica comuns.

    Uma ligação é uma instância de uma associação.

    Mulher 

    Pessoa

    Classe

    Beatriz

    Espacial

    Empresa

    Classe

    NASABeatriz trabalha para a NASA

    LIGAÇÂO

    ASSOCIAÇÂO

    Uma pessoa trabalha para uma empresa

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    79/294

    Powered by Enderson Neves Cruz   79

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

     Abstração

    Consiste de focalizar nos aspectos essenciais inerentes a uma entidade ou contexto e ignorar propriedades menosimportantes ou “acidentais'‘.

    Em termos de desenvolvimento de sistemas, isto significa concentrar-se no que um objeto é e faz antes de sedecidir como ele será implementado.

    O uso de abstração preserva a liberdade para tomar decisões de desenvolvimento ou de implementação apenasquando há um melhor entendimento do problema a ser resolvido.

    Resumindo: É a capacidade de representar cenários complexos usando termos simples.

    Mulher 

    Beatriz

    Astronauta

    Bailarina

    Pode pilotar 

    Pode controlar robôs

    Pode lutar karatê

    Pode nadar (rápido)

    Morena

    Mulher, morena, astronauta, karateca,bailarina que nada muito rápido, quetrabalha na NASA controlando robôs.

    Este conceito foi abstraído para o que conhecido como

    Beatriz 

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    80/294

    Powered by Enderson Neves Cruz   80

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Encapsulação ou Encapsulamento

    Consiste em separar os aspectos externos de um objeto, os quais são acessíveis a outros objetos, dos detalhesinternos de implementação do objeto, os quais permanecem escondidos dos outros objetos.

    Garante que a alteração dos atributos seja feita somente através dos métodos, assim, os dados ficam protegidos.

    O encapsulamento evita que um programa torne-se tão interdependente que uma pequena mudança tenha grandesefeitos colaterais.

    Permite também que a implementação de um objeto possa ser modificada (melhoria de desempenho, correção deerros e mudança de plataforma de execução) sem afetar as aplicações que usam este objeto.

    Resumindo: Tarefa de tornar um objeto o mais auto-suficiente possível.

    Chamar o métodoThéo.Marcar_show

    Não é necessário saber que oThéo é karateca e que sabe

    nadar para contratar um show.

    HomemHomem

    Rock star 

    Théo

    Motociclista

    Pode tocar bateria

    Pode cultivar bonsais

    Pode nadarPode lutar karatê

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    81/294

    Powered by Enderson Neves Cruz   81

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Herança

    Permite compartilhar atributos e operações entre classes baseada em um relacionamento hierárquico.

    Uma classe pode ser definida de forma genérica e depois refinada sucessivamente em termos de subclasses ouclasses derivadas.

    Cada subclasse incorpora, ou herda, todas as propriedades (atributos e métodos) de sua superclasse (ou classe

    base) e adiciona suas propriedades únicas e particulares. As propriedades da classe base não precisam ser repetidas em cada classe derivada.

    Resumindo: Capacidade de uma classe herdar atributos e comportamento de uma outra classe.

    Pessoa

    Superclasse

    Mulher Homem

    Subclasse Subclasse

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    82/294

    Powered by Enderson Neves Cruz   82

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Homem Mulher  

    Pessoa

    Objetos

    Classe

    PolimorfismoSignifica que a mesma operação pode se comportar de forma diferente em classes diferentes.

    Implica que uma operação de uma mesma classe pode ser implementada por mais de um método.

    Théo BeatrizPode nadar

    Pode lutar karatê Pode lutar karatê

    Pode nadar (rápido)

    U id d 1 Si t i f ti d

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    83/294

    Powered by Enderson Neves Cruz   83

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Processo de desenvolvimento JAVA

    Máquina virtual 

    • Nome dado a uma máquina, implementada através de software, que executa programascomo um computador real.

    • Cópia isolada e totalmente protegida de um sistema físico.

    • JVM – Java Virtual Machine

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    84/294

    Powered by Enderson Neves Cruz   84

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Múltiplas plataformas

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    85/294

    Powered by Enderson Neves Cruz   85

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    86/294

    Powered by Enderson Neves Cruz   86

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Vantagens

    • Mesmas da programação estruturada.

    • É tida como a melhor estratégia para se eliminar o gapsemântico“ quando utilizada para a modelagem deprocessos.

    − Tenta simular objetos do mundo real em objetoscomputacionais, tornando a tarefa de modelagem e

    programação mais simples.

    − Busca modelar um ambiente utilizando-se dospróprios elementos presentes neste ambiente, ouseja, os objetos.

    • Baseia-se fortemente na própria forma de pensar humana

    • Os programas têm uma estrutura altamente modular (programação modular – LEGO), o que permite maior produtividade:

    − Facilidade de controle e manutenção

    − Reutilização de código

    − Expansão (Agregação de módulos prontos)

    Desvantagens

    • Grande necessidade de memória e processamento.

    • Grande complexidade de gerenciamento interno dasestruturas dos objetos, o que implica em velocidade deexecução menor.

    • Difícil otimização de tempo de execução dos programas.

    • O aprendizado inicial é bem mais complicado, devido aosconceitos serem complexos.

    Fonte: ASCENIO, Ana F. Gomes; CAMPOS, Edilene A. Veneruchi. Fundamentos de Programação de Computadores.

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    87/294

    Powered by Enderson Neves Cruz   87

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Exemplo

    Programa para cálculo o fatorial de n

    JAVA – Linguagem Imperativa

    int factorial-rec(int n) // n é um número >= 0

    {

    int factorial;int temp;

    if (n = 0) return 1; // fatorial de 0 é 1

    factorial = n;

    temp = n -1; // temp armazena o próximo

    return factorial * factorial-rec(temp);

    }

    Exemplo

    Programa para cálculo o fatorial de n

    PROLOG – Linguagem Lógica

    fatorial(0,1).

    fatorial(N,X) :- N1 is N – 1,

    fatorial(N1,X1),

    X is N * X1.

    ?- fatorial(3,X).

    X=6

    Fonte: ASCENIO, Ana F. Gomes; CAMPOS, Edilene A. Veneruchi. Fundamentos de Programação de Computadores.

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    88/294

    Powered by Enderson Neves Cruz   88

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Vantagens

    • Mesmas da programação estruturada.

    • É tida como a melhor estratégia para se eliminar o gapsemântico“ quando utilizada para a modelagem deprocessos.

    − Tenta simular objetos do mundo real em objetoscomputacionais, tornando a tarefa de modelagem e

    programação mais simples.

    − Busca modelar um ambiente utilizando-se dospróprios elementos presentes neste ambiente, ouseja, os objetos.

    • Baseia-se fortemente na própria forma de pensar humana

    • Os programas têm uma estrutura altamente modular (programação modular – LEGO), o que permite maior produtividade:

    − Facilidade de controle e manutenção

    − Reutilização de código

    − Expansão (Agregação de módulos prontos)

    Desvantagens

    • Grande necessidade de memória e processamento.

    • Grande complexidade de gerenciamento interno dasestruturas dos objetos, o que implica em velocidade deexecução menor.

    • Difícil otimização de tempo de execução dos programas.

    • O aprendizado inicial é bem mais complicado, devido aos

    conceitos serem complexos.

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    89/294

    Powered by Enderson Neves Cruz   89

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Orientada a Objetos

    Exemplos principais que utilizam este paradigma

    Linguagens OO Puras

    Simula

    Smalltalk

      Eiffel Ruby

    Linguagens estruturadasmas com suporte para OO 

    Visual Basic

     Perl

      COBOL 2002

    PHP

    ABAP

    Desenvolvidas principalmente para OOmais com elementos delinguagens estruturais

    C++ C#

    VB.NET

    Java

    Python

    Programming

    http://www.dca.fee.unicamp.br/cursos/POOCPP/POOCPP.html

    http://msdn.microsoft.com/pt-br/library/cc580626.aspx

    http://www.hardware.com.br/artigos/programacao-orientada-objetos

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    90/294

    Powered by Enderson Neves Cruz

    Unidade 1 Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    91/294

    Powered by Enderson Neves Cruz   91

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Funcional

      Utiliza as linguagens funcionais ou aplicativas

      Surgiu com o desenvolvimento da linguagem Lisp (List Processing) por John McCarthy em 1958para atender aos interesses dos grupos de Inteligência Artificial no processamento de dadossimbólicos.

      Programas são funções que descrevem uma relação explícita e precisa entre entrada e saída.

      Isto é conseguido pensando-se na função que deve ser aplicada num estado de máquina inicialpara transformá-lo em um estado de máquina final desejado como resposta.

    Estabelece o uso de funções matemáticas e composição de funções para representação do problema a ser resolvido pela máquina

    Programa SaídaEntrada

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    92/294

    Powered by Enderson Neves Cruz   92

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Funcional

      Programas consistem em definições de dados e funções.

    Programar significa:

    − definir funções;

    − aplicar funções;

    − conhecer o comportamento de funções na máquina.

    Enfoca a ausência de estados e dados mutáveis Linguagem declarativa

    − Os mecanismos de controle no programa passam de iterativos a recursivos.

      Funções não têm efeitos colaterais e são valores de primeira ordem.

      Primeiro paradigma ensinado em várias universidades importantes: MIT, Stanford, Berkeley

    Execução de um programa = Avaliação de expressões

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    93/294

    Powered by Enderson Neves Cruz   93

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Funcional

    Exemplo

    Programa para cálculo o fatorial de n

    JAVA – Linguagem Imperativa

    int factorial-rec(int n) // n é um número >= 0

    {

    int factorial;int temp;

    if (n = 0) return 1; // fatorial de 0 é 1

    factorial = n;

    temp = n -1; // temp armazena o próximo

    return factorial * factorial-rec(temp);

    }

    Exemplo

    Programa para cálculo o fatorial de n

    LISP – Linguagem funcional 

    (defun factorial (n)

    (if ( 0

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    94/294

    Powered by Enderson Neves Cruz   94

    Unidade 1 – Sistema informatizado

    Linguagens de programação

    Programação Funcional

    Exemplo de trecho de código Linguagem J funcional 

     A entradas são as funções seno e cosseno  Modelo matemático de um neurônio

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    95/294

    Powered by Enderson Neves Cruz   95

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Funcional

    Vantagens

    • Manipulação de programas mais simples:

    − Prova de propriedades

    − Transformação (exemplo: otimização)

    − Concorrência explorada de forma natural

    • Programação com um alto nível de abstração:

    − alta produtividade

    − programas mais concisos

    − menos erros

    − provas de propriedades sobre programas

    Desvantagens

    • “O mundo não é funcional!”

    − Esforço inicial não-desprezível

    • Mecanismos primitivos de E/S e formatação

    − Interface com o usuário

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    96/294

    Powered by Enderson Neves Cruz   96

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Funcional

    Exemplos principais que utilizam este paradigma

    LISP (LISt Processing)

    Miranda

    Haskell

      Orwell

    ML

      KRC

      LML

      SASL

      Scheme

      Linguagem J

    http://www.inf.ufsc.br/~func/

    http://www.dcc.fc.up.pt/~pbv/aulas/pf/

    http://www.staff.science.uu.nl/~fokke101/courses/fp-eng.pdf 

    http://www.haskell.org/haskellwiki/Functional_programming

    http://book.realworldhaskell.org/read/

    http://www.cs.nott.ac.uk/~gmh/book.html

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    97/294

    Powered by Enderson Neves Cruz   97

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

      Programação lógica é um paradigma de programação que faz uso da lógica matemática.

      Também chamada programação baseada em regras   são linguagens baseada na lógica depredicados, onde uma série de regras são definidas para que o programa tome ações apropriadaspara cada estado habilitador.

      Programas são relações entre entrada e saída.

    Representar um problema a ser resolvido no computador, consiste

    em expressar o problema na forma de lógica simbólica.

    Programa SaídaEntrada

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    98/294

    Powered by Enderson Neves Cruz   98

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

    O Programa é uma base de conhecimento a respeito de certo domínio e por perguntasfeitas a essa base de conhecimento, independentemente

    Sintaxe

    Base de

    conhecimento

    PERGUNTA   RESPOSTA

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    99/294

    Powered by Enderson Neves Cruz   99

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

    Exemplo

    PROLOG

    papagaio("Ze Carioca").

    ave(X) :- papagaio(X).

    ?- ave("Ze Carioca").

    Zé Carioca é uma ave?

    "Zé Carioca é um papagaio" 

    "Todo papagaio é uma ave"ou

    "se X é um papagaio, então X é uma ave" 

    FATO

    Regra

    Consulta

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    100/294

    Powered by Enderson Neves Cruz   100

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

    Exemplo

    Programa para cálculo o fatorial de n

    JAVA – Linguagem Imperativa

    int factorial-rec(int n) // n é um número >= 0

    {

    int factorial;int temp;

    if (n = 0) return 1; // fatorial de 0 é 1

    factorial = n;

    temp = n -1; // temp armazena o próximo

    return factorial * factorial-rec(temp);

    }

    Exemplo

    Programa para cálculo o fatorial de n

    PROLOG – Linguagem Lógica

    fatorial(0,1).

    fatorial(N,X) :- N1 is N – 1,fatorial(N1,X1),

    X is N * X1.

    ?- fatorial(3,X).

    X=6

    fatorial(n) = n * fatorial(n-1), para n > 0

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    101/294

    Powered by Enderson Neves Cruz   101

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

      Pode ser visto como um formalismo para representar conhecimento a respeito do problema que sequer resolver, de forma declarativa (descritiva) como no paradigma funcional.

      Por trás do programa existe uma máquina de inferência, em princípio "escondida" do programador,responsável por "encontrar soluções" para o problema descrito.

      Na prática, inclui características imperativas, por questão de eficiência.

     Aplicações principais

    Sistemas Baseados em Conhecimento (SBCs);

    Sistemas de Bases de Dados (BDs);

    Sistemas Especialistas (SEs);

    Processamento da Linguagem Natural (PLN)

    Inteligência Artificial

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    102/294

    Powered by Enderson Neves Cruz   102

    Unidade 1 Sistema informatizado

    Linguagens de programação

    Programação Lógica

    Vantagens

    • Linguagem de programação e de especificação;

    • Capacidade dedutiva;

    • Opera de forma não-determinística;

    • Permite a representação de relações reversíveis;

    • Interpretação declarativa, procedimental e operacional;

    • Naturalmente recursiva.

    • Separação entre lógica de programa e controle

    • Programas fáceis de entender e manter 

    Desvantagens

    • Eficiência

    • Baixa expressividade para certas aplicações

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    103/294

    Powered by Enderson Neves Cruz   103

    U dade S ste a o at ado

    Linguagens de programação

    Programação Lógica

    Exemplos principais que utilizam este paradigma

    Planner 

    PROLOG

      Mercury

      Visual Prolog

      Oz

      Frill

    http://www-usr.inf.ufsm.br/~andrea/elc117/slides-programacao-logica-2011a.pdf http://www.linhadecodigo.com.br/Artigo.aspx?id=1697

    http://www.saber.ula.ve/bitstream/123456789/16227/2/libro-texto.pdf 

    http://www.cs.ttu.edu/~mgelfond/papers/survey.pdf 

    http://www.mpprogramming.com/Cpp/

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    104/294

    Powered by Enderson Neves Cruz   104

    Linguagens de programação

    Comparativo entre as linguagens

    • An Empirical Comparison of Seven Programming Languages

    Lutz Prechelt - University of Karlsruhe

    Paradigma LPs Estrutura Característica

    ImperativasEstruturada Programa = algoritmo + dados Modularização

    Orientada a objetos Programa = objetos + mensagens Encapsulamento

    Funcionais Programa = funções + funções Raciocínios

    Lógicas Programa = fatos + regras Respostas

    Orientadaaagentes Agent-oriented

    Baseadaemautômatos   Automata-based

    Baseadoemcomponentes   Component-based

     Baseado emfluxo   Flow-based

      Pipeline   Pipelined

    Concatenativa   Concatenative

    Computação simultânea   Concurrentcomputing

      Programação relativística   Relativisticprogramming

    Data-driven   Data-driven

    Declarativa(contraste:Imperativo)   Declarative (contrast: Imperative)

      Constrangimento   Constraint

      Fluxodedados   Dataflow

      Orientadaatabelas(planilhas)   Cell-oriented (spreadsheets)

      Reativo   Reactive

      Lógica   Logic

      Lógicaabdutiva   Abductive logic

      Conjunto resposta   Answerset

      Lógicarest ritiva   Constraintlogic

      Lógicafuncional   Functional logic

      Lógicaindutiva   Inductive logic

    Event-driven   Event-driven

     Orientadaaserviços   Service-oriented

      Time-driven   Time-driven

    Orientadaaexpressões   Expression-oriented

    Orientadaacaracterísticas   Feature-oriented

     NíveldeFunção (contraste:Valor-nível)   Function-level (contrast: Value-level)

    Funcional   Functional

    Genérico   Generic

    Imperativo (contraste:declarativa)   Imperative (contrast: Declarative)

     Processuais   Procedural

    Linguagemorientada   Language-oriented

      Disciplina específica,   Discipline-specific

      Domínioesp ecífico,   Domain-specific

    Orientadaagramática   Grammar-oriented

      Dialética   Dialecting

     Intencional   Intentional

    Metaprogramação   Metaprogramming

      Automático   Automatic

      Reflexo Refletiva   Reflective

      Orientadaaatributos   Attribute-oriented

      Modelo   Template

      Orientadaapolíticas   Policy-based

     Não-estruturadas(contraste:Estruturada)   Non-structured (contrast: Structured)

      Matriz   Array

     Nãodeterminísticas   Nondeterministic

    Computação paralela   Parallel computing

     Orientadaao processo   Process-oriented

    Programação emgrande/pequenaescala  Programmingin thelarge / small

    Semântico   Semantic

    Estruturado(contraste:não estruturadas)   Structured (contrast: Non-structured)

    Modular(contraste:Monolítica)   Modular(contrast: Monolithic)

      Orientadaaobjeto   Object-oriented

      Pelaseparação deinteresses:   Byseparation of concerns:

      Orientadaaatributos   Aspect-oriented

      Orientadaaregras   Role-oriented

      Passagemdemensagens   Subject-oriented

      Baseadaemclasse   Class-based

      Baseadaemprotótipo   Prototype-based

    Relação deparadigmas

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    105/294

    Powered by Enderson Neves Cruz   105

    Sistemas Operacionais

    Introdução

    Definição

    Conjunto de programas que se situa entre ossoftwares aplicativos e o hardware, tendo como

    função:• Gerenciar os recursos do computador (CPU,

    periféricos).

    • Estabelecer uma interface com o usuário.

    • Prover e executar serviços para softwaresaplicativos

    Dispositivos Físicos

    Micro Arquitetura

    Linguagem de Máquina

    Sistema Operacional

    Compiladores e Interpretadores

    Aplicativos

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    106/294

    Powered by Enderson Neves Cruz   106

    Sistemas Operacionais

    Funcionamento do SO

    Os programas solicitam serviços ao sistema operacional através das chamadas de sistema.

    − São semelhantes às chamadas de sub-rotinas, enquanto as chamadas de sub-rotinas sãotransferências para procedimentos normais do programa, as chamadas de sistematransferem a execução para o sistema operacional.

    −  Através de parâmetros, o programa informa exatamente o que necessita.

    − O retorno da chamada de sistema, assim como o retorno de uma sub-rotina, faz com que a

    execução do programa seja retomada a partir da instrução que segue a chamada.

    Núcleo ou kernel Parte do sistema operacional responsável por implementar as chamadas de sistema.

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    107/294

    Powered by Enderson Neves Cruz   107

    Sistemas Operacionais

    Funcionamento do SO

      Mais importante programa de sistema.

      É ativado pelo sistema operacional sempre que um usuário inicia sua sessão de trabalho.

      Interface gráfica de usuário (GUI – Graphical User Interface)

    Programas de sistema (Utilitários)   – Programas que implementam tarefas básicas para autilização do sistema, por exemplo são os utilitários para manipulação de arquivos (exibir arquivo,imprimir arquivo, copiar arquivo, renomeararquivo, listar o conteúdo de diretório, etc.).

    − Muitas vezes são confundidos com o próprio sistema operacional.

    − São executados fora do kernel do sistema operacional.− Eles utilizam as mesmas chamadas de sistema disponíveis aos demais programas.

    interpretador de comandosRecebe comandos do usuário e executá-os.

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    108/294

    Powered by Enderson Neves Cruz   108

    Sistemas Operacionais

    Tarefas do Sistema Operacional

      Gerenciamento do processador 

      Gerenciamento da memória

      Gerenciamento de armazenamento

      Gerenciamento de dispositivos de entrada e saída

      Interface de aplicativos (atendimento a serviços de software)

      Interface do usuário

      Utilitários e softwares de apoio

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    109/294

    Powered by Enderson Neves Cruz   109

    Sistemas Operacionais

    Gerenciamento do processador 

      Garantir que cada processo e aplicativo recebam tempo suficiente do processador para funcionar corretamente;

      Usar quantos ciclos de processador quanto possível para realizar as tarefas.

      A unidade básica do software com a qual o sistema operacional trabalha paraorganizar as tarefas realizadas pelo processador é representada pelo processo  ou

    thread, dependendo do sistema operacional.

    − Faz as chamadas de sistema, ao executar um programa.

      Multitarefa

      Sistemas operacionais simétricos e assimétricos

    operating-system-multitask.swf 

    operating-system-asymmetric.swf 

    operating-system-symmetric.swf 

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    110/294

    Powered by Enderson Neves Cruz   110

    Sistemas Operacionais

    Gerenciamento da memória

      Prover os mecanismos necessários para que os diversos processos compartilhem a memória deforma segura e eficiente.

      Cada processo deve ter memória suficiente para ser executado. Ele não pode utilizar a memóriade outro processo e outro processo também não pode utilizar a sua memória.

      Os diferentes tipos de memória no sistema devem ser bem utilizados para que cada processo sejaexecutado de forma eficaz.

      Para realizar a primeira tarefa, o sistema operacional tem de definir os limites de memória paracada tipo de software e aplicativo.

      A técnica particular que determinado sistema operacional emprega depende, entre outras coisas,de o que a arquitetura do computador em questão suporta.

    operating-system-memory.swf 

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    111/294

    Powered by Enderson Neves Cruz   111

    Sistemas Operacionais

    Gerenciamento da memória

      Memória lógica de um processo é aquela que o processo é capaz de acessar.

    − Os endereços manipulados pelo processo são endereços lógicos

    − As instruções de máquina de um processo especificam endereços lógicos.

      Memória física é aquela implementada pelos circuitos integrados de memória.

    − O endereço físico é aquele usado para endereçar os circuitos integrados de memória.

    Paginação

    Segmentação

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    112/294

    Powered by Enderson Neves Cruz   112

    Sistemas Operacionais

    Gerenciamento de armazenamento

      O sistema de arquivos é a parte do sistema operacional mais visível para os usuários.

      A manipulação de arquivos exige que o sistema de arquivos apresente uma interface coerente esimples, fácil de usar.

      São necessárias estruturas de dados e algoritmos que otimizem os acessos a disco gerados pelamanipulação de arquivos, devido a diferença de velocidade entre os discos e a memória RAM.

     ARQUIVOS 

      Sistemas de arquivos implementam um recurso em software que não existe no hardware.

      O hardware oferece simplesmente espaço em disco, na forma de setores que podem ser acessados individualmente, em uma ordem aleatória.

      O conceito de arquivo, muito mais útil que o simples espaço em disco, é uma abstração criadapelo sistema operacional.

    − Recurso lógico a partir dos recursos físicos existentes no sistema computacional.

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    113/294

    Powered by Enderson Neves Cruz   113

    Sistemas Operacionais

    Gerenciamento de entrada e saída

      O objetivo tentar padronizar ao máximo as rotinas de acesso aos periféricos de forma a reduzir onúmero de primitivas de entrada e saída.

      Também facilita a inclusão de novos dispositivos, minimizando a necessidade de alterar a interfacede programação do usuário.

    Estrutura de quatro camadas do subsistema de gerenciamento de entrada/saída

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    114/294

    Powered by Enderson Neves Cruz   114

    Sistemas Operacionais

    Gerenciamento de entrada e saída

    Drivers de dispositivos (device drivers)

      Conjunto de módulos de software implementadospara fornecer os mecanismos necessários ao

    acesso de um dispositivo de entrada e saídaespecífico.

      O principal objetivo dos drivers de dispositivos é“esconder” as diferenças entre os váriosdispositivos de entrada e saída fornecendo àcamada superior uma “visão uniforme” dessesdispositivos através de uma interface deprogramação única.

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    115/294

    Powered by Enderson Neves Cruz   115

    Sistemas Operacionais

    Gerenciamento de entrada e saída

    E/S Independente do Dispositivo

      A camada de software de E/S independentedo dispositivo implementa procedimentos efunções gerais a todos os dispositivos deentrada e saída:

    − Escalonamento de E/S− Denominação

    − Buferização

    − Cache de dados

    −  Alocação e liberação

    − Direitos de acesso

    − Tratamento de erros

    Unidade 1 – Sistema informatizado

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    116/294

    Powered by Enderson Neves Cruz   116

    Sistemas Operacionais

    Gerenciamento de entrada e saída

    Entrada e Saída a Nível de Usuário

      A “visão” que um usuário possui dos dispositivosde entrada e saída de um sistema é fornecida por 

    uma interface de programação associada asbibliotecas de entrada e saída, ou aos ambientesde desenvolvimento.

      O fabricante do compilador de uma linguagem deprogramação é responsável então por implementar e fornecer rotinas que realizamentrada e saída para um determinado sistema.

      A interface de programação depende da

    linguagem em si.

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    117/294

    Powered by Enderson Neves Cruz

    UNIDADE 2 

    A Informática como ferramenta

    Referências

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    118/294

    Powered by Enderson Neves Cruz

    Banco de Dados

    • KORTH, Henry F., SILBERSCHATZ, Abraham. Sistema de bancos de dados.

    Campus, 2006. 1ª Edição. 808p.• DATE, C. J. Introdução a sistemas de bancos de dados.

    Campus, 2004. 8ª Edição. 900p.

    • ELMASRI, Ramez; NAVATHE, Shamkant B. Sistema de banco de dados.

    Pearson Education do Brasil, 2011. 6ª Edição. 790p.

    • TAKAI, O.K.; ITALIANO I.C.; Ferreira, J.E. Introdução a banco de dados.

    IME – Universidade de São Paulo, 2005. 1ª Edição. 124p.

    • LIU, Ling; ÖZSU, M. Tamer (Eds.). Encyclopedia of Database Systems.Springer US, 2009. 1ª Edição. 3849p.

    • RAMAKRISHNAN, R.; GEHRKE, J.. Database Management Systems.

    McGrow-Hill, 2003. 3ª Edição. 1098p.

    • HEUSER, Carlos Alberto. Projeto de Banco de Dados - Volume 4 da Série Livros Didáticos Informática UFRGS.

     Artmed, 2008. 6ª Edição. 282p.

    • PIVA, Gustavo Dibbern; OLIVEIRA, Wilson J.. Informática, análise e gerenciamento de dados.

    Fundação Padre Anchieta, 2010. 1ª Edição. 106p.

    118

    Unidade 2 – A Informática como ferramenta

  • 8/17/2019 SEAI 2016 - Informática Aplicada

    119/294

    Powered by Enderson Neves Cruz   119

    Bancos de dados

    Conceitos

    Propriedades implícitas

      Representa algum aspecto do mundo real, chamado minimundo ou universo de discurso.

      É uma coleção logicamente coerente de dados com algum significado inerente.

    Uma disposição desordenada de dados não pode ser referenciada como um banco de dados.

      Um BD ou DB é projetado, construído e populado com dados para uma finalidade específ