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

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

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

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

Roteiro. Linguagens, plataformas e ambientes de Desenvolvimento. Desenvolvimento de Aplicações para DM. Java. Linguagem C

Roteiro. Linguagens, plataformas e ambientes de Desenvolvimento. Desenvolvimento de Aplicações para DM. Java. Linguagem C Desenvolvimento de Aplicações para Dispositivos Móveis José de Ribamar Martins Bringel Filho Mestre em Ciência da Computação (UFC) bringel@cenapadne.br Roteiro Overview das Plataformas e Linguagens J2ME

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

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

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

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

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

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

J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS

J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS Ana Paula Carrion 1, Késsia Rita da Costa Marchi 1, Jaime Willian Dias 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil anapaulacarrion@hotmail.com,

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

Como dito anteriormente, a JCP especificou dois grupos para a J2ME conforme as necessidades dos dispositvos, chamadas Configurações:

Como dito anteriormente, a JCP especificou dois grupos para a J2ME conforme as necessidades dos dispositvos, chamadas Configurações: 1 TECNOLOGIA J2ME A J2ME, Java Micro Edition, é uma tecnologia que permite o desenvolvimento de aplicações Java para dispositivos com poder de processamento, vídeo e memória limitados. Possui uma coleção

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

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

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

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

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

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

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação? Algoritmos e Programação 2 Baseado no material do Prof. Júlio Pereira Machado Introdução à Programação Orientada a Objetos O que é um paradigma de programação? É um padrão conceitual que orienta soluções

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

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

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 1: Introdução MEEC@IST Java 1/27 História versões (1) [1995] Versão 1.0, denominada Java Development Kit (JDK) 212 classes em 8 pacotes Lento, muitos bugs, mas com Applets

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

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 2 Visão Geral da Tecnologia Java Aplicação Hello

Leia mais

Java 2 Micro Edition (J2ME)

Java 2 Micro Edition (J2ME) Java 2 Micro Edition (J2ME) por Filipe Gonçalves Barreto de Oliveira Castilho Departamento de Engenharia Informática Universidade de Coimbra 3030 Coimbra, Portugal fgonc@student.dei.uc.pt Resumo: Apresenta-se

Leia mais

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40 JAVA Marcio de Carvalho Victorino 1/40 Introdução 2/40 Page 1 Programação OO Elementos do modelo OO: Abstração: é o processo de abstrair as características essenciais de um objeto real. O conjunto de características

Leia mais

Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano

Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano Programação Gráfica Parte 1 Versão em Java 2006 PUCPR Tutoria de Jogos 1º Ano Paulo V. W. Radtke pvwradtke@gmail.com http://www.ppgia.pucpr.br/~radtke/jogos/ AVISO IMPORTANTE!! Esta versão é dedicada exclusivamente

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

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

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

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

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

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

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

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

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

Introducão à Tecnologia Móvel 1 UFU - BACALÁ

Introducão à Tecnologia Móvel 1 UFU - BACALÁ Introducão à Tecnologia Móvel 1 História do Celular 1921 (0G) O Departamento de polícia de Detroit instala rádios móveis operando em cerca de 2 MHz, nos carros. Problemas com o sistema devido a grande

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

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

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

DESENVOLVIMENTO DE UMA FERRAMENTA UTILIZANDO A TECNOLOGIA J2ME

DESENVOLVIMENTO DE UMA FERRAMENTA UTILIZANDO A TECNOLOGIA J2ME DESENVOLVIMENTO DE UMA FERRAMENTA UTILIZANDO A TECNOLOGIA J2ME Ana Paula A. ZANELATO 1 Eliezer Gomes Paraganba FILHO 2 Emerson Silas DÓRIA 3 RESUMO: Este artigo pretende apresentar a tecnologia J2ME (linguagem

Leia mais

RESUMO DOS IMPORTANTES

RESUMO DOS IMPORTANTES RESUMO DOS TÓPICOS + IMPORTANTES De instância (non-static) - estão no contexto da classe sem o modificador static De Classe (static) - estão no contexto da classe com o modificador static Local estão no

Leia mais

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados

Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Tópicos de Ambiente Web Conceitos Fundamentais Redes de Dados Professora: Sheila Cáceres Computador Dispositivo eletrônico usado para processar guardar e tornar acessível informação. Tópicos de Ambiente

Leia mais

JAVA VIRTUAL MACHINE (JVM)

JAVA VIRTUAL MACHINE (JVM) JAVA VIRTUAL MACHINE (JVM) Por Leandro Baptista, Marlon Palangani e Tiago Deoldoto, 11 de Abril de 2009 A linguagem de programação Java proporciona o desenvolvimento aplicações que podem ser executadas

Leia mais

Java TV: Visão Geral

Java TV: Visão Geral Java TV: Visão Geral Ricardo da Silva Ogliari Juliana Rosa Santos Introdução Depois que o governo brasileiro definiu o padrão de TV Digital no Brasil, o assunto, de certa forma, tomou proporções elevadas,

Leia mais

TuGA: Um Middleware para o Suporte ao Desenvolvimento de Jogos em TV Digital Interativa

TuGA: Um Middleware para o Suporte ao Desenvolvimento de Jogos em TV Digital Interativa TuGA: Um Middleware para o Suporte ao Desenvolvimento de Jogos em TV Digital Interativa David de Almeida Ferreira Cidcley Teixeira de Souza 1 NASH Núcleo Avançado em Engenharia de Software Distribuído

Leia mais

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DEVELOPMENT OF SOFTWARE FOR MOBILE DEVICES 8º CICLO DE PALESTRAS DE INFORMÁTICA DA FAI

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DEVELOPMENT OF SOFTWARE FOR MOBILE DEVICES 8º CICLO DE PALESTRAS DE INFORMÁTICA DA FAI DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DEVELOPMENT OF SOFTWARE FOR MOBILE DEVICES ROBERTO JUNDI FURUTANI 1 JOSÉ LUIZ VIEIRA DE OLIVEIRA 2 8º CICLO DE PALESTRAS DE INFORMÁTICA DA FAI Resumo

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

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

PADRÕES DE MIDDLEWARE PARA TV DIGITAL

PADRÕES DE MIDDLEWARE PARA TV DIGITAL PADRÕES DE MIDDLEWARE PARA TV DIGITAL Rafael V. Coelho Fundação Universidade Federal do Rio Grande (FURG) Rio Grande - RS rafaelvc2@gmail.com Resumo. Este trabalho discute os tipos de Middleware usados

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

INTEGRANDO A TECNOLOGIA J2ME NO ÂMBITO ACADÊMICO

INTEGRANDO A TECNOLOGIA J2ME NO ÂMBITO ACADÊMICO INTEGRANDO A TECNOLOGIA J2ME NO ÂMBITO ACADÊMICO Ramon R. Rabello, Pedro J. Treccani, Thienne M Johnson Universidade da Amazônia, Av Alcindo Cacela, 287, Belém, PA CEP 66092-010 ramon.rabello@gmail.com,

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Java ME Introdução Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Fundamentos Edições do Java JSE JEE JME JSE JEE MIDP Nível de Perfil CDC CLDC Nível de Configuração

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java A linguagem Java surgiu em 1991 quando cientistas da Sun, liderados por Patrick Naughton e James Gosling, projetaram uma linguagem pequena para ser utilizada em eletrodomésticos

Leia mais

BrokerCell: programando celular com J2ME para cotar papéis na Bovespa

BrokerCell: programando celular com J2ME para cotar papéis na Bovespa BrokerCell: programando celular com J2ME para cotar papéis na Bovespa Nairon Neri Silva 1, Luís Augusto Mattos Mendes(Orientador) 1 1 Ciência da Computação - Universidade Presidente Antônio Carlos (UNIPAC)

Leia mais

Jornalismo Multiplataforma. Tecnologias Redes e Convergência. eduardo.barrere@ice.ufjf.br

Jornalismo Multiplataforma. Tecnologias Redes e Convergência. eduardo.barrere@ice.ufjf.br Jornalismo Multiplataforma Tecnologias Redes e Convergência eduardo.barrere@ice.ufjf.br Panorama Em 2011, a TV atingiu 96,9% (http://www.teleco.com.br/nrtv.asp) TV Digital Uma novidade???? TV Digital Resolve

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

Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes

Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes XV Simpósio Brasileiro de Bancos de Dados 2-6 de Outubro de 2000 João Pessoa - Paraíba, Brasil Integrando Java e Banco de Dados (Tutorial) por Jorge Henrique Cabral Fernandes Departamento de Informática

Leia mais

JDBC Acessando Banco de Dados

JDBC Acessando Banco de Dados Acessando Banco de Dados Objetivos Entender o que são Drivers. Diferenciar ODBC, JDBC e DRIVERMANAGER. Desenvolver uma aplicação Java para conexão com Banco de Dados. Criar um objeto a partir da classe

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

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

Introdução ao IDE Netbeans (Programação Java)

Introdução ao IDE Netbeans (Programação Java) Universidade Federal do ABC (UFABC) Disciplina: Processamento da Informação (BC-0505) Assunto: Java e Netbeans Introdução ao IDE Netbeans (Programação Java) Conteúdo 1. Introdução... 1 1.1. Programas necessários...

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

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

Prof. Manuel A Rendón M

Prof. Manuel A Rendón M Prof. Manuel A Rendón M Tanenbaum Redes de Computadores Cap. 1 e 2 5ª. Edição Pearson Padronização de sistemas abertos à comunicação Modelo de Referência para Interconexão de Sistemas Abertos RM OSI Uma

Leia mais

Prime: uma solução Java para acesso móvel a informações utilizando GSM/GPRS

Prime: uma solução Java para acesso móvel a informações utilizando GSM/GPRS Prime: uma solução Java para acesso móvel a informações utilizando GSM/GPRS RENATO BARBOSA MIRANDA VALESKA PIVOTO PATTA MARCONDES Inatel - Instituto Nacional de Telecomunicações ICC - Inatel Competence

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

Microsoft Visual Studio Express 2012 for Windows Desktop

Microsoft Visual Studio Express 2012 for Windows Desktop Microsoft Visual Studio Express 2012 for Windows Desktop Apresentação da ferramenta Professor: Danilo Giacobo Página pessoal: www.danilogiacobo.eti.br E-mail: danilogiacobo@gmail.com 1 Introdução Visual

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Aula 01: Começando com Java Objetivos: Compreender o que é Java, OO e suas vantagens; Entender os procedimentos para criação

Leia mais

Arquitetura Java ME (J2ME) & Tecnologias Java Embarcadas Relacionadas

Arquitetura Java ME (J2ME) & Tecnologias Java Embarcadas Relacionadas Arquitetura Java ME (J2ME) & Tecnologias Java Embarcadas Relacionadas INF-455/655 Computação Móvel Universidade Federal de Viçosa Departamento de Informática Conteúdo 3 sabores para as plataformas Java

Leia mais

Threads e Sockets em Java. Threads em Java. Programas e Processos

Threads e Sockets em Java. Threads em Java. Programas e Processos Threads em Java Programas e Processos Um programa é um conceito estático, isto é, um programa é um arquivo em disco que contém um código executável por uma CPU. Quando este programa é executado dizemos

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

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

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

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

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos. Programação Orientada a Objetos Utilizando Java Pedro de Alcântara dos Santos Neto e-mail: pasn@ufpi.edu.br Home Page: http:// www.ufpi.br/pasn Relevância e Motivação Técnicas a serem utilizadas na prática

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

P n o t n ifíci c a a Un U i n ve v r e si s da d d a e d e C a C t a ól ó ica c a d o d o R i R o o d e d e J a J n a e n i e ro o PU P C U -Ri R o

P n o t n ifíci c a a Un U i n ve v r e si s da d d a e d e C a C t a ól ó ica c a d o d o R i R o o d e d e J a J n a e n i e ro o PU P C U -Ri R o Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática Costa clayton.maciel@ifrn.edu.br

Leia mais

Computação Móvel J2ME

Computação Móvel J2ME Computação Móvel J2ME Java 2 Platform (1) Java 2 Standard Edition (J2SE) Desktop applications Java 2 Enterprise Edition (J2EE) Server applications Java 2 Micro Edition (J2ME) Handheld/embedded devices

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

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL

A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL A INTERNET COMO FERRAMENTA AUXILIAR NO ENSINO DE MECÂNICA COMPUTACIONAL Manoel Theodoro Fagundes Cunha Sergio Scheer Universidade Federal do Paraná, Setor de Tecnologia, Centro de Estudos de Engenharia

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

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java RedFoot J Dukes Uma Visão Geral Sobre Plataforma Java Marco Aurélio malbarbo@din.uem.br 1 Roteiro Objetivos Plataforma Java Linguagem de Programação Maquina Virtual Tecnologias Conclusão 2 Objetivos Geral

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Java 1 visão geral. Vitor Vaz da Silva

Java 1 visão geral. Vitor Vaz da Silva Java 1 visão geral Vitor Vaz da Silva Introdução 1991 Um grupo de projectistas da Sun Green Team tenta criar uma nova geração de computadores portáteis inteligentes e com grande capacidade de comunicação.

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

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