58
[email protected] LPOO - Linguagem de Programação Orientada a Objetos 1

Introdução aos computadores e à World Wide Web

Embed Size (px)

DESCRIPTION

Introdução aos computadores e à World Wide Web

Citation preview

Page 1: Introdução aos computadores e à World Wide Web

[email protected]

LPOO - Linguagem de Programação Orientada

a Objetos

1

Page 2: Introdução aos computadores e à World Wide Web

[email protected]

Capítulo 1Introdução aos

computadores e à World Wide Web

Page 3: Introdução aos computadores e à World Wide Web

[email protected]

Conteúdo programático

• Introdução aos computadores, à Internet e á WWW• Exercícios de autorrevisão

3

Page 4: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 5: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 6: Introdução aos computadores e à World Wide Web

[email protected]

Antes de você começar

CD-ROM\Welcome.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

Page 7: Introdução aos computadores e à World Wide Web

[email protected]

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 Appledeveloper.apple.com/java/

Plataformas Linuxjava.sun.com/javase/downloads/index.jsp

Page 8: Introdução aos computadores e à World Wide Web

[email protected]

Fonte: Google imagem

Page 9: Introdução aos computadores e à World Wide Web

[email protected]

Introdução aos computadores, à Internet e à WWW

Ciências Naturais e

Exatas

Ciências Humanas

EngenhariasCiências da

Saúde

Fonte: Google imagem

Page 10: Introdução aos computadores e à World Wide Web

[email protected]

Introdução aos computadores, à Internet e à WWW

Fonte: Google imagem

Page 11: Introdução aos computadores e à World Wide Web

[email protected]

Introdução aos computadores, à Internet e à WWW

Fonte: Google imagem

Page 12: Introdução aos computadores e à World Wide Web

[email protected]

Computadores: hardware e software

HardwareSoftware

Fonte: Google imagem

Page 13: Introdução aos computadores e à World Wide Web

[email protected]

Unidades Lógicas do Computador

Unidade de entrada

Unidade de saída

Unidade de memória

ULACPU

Page 14: Introdução aos computadores e à World Wide Web

[email protected] 14

Computação pessoal distribuída e computação cliente/servidor

IBM Personal ComputerFonte: Google imagem

Computação DistribuídaFonte: Google imagem

Estações de TrabalhoFonte: Google imagem

Arquitetura Cliente/ServidorFonte: Google imagem

Page 15: Introdução aos computadores e à World Wide Web

[email protected]

A Internet e a World Wide Web

Fonte: Google imagem

Page 16: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 17: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 18: Introdução aos computadores e à World Wide Web

[email protected]

Linguagem assembly

Linguagem assemblyUtiliza 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

Page 19: Introdução aos computadores e à World Wide Web

[email protected]

Linguagens de alto nível

grossPay = basePay + overTimePay

Page 20: Introdução aos computadores e à World Wide Web

[email protected]

Linguagens de alto nível

C

C++

LANs

Visual Basic

Visual C++

Java

C#

Page 21: Introdução aos computadores e à World Wide Web

[email protected]

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 JAVAFonte: 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

Page 22: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 23: Introdução aos computadores e à World Wide Web

[email protected]

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)

Page 24: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 25: Introdução aos computadores e à World Wide Web

[email protected]

Documentação da Java API

http://www.oracle.com/technetwork/java/javase/documentation/index.html

http://download.oracle.com/javase/

Observação de engenharia de software I.IUtilize 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.

Page 26: Introdução aos computadores e à World Wide Web

[email protected]

Ambiente típico de desenvolvimento Java

Programas Java

Edição{1}

Fases

Compilação{2}

Carregamento{3}

Verificação{4}

Execução{5}

Page 27: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 28: Introdução aos computadores e à World Wide Web

[email protected]

Para desenvolvimento de sistemas de informações substanciais

Ambientes de Desenvolvimento Integrado (Integrated

Development Environments – IDEs)

NetBeans – www.netbeans.orgEclipse – www.eclipse.org

Page 29: Introdução aos computadores e à World Wide Web

[email protected]

Fase de Compilação

� Código-fonte → Código de máquinajavac 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

Page 30: Introdução aos computadores e à World Wide Web

[email protected]

JVMAplicativo de

software

Simula um computador, mas oculta o SO e o hardware subjacentes dos programas que interagem com ela.

.NETda 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

Page 31: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 32: Introdução aos computadores e à World Wide Web

[email protected]

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.

Page 33: Introdução aos computadores e à World Wide Web

[email protected]

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.

Page 34: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 35: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 36: Introdução aos computadores e à World Wide Web

[email protected]

Conceitos básicos da tecnologia de objetos

Objetos(Terminologia-chave da POO)

Page 37: Introdução aos computadores e à World Wide Web

[email protected]

Programas de computador

(aplicativos Java)

Compostos de muitos objetos de software

interativos

Page 38: Introdução aos computadores e à World Wide Web

[email protected]

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)

Page 39: Introdução aos computadores e à World Wide Web

[email protected]

Diferentes Objetos

Podem ter atributos

semelhantes

Podem exibir comportamentos

semelhantes

Bebês e adultos

Humanos e chimpanzés

Podemos fazer comparações

entre:

Page 40: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 41: Introdução aos computadores e à World Wide Web

[email protected]

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)

Page 42: Introdução aos computadores e à World Wide Web

[email protected]

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?

Page 43: Introdução aos computadores e à World Wide Web

[email protected]

� 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.

INTERFACESCARRO EM MOVIMENTO

Page 44: Introdução aos computadores e à World Wide Web

[email protected]

� 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).

Page 45: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 46: Introdução aos computadores e à World Wide Web

[email protected]

46

Classesx

Objetosy

y = f(x)

Plantas arquitetônicas

z

Casast

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.

Page 47: Introdução aos computadores e à World Wide Web

[email protected]

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.

Page 48: Introdução aos computadores e à World Wide Web

[email protected]

Um OOD de um Banco

Classe

banco

Classe caixa de banco

Classecliente

Classe

dinheiro

Classe gaveta de dinheiro

Classecofre A

SS

OC

IAÇ

ÕE

S

Page 49: Introdução aos computadores e à World Wide Web

[email protected]

Software

classe

classeclasse

classe

classe

classe

classe

classe

classeclasse

�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

Page 50: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 51: Introdução aos computadores e à World Wide Web

[email protected]

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;� ...

Page 52: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 53: Introdução aos computadores e à World Wide Web

[email protected]

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 designque atenda a esses requisitos

Ajudar na decisão de como o sistema deve

fazê-lo (escrita do programa)

Page 54: Introdução aos computadores e à World Wide Web

[email protected]

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

Page 55: Introdução aos computadores e à World Wide Web

[email protected]

UML

Unified Modeling Language

Linguagem gráfica para comunicar os resultados de qualquer processo

OOAD

Fonte: Google imagens

12

3

Onde:1 – Grady Booch2 – James Rumbaugh3 - Ivar Jacobson

Page 56: Introdução aos computadores e à World Wide Web

[email protected]

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.

Page 57: Introdução aos computadores e à World Wide Web

[email protected]

Para saber mais sobre a UML

www.omg.org www.deitel.com/UML

Page 58: Introdução aos computadores e à World Wide Web

[email protected]

Bibliografia básica