ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME

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

Download "ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME"

Transcrição

1 Organização Sete de Setembro de Cultura e Ensino LTDA Faculdade Sete de Setembro FASETE Curso de Bacharelado em Sistemas de Informação Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Paulo Afonso BA Abril/2011

2 Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Monografia apresentada ao Curso de Graduação em Sistemas de Informação da Faculdade Sete de Setembro - FASETE, como pré-requisito para a obtenção do grau de Bacharel. Orientador: Prof. Esp. Fabiano Amorim Vaz Co-Orientador: Prof. Esp. Eloy Lago Paulo Afonso BA Abril/2011

3 Edvangno Costa Santos ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME Monografia apresentada ao Curso de Graduação em Sistemas de Informação da Faculdade Sete de Setembro - FASETE, como pré-requisito para a obtenção do grau de Bacharel. Orientador: Prof. Esp. Fabiano Amorim Vaz Co-Orientador: Prof. Esp. Eloy Lago Data de aprovação / / Aprovado por: Prof. Esp. Fabiano Amorim Vaz (Orientador) Prof. Esp. Igor Oliveira Costa Prof. Esp. Jackson Pires Júnior Paulo Afonso BA Abril/2011

4 Dedico o presente trabalho a minha família, Martha Soares esposa dedicada; meus queridos filhos Eduardo e Matheus.

5 AGRADECIMENTOS Obrigado meu bom Deus! Deusque me ilumina nas horas de indecisão, que me guia na escuridão. A minha querida sogra Antonia Soares, que sempre acreditou no meu sucesso. Tenha certeza seus ensinamentos nunca serão esquecidos. A minha querida mãe Ivaneide Dias, muito obrigado. Maria Luiza e Erasmo Nunes, ambos de caráter e bondade inestimáveis, etenos em meu coração. Não poderia esquecer jamais dos meus queridos amigos, Anailton, Alan, Cícero, Eric, Josimar, Mário, Paula, SilaseVinícius. Essa é a turma. Obrigado professores, novas turmas, outros alunos, entretanto uma coisa é certa, Eu nunca me esquecerei dos bons ensinamentos, dos bons professores, das alegrias compartilhadas, de um tempo inesquecível. Por fim, agradeço a todos vocês que fazem parte da minha vida, nessa que foi uma incrível jornada chamada Sistemas de Informação da Faculdade Sete de Setembro.

6 SANTOS, Edvangno Costa. ANÁLISE DOS PADRÕES DE PROJETOS QUE SÃO APLICADOS NO DESENVOLVIMENTO DE INTERFACE GRÁFICA DA PLATAFORMA J2ME f. Monografia (Curso de Bacharelado em Sistemas de Informação). Faculdade Sete de Setembro-FASETE. Paulo Afonso BA. RESUMO A plataforma Java ME pode ser considerada como uma das tecnologias mais importantes do ambiente de desenvolvimento móvel, por se tratar de uma tecnologia de fácil aprendizado, portabilidade e implantação. Tais características herdadas da plataforma Java e a constante evolução do setor de tecnologia móvel tornam possível que tecnologias atuais passem a ser aplicadas ao ambiente de desenvolvimento móvel. É neste cenário que conceitos como o de Padrões de Projetos passam a ser aplicadas ao ambiente móvel, principalmente no tocante a problemas de softwares referentes ao desenvolvimento de GUI para dispositivos móveis. O objetivo deste trabalho é realizar uma análise dos padrões de projetos que são aplicados na resolução de problemas referentes ao desenvolvimento de interface gráfica para a arquitetura Java J2ME. A metodologia seguiu uma análise descritiva, através da coleta bibliográfica e documental que possibilitou uma revisão da literatura sobre o tema proposto. Os resultados obtidos permitiram verificar que os Padrões de Projetos estudados, que estão relacionados ao desenvolvimento de interface gráfica para dispositivos móveis, apresentam soluções que nos remete ao desenvolvimento em camadas, característica esta, que facilita o processo de desenvolvimento, bem como cria uma metodologia de desenvolvimento que antecipa e facilita o processo de atualização do aplicativo desenvolvido. Palavras-chave: Plataforma Java ME. Limitação Tecnológica. Padrão de Projeto. Ambiente Móvel.

7 SANTOS, Edvangno Costa. Investigation of the Applicability of Design Patterns in Java J2ME Mobile Platform f. Monografia (Curso de Bacharelado em Sistemas de Informação). Faculdade Sete de Setembro - FASETE. Paulo Afonso BA. ABSTRACT The Java ME platform can be considered as one of the major technologies of the mobile development environment, because it is easy to learn a technology, portability and deployment. These characteristics inherited from the Java platform and the constant evolution of the mobile industry, current technology makes it possible to pass to be applied to the mobile development environment. Against this backdrop, the concepts of Design Patterns are now applied to the mobile environment, especially regarding the problems related to software development GUI for mobile devices. The objective of this study is to perform an investigation of the main types of design patterns that can be applied to Java J2ME mobile platform, describing its characteristics and outcomes in troubleshooting. The methodology followed a comparative analysis, by collecting literature and public documents that allowed a review of the literature on the theme. The results allowed to verify that the most studied Design Patterns, which are related to the mobile development environment, provides solutions that brings us to the development in layers, which facilitates the development process as well as creating a development methodology that anticipates and facilitates the process of updating the application developed. Key-words: Java ME Platform. Design Pattern. Mobile environment

8 LISTA DE ILUSTRAÇÕES Figura 1 - Plataformas Java Figura 2 - Relação entre as edições da plataforma Java Figura 3 - Relação entre o CDC e o CLDC Figura 4 - Classificação dos Padrões de Projetos Figura 5 - Classes de interface do usuário MIDP Figura 6 - Limitação de recursos gráficos em um dispositivo Móvel Figura 7 - Hierarquia de Menus em um dispositivo Móvel Figura 8 - Inserção de um novo item de Menu Figura 9 - Transição de telas Figura 10 - Botões utilizados para paginar páginas Figura 11 - Aplicação que não utiliza o padrão Pagination Figura 12 - Aplicação que utiliza o padrão Pagination Figura 13 - Apresentação de Slides em um dispositivo Móvel Tabela 1 - Diferenças entre CDC e CLDC Tabela 2 - Componentes de interface gráfica e menu Aplicações baseadas J2ME. 41

9 LISTA DE ABREVIATURAS E SIGLAS ANATEL API CDC CLDC GSM HTTP HTTPS IBGE J2EE J2ME J2SE JCP JDK JEE JRE JSE KVM MID MIDP MVC PDA SMS Agência Nacional de Telecomunicações Application Programming Interface Connected Device Configuration Connected Limited Device Configuration Generic Service Menssage Hypertext Transfer Protocol HyperText Transfer Protocol secure Instituto Brasileiro de Geografia e Estatística Java 2 Enterprise Edition Java 2 Micro Edition Java 2 Standart Edition Java Community Process Java Development Kit Java Enterprise Edition Java Runtime Environment Java Standard Edition Kylobyte Virtual Machine Multi-information display Móbile Information Device Profile Model View Controller Personal Digital Assistant Short Menssage Service

10 SUMÁRIO 1 INTRODUÇÃO Justificativa Definição do Problema Hipóteses Objetivos Geral Específicos Metodologia JAVA 2 MICRO EDITION (J2ME) Visão Geral da Arquitetura Java J2ME Arquitetura Configuração Connected Limited Device Configuration (CLDC) CDC (Connected Device Configuration) Perfil Máquina Virtual K (KVM) DESIGN PATTERNS Definição Descrevendo um Padrão de Projeto Classificação dos Padrões de Projetos Selecionando um Padrão de Projeto Utilizando um Padrão de Projeto ANTIPATTERS Interface Gráfica dos Aplicativos Móveis Interface Gráfica Limitação Gráfica dos Dispositivos Móveis PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME Padrão Cascading Menu Padrão Wizard Dialog Padrão Pagination Padrão Slide Show CONSIDERAÇÕES FINAIS REFERÊNCIAS... 53

11 INTRODUÇÃO

12 INTRODUÇÃO 11 1 INTRODUÇÃO Atualmente, a integração dos dispositivos móveis com a internet e a constante evolução de hardware dos dispositivos telefônicos móveis, disponibiliza uma gama de possibilidades, tanto para os usuários do setor como para a área de Desenvolvimento de Software, que se beneficiam do avanço tecnológico, desenvolvendo novos projetos, através da utilização de ferramentas de produção mais robustas. No Brasil existem aproximadamente 210 milhões de celulares (ANATEL, 2011), ou seja, em média mais de um celular para cada habitante, visto que segundo o Instituto Brasileiro de Geografia e Estatística (IBGE, 2007) a população nacional é de aproximadamente 190 milhões de habitantes. A partir de tal informação podemos inferir que o setor de telefonia móvel torna-se um importante mercado para os desenvolvedores de software, caracterizado pelo grande número de dispositivos portáteis de comunicação existentes. Neste cenário, estão inseridas as tecnologias de desenvolvimento de software voltadas exclusivamente para dispositivos móveis como é o caso da arquitetura de desenvolvimento Java 2 Micro Edition (J2ME) pertencente à empresa de tecnologia Oracle que desenvolve seus aplicativos utilizando a linguagem de desenvolvimento de software Java. Esta é uma linguagem de programação fácil de dominar, possui um ambiente seguro e portável. É adotada por grande parte das empresas fabricantes de telefones móveis e pelas operadoras de telefonia móvel, além de possuir uma comunidade de desenvolvedores que está estimada em mais de 2 milhões de pessoas (MUCHOW, 2004). J2ME vem acompanhando o avanço dos dispositivos móveis que vem se acentuando constantemente, onde podemos destacar o significativo avanço tecnológico que possibilitou que as especificações da linguagem Java como Java Standard Edition (SE) e Java Enterprise Edition (EE) passassem a ser aplicadas para a versão móvel do Java. Entretanto ainda apresenta limitações que muitas vezes impossibilitam os desenvolvedores de utilizarem as melhores tecnologias, devido a restrições impostas pela arquitetura dos dispositivos móveis, ou mesmo por deficiências do ambiente de desenvolvimento.

13 INTRODUÇÃO 12 Como conseqüência deste cenário tecnológico os desenvolvedores de aplicativos móveis passaram a utilizar padrões de projeto no desenvolvimento de suas aplicações; obtendo assim, significativas conquistas, como no caso dos problemas que ocorrem durante o desenvolvimento da interface gráfica de uma aplicação para um dispositivo móvel em MIDP (Mobile Information Device Profile), sendo que os problemas foram solucionados através do uso de padrões de projeto específicos, através de soluções alternativas para os referidos problemas. O presente trabalho delimita-se em quatro partes principais, orientada aos conceitos referentes à arquitetura da plataforma de desenvolvimento J2ME, Padrões de Projetos, limitações tecnológicas existentes no desenvolvimento de interfaces gráficas para dispositivos móveis, por fim, é apresentada a atuação dos padrões projetos específicos na resolução de problemas referentes ao desenvolvimento de interfaces, sendo que esta é a principal contribuição do presente trabalho para o meio acadêmico. 1.1 Justificativa Padrão de Projeto ainda é um conceito em aberto no que diz respeito ao desenvolvimento de software para dispositivos móveis, isso porque a maioria dos padrões existentes é conhecida e aplicada em plataformas como Java SE e Java EE, entretanto, vem sendo incorporados constantemente à plataforma de desenvolvimento móvel. A grande vantagem da utilização de um Padrão de Projeto em um problema de software está relacionada ao fato dos padrões de projetos utilizarem abordagens comprovadamente funcionais que antecipam necessidades futuras (LINHADECODIGO, 2011), a fim de facilitar a manutenção e possíveis atualizações do sistema. A relevância deste trabalho vem da utilidade e importância que os dispositivos móveis possuem, aparelhos como celulares e computadores portáteis a cada dia tornam-se mais populares e modernos. Utilizar métodos já testados e conhecidos através dos padrões de projetos para solucionar problemas comuns do desenvolvimento de GUI para dispositivos móveis reduz os custos de desenvolvimento de projeto, como também cria um ambiente padronizado de desenvolvimento. Tais informações possuem grande valor, não só para os

14 INTRODUÇÃO 13 desenvolvedores, como também para a comunidade acadêmica que poderá fazer uso de tais conceitos em seus projetos acadêmicos. 1.2 Definição do Problema A computação móvel é caracterizada pela utilização de computadores portáteis com capacidade de comunicação, fortemente associada com a mobilidade de hardware, software e informação (TEWARI & GRILLO, 1995). Entretanto, na fase de desenvolvimento de uma aplicação para o ambiente móvel um grande número de aspectos deve ser analisados, principalmente fatores relacionados a limitações de hardware existentes e a diversidade de dispositivos. Identificar alternativas para sanar algumas das limitações impostas, através de conceitos já existentes, que tratem de soluções conhecidas e testadas do processo de desenvolvimento de software, que possam ser aplicadas ou mesmo adaptadas a arquitetura móvel do Java J2ME, é mais um dos desafios que precisam ser contornados quando lidamos com projetos para dispositivos móveis. Analisando padrões de projetos que são aplicados na resolução de problemas referentes à interface gráfica da plataforma J2ME, algumas questões podem ser levantadas, entre elas citamos: Quais são os tipos de Padrões de Projetos que podem ser aplicados na resolução de problemas referentes ao desenvolvimento de GUI da plataforma J2ME? Quais as conseqüências da utilização de determinados padrões, em relação aos problemas propostos? 1.3 Hipóteses Alguns dos problemas encontrados durante o desenvolvimento de interfaces gráficas para dispositivos móveis são solucionados através do uso de padrões de projetos específicos da arquitetura J2ME.

15 INTRODUÇÃO 14 Padrões de Projetos quando utilizados na resolução de problemas referentes ao desenvolvimento de interfaces gráficas, minimizam as limitações existentes, através das boas práticas de programação, orientadas pelos padrões. 1.4 Objetivos Geral Analisar os principais tipos de padrões de projetos que se aplicam a plataforma móvel do Java J2ME, descrevendo suas características e resultados na resolução de problemas referentes ao desenvolvimento de interface gráfica Específicos Identificar e analisar, na literatura especializada, os principais Padrões de Projeto, que se aplicam ao ambiente de desenvolvimento móvel; Avaliar aspectos relevantes dos Padrões de Projetos quando aplicados na resolução de problemas referente ao desenvolvimento de interfaces gráficas para dispositivos móveis; Ponderar a relação existente entre os Padrões de Projeto e a plataforma móvel do Java J2ME. 1.5 Metodologia A pesquisa trata de um estudo bibliográfico dos principais Padrões de Projeto que podem ser aplicados na resolução de problemas referente ao desenvolvimento de interfaces gráficas para dispositivos móveis, através da plataforma J2ME. Na primeira etapa desse trabalho, foi realizado o levantamento da bibliografia existente e um estudo das diversas metodologias e tecnologias referentes aos temas Padrões de Projeto e Java J2ME. Obtendo assim conceitos relevantes à pesquisa

16 INTRODUÇÃO 15 monográfica como: tipos de padrões de projeto, ambiente móvel e restrições de aplicabilidade. A metodologia utilizada na realização deste estudo consiste em uma pesquisa bibliográfica referente aos temas principais que são respectivamente: padrões de projeto e a plataforma Java J2ME, apresentando suas principais característica e limitações. Para o presente estudo, foram utilizadas fontes secundarias como livros, revistas, sites especializados com informações relevantes ao tema, além de artigos já publicados e monografias que tratem de informações de importante relevância para o presente trabalho. Os materiais consultados apresentam publicações desde o ano de 1995 até 2011, visto que alguns dos artigos estudados apresentam datas referentes a tal período de tempo. A análise dos materiais seguiu uma metodologia de análise de conteúdos por permitir maior compreensão das questões abordadas pelos autores e a apresentação de soluções aos problemas.

17 JAVA 2 MICRO EDITION (J2ME)

18 JAVA 2 MICRO EDITION (J2ME) 17 2 JAVA 2 MICRO EDITION (J2ME) Neste capítulo serão abordados conceitos referentes aos tipos de arquiteturas que são suportadas pelo Java. Com objetivo de mostrar as definições referentes à arquitetura, a fim de entendermos a diferença e relação entre elas. 2.1 Visão Geral da Arquitetura Java A plataforma Java 1 já atraiu mais de 6,5 milhões de desenvolvedores de software em todo o mundo, devido principalmente a sua portabilidade e abrangência (JAVA, 2011). Java é uma linguagem de programação orientada a objetos classificada em três especificações que são baseadas em suas funcionalidades e propósitos de desenvolvimento, como apresentado na figura abaixo. Figura 1 - Plataformas Java Fonte: Tecnologia e Gestão da Informação (2008,58) Elementos apresentados na figura: 1 - Java Micro Edition (JME) Tecnologia Java voltada essencialmente para o desenvolvimento de aplicações para dispositivos móveis. A arquitetura JME é constituída de configurações, perfis e pacotes opcionais. Através da combinação destes três elementos são construídos ambientes de execução completos e que preenchem os requisitos de diversas classes de dispositivos. Cada um desses elementos é otimizado levando em conta as restrições de memória, armazenamento e processamento de uma determinada categoria de dispositivos. O resultado é uma 1 Plataforma Java é o nome dado ao ambiente computacional, ou plataforma, elaborado pela empresa Sun Microsystems.

19 JAVA 2 MICRO EDITION (J2ME) 18 plataforma comum, que é compatível com a maioria dos dispositivos móveis do mercado (PEREIRA, 2006). 2 - Java Standard Edition (JSE) é considerada a plataforma mais abrangente do Java, devido principalmente ao fato da plataforma JME e JEE ter derivado de sua estrutura. Foi projetada para desenvolver aplicações para computadores pessoais conhecidos como Desktops. Há dois produtos principais da família da plataforma JSE que são conhecidos como Java Runtime Environment (JRE) e o Java Development Kit (JDK). O JRE fornece bibliotecas à Máquina Virtual Java e outros componentes para executar applets 2 e aplicativos escritos na linguagem de programação Java. Temos ainda as principais tecnologias de implantação que fazem parte da JRE que são o Java Plug-in 3 e o Java Web Start. O Java Plug-in possibilita que as applets sejam executadas em browsers populares e o Java Web Start implementa aplicações autônomas em uma rede (ORACLE, 2010). O JDK pode ser descrito como um conjunto de utilitários que permitem criar sistemas de software para a plataforma de desenvolvimento Java, para tanto usa um super conjunto do JRE, contendo todo o ambiente necessário para a criação e execução de aplicações Java. Faz parte desse ambiente de desenvolvimento a linguagem de desenvolvimento Java, Máquina Virtual Java, o Compilador Java, entre outras. 3 - Java Enterprise Edition (JEE) é uma plataforma amplamente usada dispondo de um conjunto de tecnologias que reduz significativamente o custo e a complexidade do desenvolvimento, implantação e gerenciamento dos aplicativos das várias camadas centradas em servidor (NETBEANS, 2011). Projetada para o desenvolvimento de aplicações mais robustas, voltadas para o setor empresarial que dispõem de computadores com grande poder de processamento o Java EE possui alguns componentes fundamentais como o Enterprise Java Beans (EJB) que permite o desenvolvimento rápido e simplificado 2 Applets - é um software aplicativo que é executado no contexto de outro programa (como por exemplo um web browser), uma applet geralmente executa funções bem específicas. 3 Plug-in - é um programa de computador usado para adicionar funções a outros programas maiores, provendo alguma funcionalidade especial ou muito específica.

20 JAVA 2 MICRO EDITION (J2ME) 19 de aplicativos distribuídos baseado na tecnologia Java e o Java Persistence API que permite aos desenvolvedores gerenciar os dados utilizando o mapeamento objetorelacional (ORM) em aplicativos construídos na plataforma Java (NETBEANS, 2011). NOTA: Em dezembro de 1998, a Sun introduziu o nome "Java 2" (J2) de forma a coincidir com o lançamento do Java 1.2. Esta nova convenção de nomenclatura se aplica a todas as edições do Java, Standard Edition (J2SE), Enterprise Edition (J2EE), e Micro Edition (J2ME). 2.2 J2ME J2ME engloba um conjunto de tecnologias desenvolvidas para dispositivos que possuem limitações tecnológicas, dispositivos estes que possuem pouca capacidade de armazenamento, memória e têm processamento restrito. Tais limitações são percebidas em dispositivos como: Pagers, Celulares, Smartphones, Palm (ORACLE, 2010). Java 2 Micro Editon é uma plataforma de desenvolvimento inteiramente projetada com o intuito de atender as necessidades da área de computação móvel. Pode ser definida também como sendo uma coleção de tecnologias e especificações, que implementa a linguagem Java através de subconjuntos de componentes J2SE(Java 2 Standart Edition); isto porque J2ME é uma versão reduzida da J2SE. Esta redução foi realizada devido ao fato da maioria dos dispositivos móveis possuírem pouca memória para suportar a J2SE, daí a necessidade de uma versão reduzida da J2SE e uma máquina virtual menor (BEVILACQUA, 2007). Java 2 Enterprise Edition (J2EE) surgiu devido ao avanço da internet e das aplicações empresarias. Projetada para desenvolvimento de aplicações baseadas em servidores (máquinas que possuem um alto poder de processamento e memória).

21 JAVA 2 MICRO EDITION (J2ME) 20 Figura 2 - Relação entre as edições da plataforma Java. Fonte: Filipe da Silva Regue ira (2006,22). Na Figura 2 podemos observar o relacionamento entre as edições da plataforma Java. Perceba que arquitetura J2SE está totalmente inclusa na J2EE; o que não ocorre com a J2ME, isto porque, ela é apenas uma versão reduzida da J2SE e J2EE Arquitetura Como apresentado anteriormente J2ME é uma arquitetura de desenvolvimento voltada essencialmente para dispositivos móveis; no entanto no mercado existem variados tipos de dispositivos móveis, com funcionalidades e arquiteturas de hardware diferenciadas; para contornar essa variação de funcionalidades e arquitetura a solução encontrada pela equipe da Sun Java Community Process 4 (JCP), foi a de separar a arquitetura do J2ME em duas partes, que são apresentadas como os conceitos de Configuração e Perfil Configuração Uma das principais características da configuração é o fato de poder definir uma plataforma mínima para uma determinada categoria de dispositivos móveis. De acordo com a Sun (2002), uma configuração diz respeito a dispositivos que possuam restrições e limitações de recursos. 4 Java Community Process, ou JCP, é a um processo formalizado que permite que as partes interessadas se envolvam nas definições de versões futuras e funcionalidades da plataforma Java. O processo JCP utiliza os Java Specification Requests (JSRs), que são documentos formais que descrevem as especificações propostas e tecnologias que se pretende adicionar na plataforma Java.

22 JAVA 2 MICRO EDITION (J2ME) 21 Sendo assim uma configuração é responsável por definir uma máquina virtual, um conjunto mínimo de bibliotecas e os recursos da linguagem Java que estão disponíveis para os dispositivos de uma determinada categoria. Atualmente existem dois tipos de configuração que são CLDC (Connected Limited Device Configuration) configuração mais leve e CDC (Connected Device Configuration) - que é uma configuração mais pesada, que inclui todas as classes definidas pelo CLDC. Na figura 3 é apresentada a relação existente entre elas, perceba que a configuração CLDC está totalmente inclusa na CDC, isto porque a configuração CLDC é um subconjunto do CDC como pode ser observado na figura. Figura 3 - Relação entre o CDC e o CLDC Fonte: Connected Limited Device Configuration (CLDC) O CLDC foi desenvolvido para dispositivos que possuam limitações tecnológicas, como podemos exemplificar os vários dispositivos eletrônicos de comunicação que usamos no nosso dia-a-dia como os Telefones Celulares e Terminais de vendas. Tais dispositivos possuem restrições severas de hardware como uma interface gráfica mais restrita, tendo em vista o tamanho da tela, pouca quantidade de memória disponível, a vida da bateria que é curta, entre outras limitações que afetam diretamente os tipos de aplicações baseadas na tecnologia Java. O CLDC não requer muitos recursos e tem como objetivo definir uma plataforma Java padrão mínima para dispositivos que possuem características especificas. Para que tal dispositivo pertença a essa configuração, este deve possuir as seguintes restrições:

23 JAVA 2 MICRO EDITION (J2ME) KB de memória persistente e pelo menos 32 KB de memória volátil, em um total de 192 KB; 16 bits ou processadores de 32 bits Baixo consumo de energia, freqüentemente usando energia de baterias; Conectividade a algum tipo de tipo de rede, em geral sem fio. Como os recursos de software que cada dispositivo possui são muito variados, o CLDC assume que um sistema operacional ou kernel 5 mínimo esteja disponível para gerenciar o hardware. Esse sistema deve prover pelo menos uma entidade escalonável para rodar a Java Virtual Machine. Dentre as áreas que essa especificação se aplica podemos citar as bibliotecas Core Java (java. lang.*, java. util.*), entrada e saída e rede. Entretanto a especificação CLDC não se aplica a interface com o usuário, tratamento de eventos, entre outros. A configuração CLDC dá suporte a pacotes opcionais, que são Wireless Messaging API (WMA) para implementar recursos de envio e recebimento de mensagens como SMS (), MMS () e o Media Mobile API (MMA), que possui os recursos multimídia, como vídeo, áudio, etc. CDC (Connected Device Configuration) Desenvolvido para dispositivos que possuem maior capacidade tecnológica como as TVs de nova geração e alguns PDA (Assistente Pessoal Digital) que suportam CDC e possuem processadores de 32 bits, pelo menos 2 MB de memória principal e 2,5 MB de ROM, e algum tipo de conectividade de rede. De forma geral o CDC pode ser definido como um super conjunto do CLDC. 5 Kernel - É o componente central do sistema operativo da maioria dos computadores; ele serve de ponte entre aplicativos e o processamento real de dados feito a nível de hardware.

24 JAVA 2 MICRO EDITION (J2ME) 23 Tabela 1 - Diferenças entre CDC e CLDC CDC Dispositivo Com maior capacidade Computacional. Discos com grande capacidade de armazenamento. Grande capacidade de Memória Fonte Permanente de Energia Set-Top Boxes de TVs a cabo (Digitais), Sistemas Automotivos, Eletrodomésticos. Fonte: GOMES, 2007 CLDC Conectividade Intermitente Pouca capacidade de Armazenamento Pouca capacidade de Memória Fonte Limitada de Energia (Baterias) Celulares, Smartphones, PDAs, Pagers, entre outros. Vale lembrar que atualmente uma crescente convergência tecnológica está ocorrendo nas indústrias e, devido a essas antigas e futuras semelhanças e diferenças muito provavelmente essa classificação poderá ser alterada a qualquer momento (COUTINHO, 2005) Perfil É um conjunto de padrões de APIs 6 que oferece suporte para uma gama de dispositivos que são construídos sobre uma determinada configuração (SUN, 2002). O perfil se encarrega de definir o denominador comum entre os dispositivos, onde a combinação de uma configuração com um perfil forma uma aplicação J2ME. O MIDP (Mobile Information Device Profile) é o perfil suportado pela CLDC e foi desenvolvido para rodar em cima do CLDC, além de estender a CDC, aumentando e criando alguns requisitos mínimos de Hardware e Software. (GOMES, 2007). Ou seja, o perfil MIDP é usado em conjunto com a Configuração CLDC, além de definir APIs para componentes, entrada e tratamento de eventos de interface com o usuário, levando em consideração as limitações de tamanho de tela e memória. O perfil MIDP possui características como: 6 Interface de Programação de Aplicações (API) - é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos que não querem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.

25 JAVA 2 MICRO EDITION (J2ME) 24 Suporte para interface gráfica com o usuário (GUI): A interface GUI é otimizada para o tamanho da tela; com variados métodos de entrada de dados como teclado de telefones celulares ou mesmo por eventos em tela Touchscreen 7. Extensiva Conectividade: por apresentar maior flexibilidade no desenvolvimento de aplicações cliente/servidor tendo em vista que o perfil MIDP implementa os padrões de protocolos como o HTTP, HTTPS, Sockets e Datagramas por meio do framework GCF (Generic Connection Framework), além de serviços SMS (Short Menssage Service), GSM (Generic Service Menssage). Para executar uma aplicação MIDP é preciso dispor de uma máquina virtual menor, que funcione conforme as especificações da configuração CLDC, para atingir tal objetivo a equipe de desenvolvedores da Sun criou Kylobyte Virtual Machine. 2.3 Máquina Virtual K (KVM) A KVM (Kylobyte Virtual Machine) foi projetada para ser menor e ter a maior eficiência possível, precisando ainda manter-se rápida para as linguagens Java (DEVMEDIA, 2011). O termo K da sigla KVM surgiu para fazer alusão aos poucos Kylobytes necessários para que a máquina virtual execute uma aplicação na configuração CLDC. Na configuração CDC está disponível a CVM (Compact Virtual Machine), que é uma JVM mais exigente que a KVM, disponível para dispositivos móveis que disponham de uma configuração de no mínimo um processador de 32-bit 8 e 2 MB total de memória, como os comunicadores sem fio e PDA 9 s de alto nível. A vantagem da KVM se deve ao seu tamanho que é realmente pequena, sendo que diversas funcionalidades da máquina virtual e da linguagem não essenciais como manipulação de eventos, tornaram-se opcionais, onde a escolha de uma 7 Tela sensível ao toque 8 Bite - Unidade de medida 9 Assistente Pessoal Digital; Computador de dimensões reduzidas.

26 JAVA 2 MICRO EDITION (J2ME) 25 configuração em particular define o que deve ou não ser incluído na implementação da KVM. A maior desvantagem da KVM está relacionada ao seu pequeno tamanho; sendo que para manter o tamanho reduzido a Sun comprometeu a linguagem e a máquina virtual, fazendo com que a programação em J2ME seja muito diferente da programação para Standard ou Enterprise Edition.

27 DESIGN PATTERNS

28 DESIGN PATTERNS 27 3 DESIGN PATTERNS Em engenharia de software um padrão de projeto é uma solução que foi utilizada varias vezes para resolver um determinado problema no projeto da aplicação. Podemos definir então padrões de projeto ou como são conhecidos na língua inglesa Design Patterns como sendo um grupo de soluções já testadas e utilizadas para problemas comuns do processo de desenvolvimento. 3.1 Definição Cada padrão descreve um problema o qual ocorreu diversas vezes em nosso ambiente, e então descreve os principais pontos da solução do determinado problema, de forma que podemos utilizar essa solução mais de uma vez (ALEXANDER, 1977). No entanto Alexander estava falando sobre padrões em construções e cidades, mas que também é verdade para padrões de projeto relativos à orientação a objetos. Isto porque orientação a objetos reflete os objetos reais em um determinado contexto. Um padrão de projeto nomeia e identifica os principais aspectos de uma estrutura de projeto comum para torná-la útil para criação de um projeto orientado a objetos reutilizável. Portanto o padrão de projeto identifica as classes e instancias participantes, seus papéis, colaborações e a distribuição de responsabilidades. Por fim padrões de projetos identificam o problema e descreve se o padrão pode ser utilizado, definindo custos e benefícios de sua utilização. Alur (2001) define algumas características dos padrões de projetos como: Os padrões são observados através da experiência. Os padrões normalmente são escritos em um formato estruturado. Os padrões evitam a reinvenção da roda. Existem padrões de diferentes níveis de abstração. Os padrões suportam melhorias contínuas.

29 DESIGN PATTERNS 28 Os padrões são artefatos reutilizáveis. Os padrões comunicam as melhores práticas. Os padrões podem ser utilizados em conjunto para resolverem problemas maiores que sozinhos não conseguiriam. Percebemos ao analisar as características dos padrões de projetos que um padrão pode ser descrito como um guia que descreve através de experiências obtidas, maneiras de solucionar problemas corriqueiros existentes no processo de desenvolvimento. Então um padrão de projeto não deve ser descrito como uma solução para um determinado problema e sim como um guia que descreve como solucionar um problema em questão. 3.2 Descrevendo um Padrão de Projeto Gamma (1997) descreve em seu livro a estrutura de um padrão de projeto, replicada conforme o modelo abaixo. Perceba que ele descreve a estrutura em seções, visando facilitar a leitura e compreensão dos elementos existentes no padrão. Nome e Classificação de um padrão O nome do padrão expressa a sua própria essência de forma sucinta. Um bom nome é vital, porque ele se tornará parte do seu vocabulário de projeto. Intenção e Objetivo É uma curta declaração que responde às seguintes questões: o que faz um padrão de projeto? Que tópico ou problema particular de projeto ele trata? Também conhecido como Outros nomes bem conhecidos para o padrão, se existirem. Motivação Um cenário que ilustra um problema de projeto e como as estruturas de classes e objetos no padrão soluciona o problema. O cenário

30 DESIGN PATTERNS 29 ajudará a compreender as descrições mais abstratas do padrão que vêm a seguir. Aplicabilidade Quais são as situações nas quais o padrão de projeto pode ser aplicado? Que exemplos de maus projetos ele pode tratar? Como você pode reconhecer essas situações. Estrutura Uma representação gráfica das classes do padrão usando uma notação baseada na Object Modeling Technique 10 para ilustrar seqüência de soluções e colaborações entre objetos. Participantes As classes ou objetos que participam do padrão de projeto e suas responsabilidades. Colaborações Como as classes colaboram para executar suas responsabilidades. Conseqüências Como o padrão suporta a realização de seus objetivos? Quais são os seus custos e benefícios e os resultados da sua utilização? Que aspecto da estrutura de um sistema ele permite variar independentemente? Implementação Que armadinhas, sugestões ou técnicas você precisa conhecer quando da implementação do padrão? Existem considerações especificas da linguagem? Exemplo de Código Fragmentos ou blocos de código que ilustram como você pode implementar o padrão. Uso conhecidos Exemplo do padrão encontrado em sistemas reais. Podemos notar ao observar a estrutura do padrão que determinadas seções trazem informações muito importantes para o projeto, e alguns autores como Gamma (1997) define que um padrão possui quatro elementos essenciais que são: 1. O nome do padrão - é utilizado para descrever um problema, suas conseqüências e soluções. Nomear um padrão facilita a comunicação dos 10 Object Modeling Technique - é um método de modelagem e projeto orientado a objetos.

31 DESIGN PATTERNS 30 mesmos juntamente com suas vantagens e desvantagens para outras pessoas. 2. O problema - descreve quando deve ser aplicado o padrão, explica qual o problema e o seu contexto. Pode ocorrer de o problema incluir uma lista de condições que devem ser conhecidas antes de definir se o padrão deve ou não ser utilizado. 3. A solução descreve os elementos que fazem parte da implementação, as relações entre os elementos, suas responsabilidades e colaborações. 4. As conseqüências são os resultados, as vantagens e desvantagens de se utilizar o padrão. São importantes, pois avaliam alternativas de implementação para entender os custos e benefícios de aplicar o padrão. Para obter os melhores resultados na utilização de um padrão de projeto não necessariamente é preciso estudá-lo por completo, visto que algumas das especificações contidas no padrão são objetivas e esclarecedoras, possibilitando assim seu uso imediato. Entretanto para fazer uso de todo o potencial do padrão, e conseqüentemente obter os melhores resultados é preciso conhecer todos os seus conceitos de aplicabilidade, maximizando assim seu efeito no projeto. Ou seja, por mais diversificados que seja os padrões de projetos possuem a mesma estrutura básica de elementos; deve conter Nome, Problema, Solução e Conseqüência. 3.3 Classificação dos Padrões de Projetos Segundo Gamma (1997) Os padrões de projetos estão organizados de forma a facilitar uma eventual busca, visto que existem vários tipos de padrões de projeto. Essa organização e classificação implicam em um aprendizado mais eficiente e rápido. Para classificar um padrão é necessário ter como base dois critérios que são:

32 DESIGN PATTERNS Classificação segundo o Escopo Especifica se o padrão é aplicado primariamente a classes ou objetos. Padrões que possuem escopo de classe trabalham com relações entre as classes e subclasses. Relação esta que é estabelecida através de herança e definida em tempo de compilação. Podemos citar como exemplo os tipos de padrão Adapter e Interpreter. Durante o tempo de execução as relações entre os objetos podem ser alteradas, tornando mais flexíveis suas relações. Padrões como Singleton e Facede definidos por Gamma (2005) possuem escopo de objeto, pois, trabalham com relações entre os objetos. 2. Classificação segundo o propósito Divide-se em propósito de Criação, Estrutural e Comportamental, divisão esta que reflete o que o padrão faz. o Propósito de criação vai ajudar a desenvolver sistemas que são independentes de como os objetos são criados, compostos e representados. Um padrão de criação com o escopo de classe utiliza herança para variar a classe que é instanciada, enquanto que um padrão de criação com o escopo de objeto delega o processo instanciar para outro objeto. Quando se utiliza os padrões de criação o sistema tem apenas conhecimento das interfaces do objeto e as configurações podem ser estáticas, que são especificadas em tempo de compilação ou dinâmicas que são especificadas em tempo de execução. Propósito Estrutural são padrões de projeto que vão facilitar o projeto, identificando as melhores maneiras de entender os relacionamentos entre as entidades, envolvendo-se também na composição das classes e objetos. Propósito Comportamental Padrões com propósito comportamental estão envolvidos com algoritmos e a atribuição de responsabilidades entre os projetos. Padrões comportamentais com escopo de classe fazem uso de herança na distribuição de comportamento entre as classes, enquanto que o escopo de objeto utiliza composição de objeto. Na tabela 4 abaixo é possível verificar os critérios de classificação, bem como o nome de cada padrão de projeto e classificação:

33 DESIGN PATTERNS 32 Figura 4 - Classificação dos Padrões de Projetos Fonte: Antes de aplicar um padrão de projeto efetivamente é necessário definir qual o padrão que será utilizado, padrão que deve ser o mais apropriado para o problema, entretanto existe mais de 20 tipos de padrões e encontrar aquele que melhor trata o problema não é tarefa simples. 3.4 Selecionando um Padrão de Projeto Para selecionar o melhor padrão é necessário ter em mente o problema em questão, num entanto existem alguns conceitos que lhe ajudará nessa complicada tarefa. GAMMA (1997) define alguns desses conceitos: Estude como os padrões se inter-relacionam. Estudar tais relacionamentos pode ajudar a direcioná-lo para o padrão. Estude padrões de finalidades semelhantes, a fim de obter uma visão sobre as semelhanças e diferenças existentes nos padrões com propósitos similares.

34 DESIGN PATTERNS 33 Considere o que deveria ser variável no seu projeto. Para esta abordagem deve ser considerado o que você quer que seja capaz de mudar sem reprojetar. Considere como padrões de projeto solucionam problemas de projeto Encontrar objetos apropriados, determinar suas granularidades 11, especificar interfaces e varias outras formas pelas quais padrões de projeto solucionam problemas de projeto. Examine a seção intenção Leia a seção intenção de cada padrão para encontrar os padrões que sejam relevantes para o seu problema. Lembre-se que na seção intenção são discutidas questões como o que faz o padrão e qual tipo de problema ele resolve. 3.5 Utilizando um Padrão de Projeto Ao escolher qual padrão de projeto usar é preciso definir o método de aplicação do padrão no projeto. Vejamos uma abordagem passo a passo definida por Gamma (1997) dá aplicação de um padrão de projeto efetivamente. 1. Leia o padrão por inteiro uma vez, para obter uma visão geral. Preste atenção em particular nas seções Aplicabilidade e Conseqüências, para assegurar-se de que o padrão é o correto para o seu problema; 2. Estude as seções Estrutura, Participantes e Colaborações. Para garantir que você compreendeu bem as classes e objetos no padrão e como se relacionam entre si; 3. Olhe a sessão exemplo de código, para ver um exemplo concreto do padrão codificado. O estudo do código ajuda a aprender como implementar o padrão. 4. Escolha nomes para os participantes do padrão que tenham sentido no contexto da aplicação. Se você esta utilizando o padrão Cascading Menu é 11 Granularidade- é a extensão à qual um sistema é dividido em partes pequenas, ou o sistema propriamente dito ou sua descrição ou observação.

35 DESIGN PATTERNS 34 aconselhável utilizar nomes de classes como TextLayoutCascadingMenu. Tal método ajudará a tornar o padrão mais explícito no momento da implementação. 5. Defina as classes. Estabeleça os relacionamentos de herança e identifique as classes existentes que serão afetadas pelo padrão e modifique-as de acordo. 6. Defina nomes específicos da aplicação para as operações no padrão Seja consistente nas suas convenções de nomenclaturas, use a seção colaborações associada com cada operação como guia. 3.6 ANTIPATTERS Um AntiPadrão lhe informa como ir de um problema até uma solução ruim. (FREEMAN & FREEMAN, 2007, p. 478). Após a publicação do livro da GOF Soluções Reutilizáveis de Software Orientado a Objeto muitos desenvolvedores aderiram aos conceitos apresentados no livro, passaram então a utilizar tais conceitos referentes ao uso dos padrões de projeto em seus projetos de software, por sua vez, começou naturalmente a surgir os AntiPatterns. Brown (1998) propõe uma estrutura para a descrição de antipadrões, composta pelas seguintes seções: Nome do antipadrão; Forma geral; Sintomas e conseqüências; Causas típicas, variações, a nova solução indicada, algumas exceções conhecidas e as soluções que são relacionadas. Identificar as práticas ruins pode ser tão valioso como a identificação das boas práticas e o objetivo principal dos Antipadrões é descrever as formas úteis de

36 DESIGN PATTERNS 35 modificar o código para obter um resultado de curto prazo. Não podemos confundir uma solução ruim com uma solução errada, isto porque um antipadrão não deixa de ser uma solução para um determinado problema. Pode ser descrito como um guia de sobrevivência que identifica alguns dos principais cenários em que questões destrutivas para o processo de software podem ser geridas e solucionadas a fim de resolver um problema imediato. Assim como é importante conhecer alguns dos padrões de projetos e suas boas praticas de desenvolvimento, é importante ter conhecimento das praticas ruins relacionada ao padrão, que são úteis quando o desenvolvedor não conhece a solução ideal, entretanto tem conhecimento do que não deve ser feito. Observe o exemplo abaixo: Nome: Vidro Quebrado Problema: você precisa ir ao trabalho de carro, você esqueceu a chave dentro do carro e o carro encontra-se chaveado. Como faço para não me atrasar para o trabalho? Contexto: tranquei as chaves dentro do carro. Solução: quebrar a janela entre no carro ligue-o e dirija para o trabalho. Perceba que a solução encontrada não é a ideal, mas que foi eficaz na resolução do problema proposto, no entanto, ao fazer uso de tal solução todos os dias, no fim do mês o preço da janela tornará a solução inviável. Portanto o uso do antipadrão não é uma solução final que deva ser aplicada ao problema, mas sim uma resposta de curto prazo.

37 DESIGN PATTERNS Interface Gráfica dos Aplicativos Móveis Interface Gráfica Uma aplicação que possui uma interface gráfica atraente, agradável, bem trabalhada é o primeiro passo para o sucesso de uma aplicação. Entretanto, para obter os melhores resultados ao desenvolver um aplicativo para dispositivos móveis, o desenvolvedor deve estar atento as limitações tecnológicas existentes. Os menus, ícones apresentados nas telas gráficas devem possuir uma boa navegabilidade, sem consumir muitos recursos do aparelho, de modo que as opções sejam acessadas por comandos intuitivos e de fácil acesso e visualização. O desenvolvimento de interface gráfica em MIDP é formado por uma API de altonível e outra de baixo nível, sendo que a API de baixo-nível é baseada no uso da classe abstrata Canvas. Já a API de alto-nível é formada pela classe Screen que é uma forma de alto-nível voltada à construção da Interface Gráfica dos dispositivos móveis. A classe Screen contém objetos gráficos prontos, como forms, lists, alerts e textboxes, onde cada um pode ter uma aparência, que vai variar de acordo com o dispositivo em que está sendo executada a aplicação. A figura 5 demonstra a relação existente entre as classes de interface de usuário MIDP, perceba que tanto a classe Screen como a classe Canvas herdam de Displayable que é uma superclasse abstrata que controla o que é mostrado na tela e os comandos enviados pelos usuários.

38 DESIGN PATTERNS 37 Figura 5 - Classes de interface do usuário MIDP Fonte: Geraldo Antonio Ferreira (2005,25) A classe Canvas da API é a forma de mais baixo-nível; ela proporciona maior liberdade na implementação dos gráficos e eventos, sendo que há um controle mais direto da interface de usuário com pintura na tela de primitivas gráficas, como uma reta, quadrado e círculo, diferentemente da classe Screen, em que é de responsabilidade do programador da aplicação certificar-se da portabilidade destas funções através de MIDs de diferentes características, tais como: tamanho do Display, se o Display é colorido ou preto e branco e o tipo do teclado. Ou seja, utilizando essa forma de construção, o desenvolvedor vai ser responsável por todos os detalhes da interface Limitação Gráfica dos Dispositivos Móveis Uma das principais barreiras do desenvolvimento de interfaces gráficas para dispositivos móveis está relacionada às limitações tecnológicas existentes nos dispositivos, que muitas vezes possuem diferentes capacidades computacionais, bem como dispõem de telas de tamanho diversos e cores variadas. Tais limitações e variações tornam o desenvolvimento da interface gráfica um tanto quanto complexa, onde muitas vezes esbarramos em limitações que não são comuns; é necessário então abrir mão de alguns métodos tradicionais de desenvolvimento de software, e

39 DESIGN PATTERNS 38 buscar caminhos alternativos para solucionar as dificuldades impostas pela tecnologia disponível. Normalmente os dispositivos móveis possuem uma tela de pequena dimensão e baixa resolução, que muitas vezes limitam a quantidade de informações passadas ou mesmo dificultam a visualização e navegabilidade, devido principalmente a quantidade de informações que podem ser exibidas. Na figura 6 podemos observar um exemplo claro de tal limitação. Figura 6 - Limitação de recursos gráficos em um dispositivo Móvel Fonte: Fonte: Perceba que a aplicação foi desenvolvida de forma otimizada, dispondo de uma interface simples, com poucos elementos e com telas que possuem um número mínimo de interações. Algumas das limitações referentes às linguagens de programação relacionadas à interface visual com usuário, muitas vezes impossibilitam o desenvolvedor até mesmo de mudar as cores, alinhar os elementos na tela, ou mesmo modificar o tamanho dos componentes. O que ocorre é que muitas destas linguagens de programação foram desenvolvidas em uma época que os dispositivos móveis possuíam menos recursos, com relação aos dispositivos atuais (JAVA MAGAZINE, 2010).

40 DESIGN PATTERNS 39 Diante de tais limitações enfrentadas durante o processo de desenvolvimento de interface gráfica para dispositivos móveis, surgem novos métodos, que buscam solucionar ou mesmo minimizar as dificuldades encontradas. Hui (2002) define quatro padrões de projetos desenvolvidos especificamente para solucionar problemas referentes ao desenvolvimento de interfaces gráficas dos dispositivos móveis que são: Cascading Menu, Wizard Dialog, Pagination e Slide Show, sendo que tais padrões apresentam soluções que buscam a otimização do processo de desenvolvimento gráfico, bem como propõem de maneira geral métodos que facilitam a interação do usuário com a aplicação, através da reorganização e automatização dos componentes gráficos da aplicação.

41 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME.

42 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME. Os dispositivos móveis possuem requisitos de interface de usuário diferente dos requisitos utilizados em computadores desktops, devido ao menor porte computacional propiciado por uma plataforma. Contudo, um dos principais aspectos analisados no desenvolvimento é o tamanho do display de apresentação. De um modo geral, o tamanho das telas dos dispositivos portáteis é menor, se comparado a computadores pessoais tradicionais. 4.1 Padrão Cascading Menu De acordo com o crescimento gradual no desenvolvimento de sistemas computacionais, inevitavelmente, meios de navegação vão surgindo. Em muitos casos, dispositivos móveis necessitam atenção especial no momento do planejamento, principalmente no tocante a interfaces. Neste cenário, existem várias maneiras de implementar a navegação em sistemas computacionais e uma das mais conhecidas é através do uso de menus, onde cada menu dos dispositivos móveis é representado por meio de subclasses da classe javax.microedition.lcdui, isto porque todas as classes MIDP GUI estão no pacote Lcdui, ou seja, cada menu apresentado na tela é desenvolvido a partir dessa classe. A Tabela 2 demonstra alguns dos componentes da classe javax.microedition.lcdui: Tabela 2 - Componentes de interface gráfica e menu Aplicações baseadas J2ME A superclasse para componentes que podem ser adicionados a um ITEM formulário ou de alerta. LISTA Uma tela contendo uma lista de escolhas. TELA A superclasse de todas as classes de alto nível da interface do usuário. STRINGITEM Um item que pode conter uma cadeia. TEXTBOX TEXTFIELD A tela que permite ao usuário inserir e editar texto. Um componente de texto editável que pode ser colocado em um formulário. Fonte: Adaptado de Java Simples (2011)

43 PADRÕES DE PROJETOS UMA SOLUÇÃO PARA PROBLEMAS GRÁFICOS DA PLATAFORMA J2ME. 42 A Figura 6 abaixo demonstra o uso de menus em uma aplicação móvel, em que, normalmente o menu principal fica na horizontal e os submenus na vertical. De modo que cada elemento interativo apresentado na interface ofereça ao usuário uma maneira eficaz, eficiente e agradável de realizar tarefas através dos menus. Essa tendência reflete a necessidade das interfaces atuais para celulares, que são baseados em princípios de usabilidade que são definidos por atributos como facilidade de aprendizado, eficiência de uso, facilidade de memorização, consistência e flexibilidade (NIELSEN, 1993). Figura 7 - Hierarquia de Menus em um dispositivo Móvel Fonte: O problema relacionado com este padrão ressalta que Aplicações Midlet do Java ME que necessitam de muitos menus torna o uso de subclasses da classe javax.microedition.lcdui.list inviável, devido principalmente ao grande número de subclasses de List criados para cada menu, fato este, que torna complexo e custoso a gerência do controle de fluxo entre os menus. A solução adotada pelo padrão Cascading Menu remete-se a implementação de estruturas semelhante à arquitetura MVC (Model View Controller), pois abstrai o encadeamento existente entre as várias hierarquias de menus, separando a parte do modelo de dados (Model) da interface com o usuário (View) e da lógica de negócio (Controller), mantendo e atualizando assim o modelo de dados independentemente do tipo de visão que será utilizado.

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

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

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

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

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

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

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

Interfaces Dinâmicas e Adaptativas para Celulares

Interfaces Dinâmicas e Adaptativas para Celulares Interfaces Dinâmicas e Adaptativas para Celulares Flavio Henrique Cardoso de Freitas, Silvano Maneck Malfatti Faculdade Católica do Tocantins (FACTO) Palmas TO Brasil {flaviohcf,silvanomalfatti}@hotmail.com

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

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS GAME OF MEMORY TO MOBILE DEVICES

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS GAME OF MEMORY TO MOBILE DEVICES JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS GAME OF MEMORY TO MOBILE DEVICES Célia Hirata Aoki - celia@unisalesiano.edu.br Prof. M.Sc. Anderson Pazin - pazin@unisalesiano.edu.br RESUMO As fortes expansões

Leia mais

Estudo comparativo entre tecnologias Java: Applet e JWS.

Estudo comparativo entre tecnologias Java: Applet e JWS. Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)

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

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS. Célia Hirata Aoki Anderson Pazin

JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS. Célia Hirata Aoki Anderson Pazin JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS Célia Hirata Aoki Anderson Pazin LINS SP 2009 2 JOGO DA MEMÓRIA PARA DISPOSITIVOS MÓVEIS RESUMO As fortes expansões do mercado de desenvolvimento de softwares,

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

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

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

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS Aluno: Fábio Bicalho de Araujo Orientador: Marco Antonio Grivet Matoso Maia Introdução Um fato da atualidade: o mundo está se tornando cada vez mais

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

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

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

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

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 & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?

Leia mais

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION

DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION DESENVOLVIMENTO DE APLICATIVOS PARA CELULAR JAVA 2 MICRO EDITION Robison Cris Brito Centro Federal de Educação Tecnológica do Paraná Unidade de Pato Branco robison@pb.cefetpr.br RESUMO Engana-se quem acha

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

UM FRAMEWORK PARA DESENVOLVIMENTO DE

UM FRAMEWORK PARA DESENVOLVIMENTO DE UNIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA UM FRAMEWORK PARA DESENVOLVIMENTO DE APLICATIVOS EM WINDOWS MOBILE. PROPOSTA DE TRABALHO DE GRADUAÇÃO Aluno:

Leia mais

Desenvolvimento de um Framework de Jogos 3D para Celulares

Desenvolvimento de um Framework de Jogos 3D para Celulares Desenvolvimento de um Framework de Jogos 3D para Celulares Fabrício Brasiliense Departamento de Informática e Estatística(INE) Universidade Federal de Santa Catarina (UFSC) Campus Universitário Trindade-

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

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

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

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra Capítulo 1 Introdução ao Java Objetivos do Capítulo Compor uma visão histórica mínima para a compreensão da origem do Java. Compreender o que é o Java e para que finalidades ele é empregado. Delinear algumas

Leia mais

UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA. Pizzaria Manão

UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA. Pizzaria Manão UNIVERSIDADE FEDERAL DE VIÇOSA CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS DEPARTAMENTO DE INFORMÁTICA Pizzaria Manão Emilio Gonçalves 41281 Fabrício Luís Santos da Silva 50293 Filipe Ribeiro Nalon 50295

Leia mais

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME

Java. para Dispositivos Móveis. Thienne M. Johnson. Novatec. Desenvolvendo Aplicações com J2ME Java para Dispositivos Móveis Desenvolvendo Aplicações com J2ME Thienne M. Johnson Novatec Capítulo 1 Introdução à computação móvel 1.1 Computação móvel definições Computação móvel está na moda. Operadoras

Leia mais

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados

SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados SyncEasy Aplicativo para sincronização de arquivos entre dispositivos móveis e computadores utilizando metadados Acadêmico: Bernardo Marquardt Müller Orientador: Prof. Dr. Mauro Marcelo Mattos Roteiro

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

Arquitectura de Sistemas Computacionais

Arquitectura de Sistemas Computacionais Arquitectura de Sistemas Computacionais Práticas 2004-2005 Prof. Dr. Paulo Sampaio Departamento de Matemática e Engenharias UNIVERSIDADE DA MADEIRA A plataforma Nokia Series 60 Optimizado para Symbian

Leia mais

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS

DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS DESENVOLVIMENTO DE SOFTWARE PARA DISPOSITIVOS MÓVEIS Aluno: Fábio Bicalho de Araujo Orientador: Marco Antonio Grivet Matoso Maia Introdução Um fato da atualidade: o mundo está se tornando cada vez mais

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

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Otimização de Código na Criação de Animação Gráfica para Dispositivos Móveis, utilizando J2ME

Otimização de Código na Criação de Animação Gráfica para Dispositivos Móveis, utilizando J2ME Otimização de Código na Criação de Animação Gráfica para Dispositivos Móveis, utilizando J2ME Fábio Ottoni Júlio 1, Lívia Márcia Silva 1 1 Departamento de Ciência da Computação DCC Universidade Presidente

Leia mais

PROTÓTIPO DE UM DIÁRIO DE CLASSE EM DISPOSITIVOS MÓVEIS UTILIZANDO J2ME

PROTÓTIPO DE UM DIÁRIO DE CLASSE EM DISPOSITIVOS MÓVEIS UTILIZANDO J2ME UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO PROTÓTIPO DE UM DIÁRIO DE CLASSE EM DISPOSITIVOS MÓVEIS UTILIZANDO J2ME FABIANO ROSA BLUMENAU

Leia mais

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 17/09/2010. Carlos Eugênio Torres Engenheiro de Informática http://cetorres.

Módulo I - Introdução. Faculdade Christus Sistemas de Informação 17/09/2010. Carlos Eugênio Torres Engenheiro de Informática http://cetorres. Módulo I - Introdução Aula 2 Carlos Eugênio Torres Engenheiro de Informática http://cetorres.com Faculdade Christus Sistemas de Informação 17/09/2010 Graduado em Ciência da Computação pela UFC, Brasil

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 5 Servidores de Aplicação

Leia mais

Programação para Dispositivos Móveis

Programação para Dispositivos Móveis Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 02 História do desenvolvimento de software para dispositivos móveis Dalton Martins dmartins@gmail.com São

Leia mais

Linguagem de Programação JAVA

Linguagem de Programação JAVA Linguagem de Programação JAVA Curso Técnico em Informática Modalida Integrado Instituto Federal do Sul de Minas, Câmpus Pouso Alegre Professora: Michelle Nery Agenda JAVA Histórico Aplicações Pós e Contras

Leia mais

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm.

Programação de Computadores II: Java. / NT Editora. -- Brasília: 2014. 82p. : il. ; 21,0 X 29,7 cm. Autor José Jesse Gonçalves Graduado em Licenciatura em Matemática pela Universidade Estadual de São Paulo - UNESP, de Presidente Prudente (1995), com especialização em Análise de Sistemas (1999) e mestrado

Leia mais

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUTHIANO RODRIGUES VENECIAN

FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUTHIANO RODRIGUES VENECIAN FACULDADE DE TECNOLOGIA SENAC PELOTAS CURSO TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS LUTHIANO RODRIGUES VENECIAN SISTEMA PARA GERENCIAMENTO DE COLABORADORES UTILIZANDO DISPOSITIVOS MÓVEIS PELOTAS

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

Capítulo 2 Introdução à ferramenta Flash

Capítulo 2 Introdução à ferramenta Flash Capítulo 2 Introdução à ferramenta Flash Índice 1. O uso da ferramenta Flash no projeto RIVED.... 1 2. História do Flash... 4 1. O uso da ferramenta Flash no projeto RIVED. É importante, antes de iniciarmos

Leia mais

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS Rodrigo das Neves Wagner Luiz Gustavo Galves Mählmann Resumo: O presente artigo trata de um projeto de desenvolvimento de uma aplicação para uma produtora de eventos,

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

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 10 Persistência de Dados

Leia mais

Proposta de PFC. Desenvolvimento de uma biblioteca para envio de Nota Fiscal Eletrônica através de dispositivos móveis usando a tecnologia Java ME.

Proposta de PFC. Desenvolvimento de uma biblioteca para envio de Nota Fiscal Eletrônica através de dispositivos móveis usando a tecnologia Java ME. Proposta de PFC Desenvolvimento de uma biblioteca para envio de Nota Fiscal Eletrônica através de dispositivos móveis usando a tecnologia Java ME. Aluno: Vitor Gobato Orientador: Fábio Nogueira 1 1. Introdução

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

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF

INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.

Leia mais

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE

Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE Anexo I - DAS (Documento de Arquitetura de Software) Concurso de Desenvolvimento de Jogos SEBRAE 1 Sumário Sumário... 2 1 INTRODUÇÃO... 3 1.1 Propósito... 3 1.2 Escopo... 3 1.3 Referências... 3 2 DIRETRIZES...

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

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior

Reuso. Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reuso Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Reutilização de Software Na maioria das áreas de engenharia de software, sistemas são desenvolvidos

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

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

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID

DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID DESENVOLVIMENTO DE UM APLICATIVO DO TIPO SECRETÁRIO VIRTUAL PARA A PLATAFORMA ANDROID Maik Olher CHAVES 1 ; Daniela Costa Terra 2. 1 Graduado no curso de Tecnologia em Análise e Desenvolvimento de Sistemas

Leia mais

Essencial ao Desenvolvimento de Software

Essencial ao Desenvolvimento de Software Documento de Requisitos Essencial ao Desenvolvimento de Software De que se trata o artigo? Apresenta o documento de requisitos de software, destacando-o como um dos principais documentos pertinentes ao

Leia mais

SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA RESUMO SYSTEM CONTROL OF CLIMATIC DATA IN THE WEB TO ASSIST THE AGRICULTURE

SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA RESUMO SYSTEM CONTROL OF CLIMATIC DATA IN THE WEB TO ASSIST THE AGRICULTURE SISTEMA DE CONTROLE DE DADOS CLIMÁTICOS NA WEB NO AUXILIO À AGRICULTURA CAROLINE VISOTO 1 EDUARDO RUBIN 2 THIAGO X. V. OLIVEIRA 3 WILINGTHON PAVAN 4 JOSÉ MAURÍCIO CUNHA FERNANDES 5 CRISTIANO ROBERTO CERVI

Leia mais

Tutorial Java ME. Deixe o JME surpreender você também! Porque programar com 1 GB de RAM é fácil!! Neto Marin

Tutorial Java ME. Deixe o JME surpreender você também! Porque programar com 1 GB de RAM é fácil!! Neto Marin Deixe o JME surpreender você também! Porque programar com 1 GB de RAM é fácil!! Neto Marin Apresentação Experiência com Java desde 2002 (SCJP): Atuando com mobilidade desde 2005 P&D do Mobile Sys da Softway

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C#

UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# Robson Bartelli¹, Wyllian Fressatti¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil robson_lpbartelli@yahoo.com.br,wyllian@unipar.br

Leia mais

PROGRAMAÇÃO JAVA. Parte 1

PROGRAMAÇÃO JAVA. Parte 1 PROGRAMAÇÃO JAVA Parte 1 O que é um programa? Um algoritmo (sequência de operações elementares - instruções) convertido para uma linguagem que possa ser executada por um computador Programa = Algoritmos

Leia mais

Desenvolvimento de Aplicações Móveis com J2ME. Andrea foi a primeira colocada no I Concurso Teleco de Trabalhos de Conclusão de Curso (TCC) 2005.

Desenvolvimento de Aplicações Móveis com J2ME. Andrea foi a primeira colocada no I Concurso Teleco de Trabalhos de Conclusão de Curso (TCC) 2005. Desenvolvimento de Aplicações Móveis com J2ME Andrea Rodrigues de Amorim 1º Colocado I Concurso Teleco de TCC's 2005 Andrea foi a primeira colocada no I Concurso Teleco de Trabalhos de Conclusão de Curso

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

Leia mais

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO

Pré-Projeto do Trabalho de Conclusão de Curso Tiago Garcia Pereira 1. INTRODUÇÃO UM PADRÃO ABERTO DE SOFTWARE PARA COMPUTAÇÃO MÓVEL: UM ESTUDO SOBRE GOOGLE ANDROID 1. INTRODUÇÃO O aumento do número usuários de dispositivos móveis atrai cada vez os desenvolvedores a produzir aplicações

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

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Conhecendo o Visual FoxPro 8.0 Parte 3

Conhecendo o Visual FoxPro 8.0 Parte 3 AULA Conhecendo o Visual FoxPro 8.0 Parte 3 Continuando nossa saga pelas ferramentas do Visual FoxPro 8.0, hoje vamos conhecer mais algumas. A Ferramenta Class Designer A Class Designer é a ferramenta

Leia mais

FERRAMENTAS PARA DESENVOLVIMENTO EM C#

FERRAMENTAS PARA DESENVOLVIMENTO EM C# FERRAMENTAS PARA DESENVOLVIMENTO EM C# Camila Sanches Navarro 1,2, Wyllian Fressatti 2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil sanchesnavarro@gmail.com wyllian@unipar.br Resumo. Este artigo

Leia mais

PADRÕES DE PROJETOS NO DESENVOLVIMENTO DE APLICAÇÕES J2ME

PADRÕES DE PROJETOS NO DESENVOLVIMENTO DE APLICAÇÕES J2ME PADRÕES DE PROJETOS NO DESENVOLVIMENTO DE APLICAÇÕES J2ME Trabalho de Conclusão de Curso Engenharia da Computação Filipe da Silva Regueira Orientador: Prof. Dr. Márcio Lopes Cornélio Recife, 3 de julho

Leia mais

Sistemas Operacionais

Sistemas Operacionais UNIVERSIDADE BANDEIRANTE DE SÃO PAULO INSTITUTO POLITÉCNICO CURSO DE SISTEMAS DE INFORMAÇÃO Sistemas Operacionais Notas de Aulas: Tópicos 7 e 8 Estrutura do Sistema Operacional São Paulo 2009 1 Sumário

Leia mais

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO

LEI DE ACESSO A INFORMAÇÃO DIREITO DO CIDADÃO DESCRIÇÃO DO SIGAI O SIGAI (Sistema Integrado de Gestão do Acesso à Informação) é uma solução de software que foi desenvolvida para automatizar os processos administrativos e operacionais visando a atender

Leia mais

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC

DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br

Leia mais

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID

MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID MAPEAMENTO E LOCALIZAÇÃO DE REGIÕES DE INTERESSE UTILIZANDO REALIDADE AUMENTADA EM DISPOSITIVOS MÓVEIS COM PLATAFORMA ANDROID Alessandro Teixeira de Andrade¹; Geazy Menezes² UFGD/FACET Caixa Postal 533,

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

Arquiteturas para implantação de aplicações móveis wireless

Arquiteturas para implantação de aplicações móveis wireless Arquiteturas para implantação de aplicações móveis wireless Este tutorial apresenta uma visão geral da arquitetura para implantação de aplicações móveis wireless. Eduardo Tude Engenheiro de Teleco (IME

Leia mais

A Plataforma Java 2 Micro Edition Aplicada em Dispositivos Móveis: Sistemas Embarcados para Telefones Celulares

A Plataforma Java 2 Micro Edition Aplicada em Dispositivos Móveis: Sistemas Embarcados para Telefones Celulares Engineering for a better life Universidade Federal do Maranhão A Plataforma Java 2 Micro Edition Aplicada em Dispositivos Móveis: Sistemas Embarcados para Telefones Celulares Monografia BRUNO FERNANDES

Leia mais

Linguagem de Programação Visual

Linguagem de Programação Visual Linguagem de Programação Visual Unidade 1 Ambiente de desenvolvimento Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 SOBRE O JAVA... 3 AMBIENTE DE DESENVOLVIMENTO... 5 RECURSOS DA FERRAMENTA NETBEANS...

Leia mais

Modelo para Documento de. Especificação de Requisitos de Software

Modelo para Documento de. Especificação de Requisitos de Software Modelo para Documento de Especificação de Requisitos de Software (Baseado na norma IEEE Std 830-1993 - Recommended Practice for Software Requirements Specifications) A boa organização lógica do documento

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Aplicações Móveis: Gestão de Estacionamento em Shoppings

Aplicações Móveis: Gestão de Estacionamento em Shoppings Aplicações Móveis: Gestão de Estacionamento em Shoppings O conteúdo deste tutorial foi obtido do artigo de autoria da Kelly Lima Borges da Silva e da Linéia Bulhões Souza Rizzuto para a etapa de classificação

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

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Conceitos Básicos Introdução Banco de Dados I Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Dados

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

PÓS GRADUAÇÃO LATO SENSU. Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone).

PÓS GRADUAÇÃO LATO SENSU. Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone). 1 Desenvolvimento de Aplicações Em Dispositivos Móveis Com Android, Java, IOs (Iphone). Requisitos e Especificação de Software Tópicos sobre análise requisitos; Requisitos Funcionais e não funcionais;

Leia mais

PROGRAMAÇÃO PARA SERVIDOR INTRODUÇÃO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO PARA SERVIDOR INTRODUÇÃO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO PARA SERVIDOR EM SISTEMAS WEB INTRODUÇÃO Prof. Dr. Daniel Caetano 2012-1 Visão Geral 1 2 3 4 Apresentação Programação Servidor? O que é Java? Grupos de Trabalho Apresentação Quem é o professor?

Leia mais

Java de missão crítica. Um artigo técnico da Oracle

Java de missão crítica. Um artigo técnico da Oracle Java de missão crítica Um artigo técnico da Oracle Java de missão crítica A família de produtos Oracle JRockit é um portfólio abrangente de soluções de tempo de execução de Java que aproveita a JVM básica

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA JNC MOBILE 2.0. Anderson Buon Berto Gilberto Torrezan Filho. Florianópolis - SC 2005/1

UNIVERSIDADE FEDERAL DE SANTA CATARINA JNC MOBILE 2.0. Anderson Buon Berto Gilberto Torrezan Filho. Florianópolis - SC 2005/1 UNIVERSIDADE FEDERAL DE SANTA CATARINA JNC MOBILE 2.0 Anderson Buon Berto Gilberto Torrezan Filho Florianópolis - SC 2005/1 1 Sumário 1 Introdução 3 2 Denição do Problema 3 3 Trabalhos Correlatos 4 4 Solução

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais