Introdução Geral à Plataforma Java ou Desenvolvimento Java de Sistemas na Web, em Celulares e na TV Digital Interativa

Tamanho: px
Começar a partir da página:

Download "Introdução Geral à Plataforma Java ou Desenvolvimento Java de Sistemas na Web, em Celulares e na TV Digital Interativa"

Transcrição

1 Introdução Geral à Plataforma Java ou Desenvolvimento Java de Sistemas na Web, em Celulares e na TV Digital Interativa Prof. Dr. Jorge H C Fernandes jorgehcfernandes@uol.com.br CIC/UnB DIMAp/UFRN

2 Introdução Geral à Plataforma Java Apresentação teórico-prática sobre os conceitos em amplitude da plataforma Java no apoio ao desenvolvimento de software e sistemas Exemplos de aplicações da linguagem Java na: Programação de pequenos programas em computadores pessoais Desenvolvimento de módulos de sistemas web Software para execução em dispositivos móveis como celulares e PDAs Distribuição via broadcast e execução em equipamentos para televisão digital interativa (set top box)

3 Parte 1 Conceitos no desenvolvimento de software e sistemas Sofware e Sistemas Máquinas e Linguagens Cadeia de Valor na Convergência Digital Middleware

4 Conceitos no desenvolvimento de software e sistemas O que é um software e o que é um sistema Quando o software é livre

5 public class Calc { import java.awt.*; private int estadointeracao; import java.awt.event.*; Software private int operacaoselecionada; public class CalcVisual extends Frame { private long acumulador0; // Cria os painéis private long acumulador1; Panel panelteclas = new Panel(); private static final int NENHUMA Panel panelteclastopo = 0; = new button_9.setlabel("9"); Panel(); } private static final int SOMA Panel = 1; panelteclasnumericas = button_soma.setlabel("+"); new Panel(); private static final int SUBTRACAO = 2; }); button_igual.setlabel("="); private static final int ACUMULANDO_0 // cria os gerenciadores = 0; de layout dos painéis private static final int ACUMULANDO_1 BorderLayout BorderLayoutPrincipal = 1; = new BorderLayout(); public Calc() {} BorderLayout BorderLayoutTodasAsTeclas = new BorderLayout(); long soma() { GridLayout gridlayoutclearcebackspace = new GridLayout(); operacaoselecionada = GridLayout SOMA; gridlayoutteclasnumericaseoperacoes = new GridLayout(); estadointeracao = ACUMULANDO_1; return acumulador0; // cria a área de display da calculadora } TextField textfielddisplay = new TextField(); } long um() {return numerodigitado(1);} }); long dois() {return numerodigitado(2);} // cria os botões da calculadora long numerodigitado(int valor) Button { buttonbackspace = new Button(); if (estadointeracao == ACUMULANDO_0) Button buttonc = new { Button(); acumulador0 = acumulador0 Button * buttonce 10 + valor; = new Button(); estadointeracao = ACUMULANDO_0; Button button_0 = new Button(); return acumulador0; Button button_1 = new Button(); } else if (estadointeracao Button == ACUMULANDO_1) button_2 = new Button(); { acumulador1 = acumulador1 Button * button_ valor; = new Button(); } estadointeracao = ACUMULANDO_1; Button button_4 = new Button(); }); return acumulador1; Button button_5 = new Button(); } Button button_6 = new Button(); return 0; Button button_7 = new Button(); racoes); } Button button_8 = new Button(); long igual() { Button button_9 = new Button(); long resultado = 0; Button button_pontodecimal = new Button(); if (operacaoselecionada Button == SOMA) button_igual { = new Button(); resultado = acumulador0 Button + acumulador1; button_soma = new Button(); } p button_2.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent button_2_actionperformed(e); // cria o tratador de evento para o botão "+" button_soma.addactionlistener(new // adiciona alguns botões no painel de teclas superior java.awt.event.actionlistener() { gridlayoutclearcebackspace.setcolumns(3); public void actionperformed(actionevent panelteclastopo.setlayout(gridlayoutclearcebackspace); button_soma_actionperformed(e); panelteclastopo.add(buttonbackspace, null); panelteclastopo.add(buttonce, null); panelteclastopo.add(buttonc, null); // cria o tratador de evento para o botão "-" button_subtracao.addactionlistener(new // adiciona alguns botões java.awt.event.actionlistener() no painel de teclas inferior { gridlayoutteclasnumericaseoperacoes.setrows(4); public void actionperformed(actionevent gridlayoutteclasnumericaseoperacoes.setcolumns(5); button_subtracao_actionperformed(e); gridlayoutteclasnumericaseoperacoes.sethgap(4); gridlayoutteclasnumericaseoperacoes.setvgap(4); // cria o tratador de evento para o botão "*" panelteclasnumericas.setlayout(gridlayoutteclasnumericase button_mult.addactionlistener(new java.awt.event.actionlistener() { panelteclasnumericas.add(button_7, null); public void actionperformed(actionevent panelteclasnumericas.add(button_8, null); button_mult_actionperformed(e); panelteclasnumericas.add(button_9, null); lt l N i dd(b tt di i ll)

6 Software Conjunto organizado de instruções e descrições de dados Escrito em uma (ou mais) linguagens compreensíveis por um sistema de computação

7 Sistema um conjunto de elementos inter-relacionados que interagem no desempenho de uma função Sistema econômico mantém os recursos da economia em circulação Sistema Computacional atende a uma determinada necessidade de processamento de informações de usuários Sistema Solar Manter os planetas girando em torno do sol Sistema de injeção eletrônica regular a mistura ótima de combustível e ar para o funcionamento do motor Sistema digestivo incorporar, ao corpo de um animal, a energia e matéria contidas em alimentos Biosfera manter a vida sobre a terra

8 Um Sistema De Computador é uma Máquina O Usuário Conversa com a Máquina Sistema de Computador (Estendido Pelo Software) Saída (output) Entrada (input) Usuário

9 Uma Máquina de Calcular

10 Uma Máquina para Analisar Programas Java

11 Um Sistema para Desenhar ou Máquina de Desenhar

12 Um Sistema ou Máquina para Tratar Imagens

13 Um Sistema ou Máquina, que Simula um Celular, que simula um jogo de damas

14 Várias Máquinas Coexistem em um Sistema de Computador em um Mesmo Instante de Tempo

15 Um Sistema de Computador Programável é uma Fábrica de Máquinas Extensível E cada software descreve como fábricar uma máquina E o programador constrói estas descrições de máquinas conforme especificações do que a máquina deve fazer quando em funcionamento

16 O uso da Máquina é feito por uma Conversa, que é Baseada uma Linguagem Linguagem A (Conversar com Celular) Linguagem B (Conversar com Paint) Linguagem C (Conversar com Calculadora)

17 A Linguagem da Máquina Paint

18 A Linguagem da Máquina Calculadora

19 Vamos conversar com Algumas Máquinas? Converse com o Paint Converse com o GIMP Converse com o Powerpoint! Converse com o sistema operacional

20 No que consiste o conversar? Num diálogo com a máquina Na locução de frases que são construídas numa linguagem com sintaxe e semântica próprias

21 Quando uma máquina faz sucesso? Quando a conversa entre usuário e máquina é produtiva Quando do diálogo são produzidos resultados que satisfazem as necessidades do usuário

22 Máquinas Complexas e Hierarquizadas

23 Usuário Uso Máquina n+1 Interpretação do Software Software Carga Máquina n

24 Um Sistema Computacional Usual Máquina n( MCSW) Software em Execução Interpretação... Máquina 2 ( MCSW) Software em Execução Uso Interpretação Software Carga... Software Carga Máquina 1 ( MCSW) Software em Execução Interpretação Uso Software Carga Máquina 0 MPU Uso

25 usuário echo.txt (software) Loader.class (software) input output input output input output Loading Loader (machine) Echo (machine) JVM Java Virtual Machine (machine) Interpretation vc0 (machine) Interpretation java.exe (software) input output cmd (machine) Loading Interpretation Sistema Operacional (machine)

26 Uma Máquina explorer criada pelo sistema operacional input Usuário do Explorer explorer.exe (software) Read output explorer (machine) Interpretation Usuário do Sistema Operacional input output cmd (machine) Loading Sistema Operacional (machine)

27 public class Calc { private int estadointeracao; private int operacaoselecionada; private long acumulador0; private long acumulador1; private static final int NENHUMA = 0; private static final int SOMA = 1; private static final int SUBTRACAO = 2; private static final int ACUMULANDO_0 = 0; private static final int ACUMULANDO_1 = 1; public Calc() {} long soma() { operacaoselecionada = SOMA; estadointeracao = ACUMULANDO_1; return acumulador0; } long um() {return numerodigitado(1);} long dois() {return numerodigitado(2);} long numerodigitado(int valor) { if (estadointeracao == ACUMULANDO_0) { acumulador0 = acumulador0 * 10 + valor; estadointeracao = ACUMULANDO_0; return acumulador0; } else if (estadointeracao == ACUMULANDO_1) { acumulador1 = acumulador1 * 10 + valor; estadointeracao = ACUMULANDO_1; return acumulador1; } return 0; } long igual() { long resultado = 0; if (operacaoselecionada == SOMA) { Você Usa ou Testa Software? resultado = acumulador0 + acumulador1; } reset(); return resultado; } long reset() { estadointeracao = ACUMULANDO_0; operacaoselecionada = NENHUMA; acumulador0 = 0; acumulador1 = 0; return acumulador0; } } import java.awt.*; import java.awt.event.*; public class CalcVisual extends Frame { // Cria os painéis Panel panelteclas = new Panel(); Panel panelteclastopo = new Panel(); Panel panelteclasnumericas = new Panel(); // cria os gerenciadores de layout dos painéis BorderLayout BorderLayoutPrincipal = new BorderLayout(); BorderLayout BorderLayoutTodasAsTeclas = new BorderLayout(); GridLayout gridlayoutclearcebackspace = new GridLayout(); GridLayout gridlayoutteclasnumericaseoperacoes = new GridLayout(); // cria a área de display da calculadora TextField textfielddisplay = new TextField(); // cria os botões da calculadora Button buttonbackspace = new Button(); Button buttonc = new Button(); Button buttonce = new Button(); Button button_0 = new Button(); Button button_1 = new Button(); Button button_2 = new Button(); Button button_3 = new Button(); Button button_4 = new Button(); Button button_5 = new Button(); Button button_6 = new Button(); Button button_7 = new Button(); Button button_8 = new Button(); Button button_9 = new Button(); Button button_pontodecimal = new Button(); Button button_igual = new Button(); Button button_soma = new Button(); Button button_subtracao = new Button(); Button button_mult = new Button(); Button button_divisao = new Button(); Button button_percento = new Button(); Button button_raiz = new Button(); Button button_invertesinal = new Button(); Button button_reciproco = new Button(); // cria o "modelo de dados", isto é, o próprio objeto calculadora // que irá efetivamente realizar os cálculos Calc calc = new Calc(); // construtor da parte visual da calculadora public CalcVisual() { try { buildgui(); } catch (Exception e) { e.printstacktrace(); } } /** * Constroi os elementos da interface grafica da calculadora */ private void buildgui() throws Exception { // ajusta as propriedades display textfielddisplay.settext("0"); // modifica cores de alguns botões buttonbackspace.setforeground(color.red); buttonc.setforeground(color.red); buttonce.setforeground(color.red); // atribui rótulos aos botões da calculadora buttonc.setlabel("c"); buttonce.setlabel("ce"); buttonbackspace.setlabel("backspace"); button_0.setlabel("0"); button_1.setlabel("1"); button_2.setlabel("2"); button_3.setlabel("3"); button_4.setlabel("4"); button_5.setlabel("5"); button_6.setlabel("6"); button_7.setlabel("7"); button_8.setlabel("8"); button_9.setlabel("9"); button_soma.setlabel("+"); button_igual.setlabel("="); // adiciona alguns botões no painel de teclas superior gridlayoutclearcebackspace.setcolumns(3); panelteclastopo.setlayout(gridlayoutclearcebackspace); panelteclastopo.add(buttonbackspace, null); panelteclastopo.add(buttonce, null); panelteclastopo.add(buttonc, null); // adiciona alguns botões no painel de teclas inferior gridlayoutteclasnumericaseoperacoes.setrows(4); gridlayoutteclasnumericaseoperacoes.setcolumns(5); gridlayoutteclasnumericaseoperacoes.sethgap(4); gridlayoutteclasnumericaseoperacoes.setvgap(4); panelteclasnumericas.setlayout(gridlayoutteclasnumericaseoperacoes); panelteclasnumericas.add(button_7, null); panelteclasnumericas.add(button_8, null); panelteclasnumericas.add(button_9, null); panelteclasnumericas.add(button_divisao, null); panelteclasnumericas.add(button_raiz, null); panelteclasnumericas.add(button_4, null); panelteclasnumericas.add(button_5, null); panelteclasnumericas.add(button_6, null); panelteclasnumericas.add(button_mult, null); panelteclasnumericas.add(button_percento, null); panelteclasnumericas.add(button_1, null); panelteclasnumericas.add(button_2, null); panelteclasnumericas.add(button_3, null); panelteclasnumericas.add(button_subtracao, null); panelteclasnumericas.add(button_reciproco, null); panelteclasnumericas.add(button_0, null); panelteclasnumericas.add(button_invertesinal, null); panelteclasnumericas.add(button_pontodecimal, null); panelteclasnumericas.add(button_soma, null); panelteclasnumericas.add(button_igual, null); // adiciona ao painel geral de todas as teclas // os dois paineis de teclas menores // ajusta as propriedades dos gerenciadores de layout panelteclas.setlayout(borderlayouttodasasteclas); panelteclas.add(panelteclastopo, BorderLayout.NORTH); panelteclas.add(panelteclasnumericas, BorderLayout.CENTER); // ajusta propriedades gerais visuais da interface this.setsize(250, 275); this.setresizable(false); this.setlayout(borderlayoutprincipal); // adiciona o painel geral de teclas ao centro frame (this) this.add(panelteclas, BorderLayout.CENTER); // adiciona o display ao topo do frame (this) this.add(textfielddisplay, BorderLayout.NORTH); /** * cria os vários tratadores de evento */ // cria o tratador de evento para o botão C (clear) buttonc.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { buttonc_actionperformed(e); } }); // cria o tratador de evento para o botão "1" button_1.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_1_actionperformed(e); // cria o tratador de evento para o botão "2" button_2.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_2_actionperformed(e); } }); // cria o tratador de evento para o botão "+" button_soma.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_soma_actionperformed(e); } }); // cria o tratador de evento para o botão "-" button_subtracao.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_subtracao_actionperformed(e); } }); // cria o tratador de evento para o botão "*" button_mult.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_mult_actionperformed(e); } }); // cria o tratador de evento para o botão "/" button_divisao.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_divisao_actionperformed(e); } }); // cria o tratador de evento para o botão "=" button_igual.addactionlistener(new java.awt.event.actionlistener() { public void actionperformed(actionevent e) { button_igual_actionperformed(e); } }); // cria o tratador de evento para o comando de janelas window close // (ALT+F4 no windows) this.addwindowlistener(new java.awt.event.windowadapter() { public void windowclosing(windowevent e) { this_windowclosing(e); } }); // mostra a interface grafica para o usuário show(); } // métodos que implementam o tratamento de eventos void this_windowclosing(windowevent e) { System.exit(0); } void button_soma_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.soma()); } void button_subtracao_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.sub()); } void button_mult_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.mult()); } void button_divisao_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.div()); } void button_igual_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.igual()); } void button_1_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.um()); } void button_2_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.dois()); } void buttonc_actionperformed(actionevent e) { this.textfielddisplay.settext("" + calc.reset()); } public static void main(string[] args) { CalcVisual CalcVisual1 = new CalcVisual(); } } Introdução Geral à Plataforma Java para Desenvolvimento de } Sistemas na Web, em Celulares e na Televisão Digital Interativa });

28 Software ou Sistema? Win32 Windows Device Drivers Hardware

29 Ser livre é ter liberdade para pensar, criar e se comunicar com sistemas de computadores complexos e hierarquizados: Apropriar-se dos meios de comunicação com as máquinas computáveis

30 Conversas com Sistemas Sistemas Computacionais muito Abstratos

31 Descrever Casos de Uso de uma Aplicação # Caso de Uso Descrição

32 Mapa de navegação de uma aplicação

33 Conceber um mapa de um site

34 Conversas com Sistemas Sistemas Computacionais menos Abstratos

35 Descrever Estruturas de uma aplicação

36 Descrever Comportamentos

37 Conversas com Sistemas Computacionais Concretos: Programação

38 Construir Código compreensível e útil Construir programas funcionais e coerentes através da codificação, auto-validação e teste unitário. Passos Organize a arquitetura e design antes de implementar Entenda as APIs antes de usar Utilize técnicas e convenções de codificação Faça teste unitário dos módulos Adote padrões e idiomas de design

39 Testar Software e Sistemas Verificar dinamicamente o comportamento do programa através do uso de um conjunto finito de casos de teste - adequadamente selecionados de um domínio de execuções usualmente infinito - contra o comportamento esperado deste Passos Defina e documente um plano de teste e um formulário de log de testes, que serão executados durante o desenvolvimento da aplicação e que servirão para validar a aplicação antes de entregar/apresentar

40 Plano de Teste Plano de Teste: <APLICACAO> <VERSÃO-DO-PLANO> Autor: <AUTOR-PLANO> Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG> Histórico de Alterações: <DT-CRIACÃO> <ALT-1> <ALT-2>,, <ALT-N> Caso de Teste CASO 1 Objetivo: <OBJETIVO DO CASO DE TESTE-1> Passos: Resultado Esperado <PASSO-1-1> <RESULTADO-1-1> <PASSO-1-2> <RESULTADO-1-2> <PASSO-1-n> <RESULTADO-1-n> CASO 2 Objetivo: <OBJETIVO DO CASO DE TESTE-2> Passos: Resultado Esperado <PASSO-1-1> <RESULTADO-1-1> <PASSO-1-2> <RESULTADO-1-2> <PASSO-1-n> <RESULTADO-1-n>

41 Log de Teste Log de Teste: <APLICACAO> <VERSÃO-DO-PLANO> Testador: <TESTADOR> Configuração sob teste: <DESCRIÇÃO-CONFIG><VERSÃO-CONFIG> Data: <DATA DE REALIZACAO DO TESTE> Casos de Teste CASO 1 Objetivo: <OBJETIVO DO CASO DE TESTE-1> Passos: Resultado Esperado Observações <PASSO-1-1> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?> <PASSO-1-2> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?> <PASSO-1-n> <RESULTADO-OBTIDO> CASO 2 Objetivo: <OBJETIVO DO CASO DE TESTE-2> Passos: Resultado Esperado <PASSO-1-1> <RESULTADO-OBTIDO> <PASSO-1-2> <RESULTADO-OBTIDO> <PASSO-1-n> <RESULTADO-OBTIDO> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?> <ERRO? Ou ACERTO?>

42 A Amplitude das Plataformas Computacionais Atuais

43 Cadeia de Valor na Era da Convergência Digital Network Back-End Wap/Web Servers Internet Mobile/Broadcast Network Technology Software Development Payment Solutions Security Solutions Software Platforms Application Development Content Content Provision Content Aggregation Interface Portals/ Services/ Channels Devices (TV / Mobile)

44 Middleware: Solução para Organização da Complexidade dos Sistemas Computacionais

45 Middleware: Um Modelo de Portabilidade Uma camada de software que provê uma API (Application Programming Interface) genérica, padronizada e bem definida que abstrai especificidades e heterogeneidades de hardware e software dos diversos tipos de dispositivos Aplicações Desenvolvedores independentes Diferentes provedores de serviços Diversas áreas de aplicação API Genérica Sistema Operacional Hardware Implementações independentes Diferentes plataformas de hardware Diferentes plataformas de sistema operacional

46 Parte 2: Plataforma e Linguagem de Programação Java

47 Java: Uma Plataforma de Desenvolvimento de Software com Arquitetura Aberta e Amplo Espectro de Aplicação

48 Java é uma proposta de middleware que apresenta várias características de suporte ao modelo aberto de desenvolvimento de software e sistemas: Arquiteturas bem conhecidas

49 Edições Java 2 e Seus Dispositivos

50 Linguagem de Programação Java

51 Introdução A linguagem de Programação Java é De uso geral Concorrente Baseada em classes Orientada a objetos Fortemente tipada Compilada

52 Tempo de compilação (compile-time) e tempo de execução (runtime) Tempo de compilação Tradução para byte-code independente de máquina Tempo de Runtime Carga e ligação de classes necessárias à execução Geração de código de máquina (opcional) Otimização dinâmica do programa Execução do código

53 Gerenciamento Automático de Memória

54 Tipos e valores: primitivos e referências

55 Organização modular Organização em packages, similar à linguagem Modula. Membros de um package: classes, interfaces, e subpackages Packages são divided em unidades de compilação Unidades de Compilação Contem declarações de tipos Podem importar tipos de outros packages

56 Métodos e Variáveis de Classe e Instância Variáveis de classe uma por classe Métodos de classe operam sem referência a instâncias específicas Variáveis de instância dinamicamente criadas em objetos que são instâncias de uma classe Métodos de instância são invocados sobre uma instância de uma classe: this

57 String Strings de caracter em formato Unicode

58 Herança (inheritance) Herança simples de implementação

59 Sincronização e Exceções Programação concorrente com métodos sincronizados Declaração de exceções checadas em tempo de compilação

60 Interfaces Declaram métodos abstratos, tipos aninhados e constantes Classes não relacionadas por herança podem implementar a mesma interface Uma variável do tipo de uma interface pode conter uma referência a qualquer objeto que implementa a interface Implementação de múltiplas interfaces

61 Arrays Com verificação de limites de acesso Arrays são objetos dinâmicamente criados

62 Tratamento de Exceções Totalmente integrado com a semântica da linguagem e mecanismos de concorrência Três tipos de exceções: Checadas Run-time Errors

63 Blocos e Comandos Baseados em C e C++. Sem goto, mas com break e continue Sem conversão entre booleanos e inteiros Blocos sincronizados Comando try, com cláusulas catch e finally

64 Expressões Com ordem de avaliação completamente especificada: determinismo e portabilidade Métodos e construtores sobrecarregados e sobrescritos

65 Threads e Locks Usa modelo de concorrência baseado em monitor, introduzido originalmente com a linguagem Mesa Modelo de memória para sistemas multi-processados com memória compartilhada

66 Java Organização Léxica e Sintática

67 Java Organização Léxica Análise léxica de uma unidade de compilação (arquivo) produz uma seqüência de tokens Tradução léxica (tradução para unicode, tradução para input chars e terminadores, produção de input-elements) White-space Comments Tokens (terminais) class HelloWorld { // HelloWorld public static void main(string[] args) { System.out.println( Olá + Mundo \u0030 ); } } Id KW Literal Sep Operator

68 Java Organização Sintática class HelloWorld { // HelloWorld public static void main(string[] args) { String s = Olá + Mundo \u0030 ; System.out.println(s); } class : KW } public : KW HelloWorld : Id static : KW void : KW ResultType { : Sep main :Id Type ( :Sep MethodDecl MethodDeclarator FormalParas FormalParam Name ) :Sep Name Type CompilationUnit Type-Decl Class-Decl ClassBody ClassBodyDecl { :Sep BlockStmt LocalVarDecl Name VarDecl VarInit } : Sep Block BlockStmt System : Id. :Sep Stmt Identifier-Id Keyword-KW Literal-Lit Separator-Sep Operator-Oper } :Sep ExprStmt s : Id ( :Sep String : Id Name [ :Sep args : Id String : Id s : Id ] :Sep \ Olá\ :Lit + :Oper \ Mundo0\ :Lit out : Id. :Sep println : Id ) :Sep Expr

69 Java: Um Modelo de Organização Semântica Concorrência e tratamento de exceções herança de implementações alocação de memória Estruturas de classes-módulos-interfaces Controle Subrotinas estruturas Classes de controle e subrotinas Objetos Herança variáveis e tipos de dados

70 Concorrência e tratamento de exceções Linguagem Java: Keywords[1996] herança de implementações alocação de memória Estruturas de classes-módulos-interfaces Controle Subrotinas estruturas Classes de controle e subrotinas Objetos Herança variáveis e tipos de dados boolean if implements new throw byte else interface this throws short while import try char do package catch int for private finally long break protected synchronized float switch abstract transient double default extends volatile static continue native final return super const class void instanceof goto public

71 Linguagem Java: Literais Integer DecimalInteger HexInteger OctalInteger FloatingPoint Float Double Boolean true, false (reserved literal words) Character String Null Literal null (reserved literal word)

72 Linguagem Java: Separadores ( ) { } [ ] ;,.

73 Linguagem Java: Operadores Numéricos Atribuição Lógicos = attrib > greather ++ incr < smaller -- decr! not + sum += attrib-sum ~ bitwise-inv - sub -= attrib-sub? conditional * mult *= attrib-mult : conditional / div /= attrib-div == equals % remainder %= attrib-rem-div <= small-or-equal & and-bin &= attrib-and-bin >= great-or-equal or-bin = attrib-or-bin!= different ^ xor-bin ^= attrib-xor-bin logical-or << shiftleft <<= attrib-shl && logical-and >> shiftright >>= attrib-shr >>> unsigned-shr >>>= attrib-unsigned-shr

74 Linguagem Java: Categorias de Variáveis Variáveis de classe Usam a palavra reservada static numa declaração de classe Dentro de uma declaração de interface Variáveis de Instância Declaradas no escopo de uma classe sem a palavra reservada static Componentes de array Variáveis não nomeadas dentro de um array Parâmetros de métodos Valores de argumentos nomeados passados para um métodos Parâmetros de Constructor Valores de argumentos nomeados passados para um métodos Parâmetros de tratamento de exceção Criadas sempre que uma exceção e agarrada em uma clásula catch Variáveis locais Declaradas dentro de blocos

75 Aprendendo a Programar em Java: Reconstruindo a História das Linguagens de Programação

76 Programação Estruturada em Algoritmos simples Java

77 Tipos de dados Primitivos Referências

78 Programação Java Baseada em Classes: Métodos e variáveis estáticas Calculando com módulos

79 Programação Java Baseada em Objetos: Métodos e variáveis de instância Alocando Memória

80 Interfaces, contratos e arquiteturas Descrevendo e implementando contratos

81 Parte 3: Aplicações de Java na programação de pequenos programas em computadores pessoais

82 Programação de pequenos programas em computadores pessoais Linguagem Java + Java 2 Standard Edition Ferramenta para desenvolvimento Java Development Kit JDK Ferramenta para Aprendizagem BlueJ Exemplos Interface Gráfica Acesso a arquivos Conectividade de rede Estado da prática

83 Estrutura Hierárquica da Interface de uma Calculadora :Frame (Container) [components] :TextField (Component) :Panel (Container) [components] 7 :Button 8 :Button 9 :Button / :Button 4 :Button 5 :Button 6 :Button * :Button 1 :Button 2 :Button 3 :Button - :Button 0 :Button +/- :Button. :Button + :Button = :Button C :Button % :Button M+ :Button

84 Parte 4: Aplicações de Java no Desenvolvimento de módulos de sistemas web

85 Aplicações de Java no Desenvolvimento de módulos de sistemas web Arquitetura de Sistemas Web HTTP/HTML/JDBC Animação em Páginas HTML: Applet Usando o Protocolo HTTP: Servlet Gerando Páginas HTML: JSP Conectividade com SGBDs: JDBC Estado da prática

86 Arquiteturas Multi-Camadas Two-Tier Cliente Java Aplicação/Applet, HTML Browser java.net com Servlets Three-Tier Cliente Java Aplicação/Applet, HTML Browser java.net N-Tier Cliente Java Aplicação/Applet, HTML Browser java.net Middleware HTTP Servlets java.servlet Middleware HTTP Servlets javax.servlet java.sql HTTP javax.servlet Servlets java.net, javax.servlet SGBD Relacional A B C

87 Arquiteturas Multi-Camadas com Enterprise Java Beans (EJBs) Two-Tier Cliente Java Aplicação/Applet, java.rmi, javax.jndi N-Tier Cliente Java Aplicação/Applet java.rmi, javax.jndi N-Tier Cliente Java Aplicação/Applet, HTML Browser java.net Middleware RMI, JNDI EJBs javax.ejb Middleware RMI, JNDI javax.ejb EJBs java.rmi, javax.jndi java.sql HTTP javax.servlet Servlets java.rmi, javax.jndi SGBD Relacional A B C

88 Construindo um Pequeno Exemplo: Uma Aplicação de Consulta a Dados de um Restaurante

89 Um Restaurante Quer oferecer o cardápio de pratos através da internet Consulta cardápio Faz pedido Clientes web Clientes via celular Clientes através de televisão digital

90 Arquitetura da Aplicação Restaurante usando Browser Cliente Web Servidor Web Servidor Dados

91 Protocolos Usados HTTP (Servlets) SQL(JDBC)

92 Um Típico Pedido HTTP (com GET) GET /~jhcf/cgi/welcome.html HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.5 [en] (WinNT; I) Host: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso ,*,utf-8

93 Uma Típica Resposta HTTP HTTP/ OK Date: Wed, 28 Jul :29:08 GMT Server: Apache/1.2.5 Last-Modified: Wed, 28 Jul :32:21 GMT ETag: "1bfc e5da5" Content-Length: 98 Accept-Ranges: bytes Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html <HTML> <HEAD> <TITLE> Saudação </TITLE> </HEAD> <BODY> <H1>Bem vindo à Web!</H1> </BODY> </HTML>

94 HTTP e HTML com Servlets Web Server WWW (HTTP) Web Browser Servlet Engine Formulário Nome Sepia Ano 1997 Mod

95 Modelo Computacional JDBC Cliente getconn() Aplicação createstmt() next(); next();next(); get*( Col-n ); get*(n); execquery() execupdate() Col-1 Col-2... Col-n Conn Stmt ResultSet Servidor SGBD Relacional Bases de Dados DriverMngr JDBC API Java CORE APIs Driver A B C

96 Construindo a Aplicação Restaurante usando Browser Cliente Web Servidor Web Servidor Dados

97 Java e a Computação Corporativa: Estado da Arte Muita gente desenvolvendo soluções para organizações de pequeno e médio porte Modelo já estabelecido no Brasil

98 Parte 5: Software Java para dispositivos móveis como celulares e PDAs

99 Software para dispositivos móveis como celulares e PDAs J2ME/MIDP Arquitetura de sistemas com mobilidade HTTP/XML Programação de pequenos programas para celulares Dispositivos de acesso a dados Jogos e outras aplicações com interface gráfica de baixo nível Estado da prática

100 Limitações dos Dispositivos Móveis Pequena espaço de display Pequeno espaço para entrada de dados Pequeno espaço de memória Pequena capacidade de processamento Pequena banda de rede Rede insegura Trabalho eventual em modo desconectado Necessidade de sincronização

101 Vantagens dos Dispositivos Móveis O celular é mais importante que a Internet! A internet está no celular Computador móvel, de baixo custo, com alta taxa de penetração mundial Canal de lucros constante através dos modelos fidelizadores das operadoras Curto ciclo de renovação tecnológica Oportunidades de integração com automação doméstica e corporativa

102 Características do Modelo de Aplicações e Serviços Móveis Independência de localização Conectividade instantânea Adaptabilidade e intimidade Novas formas de trabalho Novas formas de negociação Novas formas de entretenimento

103 Categorias de Aplicações da Internet Móvel[MBS, 2001] Comunicação Comércio Corporativo Voz Mensagem instantânea Messagem unificada Ferramentas de trabalho em grupo Video telefonia Varejo Comércio-baseado em localização Corretagem de ações Serviços bancários Leilões corporativos Comércio multicanais Seguros Reservas Anúncios Consumidor Voz Mensagem instantânea Messagem unificada Chat Video telefonia Serviços em comunidade Cartões postais digitais Varejo Comércio-baseado em localização Compras por comparação no shopping Compra de tickets Corretagem de ações Serviços bancários Leilões corporativos Comércio multicanais Música Jogos e apostas Tons musicais e ícones Seguros Reservas Anúncios Notícias financeiras e industriais Notícias CRM - Customer Relatioship Management Entretenimento Relatórios gerenciais Viagens Gerência de frota Direcionamento ao volante Automação de força de vendas Serviços baseados em localização Serviços de valor Auto-serviço para empregados Segurança agregado Gerenciamento de viagens Controle remoto doméstico Recrutamento Calendário Gerenciamento de cadeia de suprimentos Serviços sociais Gerencia de recursos humanos Mensagens instantâneas Segurança Controle remoto

104 MIDlets Pequenas aplicações instaláveis em um dispositivo MIDP, baseadas numa API bastante reduzida de programação, formada por aproximadamente 138 classes e interfaces (MIDP 1.0) Similar ao modelo de applets Downloadable Permite criar serviços para consumidores de telefones celulares jogos e aplicações de comércio

105 Mobile Information Devices (Versão 1.0) Mobilidade Operado com bateria Memória (mínima) 128KB de memória não volátil para implementação MIDP 8KB de memória não volátil para persistir dados das aplicações 32KB de runtime e heap Interface com o usuário (mínima) Display com 1 bit de cor e resolução mínima de 96 x 54 pixels Entrada de dados via teclado ou tela sensível ao toque Conexões de rede bidirecionais, com banda limitada

106 J2ME: Organização em Configurações e Perfis... Profile... Profile... Profile... Profile... Profile Foundation Profile Connected Device Configuration (CDC) JVM (CVM) Profile Profile Mobile Information Device Profile (MIDP) Connected, Limited Device Configuration (CLDC) KVM (Kilo Virtual Machine)

107 Evolução das Tecnologias de Sistemas Interativos na Web Desktop HTML + FORMS Applet HTML Browser HTML Browser + Java VM Wireless WML MIDlet WAP Cell Phone MIDP Cell Phone

108 Applet 2 Applet 1 Applet 3 Web Server Funcionamento dos Applets WWW (HTTP(s)) Web Browser Applet 1 Applet 2 Applet 3 Interface Browser Applet 1 Applet 2 Applet 3 Página HTML Classe Classe Applet Sandbox Objeto Applet Prof. Dr. Jorge Objeto H C Fernandes (jorgehcfernandes@uol.com.br). Depto Ciência da Computação / UnB Depto Informática e Mat. aplicada / UFRN

109 Applet 2 Applet 1 Applet 3 Funcionamento dos MIDlets Web Server WWW (HTTP(s)) Repositório Web Sandbox SUITE 1 SUITE 2 SUITE 3 MIDlet SUITE 1 A MIDlet SUITE 2 B MIDlet SUITE C 3 SUITE 3 Página HTML Descritor de Aplicação (JAD) Arquivos (Imagens, etc) Classe Classe MIDlet Objeto Objeto MIDlet SUITE 1 RecordStore

110 HelloWorldMIDlet: Implementação import javax.microedition.midlet.midlet; import javax.microedition.lcdui.*; public class HelloWorldMIDlet extends MIDlet implements CommandListener { } private Command exitcommand; private TextBox textbox; public HelloWorldMIDlet() { // Para associar a softkey // Para entrada de dados exitcommand = new Command("Exit", Command.EXIT, 1/*Priority*/); textbox = new TextBox("OláMundo MIDlet /* Nome do componente */, "Olá, Mundo! /* conteúdo */, 15 /*tamanho máximo */, 0 /*máscara*/); textbox.addcommand(exitcommand); textbox.setcommandlistener(this); } protected void startapp() { Display.getDisplay(this).setCurrent(textBox); } protected void pauseapp() {} protected void destroyapp(boolean unconditional) {} public void commandaction(command c, Displayable d) { if (c == exitcommand) { destroyapp(false); notifydestroyed(); } } // Adapta para tratar comandos // Criação e // interligação // entre objetos // Exec.quando MIDLet é ativado // Exec. quando MIDlet é suspenso // Exec. quando MIDLet é destruído // Exec. quando comando é acionado

111 HelloWorldMIDlet em Ação: Diagrama de Objetos current :Display thedisplay :HelloWorldMIDlet current textbox <<displayable>> :TextBox exitcommand :Command 1 new HelloWorldMIDlet() - Criação do MIDlet 1.1 Criação de um textbox (Displayable) para preencher o display 1.2 Criação de comandos para inserir no Displayable 2 startapp() - Associação do Displayable ao Display 3 commandaction() Ativação do comando Exit 3.1 destroyapp() Desativação do MIDlet

112 Packages CLDC1.0/MIDP 1.0 J2SE java.lang java.io java.util CDC CLDC javax.microedition.io MIDP1.0 javax.microedition.lcdui javax.microedition.midlet javax.microedition.rms

113 CLDC1.0/MIDP1.0: java.lang

114 CLDC1.0/MIDP1.0: java.io

115 CLDC1.0: java.util - MIDP1.0: java.util

116 CLDC1.0: javax.microedition.io e MIDP1.0: javax.microedition.io GENERIC CONNECTION FRAMEWORK

117 MIDP1.0: javax.microedtion.midlet

118 MIDP1.0: javax.microedition.lcdui

119 javax.microedition.rms

120 Arquitetura da Aplicação M-Commerce em J2EE [Gupta and Mayank, 2001]

121 Arquitetura da Aplicação Restaurante usando Dispositivo Móvel Dispositivo Móvel Gateway/ Servidor Web Servidor Dados

122 Java e a Computação Móvel: Estado da Arte Muita gente desenvolvendo soluções que dão lucro Modelo Asiático/Americanode consumo já bem desenvolvido Oportunidades no Brasil

123 Parte 6: Software em Java para plataformas de televisão digital interativa

124 Breve Introdução à Televisão Digital Interativa

125 Televisão Interativa Apresentação de menus e seleções de links em um aparelho de tv Associada ao conteúdo apresentado Que pode estar interagindo com o broadcaster

126 Televisão Digital Padrão para codificação, transmissão, modulação, difusão e recepção digital de programas televisivos TV Digital Terrestre Satélite Cabo

127 Substituição Analógica- >Digital Arquivos -> Sistemas de Arquivos LP -> CD Telefone Analógico -> Digital Celular Analógico -> Digital Televisão Analógica -> Digital

128 Ondas de Impacto na Transformação Analógica->Digital 1a Substituição de Equipamentos de Estúdio / Laboratório 2a Padrão Uniforme de Distribuição e Transmissão 3a Novos Modelos de Negócios

129 Aplicações em TVDI Televisão Digital de Alta Definição Democracia Eletrônica Guias de Programação Eletrônica (EPG) Pay-Per-View Personalização Personal Video Recorder Vídeo sob Demanda com Inscrição Propaganda Focalizada T-Commerce Jogos baseados na TV Vídeo sob Demanda Walled Garden BroadBand Data Transfer Rede Doméstica Segurança Doméstica

130 Arquitetura de Alto Nível de um Sistema de TV

131 Arquitetura Atual de Sistemas de TV

132 Arquitetura de Sistemas de TV Digital

133 Impactos da TVD Sobre o Estúdio Câmera com maior resolução Codificador MPEG-2 Streams de A/V armazenáveis em DVD Ilha de Edição não Linear distribuição dos programas através de rede de computadores

134 Impactos da TVD Sobre a Central de Produções Chamada de provedora de serviços Streamer transmite e recebe fluxos de transporte MPEG-2 (MPEG-2-TS) aumenta fortemente a capacidade de integração da Central com uma maior quantidade de estúdios, inclusive externos Reduz o uso de satélite Multiplexador Agrega programas de vários estúdios para distribuição em rede de tv

135 Impactos da TVD Impacto da TV Digital sobre a Rádio-Difusão Técnicas de compressão Tornam possível transmitir pelo menos 4 programas com qualidade superior Transmitir programas e dados adicionais Módulo Remultiplexador Responsável por fazer a multiplexação entre os vários TS gerados por uma ou mais centrais de produção Eliminar, substituir ou inserir programas e fluxos de dados que serão veiculados Inserir informações gerais sobre a programação dos vários canais veiculados Proteger programas cujo conteúdo é consumido através de pagamento (pay-per-view). Permite ao difusor operar uma maior quantidade de Centrais de Produção (Provedores de Serviços), o que aumenta a oferta de conteúdo e canais.

136 Impactos da TVD Sobre a Recepção Doméstica Necessita de um STB equipamento digital com capacidade de processamento de sinais de áudio e vídeo, e eventualmente capacidade de execução de programas Capaz de receber, demodular, decodificar e remodular o sinal televisivo Gera sinal de A/V compatível com televisores analógicos Interação Pseudo e Real

137 TV Digital Pseudo-Interativa Enhanced DTV

138 TV Digital Interativa

139 Arquitetura Genérica de um STB Interativo

140 Arquitetura do Carrossel

141 Uma questão fundamental para o sucesso de um sistema de televisão digital! Adoção e aceitação de padrões abertos para os vários componentes do sistema No Brasil Milhares de estações transmissoras e retransmissoras Milhões de aparelhos receptores E no Mundo

142 Modelo de Referência ITU, para TVD [2] MPEG-2 Padrões Mundiais

143 MPEG-2 Video, Audio e Systems [5] PS Arbitrary size packets Variable bitrate TS 188 bit Packets Fixed bitrate

144 MPEG-2 Systems TS - Transport Streams

145 Estrutura de um Transport Stream PID Packet Identification Code PCR Program Clock Reference

146 MPEG-2-TS-PSI PMT: Program Map Table Elementary stream 1 (Video) Elementary stream 2 (Audio1) Elementary stream 3 (Audio2)... Elementary Stream n-1 (Data i) Elementary Stream n (Data j) Elementary stream map (program_map_tabl e) PID1 PID2 PID3 PID(n-1) PIDn PID(n+1) Multiplexer MU Xed program transport bit stream

147 MPEG-2-TS-PSI PAT: Program Association Table Program transport stream 1 Program transport stream 2 Program transport stream 3... Program transport stream 4 Program transport stream 5 Multiplexer System level multiplex Program stream map (program_assocication_table) PID = 0

148 Remultiplexação Program transport stream 1 Program transport stream 2 Program transport stream 3... Program transport stream 4 Program transport stream 5 Program stream map (program_assocication_table) Program transport stream 1 Program transport stream 2 Program transport stream 3... Program transport stream 4 Program transport stream 5 PID = 0 Multiplexer Multiplexer Program transport stream 1 System level multiplex Program transport stream 2 Program transport stream 3 System level multiplex... Program transport stream 4 Program transport stream 5 Program stream map (program_assocication_table) PID = 0 Multiplexer Program transport stream 1 System level multiplex Program transport stream 2 Program transport stream 3... Program transport stream 4 Program transport stream 5 Program stream map (program_assocication_table) PID = 0 Multiplexer System level multiplex Program stream map (program_assocication_table) PID = 0 Program transport stream 1 Program transport stream 2 Elementary stream 1 (Video) Elementary stream 2 (Audio1) Elementary stream 3 (Audio2)... Elementary Stream n-1 (Data i) Elementary Stream n (Data j) Elementary stream map (program_map_table) PID1 PID2 PID3 PID(n-1) PIDn PID(n+1) Multiplexer Program transport stream 3... Program transport stream 4 MU Xed Program transport stream 5 program transport Program stream map bit stream (program_assocication_table) PID = 0 Multiplexer System level multiplex

149 Demultiplexação de Programas e Fluxos Elementares System bit stream PID = 0 program_association_table program_ map_pid Obtain program_map_pid (PID of bit stream containing the program_map_table) program_map_table Obtain PIDs for elementary bit streams Program Identity PID1 PID2.. PIDn... Elementary bit streams for a program Dump other transport packets

150 Blocos Fundamentais de um Middleware para TV Digital DAVIC - Digital Audio-Visual Council HAVi - Home Audio Video Interoperability Java TV Java Media Framework

151 DAVIC - Digital Audio-Visual Council[8] Padrão da indústria para interoperabilidade fim-a-fim de informações audiovisual digital interativa e por difusão.

Natureza do Software e dos Sistemas

Natureza do Software e dos Sistemas Natureza do Software e dos Sistemas Jorge H C Fernandes Diferença Fundamental entre Engenharia de Software e outras Engenharias! Os materiais são diferentes As teorias fundamentais são diferentes Dificuldades

Leia mais

Desenvolvimento de Sistemas Móveis em Java com J2ME/MIDP. Jorge H. C. Fernandes

Desenvolvimento de Sistemas Móveis em Java com J2ME/MIDP. Jorge H. C. Fernandes Desenvolvimento de Sistemas Móveis em Java com J2ME/MIDP Jorge H. C. Fernandes Desenvolvimento J2ME/MIDP Agenda Plataforma e Edições Java 2 J2ME - Java 2 Micro Edition MIDP - Mobile Information Device

Leia mais

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro

Uma Introdução ao. Computação Móvel (MAC5743/MAC330) Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Uma Introdução ao J2ME Computação Móvel (MAC5743/MAC330) DCC-IME-USP Prof. Alfredo Goldman Monitores: Rodrigo Barbosa Daniel Cordeiro Visão Geral do Java 2 (1) A plataforma Java 2 engloba três elementos:

Leia mais

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK. Jorge H C Fernandes 2004

As 10 Áreas da Engenharia de Software, Conforme o SWEBOK. Jorge H C Fernandes 2004 As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Jorge H C Fernandes 2004 Indicações de que a engenharia de software está se tornando uma atividade de engenharia (SWEBOK) Cursos de graduação em

Leia mais

Teste de Software: Existe Isto? Jorge Fernandes Junho de 2004

Teste de Software: Existe Isto? Jorge Fernandes Junho de 2004 Teste de Software: Existe Isto? Jorge Fernandes Junho de 2004 public class Calc { private int estadointeracao; private int operacaoselecionada; private long acumulador0; private long acumulador1; private

Leia mais

GTTV - Grupo de Trabalho de Televisão Digital. Guido Lemos de Souza Filho LAViD - DI CCEN UFPB

GTTV - Grupo de Trabalho de Televisão Digital. Guido Lemos de Souza Filho LAViD - DI CCEN UFPB GTTV - Grupo de Trabalho de Televisão Digital Guido Lemos de Souza Filho LAViD - DI CCEN UFPB Sistema de TV Digital ITV Middleware (eg. MHP or DASE) Real-Time Operating System Device Drivers Conditional

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo

Programação para Dispositivos Móveis. Prof. Wallace Borges Cristo Programação para Dispositivos Móveis Prof. Wallace Borges Cristo Acesso a informação Notícias, Ringtones, Vídeos Messenger/Chat Jogos Acesso a instituições financeiras M-commerce (Mobile Commerce) Aplicações

Leia mais

Programação para Celular com Java

Programação para Celular com Java 1/13 Programação para Celular com Java Objetivo: Capacitar o aluno a desenvolver aplicações com o Sun Java Wireless Toolkit for CLDC. Sumário 1. Introdução:... 2 2. Como criar um novo Projeto?... 2 3.

Leia mais

Tutorial J2ME Parte 3

Tutorial J2ME Parte 3 Introdução Tutorial J2ME Parte 3 Como pudemos aprender nos tutoriais anteriores, os dispositivos celulares podem implementar em seu sistema o KVM, a máquina virtual que roda aplicações J2ME. A API de programação

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus

Java ME e suas principais tecnologias de conectividade. Gracieli Begia Mateus Java ME e suas principais tecnologias de conectividade Gracieli Begia Mateus Telefones Celulares no Mundo Fonte: UIT e Wireless Intelligence (Ovum/GSM Association) Posição do Brasil no Mundo Principais

Leia mais

Um pouco do Java. Prof. Eduardo

Um pouco do Java. Prof. Eduardo Um pouco do Java Prof. Eduardo Introdução A tecnologia JAVA é composta pela linguagem de programação JAVA e pela plataforma de desenvolvimento JAVA. Os programas são escritos em arquivos-texto com a extensão.java.

Leia mais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

Leia mais

Desenvolvimento de Sistemas para TV Digital. Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves

Desenvolvimento de Sistemas para TV Digital. Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves Desenvolvimento de Sistemas para TV Digital Prof. Fabrício J. Barth fbarth@tancredo.br Faculdades Tancredo Neves Objetivo Apresentar os conceitos básicos para o desenvolvimento de sistemas para TV Digital.

Leia mais

EMENTA DO CURSO. Tópicos:

EMENTA DO CURSO. Tópicos: EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes

Leia mais

FBV - Linguagem de Programação II. Um pouco sobre Java

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto

Java Enterprise Edition. by Antonio Rodrigues Carvalho Neto Java Enterprise Edition by Antonio Rodrigues Carvalho Neto Enterprise Edition Architecture O que é Java Enterprise Edition? Java EE é uma plataforma que reune diversas especificações relacionadas a computação

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick

MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S. Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick MAGREGISTER 1.0: GERADOR DE INTERFACES DE COLETAS DE DADOS PARA PDA S Acadêmico: Gilson Chequeto Orientador: Adilson Vahldick Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Jorge Fernandes (jhcf@cic.unb.br) 1,2 Guido Lemos (guido@di.ufpb.br) 3 Gledson Elias Silveira (gledson@di.ufpb.br) 3

Jorge Fernandes (jhcf@cic.unb.br) 1,2 Guido Lemos (guido@di.ufpb.br) 3 Gledson Elias Silveira (gledson@di.ufpb.br) 3 Introdução à Televisão Digital Interativa: Arquitetura, Protocolos, Padrões e Práticas Dia 1 Minicurso com duração de 6 Horas, Apresentado na XXIII Jornada de Atualização em Informática do XXIV Congresso

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

O protocolo HTTP. O que é o protocolo HTTP?

O protocolo HTTP. O que é o protocolo HTTP? O protocolo HTTP Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. Quais são as partes de um a resposta HTTP. IIS - HTTP 1 O que é o protocolo HTTP? Hyper

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1

SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java Como Plataforma... 6 Finalidade... 9 Características... 11 Perspectivas... 13 Exercícios... 14 CAPÍTULO

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5

JavaScript 2.0X 1.0 3.0X 1.1 4.0 4.05 1.2 4.06 4.61 1.3 5.0 1.4 6.0 1.5 JavaScript Diego R. Frank, Leonardo Seibt FIT Faculdades de Informática de Taquara Fundação Educacional Encosta Inferior do Nordeste Av. Oscar Martins Rangel, 4500 Taquara RS Brasil difrank@terra.com.br,

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

Manual de Operação Aplicativo ClickIt

Manual de Operação Aplicativo ClickIt Manual de Operação Aplicativo ClickIt Rev. 1.1 Agosto/2010 GSControl Automação Ltda. Rua Washington Luiz, 675 ITC Conjunto 1101 Centro Porto Alegre RS CEP 90010-460 Telefone: (51)3026-0945 / (51)3287-2167

Leia mais

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Orientação a Objetos em Java Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Digifort Mobile Manual Version 1.0 Rev. A

Digifort Mobile Manual Version 1.0 Rev. A Digifort Mobile Manual Version 1.0 Rev. A 2 Digifort Mobile - Versão 1.0 Índice Parte I Bem vindo ao Manual do Digifort Mobile 1.0 5 1 Screen... Shots 5 2 A quem... se destina este manual 5 3 Como utilizar...

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

Linguagem de Programação Introdução a Linguagem Java

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

O Modelo DX sumário executivo

O Modelo DX sumário executivo White Paper O Modelo DX sumário executivo INTRODUÇÃO 2 O MODELO BROADCAST 3 MODELO TRADICIONAL DE BROADCAST 3 O MODELO DX 4 NOVOS MODELOS DE RECEITA 5 O MODELO DX PARA TELAS COLETIVAS 6 1 www.dx.tv.br

Leia mais

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

J2ME, Uma Platarfoma de programação para Dispositivos Móveis

J2ME, Uma Platarfoma de programação para Dispositivos Móveis J2ME, Uma Platarfoma de programação para Dispositivos Móveis Jesseildo F. Gonçalves 07/10/2010 Jesseildo F. Gonçalves () 07/10/2010 1 / 50 1 Introdução ao J2ME História Arquitetura do J2ME MIDLets 2 RMS:

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

UMA ABORDAGEM SOBRE J2ME

UMA ABORDAGEM SOBRE J2ME UMA ABORDAGEM SOBRE J2ME Júlio César Jardim Júnior 1, Elio Lovisi Filho (Orientador) 1 1 Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Rua Palma Bageto Viol, s/n Barbacena - MG.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso

Marcus Vinicius Cruz Xavier. Rascunho do trabalho de conclusão de curso Universidade Federal de Santa Catarina Departamento de Informática e Estatística Curso de Bacharelado em Ciências da Computação Marcus Vinicius Cruz Xavier Rascunho do trabalho de conclusão de curso Título

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico Fundamentos de Java Prof. Marcelo Cohen 1. Histórico 1990 linguagem Oak; desenvolvimento de software embutido para eletrodomésticos S.O. para o controle de uma rede de eletrodomésticos o surgimento da

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos Internet e protocolos web A Internet é uma rede descentralizada de recursos computacionais Tolerante a falhas (no single point of failure) Topologia tem de fornecer caminhos alternativos entre 2 computadores

Leia mais

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2 Estrutura de Repetição. Ex. 2 A ESTRUTURA Enquanto faça{} É MELHOR UTILIZADA PARA SITUAÇÕES ONDE O TESTE DE CONDIÇÃO (V OU F) PRECISA SER VERIFICADO NO INÍCIO DA ESTRUTURA DE REPETIÇÃO.

Leia mais

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5 THREADS Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread. 5.1 VISÃO GERAL Uma definição mais abrangente para threads é considerá-lo

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform

Leia mais

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br Java - Introdução Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda O que é Java? Sun / Oracle. IDE - NetBeans. Linguagem Java; Maquina Virtual; Atividade Prática. Identificando Elementos

Leia mais

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ

UNIVERSIDADE FEDERAL DO PARANÁ CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 02 APRESENTAÇÃO: Apresentação; conceitos básicos da linguagem java; estrutura

Leia mais

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

I N T R O D U Ç Ã O W A P desbloqueio,

I N T R O D U Ç Ã O W A P desbloqueio, INTRODUÇÃO Para que o Guia Médico de seu Plano de Saúde esteja disponível em seu celular, antes de mais nada, sua OPERADORA DE SAÚDE terá de aderir ao projeto. Após a adesão, você será autorizado a instalar

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java

RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM. Java RUI ROSSI DOS SANTOS PROGRAMAÇÃO DE COMPUTADORES EM Java 2ª Edição n Sumário VII Sumário CAPÍTULO 1 Introdução ao Java... 1 A Origem... 2 O Caminho Para a Aprendizagem... 4 Java como Plataforma... 6 Finalidade...

Leia mais

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO

A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO A INTERNET E A NOVA INFRA-ESTRUTURA DA TECNOLOGIA DE INFORMAÇÃO 1 OBJETIVOS 1. O que é a nova infra-estrutura informação (TI) para empresas? Por que a conectividade é tão importante nessa infra-estrutura

Leia mais

Conexão Socket na MIDP

Conexão Socket na MIDP Conexão Socket na MIDP A comunicação entre diferentes sistemas é comum na programação, e esta regra não desaparece na construção de aplicativos para pequenos dispositivos e, consequentemente, com o Java

Leia mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Aula 03-04: Modelos de Sistemas Distribuídos

Aula 03-04: Modelos de Sistemas Distribuídos UNIVERSIDADE Computação Aula 03-04: Modelos de Sistemas Distribuídos 2o. Semestre / 2014 Prof. Jesus Principais questões no projeto de um sistema distribuído (SD) Questão de acesso (como sist. será acessado)

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

O objetivo desta prática é ensinar como usar a máquina chamada computador visível ou vc0, um simulador de computador de von Neumann escrito em Java.

O objetivo desta prática é ensinar como usar a máquina chamada computador visível ou vc0, um simulador de computador de von Neumann escrito em Java. Departamento de Ciência da Computação Universidade de Brasília Computação Básica - 2004.1 Roteiro de Laboratório #1 Usando o Computador Visível Professor Jorge Henrique Cabral Fernandes 0. Objetivo O objetivo

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Especialização em Engenharia de Software - CEUT

Especialização em Engenharia de Software - CEUT Até aqui Programação com interfaces gráficas Sérgio Soares scbs@cin.ufpe.br Criamos a infra-estrutura para a aplicação bancária classes que representam os tipos de conta classe que implementa regras de

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo

VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo VPAT (Voluntary Product Accessibility Template, Modelo de Acessibilidade de Produto) do eportfolio da Desire2Learn Maio de 2013 Conteúdo Introdução Recursos de acessibilidade principais Navegação usando

Leia mais

Desenvolvimento de Aplicações Locais na Plataforma Microsoft

Desenvolvimento de Aplicações Locais na Plataforma Microsoft Desenvolvimento de Aplicações Locais na Plataforma Microsoft Profª. Angelina V.S. Melaré angelinamelare@gmail.com Tecnologia em Análise e Desenvolvimento de Sistemas 1ºsem/2008 Objetivo da Aula Saber diferenciar

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais