UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE SISTEMAS DE INFORMAÇÃO – BACHARELADO MARCIANE SCHOTTEN PROTÓTIPO DE UMA APLICAÇÃO MÓVEL PARA LOCAÇÃO DE VEÍCULOS UTILIZANDO JME: Proposta de Trabalho de Conclusão de Curso submetida à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso I do curso de Sistemas de Informação — Bacharelado. Prof. Ricardo Alencar de Azambuja - Orientador BLUMENAU 2010/II 3 LISTA DE SIGLAS API – Application Programming Interface CDC – Connected Device Configuration CLCD – Connected Limited Device Configuration EJB – Enterprise Java Beans HTTP – Hypertext Transfer Protocol J2EE – Java 2 Enterprise Edition J2ME – Java 2 Micro Edition J2SE – Java 2 Standart Edition JAD – Java Application Descriptor JAR – Java Archive JVM – Java Virtual Machine KVM – Kilo Virtual Machine MIDP – Mobile Information Device Profile PC – Personal Computer PDA – Personal Digital Assistant RMS – Record Management System UML – Unified Modeling Language XML – eXtensible Markup Language 4 1 INTRODUÇÃO Mundialmente a telefonia celular tornou-se popular tanto no ambiente de trabalho quanto na vida privada. De acordo com Teixeira (2005, p. 1), há dois bilhões de celulares no mundo, marca alcançada em setembro de 2005. Segundo Alencar (2006, p. 1), a base de celulares no Brasil alcançou a marca de 89,4 milhões em março de 2006. Hoje o aparelho celular é bastante diferente de 10 anos atrás, conforme Menezes (2003, p. 2), pois além de celular é também máquina fotográfica, Mpeg Layer 3 (MP3) Player, Personal Digital Assistant (PDA), rádio, internet, executor de aplicativos. Segundo Almeida (2004, p. 21), para a execução de aplicativos dentro dos celulares, é necessário algo para desenvolver os aplicativos. A tecnologia Java possui a edição Java 2 Micro Edition (J2ME) para pequenos dispositivos como pagers, telefones celulares, set-top boxes de TVs a cabo, PDA, sendo uma versão específica da máquina virtual criada para ser executada em um ambiente com recursos limitados de memória e processamento. Os desenvolvedores são livres para criar aplicações e executá-las em qualquer dispositivo de qualquer fabricante que possua uma máquina virtual, não sendo necessário se prender a um dos fabricantes ou a uma tecnologia. Também é livre a escolha do modelo de telefone celular que possa executar o aplicativo desejado. Este trabalho propõe a construção de um protótipo de aplicação móvel, para reserva de veículos, acessível a partir de um aparelho celular com acesso a internet, que atenda a especificação Java (J2ME). Partindo da premissa de que quem precisa de um veículo de aluguel está fora de seu domicílio, geralmente em viagem, e nem sempre conhece a localização dos serviços do local, o que gera transtorno na hora de locar qualquer bem, inclusive um veículo, 5 aponta-se a necessidade de apresentar a possibilidade de locar este veículo em ambiente móvel, disponibilizando esse serviço em qualquer momento e lugar onde o usuário necessitar dele. 1.1 PROBLEMA Nos tempos atuais, a locação de veículos tem se mostrado uma opção acessível a população. Assim como o “boom” dos telefones celulares, o que se observa é que existe uma tendência em curso: a da mobilidade. Pensando nesta mobilidade, surgiu a ideia de associar as duas áreas: a da telefonia móvel para agilizar a reserva de veículos de locadoras, sem necessidade de contato pessoal com telefonistas ou outros operadores de locação. Acredita-se que, com a disponibilização de um sistema de reserva de veículos, via dispositivo móvel, serão solucionados alguns entraves, como congestionamento da centrais telefônicas, deslocamentos até os escritórios de locadoras, o do acesso ao recurso pelas pessoas fora do domicílio que não têm acesso a um computador. Com este cenário em mente, surgiu a ideia de utilizar o conceito da mobilidade, considerando a facilidade e agilidade na hora de locar um veículo. 1.2 JUSTIFICATIVA A intenção de desenvolver um protótipo de aplicação móvel para reserva de veículos, surgiu após algumas pesquisas informais, que identificam carência de um produto adequado, Considerando também que: a) aplicações móveis têm boa receptividade aos usuários de dispositivos móveis; 6 b) uma empresa de locação poderia distribuir esse aplicativo a seus clientes, como diferencial competitivo, e até utilizar o marketing, para agregar valor aos negócios; 1.3 OBJETIVOS O objetivo deste trabalho é construir um protótipo de aplicação móvel para reserva de veículos acessível a partir de um aparelho celular e que atenda a especificação Java (J2ME). Os objetivos específicos do trabalho são: a) desenvolver um sistema que permita ao usuário efetuar a locação de veículos de sua preferência junto à empresa locadora utilizando-se de conexões com o servidor da mesma e formalizando a transação a partir de critérios definidos pela empresa locadora; b) executar a aplicação no telefone celular interagindo com um servidor de aplicações; c) efetuar o sincronismo entre os dados registrados no celular e os dados residentes em um servidor; d) emitir comprovantes de transação devidamente autenticados e relatórios de controle e estatísticas para o usuário. 1.4 RELEVÂNCIA DO TRABALHO Este trabalho é relevante porque consiste no desenvolvimento de um protótipo de aplicação móvel para reserva de veículos, acessível a partir de um aparelho celular e que atenda a especificação Java (J2ME). 7 Segundo Castro, Gimenes e Maldonado (2000, p. 252), engenharia de requisitos integra o ciclo de vida de desenvolvimento de software, responsável pelo processo de levantamento e compreensão dos requisitos. Este processo compreende atividades como: a) elicitação de requisitos: trata do levantamento dos requisitos; b) análise de requisitos: rotinas para perceber e solucionar conflitos entre requisitos; c) validação de requisitos: verifica duplicidade, inconsistências e inconcluso; d) gerenciamento de requisitos: gerencia as alterações dos requisitos. Neste trabalho, será utilizada a ferramenta Enterprise Architect (EA), para a modelagem dos dados, esta é uma ferramenta Computer-Aided Software Engineering (CASE) baseada na Unified Modeling Language (UML). O protótipo de aplicação móvel será desenvolvido na linguagem JAVA. Considerando que estas aplicações têm boa receptividade aos usuários de dispositivos móveis, empresas de aluguéis de veículos podem estar utilizando a aplicação como meio de agregar valor aos negócios, melhorando consideravelmente à rentabilidade. 8 2 FUNDAMENTAÇÃO TEÓRICA Este capítulo apresenta os principais temas relacionados com esta proposta. São apresentados assuntos como dispositivos móveis, plataforma JAVA, J2ME, configuração CLDC, perfil MIDP e trabalhos correlatos. 2.1 DISPOSITIVOS MÓVEIS Segundo Laudon e Laudon (1999, p. 160), novas formas de comunicações estão sendo proporcionadas por redes móveis de dados, usando dispositivos móveis, como telefones celulares e PDAs - um computador manual composto de uma caneta, com recursos internos e organizacionais de comunicações. Muito mais do que assistentes pessoais ou agendas eletrônicas, os dispositivos móveis passaram a ser computadores que podem ser facilmente levados a qualquer lugar, criados para atender profissionais e pessoas em movimento que necessitam de rapidez, facilidade e segurança no acesso a informações corporativas e pessoais. Segundo Pamplona (2005 p. 17), a computação móvel é caracterizada por um dispositivo móvel com capacidade de processamento em um ambiente sem fio. Exemplos destes equipamentos são os PDAs, Pocket PCs, Smartphones e celulares, tais como os apresentados na figura 1. 9 Fonte: Yoshimura (2006). Figura 1 – Exemplos de dispositivos móveis Além disso, as inovações trazidas pela tecnologia wireless fizeram com que a indústria deste setor tenha tido um crescimento explosivo nos últimos anos, permitindo que as pessoas comuniquem-se de forma barata e fácil sem ficarem presas aos seus telefones ou computadores de mesa. 2.2 PLATAFORMA JAVA Segundo Montenegro e Pereira (2005, p. 28), as aplicações Java existentes englobam as variadas áreas do conhecimento e rodam nas mais diversas plataformas e sistemas operacionais, desde equipamentos bastante limitados (como celulares, PDAs, computadores de bordo) até poderosos clusters de servidores, atendendo a centenas ou milhares de clientes simultâneos. A plataforma Java foi dividida em três edições: a) Java 2 Standard Edition (J2SE): o núcleo da plataforma, com a máquina virtual e as Application Programming Interface (APIs) básicas; 10 b) Java 2 Enterprise Edition (J2EE): complementando a J2SE e fornecendo recursos para o desenvolvimento de aplicações Web e corporativos; c) Java 2 Micro Edition (J2ME): definindo um ambiente Java para dispositivos móveis. 2.3 J2ME De acordo com a Sun Microsystems (2010), a JME foi criada para o desenvolvimento de aplicações para dispositivos que possuíssem limitações de hardware. Com isso, a tecnologia Java deveria ser adaptada para funcionar em um dispositivo limitado, tornando possível a criação de aplicações Java que fossem perfeitamente portáveis para dispositivos com memória, display e capacidade de energia reduzida. Conforme Fonseca (2002, p. 07), a Máquina Virtual Java do J2ME, normalmente chamada de Kilobyte Virtual Machine (KVM), a qual é implementada de acordo com a especificação da comunidade Java, não é a mesma utilizada pelas versões J2EE e J2SE, sendo quase sempre um conjunto menor dessas versões. Por isso, códigos não podem ser portados diretamente de uma versão maior de Java para o J2ME. A relação entre os dispositivos móveis e J2ME está representada na Figura 2. 11 Fonte: Knudsen (2003, p. 2) Figura 2 – Dispositivos Móveis e J2ME Conforme a Sun Microsystems (2010), atualmente a plataforma J2ME consiste de um conjunto de configurações (configurations) e perfis (profiles). Uma configuração define características mínimas de um ambiente de execução Java completo. onde uma mesma configuração atende vários dispositivos diferentes, não possuindo detalhes específicos do dispositivo. A Application Programming Interface (API) de uma configuração pode ter subconjuntos da API de J2SE. No momento existem duas configurações: Connected Device Configuration (CDC) e Connected Limited Device Configuration (CLDC). A configuração CDC possui um conjunto de APIs que suportam equipamentos fixos de porte médio, tal como televisores. A configuração CLDC é um conjunto de APIs destinadas a aparelhos cujo poder de processamento, display e memória são limitados. Um perfil define um conjunto adicional de bibliotecas e características de empresas, de categoria, de dispositivo ou de indústria. Enquanto uma configuração define uma base de bibliotecas, perfis definem as bibliotecas que são importantes para construir aplicações efetivas. 12 Estas bibliotecas incluem a interface com o usuário, comunicação em rede e classes de armazenamento. Alguns dos perfis existentes são: Mobile Information Device Profile (MIDP), Foundation Profile, PDA Profile, PersonalJava, etc. Cada perfil é destinado a uma categoria específica de dispositivos, e consiste num conjunto mínimo de bibliotecas de classes que determinado aparelho deve suportar. As configurações do J2ME definem uma plataforma Java para uma determinada faixa de dispositivos definidos por uma série de características como: a) informações sobre a memória do dispositivo; b) tipo e velocidade do processador; c) conectividade do aparelho. Uma configuração obrigatoriamente representa as mínimas características de uma plataforma para um dispositivo (Topley, 2002). Com isso, os fabricantes são obrigados a implementar por total a especificação de uma configuração almejada para tal dispositivo. Isso garante que programadores possam desenvolver aplicações sem se preocupar em qual dispositivo específico elas irão rodar, apenas precisam da certeza que o dispositivo implementa a configuração escolhida. Há duas configurações disponíveis para a utilização do J2ME, a Connected Device Configuration (CDC), voltada para dispositivos com maior poder operacional e recursos de memória e conectividade, e a Connected Limited Device Configuration (CLDC), voltada para dispositivos com recursos limitados e que é a configuração escolhida neste trabalho. De acordo com Topley (2002), os perfis complementam as configurações com a adição de classes que provêm características específicas para um determinado tipo de dispositivo ou um 13 determinado segmento de aplicação, como recursos de interface gráfica, armazenamento persistente, segurança e conectividade. Cada configuração da J2ME tem um ou mais perfis associados. Segundo White (2002), alguns perfis associados à configuração CDC são: a) Foundation Profile; b) Personal Profile; c) Remote Method Invocation (RMI) Profile; d) Personal Basis Profile. White (2002) descreve também que os seguintes perfis são referentes a configuração CLDC: a) Mobile Information Device Profile (MIDP); b) Personal Digital Assistant Profile (PDAP). Os perfis Multimedia, Gaming e Telephony Profile atendem tanto a configuração CDC como CLDC. 2.4 CONFIGURAÇÃO CLDC Conforme Schmitt Junior (2004), A Connected Limited Device Configuration (CLDC) é destinada para os dispositivos com as mais limitadas configurações do mercado, como telefones celulares, pagers, simples PDAs, entre outros dispositivos, que são caracterizados pelos baixos recursos de memória, processamento e conectividade. A CLDC é a configuração que provê funções de núcleo que são usadas como base para alguns perfis. Como características principais, os dispositivos que suportam a CLDC devem ter: 14 a) no mínimo 192 kb de memória total disponível para a plataforma Java; b) um processador de 16 ou 32 bits; c) conectividade a algum tipo de rede por meio de tecnologia sem fio, conexão intermitente e com banda limitada. Cada configuração do J2ME consiste de um conjunto de bibliotecas e de uma máquina virtual Java. A CLDC define uma máquina virtual que pode ser considerada uma versão simplificada da Java Virtual Machine (JVM) utilizada na edição J2SE. A Sun especifica como deve trabalhar uma máquina virtual para a configuração CLDC e também oferece uma máquina virtual junto ao kit de desenvolvimento para J2ME chamada Kilobyte Virtual Machine (KVM). Porém, a utilização da KVM em aplicações J2ME não é obrigatória, podendo assim cada fabricante de dispositivos móveis implementar a sua máquina virtual que atenda à especificação. Pela simplificação da máquina virtual na CLDC, alguns dos recursos da linguagem Java e funções da máquina virtual usadas na J2SE não são suportados. Muitos dispositivos, pela baixa disponibilidade de memória, não suportam operações com ponto flutuante, e por padrão a utilização do ponto flutuante não é suportada pela CLDC. O baixo recurso de memória nos dispositivos é a principal causa de algumas omissões na linguagem Java da configuração CLDC como inviabilidade de recursos de reflexão, não implementação de finalização de objetos, restrições na utilização de threads, não suporte de várias classes de erros e exceções e omissão do recurso de interface nativa. 15 2.4 PERFIL MIDP O perfil Mobile Information Device Profile (MIDP) trabalha sobre a configuração CLDC e habilita recursos de conectividade, armazenamento de dados local e interface gráfica com usuário. Por padrão, o perfil MIDP carece de recursos avançados de segurança e interface gráfica, porém os fabricantes dos dispositivos podem oferecer recursos opcionais que customizam essas carências. Uma aplicação que implementa o perfil MIDP é chamada de MIDlet e roda sobre a máquina virtual KVM proposta pela configuração CLDC. Um MIDlet pode utilizar tanto funções oferecidas no perfil MIDP como funções que o MIDP herda da CLDC. Schmitt Junior (2004). Os dispositivos atendidos pelo perfil MIDP são normalmente telefones celulares e PDAs. De acordo com a especificação deste perfil, o dispositivo deve ter: a) 128 kb de memória não volátil necessária para armazenamento da implementação; b) 32 kb de memória volátil para a pilha Java; c) 8 kb de memória não volátil necessária para armazenamento local persistente; d) visor de pelo menos 96 x 54 pixels; e) algum recurso para entrada de dados como teclado, tela por toque ou área de teclas conforme telefones celulares; f) possibilidade de conexão a algum tipo de rede. Uma aplicação MIDP contém no mínimo uma classe MIDlet. Porém pode haver casos em que uma aplicação contém mais de um MIDlet, e neste caso a aplicação é chamada de MIDlet Suite. Ao ser carregada no dispositivo, a MIDlet Suite, faz a varredura de todos os MIDlets 16 existentes e dispõe ao usuário escolher qual MIDlet lançar. A aplicação MIDP, para ser instalada no dispositivo, precisa ser empacotada, construindo um Java Archive (JAR). O JAR obrigatoriamente contém um arquivo de manifesto que engloba informações sobre o MIDlet ou conjunto de MIDlets contidos no pacote JAR. O JAR trabalha em conjunto com um Java Application Descriptor (JAD). O descritor contém informações sobre a aplicação, principalmente sobre a configuração e perfil utilizados pela mesma. Schmitt Junior (2004). 2.5 TRABALHOS CORRELATOS Schmitt Junior (2004) desenvolveu um protótipo de front end de Controle de Acesso, utilizando J2ME, onde tem como objetivo principal automatizar o controle de segurança patrimonial, oferecendo flexibilidade na aplicação, em relação ao modo de armazenamento das informações e a interface com o usuário, se beneficiando com os recursos de um dispositivo móvel, baseado na tecnologia J2ME. No desenvolvimento do trabalho, são explorados recursos avançados do J2ME, como por exemplo, o Record Management System (RMS), para o armazenamento das informações no dispositivo e a troca de informações com base no protocolo HTTP, utilizando o formato XML para a troca de dados com um servidor. Schaefer (2004) desenvolveu como Trabalho de Conclusão de Curso, um protótipo de um sistema de troca de informações via dispositivos móveis aplicado a empresas de transporte. O mesmo faz a coleta dos dados das atividades externas à empresa de transportes e disponibiliza para um sistema interno da empresa. O protótipo foi desenvolvido utilizando a plataforma de desenvolvimento J2ME para implementação em celulares e no PC foi desenvolvido utilizando o ambiente Delphi 6, permitindo a consulta a relatórios e gráficos. O sistema demonstra uma inovação na maneira de analisar os dados e no auxilio à tomada de decisões. 17 2 DESENVOLVIMENTO Neste capítulo está descrito o desenvolvimento do protótipo de aplicação para reserva de veículos a especificação dos principais requisitos e a sua modelagem. 2.6 3.1 SISTEMA PROPOSTO Este trabalho propõe o desenvolvimento de um protótipo de aplicação móvel para reserva de veículos utilizando a especificação J2ME da Linguagem Java. Este sistema será disponibilizado para execução em diversas configurações de celulares, e personal digital assistants (PDAs) e é constituído de apenas um módulo que será utilizado pelo usuário para proceder a escolha do veículo de aluguel disponível a partir de informações adquiridas pelo aplicativo, através da internet, do site da empresa de locação. O usuário terá a possibilidade de configurar suas pesquisas favoritas e gravá-las para facilitar acessos futuros. O processo se inicia com a execução do aplicativo e abertura do painel de configuração para que o usuário defina seu login e senha cadastrados junto à empresa de locação de veículos, em seguida o usuário cria um perfil de pesquisa definindo condições e informações do veículo que pretende locar tais como modelo, ano, cor, etc... Se houver perfis já criados o usuário poderá apenas selecionar um perfil já criado e até defini-lo como padrão para uma pesquisa imediata ao iniciar o aplicativo. Em virtude da reduzida estrutura que os perfis devem exigir, foi entendido que poderão ser gravados em arquivos de texto ou como registros RMS sem grande perda de performance do sistema. Comandada a pesquisa, o aplicativo se conecta ao site servidor e adquire a lista atual de veículos disponíveis, compatíveis com o perfil definido pelo usuário, apresentando ao usuário para que 18 faça sua escolha, escolhido o veículo, o usuário fará o agendamento dos prazos de uso, da forma de retirada e demais informações necessárias a empresa locadora para efetivar a transação. O sistema enviará ao site a requisição de locação e receberá comprovante de que o processo foi autorizado e o veículo estará disponível no prazo definido pelo usuário. Este comprovante ficará arquivado no sistema e poderá ser apresentado na tela, ou impresso caso seja necessário. Cada comprovante deverá ter um autenticador fornecido pelo site servidor para garantia de uso do usuário de que sua locação está devidamente registrada. Como cada comprovante representa uma quantidade reduzida de informação pode ser gravado em um arquivo texto sem maiores problemas. O usuário poderá a qualquer tempo exigir relatórios em tela de todas as operações efetivadas. 3.2 REQUISITOS PRINCIPAIS DO SISTEMA PROPOSTO Os requisitos descrevem o que o sistema deve fazer. Eles estão classificados em requisitos funcionais e requisitos não funcionais. Requisitos funcionais são funcionalidades que o sistema deve possuir e o comportamento do sistema em determinadas situações, podendo também explicitar o que o sistema não deve fazer. Requisitos não funcionais são restrições sobre os serviços ou as funções oferecidas pelo sistema, como usabilidade, hardware, segurança. O Quadro 1 apresenta os requisitos funcionais previstos para o sistema e sua rastreabilidade, ou seja, vinculação com o(s) caso(s) de uso associado(s). Requisitos Funcionais RF01 O sistema deverá possibilitar a reserva do veículo pelo Cliente. RF02 O sistema deverá permitir o Cliente incluir/alterar/excluir a reserva RF03 O sistema deverá permitir ao Cliente manter seu cadastro RF04 O sistema de retaguarda deverá permitir incluir/alterar os Caso de Uso UC01 UC01 UC02 UC03 19 RF05 RF06 RF07 RF08 RF09 veículos para locação O sistema de retaguarda deverá incluir/alterar a tabela de preços das locações O sistema de retaguarda deverá incluir/alterar a tabela de tipo de veículo O sistema de retaguarda deverá permitir efetuar consultas e fechar reservas efetuadas pelos clientes O sistema de retaguarda deverá permitir gerar relatórios O sistema de retaguarda deverá permitir incluir/alterar/excluir Cliente UC04 UC05 UC07 UC08 UC09 Quadro 1: Requisitos funcionais O Quadro 2 lista os requisitos não funcionais previstos para o sistema. Requisitos Não Funcionais RNF01 O sistema deve ser acessível via os mais populares browsers do mercado. RNF02 A ferramenta deve ser desenvolvida utilizando a linguagem JAVA e banco de dados através de texto ou RMS. RNF03 O sistema deverá enviar e-mail ao Cliente confirmando a reserva efetuada. Quadro 2: Requisitos não funcionais 2.7 MODELAGEM Esta seção apresenta o diagrama de casos de uso e o diagrama de classes. 2.8 DIAGRAMAS DE CASO DE USO Esta sub-seção apresenta na figura 3, o diagrama de caso de uso do sistema proposto. Para um melhor entendimento do sistema o detalhamento dos principais casos de uso encontra-se no Apêndice A. 20 Figura 3 - Caso de Uso 2.9 DIAGRAMAS DE CLASSE Na Figura 4 tem-se o diagrama de classes com as classes que representam as entidades. 21 Figura 4– Diagrama de classes das entidades A função de cada classe de entidade está descrita a seguir: a) classe Cliente - classe que possui os atributos referentes aos Clientes do sistema; b) classe Veículo - classe que possui os atributos referentes aos veículos da locadora; c) classe Preço - classe que possui os atributos referentes aos preços de locação dos veículos; d) classe Tipo Veículo - classe que possui os atributos referentes aos tipos de veículos; e) classe Reserva - classe que possui os atributos referentes as reservas dos veículos; 22 REFERÊNCIAS ALENCAR, P. Brasil tem 89,4 milhões de celulares. Plantão INFO, São Paulo, abr. 2006. Disponível em: <http://info.abril.com.br/aberto/infonews/042006/24042006-5.shl>. Acesso em: 23 outubro 2010. ALMEIDA, Leandro Batista de. et al. Introdução à J2ME e programação MIDP. Mundo Java, Rio de Janeiro, n. 5, p. 20-27, 2004. CASTRO, Jaelson Freire Brelaz de; GIMENES, Itana Maria de Souza; MALDONADO, José Carlos. Uma proposta de plano pedagógico para a matéria engenharia de software. In: CURSO DE QUALIDADE DE CURSOS DE GRADUAÇÃO DA ÁREA DE COMPUTAÇÃO E INFORMÁTICA, 2., 2000, Curitiba. Anais... Curitiba: Champagnat, 2000. p. 251-270. FONSECA, Jorge Cavalcanti. Portando a KVM. 2002. 64 f. Trabalho de Conclusão de Curso (Graduação em Ciências da Computação) – Centro de Informática, Universidade Federal de Pernambuco, Recife. KNUDSEN, Jonathan. Wireless Java: developing with J2ME. 2.ed. New York: Apress, 2003, xviii, 364 p. LAUDON, Kenneth C.; LAUDON, Jane Price. Sistemas de informação. Tradução Dalton Conde de Alencar. Rio de Janeiro: LTC, 1999. MENEZES, R. Câmara Brasileira de Comércio Eletrônico. São Paulo, [2003?]. Disponível em: <http://www.camara-e.net/newsletter/2004/newsletter01setembro04.htm>. Acesso em: 12 set. 2005. MONTENEGRO, C.; PEREIRA, C. Java de ponta a ponta do J2ME ao J2EE. Mundo Java, Rio de Janeiro, n. 12, p. 28-43, 2005. PAMPLONA, V. F. Um protótipo de motor de jogos 3D para dispositivos móveis com suporte a especificação mobile 3D graphics API for J2ME. 2005. 83 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. SCHAEFER, Carine. Protótipo de aplicativo para transmissão de dados a partir de dispositivos móveis aplicado a uma empresa de transportes. 2004. 52 p. Trabalho de conclusão de Curso (Bacharelado em Ciência da Computação) – Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. 23 SCHMITT JUNIOR, Arno José. Protótipo de front end de controle de acesso usando J2ME. 2004. 69 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) -Centro de Ciências Exatas e Naturais, Universidade Regional de Blumenau, Blumenau. [SUN] Java Micro Edition. Disponível em: <http://java.sun.com/javame/technology/index.jsp >. Acesso em 24 de outubro de 2010. TEIXEIRA, C. A. Dois bilhões de celulares no mundo. [S.l], out. 2005. Disponível em: <http://www.torque.com.br/index.php?modulo=textos&secao=artigos&codTexto=1653&pagi na=1&sequencia=1&codCategoria=#>. Acesso em 23 outubro 2010. TOPLEY, Kim. J2ME in a nutshell : a desktop quick reference. Cambridge: O`Reilly, c2002. xv, 450 p. WHITE, James, HEMPHILL, David. Java 2 Micro Edition: Java in small things. Greenwich:Manning, 2002, 479 p. YOSHIMURA, B. H. O que é smartphone?. [S.l.], 2006. Disponível em: <http://www.linkgratis.com.br/materia/O_Que_e_Smartphone/>. Acesso em: 27 outubro 2010. 24 APÊNDICE A –Detalhamento dos casos de uso Esta seção do documento contém o detalhamento dos casos de uso previstos no(s) diagrama(s) apresentado(s) na seção 3.4 Veja exemplo abaixo. No Quadro 3 apresenta-se o caso de uso "Efetua Login". Nome do Caso de Uso Efetua Login Descrição Cliente acessa aplicação via celular e informa dados para login e senha armazenados no cadastro do usuário. Ator Cliente Pré-condição Usuário deve estar cadastrado no banco de dados. Fluxo principal 1. Cliente preenche seu login e sua senha; 2. Sistema valida os dados de login e senha do usuário; 3. Sistema direciona o Cliente para a página de menu do protótipo. Fluxo alternativo (a) Pós-condição nome de usuário e/ou senha inválido(s) alerta com mensagem “usuário ou senha inválida” é mostrada. Cliente entra conectado ao sistema. Quadro 3 – Descrição do caso de uso Login No Quadro 4 apresenta-se o caso de uso "Manter Cadastro de Cliente". Nome do Caso de Uso Manter Cadastro de Usuário Descrição Cliente acessa o Cadastro de Usuário para manter dados do Usuário. Serão mantidos os dados: nome, telefone, celular, cart. motorista, endereço, bairro, cep, cidade, UF, lembrete, e-mail Ator Cliente Pré-condição Cliente deve fazer login no sistema. Fluxo principal 1. Sistema informa o Cliente cadastrado; 2. Cliente opta por editar, apagar ou cadastrar os dados; Cenário – Visualização Cenário – Edição Sistema mostra os registros do usuário cadastrado pelo Cliente 1. Sistema mostra registros cadastrados; 2. Cliente seleciona um registro para edição; 3. nome, telefone, celular, cart. motorista, endereço, bairro, cep, cidade, UF, lembrete, e-mail 4. Cliente altera registro e seleciona opção para atualizar os dados (nome, telefone, 25 celular, cart. motorista, endereço, bairro, cep, cidade, UF, lembrete, e-mail Cenário – Inclusão Cenário – Exclusão Pós-condição 5. Sistema mostra os registros cadastrados com o registro alterado. 1. Sistema mostra registros cadastrados; 2. Cliente inclui um novo registro; 3. Sistema mostra os registros cadastrados. 1. Sistema mostra registros cadastrados; 2. Cliente seleciona um registro para exclusão; 3. Sistema exclui o registro e mostra os registros restantes. Cliente visualizou, editou, apagou ou cadastrou um usuário. Quadro 4 – Descrição do caso de uso Manter Cadastro de Cliente No Quadro 5 apresenta-se o caso de uso "Gera solicitação de Reserva". Nome do Caso de Uso Gera solicitação de Reserva Descrição Cliente acessa Solicitação de Reserva para gerar uma solicitação de reserva. Serão mantidos os dados: data da reserva, hora da reserva, data da retirada, hora da retirada, data da devolução, hora da devolução. Ator Cliente Pré-condição Cliente deve fazer login no sistema. Fluxo principal a) o sistema informa os veículos disponíveis; Cenário – Visualização Cenário – Edição Sistema mostra os registros de veículos disponíveis para reserva; 1. Sistema mostra registros da reserva; 2. Usuário seleciona um registro para edição; 3. Sistema mostra data da reserva, hora da reserva, data da retirada, hora da retirada, data da devolução, hora da devolução; 4. Usuário altera registro e seleciona opção para atualizar os dados (data da reserva, hora da reserva, data da retirada, hora da retirada, data da devolução, hora da devolução). Cenário – Inclusão Cenário – Exclusão Pós-condição 5. Sistema mostra os registros de reserva com os dados alterado. 1. Sistema mostra registros reservados; 2. Usuário inclui um novo registro; 3. Sistema mostra os registros cadastrados. 1. Sistema mostra registros cadastrados; 2. Usuário seleciona um registro para exclusão; 3. Sistema exclui o registro. Cliente visualizou, editou, apagou ou Incluiu uma reserva. Quadro 5 – Descrição do caso de uso Gera solicitação de Reserva