Introdução aos computadores e à World Wide Web

436 views

Published on

Introdução aos computadores e à World Wide Web

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
436
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Introdução aos computadores e à World Wide Web

  1. 1. © cicero@engcomp.uema.br LPOO - Linguagem de Programação Orientada a Objetos 1
  2. 2. © cicero@engcomp.uema.br 22 Capítulo 1 Introdução aos computadores e à World Wide Web
  3. 3. © cicero@engcomp.uema.br Conteúdo programático • Introdução aos computadores, à Internet e á WWW • Exercícios de autorrevisão 3
  4. 4. © cicero@engcomp.uema.br Recursos para o aluno Java SE Development Kit (JDK) 6 Update 11 IDE do Eclipse para desenvolvedores Java EE versão 3.4.1 NetBeans IDE Version 6.5 All Bundle MySQL 5.0 Community Server MySQL Connector/J 4 Fonte: Google imagem
  5. 5. © cicero@engcomp.uema.br Boletim Deitel Buzz On-line gratuito via e-mail • Anúncios Resource Center (comentários sobre tendências e desenvolvimento do setor); • Links para artigos gratuitos; • Agendas de lançamento de produtos; • Erratas; • Depoimentos de leitores e usuários; • www.deitel.com/ResourceCenters.html Cadastro: www.deitel.com/newsletter/subscribe.html 5
  6. 6. © cicero@engcomp.uema.br Antes de você começar CD-ROMWelcome.htm para abrir a interface do CD Student, conforme ilustra a figura abaixo. Depois, clique no link Software para examinar os requisitos de sistema de hardware e software. 6
  7. 7. © cicero@engcomp.uema.br 7 Instalando o software O CD contém o software necessário para compilar e executar os exemplos do curso na plataforma Windows. Para outras plataformas, tem-se que baixar o software. Plataformas Apple developer.apple.com/java/ Plataformas Linux java.sun.com/javase/downloads/index.jsp
  8. 8. © cicero@engcomp.uema.br 8 Fonte: Google imagem
  9. 9. © cicero@engcomp.uema.br 9 Introdução aos computadores, à Internet e à WWW Ciências Naturais e Exatas Ciências Humanas Engenharias Ciências da Saúde Fonte: Google imagem
  10. 10. © cicero@engcomp.uema.br 10 Introdução aos computadores, à Internet e à WWW Fonte: Google imagem
  11. 11. © cicero@engcomp.uema.br 11 Introdução aos computadores, à Internet e à WWW Fonte: Google imagem
  12. 12. © cicero@engcomp.uema.br 12 Computadores: hardware e software Hardware Software Fonte: Google imagem
  13. 13. © cicero@engcomp.uema.br 13 Unidades Lógicas do Computador Unidade de entrada Unidade de saída Unidade de memória ULACPU
  14. 14. © cicero@engcomp.uema.br 14 Computação pessoal distribuída e computação cliente/servidor IBM Personal Computer Fonte: Google imagem Computação Distribuída Fonte: Google imagem Estações de Trabalho Fonte: Google imagem Arquitetura Cliente/Servidor Fonte: Google imagem
  15. 15. © cicero@engcomp.uema.br 15 A Internet e a World Wide Web Fonte: Google imagem
  16. 16. © cicero@engcomp.uema.br 16 Linguagens de máquina, linguagem assembly e linguagens de alto nível Linguagens de máquina Linguagens de assembly Linguagens de alto nível Tipos de linguagens
  17. 17. © cicero@engcomp.uema.br 17 Linguagem de máquina INSTRUÇÃO EM LM DESCRIÇÃO +1300042774 adicionar o pagamento de horas extras à base de pagamentos e armazena o resultado como salário bruto. +1400593419 +1200274027
  18. 18. © cicero@engcomp.uema.br 1818 Linguagem assembly Linguagem assembly Utiliza abreviações em inglês para representar operações elementares. Programas tradutores chamados assemblers foram desenvolvidos para converter os primeiros programas de linguagem assembly em linguagem de máquina. Exemplo: INSTRUÇÃO EM LA DESCRIÇÃO load basepay adicionar o pagamento de horas extras à base de pagamentos e armazena o resultado como salário bruto. add overpay store grosspay
  19. 19. © cicero@engcomp.uema.br 191919 Linguagens de alto nível grossPay = basePay + overTimePay
  20. 20. © cicero@engcomp.uema.br 20 Linguagens de alto nível C C++ LANs Visual Basic Visual C++ Java C#
  21. 21. © cicero@engcomp.uema.br 21 História do Java 1991 – Início do Green Project, na Sun Microsystems, foi o berço do Java (uma linguagem de programação orientada a objetos). Os mentores do projeto eram Patrick Naughton, Mike Sheridan e James Gosling. James A. Gosling, pai da linguagem de programação JAVA Fonte: Wikipédia Objetivos do Green Project Não criar uma nova LP; Antecipar e planejar a “próxima onda” do mundo digital; Acreditavam que haveria uma convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia. Gerou o *7 (StarServen) – controle remoto com uma interface gráfica touchscreen. Criado um mascote, o DUKE – guia virtual que ajudava e ensinava o usuário a utilizar o equipamento.DUKE, mascote do Java Fonte: Wikipédia
  22. 22. © cicero@engcomp.uema.br 2222 História do Java A nova linguagem de programação para o *7 OaK (carvalho, uma árvore que James A. Gosling podia observar quando olhava pela sua janela). Próximo passo: Encontrar um mercado para o *7 Controlar televisões e vídeo por demanda com equipamento Internet (OaK foi adaptado para a rede mundial de computadores Maio de 1995 – nova versão do OaK que foi rebatizada para Java Aplicações poderiam ser executadas dentro dos navegadores nos Applets Java
  23. 23. © cicero@engcomp.uema.br 232323 História do Java 2004 – Java atingiu a marca de 3 milhões de desenvolvedores em todo mundo e atualmente é uma referência no mercado de desenvolvimento de software para: Internet Browsers (navegadores) Mainframes Sistemas Operacionais Celulares Palmtops Cartões inteligentes (smart card)
  24. 24. © cicero@engcomp.uema.br 24 Bibliotecas de classe do Java Programas Java consistem em partes chamadas classes. As classes incluem partes chamadas métodos que realizam tarefas e retornam informações quando as tarefas são concluídas. Pode-se criar cada parte necessária para formar os programas Java. Entretanto, a maioria dos programadores Java tira proveito das ricas coleções de classes existentes nas bibliotecas de classe Java, que também são conhecidas como Java APIs (do inglês Application Programming Interfaces). Própria linguagem Java – programar as próprias classes Classes nas extensas bibliotecas de classe Java
  25. 25. © cicero@engcomp.uema.br 25 Documentação da Java API http://www.oracle.com/technetwork/java/jav ase/documentation/index.html http://download.oracle.com/javase/ Observação de engenharia de software I.I Utilize uma abordagem de bloco de construção para criar programas. Evite reinventar a roda – utilize partes existentes onde quer que possível. Essa reutilização de software é um benefício fundamental da programação orientada a objetos.
  26. 26. © cicero@engcomp.uema.br 26 Ambiente típico de desenvolvimento Java Programas Java Edição {1} Fases Compilação {2} Carregamento {3} Verificação {4} Execução {5}
  27. 27. © cicero@engcomp.uema.br 27 Fase de Edição Editar um arquivo (código-fonte) com um programa editor; Salva em disco secundário com extensão .java (contém o código-fonte Java. Exemplos de editores Java vi e emacs (Linux) Notepad (Windows) Ediplus TextPad jEdit Disco *.java
  28. 28. © cicero@engcomp.uema.br 28 Para desenvolvimento de sistemas de informações substanciais Ambientes de Desenvolvimento Integrado (Integrated Development Environments – IDEs) NetBeans – www.netbeans.org Eclipse – www.eclipse.org
  29. 29. © cicero@engcomp.uema.br 2929 Fase de Compilação Código-fonte → Código de máquina javac Welcome.java → Welcome.class (versão compilada do programa); Compilador Java converte o código-fonte Java em bytecodes que representam as tarefas a serem executadas na fase de execução (fase 5); Os bytecodes são executados pela Java Virtual Machine (JVM) – uma parte do JDK (Java Development Kit) e a base da plataforma Java
  30. 30. © cicero@engcomp.uema.br 30 JVM Aplicativo de software Simula um computador, mas oculta o SO e o hardware subjacentes dos programas que interagem com ela. .NET da Microsoft Utiliza uma arquitetura de máquina virtual semelhante. Ao contrário da LM, que é dependente do hardware específico de computador, os bytecodes são independentes de plataforma, ou seja, eles são portáveis. executados
  31. 31. © cicero@engcomp.uema.br 31 Fase de carregamento de um programa na memória A JVM armazena o programa na memória para executá-lo Carregador de classe Disco . . . Memória primária O carregador de classe lê os arquivos .class que contém bytecodes a partir do disco e coloca esses bytecodes na memória
  32. 32. © cicero@engcomp.uema.br 32 Verificação de bytecode Enquanto as classe são carregadas, o verificador de bytecodes examina seus bytecodes para assegurar que eles são válidos e não violam restrições de segurança do Java. Verificador de bytecodes . . . Memória primária O verificador de bytecode confirma que todos os bytecodes são válidos e não violam restrições de segurança do Java.
  33. 33. © cicero@engcomp.uema.br 3333 Execução A JVM executa os bytecodes do programa, realizando assim as ações especificadas pelo programa. Java Virtual Machine (JVM) . . . Memória primária Para executar o programa, a JVM lê os bytecodes e os compila (isto é, traduz) no momento certo (ou Just-In- Time – JIT) para uma linguagem que o computador possa entender. JIT – ocorre a análise dos bytecodes à medida que eles são interpretados, procurando host spots (pontos ativos) – partes dos bytecodes que executam com freqüência.
  34. 34. © cicero@engcomp.uema.br 34 Estudo de caso de engenharia de software: introdução à tecnologia de objetos e à UML •••• Orientação a objetos Uma maneira natural de pensar o mundo e escrever programas de computador • Design Orientado a Objetos Pensamento em orientação a objetos; Introduzir a Unified Modeling Language (UML) – uma linguagem gráfica que permite projetar sistemas de software para utilizar uma notação padrão da indústria para representá-las. •••• Introdução da terminologia e os conceitos de LPOO
  35. 35. © cicero@engcomp.uema.br 3535 Estudo de caso de engenharia de software Analisar um típico documento de requisitos que descreve um sistema de software (o ATM) a ser construído Determinar os objetos necessários para implementar o sistema Determinar os atributos que os objetos terão Determinar os atributos que os objetos terão Determinar os comportamentos que esses objetos exibirão Especificar como os objetos interagem para atender os requisitos de sistema
  36. 36. © cicero@engcomp.uema.br 36 Conceitos básicos da tecnologia de objetos Objetos (Terminologia- chave da POO)
  37. 37. © cicero@engcomp.uema.br 37 Programas de computador (aplicativos Java) Compostos de muitos objetos de software interativos
  38. 38. © cicero@engcomp.uema.br 38 Objetos (Terminologia- chave da POO)Animados inanimados Objetos “vivos” Se movem e fazem coisas Não se movem por conta própriaObjetos de ambos os tipos têm algo em comum – todos eles têm atributos Exibem comportamentos Tamanho, forma, cor, peso, ... Carro (acelera, freia, desvia) Toalha (absorve água)
  39. 39. © cicero@engcomp.uema.br 39 Diferentes Objetos Podem ter atributos semelhantes Podem exibir comportamentos semelhantes Bebês e adultos Humanos e chimpanzés Podemos fazer comparações entre:
  40. 40. © cicero@engcomp.uema.br 40 O Desenho Orientado a Objetos (Object- Oriented Design – OOD) Modela software em termos semelhantes àqueles que as pessoas utilizam para descrever objetos do mundo real; Tira proveito de relacionamentos de classe, em que os objetos de certa classe, como uma classe de veículos, têm as mesmas características – carros, caminhões, patins têm muito em comum; Tira proveito dos relacionamentos de herança, dos quais as classes de objetos novas são derivadas absorvendo-se características de classes existente e adicionando-se características únicas dessas mesmas classes Um objeto de classe “conversível” certamente tem as características da classe mais geral “automóvel”, mas, mais especificamente, seu capô sobe e desce; Fornece uma maneira natural e intuitiva de visualizar o processo de design de software – a saber, modelar objetos por seus atributos e comportamentos assim como descrevemos objetos do mundo real; A OOD também modela a comunicação entre objetos • Pessoas trocam mensagens entre si Um sargento manda um soldado permanecer em atenção; Objetos também se comunicam via mensagens
  41. 41. © cicero@engcomp.uema.br 41 Um objeto conta bancária Pode receber uma mensagem para deduzir seu saldo em certa quantia porque o cliente retirou essa quantia em dinheiro (((((( Saldo + Saldo - O Desenho Orientado a Objetos (Object- Oriented Design – OOD)
  42. 42. © cicero@engcomp.uema.br 42 O Desenho Orientado a Objetos (Object- Oriented Design – OOD) O OOD encapsula (isto é, empacota) atributo e operações (comportamentos) em objetos – os atributos e operações de um objeto estão intimamente ligados; Os objetos têm a propriedade de ocultamento de informações Isso significa que podem saber como se comunicar com outros por meio de interfaces bem definidas, mas normalmente eles não têm permissão para saber como os outros objetos são implementados Os detalhes de implementação são ocultados dentro dos próprios objetos. O que significa isso?
  43. 43. © cicero@engcomp.uema.br 43 Podemos dirigir um carro sem conhecer os detalhes de como os motores, transmissões, freios e sistemas de escapamento funcionam internamente – contanto que saibamos utilizar o acelerador, o freio, a roda e assim por diante; O ocultamento de informações é crucial à boa engenharia de software. INTERFACES CARRO EM MOVIMENTO
  44. 44. © cicero@engcomp.uema.br 44 Linguagens como Java são linguagens orientadas a objetos; A programação nessa linguagem, chamada programação orientada a objetos (Object-Oriented Programming – OPP), permite-lhe implementar um design orientado a objetos como um sistema funcional; Linguagens como o C, por outro lado, são procedurais, então a programação tende a ser orientada para a ação. Linguagem C (a unidade de programação é a função) Grupos de ações que realizam alguma tarefa comum são reunidos em funções e as funções são agrupadas para formar programas. Linguagem Java (a unidade de programação é a classe) A partir da qual os objetos por fim são instanciados (criados). Classes Java contêm métodos (que implementam operações e são semelhantes a funções na linguagem C) bem como campos (que implementam atributos).
  45. 45. © cicero@engcomp.uema.br 45 Programadores em Java concentram-se na criação de classes. Cada classe contém campos e o conjunto de métodos que manipulam os campos e fornecem serviços aos clientes (isto é, outras classes que utilizam a classe). O programador utiliza classes existentes como blocos de construção para construir novas classes
  46. 46. © cicero@engcomp.uema.br 46 Classes x Objetos y y = f(x) Plantas arquitetônicas z Casas t t = f(z) Assim como podemos construir muitas casas a partir de uma planta, podemos instanciar (criar) muitos objetos a partir de uma classe; Não podemos fazer refeições na cozinha de uma planta; isso só é possível em uma cozinha real.
  47. 47. © cicero@engcomp.uema.br 47 classe X classe Y classe Z classe T Classes diferentes podem se relacionar uma com as outras classes. Por exemplo, em um OOD de um banco, a classe “caixa de banco” precisa se relacionar com a classe “cliente”, a classe “gaveta de dinheiro”, a classe “cofre”; Esses relacionamentos são chamados de associações.
  48. 48. © cicero@engcomp.uema.br 48 Um OOD de um Banco Classe banco Classe caixa de banco Classe cliente Classe dinheiro Classe gaveta de dinheiro Classe cofre ASSOCIAÇÕES
  49. 49. © cicero@engcomp.uema.br 49 Software classe classeclasse classe classe classe classe classe classe classe Sistemas de software futuros reutilizem as classes; Grupos de classes relacionadas são freqüentemente empacotados como componentes reutilizáveis; A reutilização de classes existentes ao construir novas classes e programas economiza tempo e esforço classe
  50. 50. © cicero@engcomp.uema.br 50 BENEFÍCIOS DA REUTILIZAÇÃO DE CLASSES EXISTENTES AO CONSTRUIR NOVAS CLASSES E PROGRAMAS Economia de tempo e esforço para escrever novos programas Ajuda a construir sistemas mais confiáveis e eficientes Passam por extensos testes; Depuração; Ajuste de desempenho A REUTILIZAÇÃO
  51. 51. © cicero@engcomp.uema.br 51 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Logo estaremos escrevendo programas (aplicativos) em Java; Como criar os códigos para esses programas? – ligar o computador e começar a digitar – abordagem funciona para pequenos programas, tais como: programa de impressão de texto; exibindo texto com printf; somando inteiros; declarando uma classe com um método e instanciando um objeto de uma classe; decidir se o aluno estar ou não aprovado; ...
  52. 52. © cicero@engcomp.uema.br 52 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Criar um sistema de software para controlar milhares de caixas eletrônicos (ATM) para um banco importante? Ou se fôssemos trabalhar em uma equipe de 1.000 desenvolvedores de software para construir o próximo sistema de controle de tráfego aéreo dos Estados Unidos? 1 2 Para projetos tão grandes e complexos, você não sentaria e simplesmente começaria a escrever programas
  53. 53. © cicero@engcomp.uema.br 53 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) Para criar melhores soluções devemos seguir um processo detalhado para analisar os requisitos de um projeto, isto é: O que o meu sistema deve fazer? Para desenvolver um design que atenda a esses requisitos Ajudar na decisão de como o sistema deve fazê-lo (escrita do programa)
  54. 54. © cicero@engcomp.uema.br 54 Introdução à análise e desenho orientado a objetos (Object-Oriented Analysis and Design – OOAD) O processo que envolve analisar e projetar o sistema de software de um ponto de vista orientado a objetos, ele é chamado de processo de análise e design orientado a objetos (Object-Oriented Analysis and Design – OOAD) OOAD – termo genérico para o processo de análise de um problema e desenvolvimento de uma abordagem para resolvê-lo
  55. 55. © cicero@engcomp.uema.br 55 UML Unified Modeling Language Linguagem gráfica para comunicar os resultados de qualquer processo OOAD Fonte: Google imagens 1 2 3 Onde: 1 – Grady Booch 2 – James Rumbaugh 3 - Ivar Jacobson
  56. 56. © cicero@engcomp.uema.br 56 O que é a UML? Esquema de representação gráfica mais amplamente utilizado para modelar sistemas de software orientado a objetos É extensível É capaz de ser aprimorada com novos recursos e é independente de qualquer processo OOAD particular.
  57. 57. © cicero@engcomp.uema.br 57 Para saber mais sobre a UML www.omg.org www.deitel.com/UML
  58. 58. © cicero@engcomp.uema.br 58 Bibliografia básica

×