UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA PARA CONTROLE DE PLANOS ALIMENTARES, UTILIZANDO UM DISPOSITIVO MÓVEL Área de Computação Móvel por Thiago Antonio de Sousa Ferreira Rudimar Luis Scaranto Dazzi, Dr. Orientador Itajaí (SC), Agosto de 2007 UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO SISTEMA PARA CONTROLE DE PLANOS ALIMENTARES, UTILIZANDO UM DISPOSITIVO MÓVEL Área de Computação Móvel por Thiago Antonio de Sousa Ferreira Relatório apresentado à Banca Examinadora do Trabalho de Conclusão do Curso de Ciência da Computação para análise e aprovação. Orientador: Rudimar Luís Scaranto Dazzi, Dr. ITAJAÍ (SC), AGOSTO DE 2007 DEDICATÓRIA Aos meus pais, Luiz Antonio Ferreira e Neusa Maria de Sousa Ferreira, pelo apoio incontestável, dedicação, amor, carinho, educação e por todos os outros motivos que me fazem sentir orgulho de ser seu filho. A minha irmã Letícia e meu irmão Davi por fazerem parte da minha vida. Aos meus tios Lino e Cristina, por me apoiarem e me incentivar sempre que necessário. Aos verdadeiros amigos, por terem cruzado meu caminho. ii AGRADECIMENTOS Aos meus pais, Luiz Antonio Ferreira e Neusa Maria de Sousa Ferreira, que não pouparam esforços para minha formação, a quem devo tudo e expresso meu eterno amor e gratidão. Ao professor Rudimar Luis Scaranto Dazzi pela orientação, compreensão e apoio no decorrer deste um ano. Aos professores que compunham a banca examinadora, Anita e Cezar pelas valiosas sugestões e críticas que fortaleceram o desenvolvimento desse trabalho. Aos amigos, Rafael Pacheco Luz, Cezar Schwartz, Thiago Ligeiro, Raphael Nascimento, Héderson Silva, Marcelo Souza e Fábio Moriguchi que me agüentaram nos últimos meses, mesmo muitas vezes não merecendo, sempre procurando me apoiar, me incentivar e não deixando que eu desistisse deste sonho que agora se torna realidade. Aos meus ex-colegas de trabalho e eternos amigos, Ilton, Jessé, Sandra, Geziel, Edvaldo, Fabiano, João Paulo, Jeane e Anderson, que sempre me incentivaram e muitas vezes me ajudaram para que hoje eu pudesse chegar aqui. A todos os demais verdadeiros e grandes amigos, que mesmo estando longe, sempre me deram força e confiaram em mim. iii SUMÁRIO LISTA DE ABREVIATURAS...............................................................vii LISTA DE FIGURAS ...........................................................................viii LISTA DE TABELAS.............................................................................. x RESUMO.................................................................................................xi ABSTRACT............................................................................................xii 1 INTRODUÇÃO....................................................................................1 1.1 PROBLEMATIZAÇÃO................................................................................... 3 1.1.1 Formulação do Problema............................................................................... 3 1.1.2 Solução Proposta ............................................................................................ 3 1.2 OBJETIVOS ..................................................................................................... 4 1.2.1 Objetivo Geral................................................................................................ 4 1.2.2 Objetivos Específicos...................................................................................... 4 1.3 METODOLOGIA............................................................................................. 5 1.4 ESTRUTURA DO TRABALHO ..................................................................... 6 2 FUNDAMENTAÇÃO TEÓRICA ......................................................7 2.1 COMPUTAÇÃO MÓVEL............................................................................... 7 2.2 DISPOSITIVOS MÓVEIS ............................................................................... 8 2.3 TECNOLOGIAS DE DESENVOLVIMENTO............................................. 11 2.3.1 .NET.............................................................................................................. 12 2.3.2 BREW ........................................................................................................... 12 2.3.3 SuperWaba ................................................................................................... 13 2.4 J2ME ............................................................................................................... 13 2.4.1 Configuração ................................................................................................ 14 2.4.2 Perfis ............................................................................................................. 15 2.4.3 JVM .............................................................................................................. 16 2.4.4 Vantagens do J2ME ..................................................................................... 16 2.5 AMBIENTE DE DESENVOLVIMENTO .................................................... 16 2.5.1 Java 2 Standard Edition .............................................................................. 17 2.5.2 Wireless Toolkit............................................................................................ 17 2.5.3 Eclipse ........................................................................................................... 18 2.6 WEB SERVICES............................................................................................ 18 2.6.1 Arquitetura dos Web Services..................................................................... 19 2.6.2 Segurança dos Web Services ....................................................................... 20 2.7 TECNOLOGIAS PARA COMUNICAÇÃO SEM FIO ............................... 20 2.7.1 WAP.............................................................................................................. 21 2.7.2 Infra Vermelho............................................................................................. 24 2.7.3 SyncML......................................................................................................... 24 iv 2.7.4 BlueTooth ..................................................................................................... 25 2.8 NUTRIÇÃO .................................................................................................... 26 2.8.1 Avaliação Nutricional .................................................................................. 27 2.8.2 Transtorno Alimentar.................................................................................. 29 2.8.3 Prescrição Alimentar ................................................................................... 32 2.9 TRABALHOS RELACIONADOS ................................................................ 32 2.9.1 Calorie Burner - Diet and Exercise Planner............................................... 33 2.9.2 MyPersonalDiet............................................................................................ 34 2.9.3 PmEB: A Mobile Phone Application for Monitoring Caloric Balance ..... 35 2.9.4 Uso da Tecnologia Móvel no Auxílio à Reeducação Alimentar ................. 36 2.9.5 Análise das ferramentas similares............................................................... 37 2.10 INTEGRAÇÃO COM O SISTEMA PARA PROGRAMAÇÃO ALIMENTAR UTILIZANDO RBC ..................................................................... 37 3 DESENVOLVIMENTO ....................................................................40 3.1 ANÁLISE DE REQUISITOS ........................................................................ 40 3.1.1 Requisitos Funcionais .................................................................................. 41 3.1.2 Requisitos Não Funcionais........................................................................... 41 3.1.3 Regras de negócio......................................................................................... 42 3.2 MODELAGEM DO SISTEMA ..................................................................... 42 3.2.1 Diagrama de Classes .................................................................................... 42 3.2.2 Diagrama de casos de uso ............................................................................ 45 3.2.3 Diagrama de Implantação ........................................................................... 46 3.2.4 Diagrama de Seqüência................................................................................ 47 3.3 MODELAGEM DO BANCO DE DADOS.................................................... 51 3.4 IMPLEMENTAÇÃO ..................................................................................... 53 3.5 TESTE E VALIDAÇÕES .............................................................................. 59 4 CONCLUSÕES..................................................................................61 REFERÊNCIAS BIBLIOGRÁFICAS..................................................63 GLOSSÁRIO..........................................................................................67 A MODELAGEM DO SISTEMA ........................................................69 A.1 CASOS DE USO ............................................................................................. 69 A.1.1 Pacote 01: Controle de Acesso ..................................................................... 69 A.1.2 Pacote 02: Consultas .................................................................................... 71 A.1.3 Pacote 03: Consultas .................................................................................... 74 A.2 PROTÓTIPOS DAS TELAS DO SISTEMA ................................................ 78 A.2.1 TEL001: Login no sistema........................................................................... 78 A.2.2 TEL002: Mensagens do sistema .................................................................. 78 A.2.3 TEL003: Menu principal do sistema........................................................... 79 A.2.4 TEL004: Tela de cadastro de agendamento de refeições ........................... 79 A.2.5 TEL005: Tela de cadastro de medidas dos pacientes ................................. 80 v A.2.6 TEL006: Tela de cadastro de dúvidas......................................................... 80 A.2.7 TEL007: Tela de cadastro do questionário 24hrs....................................... 81 A.2.8 TEL008: Tela do Questionário geral de freqüência de alimentos ............. 81 A.2.9 TEL009: Tela de consulta de prescrição alimentar.................................... 82 A.2.10 TEL010: Tela de consulta de dúvidas................................................... 82 A.2.11 TEL011: Tela de resposta ás dúvidas................................................... 83 A.2.12 TEL012: Tela de pesquisa de alimentos semelhantes .......................... 83 A.2.13 TEL013: Tela de alimentos semelhantes encontrados......................... 84 A.2.14 TEL014: Tela de alimentos evitados..................................................... 84 A.2.15 TEL015: Tela de observação sobre o alimento evitado ....................... 85 A.3 MODELO DO BANCO DE DADOS............................................................. 86 A.3.1 Diagrama ER do banco de dados ................................................................ 86 vi LISTA DE ABREVIATURAS BREW CDC CLDC GPRS HTTP HTTPS J2EE J2ME J2SE JVM MVC PAN PDA RDA RBC SOAP SSL SyncML TCC UDDI UML UNIVALI USB WAP WSDL WTLS WTK XML Binary Runtime Environment for Wireless Connected Device Configuration Connected Limited Device Configuration General Packet Radio Service HiperText Transfer Protocol HiperText Transfer Protocol Secure Java 2 Enterprise Edition Java 2 Micro Edition Java 2 Standard Edition Java Virtual Machine (Maquina Virtual Java) Model, View, Controler Personal Área Network Personal Digital Assistants Recommended Dietary Allowances Raciocínio Baseado em casos Simple Object Access Protocol Secure Sockets Layer Synchronization Markup Language Trabalho de Conclusão de Curso Universal Description, Discovery and Integration Unified Modeling Language Universidade do Vale do Itajaí Universal Serial Bus Wireless Application Protocol Web Service Description Language Wireless Transport Layer Security Wireless Toolkit Extensible Markup Language vii LISTA DE FIGURAS Figura 1. Arquitetura da aplicação ...................................................................................................4 Figura 2. Número de celulares no Brasil ........................................................................................10 Figura 3. Camadas de Software do J2ME.......................................................................................14 Figura 4. Tela do Emulador do WTK.............................................................................................17 Figura 5. Interação dos Componentes do Web Service...................................................................19 Figura 6. Pilha de protocolos WAP................................................................................................22 Figura 7. Acesso a internet na forma convencional ........................................................................23 Figura 8. Acesso à internet através da tecnologia WAP..................................................................24 Figura 9. Funcionamento do SyncML............................................................................................25 Figura 10. Tela de controle do Balanço Alimentar e Calendário de atividades físicas.....................34 Figura 11. Tela do Sistema MyPersonal Diet .................................................................................35 Figura 12. Funcionamento do Sistema PmEB ................................................................................36 Figura 13. Integração entre os Sistemas .........................................................................................38 Figura 14. Celular Nokia 6230i......................................................................................................39 Figura 15. Diagrama de Classes do projeto ....................................................................................44 Figura 16. Diagrama de Caso de uso do pacote Cadastro. ..............................................................45 Figura 17. Diagrama de Caso de uso do pacote Consultas. .............................................................46 Figura 18. Diagrama de implantação e de componente da aplicação ..............................................47 Figura 19. Diagrama de seqüência do Cadastro de Agendamento...................................................48 Figura 20. Diagrama de seqüência do Cadastro do Questionário 24 horas ......................................49 Figura 21. Diagrama de seqüência para o Cadastro geral de freqüência de uso de alimentos ..........50 Figura 22. Diagrama de seqüência para a consulta de prescrição alimentar ....................................51 Figura 23. Diagrama ER do banco de dados...................................................................................52 Figura 24. Estrutura de pacotes da aplicação..................................................................................54 Figura 25. Arquivo build.xml ........................................................................................................55 Figura 26. Login no sistema...........................................................................................................56 Figura 27. Menu principal do sistema. ...........................................................................................56 Figura 28. Tela de cadastro de agendamento de refeições. .............................................................57 Figura 29. Tela de cadastro de medidas dos pacientes. ...................................................................57 Figura 30. Tela de cadastro do questionário 24hrs..........................................................................58 Figura 31. Tela do Questionário geral de freqüência de alimentos..................................................58 Figura 32. Tela de pesquisa de alimentos semelhantes. ..................................................................59 Figura 33. Pacotes do sistema ........................................................................................................69 Figura 34. Login no sistema...........................................................................................................78 Figura 35. Mensagens do sistema ..................................................................................................78 Figura 36. Menu principal do sistema. ...........................................................................................79 Figura 37. Tela de cadastro de agendamento de refeições. .............................................................79 Figura 38. Tela de cadastro de medidas dos pacientes. ...................................................................80 Figura 39. Tela de cadastro de dúvidas. .........................................................................................80 Figura 40. Tela de cadastro do questionário 24hrs..........................................................................81 Figura 41. Tela do Questionário geral de freqüência de alimentos..................................................81 Figura 42. Tela de consulta de prescrição alimentar. ......................................................................82 Figura 43. Tela de consulta de dúvidas. .........................................................................................82 Figura 44. Tela de resposta às dúvidas. ..........................................................................................83 Figura 45. Tela de pesquisa de alimentos semelhantes. ..................................................................83 Figura 46. Menu principal do sistema. ...........................................................................................84 viii Figura 47. Tela de alimentos evitados. ...........................................................................................84 Figura 48. Tela de observação sobre o alimento evitado.................................................................85 Figura 49. Diagrama ER do banco de dados...................................................................................86 ix LISTA DE TABELAS Tabela 1. Número de celulares no Brasil........................................................................................10 Tabela 2. Gerações da Telefonia Celular........................................................................................11 Tabela 3. Comparação dos Aplicativos ..........................................................................................37 x RESUMO FERREIRA, Thiago Antonio de Sousa. Sistema para controle de planos alimentares, utilizando um dispositivo móvel. Itajaí, 2007. 97 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação)–Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006. A evolução da computação móvel e dos dispositivos móveis tem possibilitado o desenvolvimento de sistemas de informação em diversas áreas. Tanto os dispositivos móveis como a computação móvel evoluíram bastante nos últimos anos. Uma das áreas promissoras para desenvolvimento de aplicações é a área médica, principalmente pela falta de aplicações voltadas a este mercado e a grande necessidade de uma melhor interação entre paciente e médico. Na área médica, uma área de destaque é a nutrição, pois nos dias atuais, muitas pessoas estão preocupadas com a saúde do corpo bem como no controle ou perda de peso e quantidade de nutrientes presentes em cada alimento, entretanto muitas vezes este controle se torna difícil devido à falta de tempo do paciente em estar presente junto ao nutricionista. Além disso, para que os tratamentos alimentares sejam eficazes é necessário um estimulo psicológico ao paciente. Esta necessidade motivou o desenvolvimento deste projeto que visou criar um sistema para melhorar a interação entre nutricionista-paciente, criando uma ferramenta que possibilitará um melhor controle, acompanhamento, permitindo assim ao nutricionista identificar possíveis transtornos alimentares bem como doenças que o paciente tenha ou possa vir a desenvolver. O presente texto apresenta o desenvolvimento de um software, baseado em computação móvel, que permite ao usuário do sistema, cadastrar dúvidas ao nutricionista, agendar refeições, consultar substituição de alimentos, dentre outras características. O protótipo desenvolvido consiste num aplicativo rodando em J2ME e que irá se comunicar com o Sistema Programação alimentar utilizando RBC, projeto de conclusão de curso desenvolvido pelo acadêmico Marcelo Miotto, fornecendo informações sobre o paciente ao nutricionista. Também foram pesquisadas soluções similares, a fim de reforçar os conhecimentos adquiridos. Para o desenvolvimento e implementação deste projeto foram estudados os principais conceitos de computação Móvel, Dispositivos Móveis, comunicação dos dispositivos móveis e da área de nutrição, também foi utilizado o padrão UML com o auxilio da ferramenta Enterprise Architect para descrição dos diagramas do projeto, diagramas de caso de uso, diagramas de seqüência e de componente. Os testes e validações, foram efetuadas no emulador e seguindo os conceitos de testes de software. Palavras-chave: Computação Móvel, J2ME, Nutrição. xi ABSTRACT The evolution of the mobile computing and the mobile devices has made possible the development of systems of information in diverse areas. As much the mobile devices as the mobile computing developed sufficiently in the last years. One of the promising areas for the development of applications is the medical area, mainly for the lack of applications directed to this market and the great necessity of one better interaction between patient and doctor. In the medical area, a prominence area is nutrition, therefore in current days, many people are worried about the health of the body as well as the control or loss of weitht and amout of nutrients available in each food, however several times this control becomes difficult due to the lack of time of the patient in being with the nutritionist. Moreover, in order to the alimentary treatments be efficient it is necessary one psychological stimulus to the patient. This necessity motivated the development of this project that aims to create a system to improve the interaction between nutritionist-patient, creating a tool that will make possible one better control, attendance, thus allowing to the nutritionist to identify possible alimentary disturbs as well as illnesses that the patiente has or can develop. The currency text presents the proposal of a software, based on mobile computing, which allows the user of the system, to register doubts to the nutritionist, set meals, consult food substitution, amongst other characteristics. The solution proposed consists of an application twirling in the J2ME (Java 2, Micro Edition) and that it will integrate to the Alimentary Programming System using RBC, project in conclusion stage that is being developed by the academic Marcelo Miotto. It has been also searched similar solutions, in order to strengthen the acquired knowledge. For the development of this project the main concepts of Mobile Computing had been studied, mobile devices, communication of the mobile devices and of the nutrition area, also was used the UML standard with the aid of the tool Enterpise Architect for description of the diagrams of the project. Keywords: Mobile Computing, J2ME, Nutrition. xii 1 INTRODUÇÃO Nos últimos anos, os dispositivos móveis evoluíram bastante, a ponto de suportarem a execução de softwares funcionais. Segundo Mateus e Loureiro (1998), A miniaturização dos dispositivos eletrônicos, o aumento do poder de processamento destes dispositivos aliado à necessidade do ser humano permanecer informado a qualquer hora e em qualquer lugar foi um dos motivos da grande popularização dos aparelhos celulares, hoje são mais de um bilhão de telefones celulares no mundo e esse número cresce a cada dia. Segundo Figueiredo e Nakamura (2003), Computação móvel surge como uma quarta revolução na computação antecedida pelos grandes centros de processamento da década de sessenta, o surgimento dos terminais nos anos setenta, e as redes de computadores na década de oitenta. Cada vez mais o controle para a gestão das informações em saúde tem sido feito pelo uso de ferramentas tecnológicas, e as pessoas cada vez mais usam sistemas computacionais para controle e auxílio nas tarefas do dia a dia. (FRANK, 1986). O uso de Sistemas Computacionais na Área de Saúde e a evolução da tecnologia de dispositivos Móveis motivaram o desenvolvimento do Sistema para controle de planos alimentares utilizando um dispositivo móvel. Tendo em vista esta demanda por soluções que se apliquem a celulares, este projeto teve como objetivo criar um sistema de controle de planos alimentares, auxiliando na decisão sobre alimentação seja para aumento ou perda de peso. Este sistema visou ser um complemento ao sistema Programação alimentar utilizando RBC (Raciocínio Baseado em Casos) que foi desenvolvido por Miotto (2006). O sistema “Programação alimentar utilizando RBC” é um sistema com o objetivo de fornecer um acompanhamento do paciente com o nutricionista. Segundo Miotto (2006), “o sistema Programação Alimentar Utilizando RBC permite ao paciente estar em contato com o nutricionista através da internet, e não somente nas consultas pessoais, sendo que esta característica permite uma importante interação ao sucesso do tratamento”. Ainda segundo Miotto (2006), outra característica importante deste sistema, é a utilização da Inteligência Artificial, que a partir de avaliações nutricionais anteriores a utiliza como base para novas prescrições. O Sistema Programação alimentar utilizando RBC apresenta uma alternativa de substituição de alimentos sem perdas de valor nutricional conforme os padrões dos alimentos, e com as peculiaridades de cada individuo, inclusive em casos que durante o tratamento possam ocorrer situações como festa, deve ter-se a possibilidade do nutricionista responsável recomendar alternativas de alimentação, de maneira interativa. O Sistema para controle de planos alimentares utilizando um dispositivo móvel, visou ser um complemento ao sistema Programação alimentar utilizando RBC. Este sistema criou uma interação do paciente com o nutricionista, sem que o mesmo esteja necessariamente presente ao nutricionista, para que isto ocorra, são necessárias algumas funcionalidades tais como: Permitir o agendamento da alimentação com horário marcado; Permitir a consulta de substituição de alimentação; Permitir ao paciente cadastrar e consultar dúvidas e Permitir ao paciente o cadastro dos seus dados clínicos e antropometricos, dentre outros; Para redução dos custos com a Internet, a aplicação foi armazenada no celular do usuário sendo feito o envio de dados para a internet somente quando for necessário ou de acordo com a capacidade de armazenamento do dispositivo. O Sistema para controle de planos alimentares utilizando um dispositivo móvel permite ao paciente informar via celular o alimento consumido a quantidade consumida e o horário em que o mesmo foi consumido, uma vez que nem sempre é possível se alimentar com o que está proposto no plano alimentar. Nesse caso deve ser feito um replanejamento para as próximas refeições de forma a compensar a alimentação errada. O Sistema também permite armazenar data e hora de cada alimentação, o alimento e a quantidade consumida, e oferecer sugestões de alimentos mais nutritivos de acordo com a hora e plano alimentar determinado pelo nutricionista. Devido a grande popularidade dos dispositivos móveis, existe uma grande demanda para aplicações específicas para tais dispositivos. 2 A tecnologia escolhida para desenvolvimento deste sistema foi o J2ME (Java 2 Micro Edition), que segundo SUN (2006): é a plataforma mais utilizada para dispositivos móveis através do globo. Fornece um ambiente robusto e flexível para as aplicações que funcionam em uma grande quantidade de dispositivos, tais como telefones móveis e PDAs. O J2ME inclui um modelo robusto de segurança, uma grande quantidade de protocolos de rede internos, e a sustentação extensiva para as aplicações em rede e fora de rede. As aplicações baseadas em J2ME são escritas uma vez para uma grande quantidade de dispositivos, contudo exploram potencialidades nativas de cada dispositivo. A escolha do J2ME se deu pelo fato de ser uma tecnologia que alcança o maior número de micro dispositivos disponíveis no mundo é independente de arquitetura e é gratuita para download e para uso comercial, o que minimiza os custos de desenvolvimento e aumenta a quantidade de usuários. Para suportar a grande variedade de Dispositivos Móveis, com relação ao uso do JAVA, a SUN dividiu os Dispositivos Móveis em duas categorias chamadas de configurações: CDC (Connected Device Configuration) e CLDC (Connected Limited Device Configuration). A primeira para dispositivos com maior capacidade, como PDAs (Personal Digital Assistants), e a segunda para dispositivos com maior restrição de memória e processamento, como os celulares (SUN, 2006). A configuração é responsável por definir uma plataforma Java para uma ampla variedade de dispositivos, e também define os recursos da linguagem Java e as bibliotecas básicas suportadas pela JVM (Java Virtual Machine) para um tipo de configuração particular (MUCHOW, 2004). 1.1 PROBLEMATIZAÇÃO 1.1.1 Formulação do Problema O objetivo deste projeto foi desenvolver um sistema para dispositivo móvel que fosse integrado ao sistema “Programação alimentar utilizando RBC” e que permitisse agendamento dos horários das refeições e alimentos que o usuário deve ingerir. 1.1.2 Solução Proposta A solução proposta, ilustrada na Figura 1, consiste de um aplicativo J2ME rodando em um celular que permita ao usuário acessar o sistema para controle de planos alimentares através de uma 3 rede wireless. Um outro aplicativo, rodando em um computador PC (Aplicativo PC), possui Web Services que são responsáveis por integrar o sistema proposto ao sistema de Programação Alimentar utilizando RBC, os Web Services são utilizados para receber esses registros, processá-los e retornar os dados a aplicação, que serão apresentados ao usuário. Os dois equipamentos (celular e PC Servidor) se comunicam utilizando uma rede wireless. Figura 1. Arquitetura da aplicação A justificativa da utilização do celular é a grande popularização destes dispositivos e o seu crescimento no poder de processamento. Dado este grande crescimento, surge à oportunidade de desenvolvimento especifico para tais dispositivos e a possibilidade de agregar funcionalidades aos mesmos. Devido a grande popularidade dos celulares, existe uma grande demanda para aplicações especificas para estes dispositivos. 1.2 OBJETIVOS 1.2.1 Objetivo Geral O objetivo deste projeto é desenvolver um sistema para dispositivo móvel que seja integrado ao sistema “Programação alimentar utilizando RBC” e que permita agendamento dos horários e alimentos que o usuário deve ingerir. 1.2.2 Objetivos Específicos Os objetivos específicos deste projeto de pesquisa são: Estudar o funcionamento do sistema “Programação alimentar utilizando RBC” Pesquisar e analisar soluções similares; Determinar os requisitos exigidos pelo sistema; Estudar tecnologias para dispositivos a ser utilizada; 4 Realizar a Análise do Sistema “Programação alimentar utilizando RBC”; Realizar a modelagem conceitual do sistema; Implementar o sistema e Testar e validar a implementação do sistema. 1.3 Metodologia Para a Fundamentação Teórica as pesquisas foram realizadas para entender os conceitos e metodologias envolvidas no processo de desenvolvimento para dispositivos móveis bem como sobre avaliação nutricional, distúrbios alimentares e prescrição alimentar, a evolução da computação móvel e dos dispositivos móveis. Buscou-se também entender outras tecnologias de desenvolvimento para dispositivos móveis que não serão aplicadas neste trabalho. Essas pesquisas foram realizadas através de livros, artigos científicos, sites de instituições de pesquisa, além de trabalhos acadêmicos, entrevista com os profissionais da área de tecnologia e saúde. O desenvolvimento do Projeto iniciou com uma análise detalhada do Sistema Programação Alimentar utilizando RBC e dos pontos onde poderia haver uma integração além de todos os requisitos que o sistema deveria atender. Alguns dos requisitos foram identificados a partir de entrevistas com o nutricionista. A modelagem do sistema buscou apresentar de uma maneira geral, a estrutura do sistema a partir de diagramas de caso de uso, classes e implantação, todos suportados pela UML (Unified Modeling Language). Também será apresentado o modelo ER (Entidade Relacionamento), da base de dados, identificando as tabelas e atributos necessários ao desenvolvimento do projeto. A implementação foi feita baseada nos requisitos e modelos já definidos alem de utilizar as ferramentas que também já foram definidas. São elas: J2ME, para a construção do aplicativo para celular, Web Services, para comunicação processamento da lógica de negócio, além do Eclipse para como ferramenta de desenvolvimento Java. A validação e os testes foram efetuados no emulador pelo próprio desenvolvedor, e com pessoas que auxiliaram na validação do sistema. Os tópicos foram apresentados, de maneira a deixar bem claro e objetivo, as etapas do desenvolvimento do projeto. 5 1.4 Estrutura do Trabalho Este trabalho está estruturado em quatro capítulos. O Capítulo 1, Introdução, apresentou uma descrição geral do trabalho. No Capítulo 2, Fundamentação Teórica é apresentada uma revisão bibliográfica sobre os principais conceitos e técnicas sobre computação móvel, dispositivos móveis e tecnologia envolvida neste trabalho, são apresentadas neste capítulo questões sobre formação de planos alimentares bem como sua importância. O Capítulo 3 apresenta o projeto do sistema desenvolvido, incluindo sua especificação e uma modelagem em UML. Esse capítulo também discute como foi implementado o sistema proposto, apresentando a metodologia utilizada no desenvolvimento. No Capítulo 4, apresentam-se as considerações finais, onde são abordados, sucintamente, os assuntos apresentados, problemas encontrados, entre outros. Este trabalho inclui um apêndice, que complementa as informações apresentadas no trabalho, e os materiais em anexo. 6 2 FUNDAMENTAÇÃO TEÓRICA Neste capítulo serão abordados os principais conceitos necessários ao desenvolvimento de aplicações para celulares, tais como computação móvel, conceito de dispositivos móveis, tecnologias de desenvolvimento, tecnologias de comunicação (rede móvel/rede física) e questões sobre a nutrição. Além destas questões, foram feitas pesquisas e comparações entre soluções semelhantes. Este capítulo tem como objetivo, apresentar uma descrição sobre o que são e como funcionam os dispositivos móveis e como é feita a comunicação dos dispositivos móveis, apresentando também a questão da computação móvel, sua evolução, utilização e crescimento no cenário mundial. 2.1 Computação móvel A computação móvel vem surgindo como uma nova proposta de paradigma computacional advinda da tecnologia de rede sem fio e dos sistemas distribuídos. Nela o usuário, portando dispositivos móveis tem acesso a uma infra-estrutura compartilhada independente da sua localização física. Isto fornece uma comunicação flexível entre as pessoas e um acesso contínuo aos serviços de rede. É esperado que a computação móvel revolucione o modo como os computadores são usados hoje (ISAN, 2004). De acordo com Dias (2003), a computação móvel surge com o objetivo de permitir que usuários tenham acesso à rede independente de sua localização, isto se deve, ao fato de milhões de usuários passarem muito tempo em trânsito e a necessidade de utilização de cabos para conexão acaba tornando-se um empecilho para o usuário se conectar a rede. Segundo Duarte (2005), os usuários dos dispositivos móveis, podem fazer uso dos recursos da computação móvel de onde quer que estejam e mesmo assim usufruir os mesmos recursos dos usuários das redes físicas. De acordo com Dornan (2001), a característica da computação móvel é a possibilidade de comunicação entre componentes físicos e móveis, como um computador pessoal e um celular. Ainda segundo Duarte (2005), a rede de telefonia móvel, tem um grande potencial de exploração seja para operadoras como para empresas de desenvolvimento de software, oferecendo aplicações voltadas para dispositivos móveis. “O sistema telefônico tradicional (ainda que ele algum dia chegue a vários gibabits entre uma extremidade e outra da fibra) não será capaz de satisfazer a um grupo crescente de usuários: as pessoas em trânsito.” (TANENBAUM, 2003, p 161). Nos últimos anos, houve um grande crescimento no desenvolvimento de tecnologias para a computação móvel. A computação móvel, surge como uma forte tendência no mundo moderno. A questão principal na computação móvel é a mobilidade que introduz restrições inexistentes na computação tradicional formada por computadores estáticos. Sendo assim, o objetivo principal da computação móvel é prover para os usuários um ambiente com um conjunto de serviços similares aos existentes num sistema distribuído de computadores estáticos que permita a mobilidade (MATEUS e LOUREIRO, 1998). O mundo móvel tem-se tornado cada vez mais móvel, com a tecnologia wireless a mobilidade já fornecida pelos dispositivos móveis tem crescido ainda mais, disponibilizando serviços, informações ao usuário onde quer que ele esteja (PEKUS, 2002). 2.2 Dispositivos Móveis A computação móvel é caracterizada por um dispositivo móvel, com capacidade de processamento, em um ambiente sem fio. Exemplos de dispositivos móveis são: PDAs, telefones celulares e smartcards. Segundo Mateus e Loureiro (1998), independente do tipo de dispositivo móvel, a maior parte desses equipamentos deve ter capacidade de se comunicar com a parte fixa da rede e possivelmente com outros computadores móveis. Fazendo uma análise dos computadores atuais, estes ficam residentes em um lugar fixo, ou seja, não tem esta característica de mobilidade. Segundo Lima (2005), um dispositivo móvel é um dispositivo portátil que pode carregar consigo mesmo sua fonte de energia. Devido à definição de computação móvel, um dispositivo para este fim deve ter a capacidade de realizar processamento, trocar informações via rede e ser capaz de ser transportado 8 facilmente por seu usuário. Para isso, é importante que o dispositivo computacional tenha tamanho reduzido e não necessite de cabos para conectá-lo à rede de dados ou fonte de energia elétrica. Segundo Figueiredo e Nakamura (2003), os dispositivos móveis devem possuir a característica de serem menores que as estações de trabalho, que possam caber na palma da mão outra característica é que os mesmos devem possuir bateria para evitar cabos para conexão com a energia elétrica e também possuírem a capacidade de conexão com os dados através de tecnologias de rede sem fio. Dispositivos com tais características são: Celulares, Palmtops, PDAs. Segundo Figueiredo (2003), os dispositivos móveis, possuem as seguintes características, a CPU tem um menor poder de processamento. A memória tem menor capacidade. A fonte de energia, em geral baterias ou pilhas, faz com que o uso destes dispositivos seja restrito. A tela é muito menor. Os mecanismos de entrada de dados são diferentes. A conexão de rede tem uma largura de banda reduzida, latência e taxa de erros maiores quando comparados com redes cabeadas. Além disso, as desconexões podem ser freqüentes. Segundo Figueiredo e Nakamura (2003), laptops podem ser utilizados como dispositivos móveis porém não é a melhor opção por necessitar de um apoio para utilização do mesmo e por possuírem baterias grandes que em geral duram pouco tempo. A evolução dos dispositivos móveis permitem serviços de conexão e comunicação em qualquer lugar e a qualquer hora, através de um sistema embarcado. Segundo dados da Agência Nacional de Telecomunicações (ANATEL, 2006), o número de celulares no Brasil é de mais 93 milhões e a utilização dos aparelhos celulares e dispositivos móveis, tem crescido de forma vertiginosa no Brasil e no Mundo. Com base nestes números, dá para ter uma idéia do mercado potencial que pode ser explorado. Nos últimos anos, os aparelhos celulares evoluíram bastante, a ponto de suportarem a execução de softwares funcionais e tem notado que muitas vezes este recurso é sub-utilizado, por falta de softwares desenvolvidos para tais dispositivos. Segundo Bernardino (2006), os fatores para o aumento da utilização dos celulares são miniaturização dos dispositivos eletrônicos junto ao aumento do poder de processamento destes dispositivos aliado à necessidade do ser humano permanecer informado a qualquer hora e em qualquer lugar. Ainda segundo Bernardino (2006), estima-se hoje que existam mais de um bilhão de telefones celulares no mundo e esse número cresce a cada dia. 9 De acordo com Teleco (2006), o Brasil passou de 7º para 6º em número de celulares no ano de 2004, conforme apresentado na Figura 2 e em 2006 o Brasil já possui mais de 95 milhões de celulares conforme apresentado na Tabela 1. Figura 2. Número de celulares no Brasil Fonte: Teleco (2006) Tabela 1. Número de celulares no Brasil Mês/Ano Celulares Crescimento mês Set/05 79.997.230 1.049.898 1,3% Dez/05 86.210.336 3.858.692 4,7% Ago/06 94.904.998 965.906 1,0% Set/06 95.870.904 770.895 0,80% Fonte: Teleco (2006). Os celulares passaram por uma grande revolução, hoje existem no mercado, celulares capazes de tirar e armazenar fotos, gravar vídeos e conectar-se a internet. A Tabela 2 apresenta um quadro que exemplifica a evolução dos celulares: 10 Tabela 2. Gerações da Telefonia Celular Geração 1G Características Transmissão de dados Analógica (AMPS); Taxas de 9600 bps. 2G Transmissão digital de dados(TDMA, CDMA e GSM); 2,xG 3G Disponibilização Evolução de aplicações CDMA e GSM; pré-3G. Taxas de 9600bps a 14400bps; Taxas de até 2Mbps; Surgimento de aplicações WAP. Surgimento de aplicações multimídia. 4G Elevação das taxas de transmissão de dados; Tecnologias e aplicações ainda em discussão. Fonte: Figueiredo e Nakamura (2003). Segundo Lima (2005), as gerações dos celulares foram divididas em 4 categorias onde: 1º Geração – Surgiram em meados dos anos 1970 e 1980 e permitiam apenas comunicação por voz; 2º Geração – Meados dos anos 1990 surgimento dos primeiros celulares digitais, possibilidade de transmissão de dados e voz; 2,x Geração – Surgimento de tecnologias para transmissão de pacotes de dados tais como, GPRS (General Packet Radio Service) e CDMA. Surgiram os serviços diferenciados como possibilidade de acesso a WEB; 3º Geração – Surgiu no Japão em 2001. Serviço que oferece qualidade na transferência de voz e suporte a diversos serviços multimídia, como transmissão de vídeo, imagens, músicas e jogos. Além disso, possui uma grande capacidade para transferência de dados e 4º Geração – Em fase de conclusão, permitirá uma grande elevação nas taxas de transmissão de dados e voz. 2.3 Tecnologias de Desenvolvimento Esta seção tem como objetivo apresentar as principais tecnologias atuais de desenvolvimento para dispositivos móveis. Serão apresentadas as principais características bem como limitações de cada tecnologia. 11 Serão abordadas também as tecnologias necessárias a implementação deste projeto como J2ME e Web Services. 2.3.1 .NET A plataforma .NET pode ser definida basicamente como um modelo de desenvolvimento, criado pela Microsoft, que visa a implementação de software independente de linguagem, plataforma e dispositivo. Um dos principais objetivos desse modelo é permitir a integração entre aplicações através da troca de informações pela internet (BURÉGIO, 2003, p. 9). O ASP.NET mobile controls, anteriormente conhecido como Microsoft Mobile Internet Toolkit (MMIT) estende o poder do Framework .NET e do Visual Studio para construção de aplicações para dispositivos móveis (MICROSOFT, 2006). A Microsoft disponibiliza o Microsoft Móbile Internet Toolkit (MMIT) que é um SDK especifico para desenvolvimento de aplicações para dispositivos móveis. O desenvolvimento pode ser realizado na ferramenta Visual Studio dotNet ou C#, sendo possível aproveitar o conhecimento que se tem sobre aplicações ASP.NET e estruturas de linguagens, com restrições apenas às classes utilizadas para esse tipo de aplicações, um pouco mais limitadas (HADDAD, 2005). 2.3.2 BREW O BREW (Binary Runtime Environment for Wireless) é uma plataforma aberta desenvolvida pela empresa Qualcomm para criação e distribuição de aplicações para telefones celulares. Segundo Qualcomm (2006), o Brew foi projetado para permitir o desenvolvimento de aplicações a partir da linguagem que o desenvolvedor escolher para a codificação. Oferece suporte nativo à linguagem C/C++, mas aceita a integração de browsers e aplicações em outras linguagens como Java e linguagens de marcação como XML (Extensible Markup Language). O BREW inclui um pacote de desenvolvimento denomidado BREW SDK® que segundo Qualcomm (2006), ajuda o desenvolvedor a começar a trabalhar com o BREW rapidamente, fornecendo ferramentas de desenvolvimento e depuração gerais, aplicativos de exemplo com seu código-fonte, materiais de referência e manuais do usuário, bem como um emulador de 12 telefones, que permite que o desenvolvedor execute aplicativos em seu próprio ambiente de desenvolvimento, antes de começar a testá-los nos dispositivos de destino. Ainda segundo Qualcomm (2006), o pacote de desenvolvimento da BREW possibilita ao desenvolvedor criar aplicativos sem precisar conhecer o software de sistema do chip do fabricante do dispositivo móvel. O SDK de desenvolvimento da BREW está disponível para download gratuitamente no site da Qualcomm. 2.3.3 SuperWaba O SuperWaba é uma plataforma para desenvolvimento de aplicações para PDA e Smartphones. Possui uma máquina virtual que possibilita a portabilidade entre aplicações e dispositivos (SUPERWABA, 2006). O SuperWaba foi criado no início de 2000 por Guilherme Campos Hazan (guich) e é derivado de um outro projeto de software livre chamado Waba (da empresa WabaSoft). A plataforma SuperWaba é open-source ou seja, permite acesso ao código fonte e distribuição gratuita dos softwares incluídos no kit de desenvolvimento SuperWaba (SWSDK). O SWSDK é formado por uma máquina virtual, bibliotecas básicas e de extensão e ferramentas para compilação, depuração e instalação de aplicativos. Possui também documentação e exemplos sobre a tecnologia. 2.4 J2ME Segundo Muchow (2004), o Java, começou com a idéia da SUN de “Write Once, Run Anywhere” (Escreva uma vez, execute em qualquer lugar). A idéia original era a de escrever uma linguagem que fosse portável para qualquer plataforma que possuísse uma Máquina Virtual Java (JVM). A SUN possui três plataformas para desenvolvimento, J2ME, J2SE E J2EE. A tecnologia da SUN voltada para dispositivos com pouca capacidade de processamento é o J2ME. O J2ME é formado por configurações e perfis, que serão abordados a seguir. 13 Personal Profile RMI Profile TV Profile CDC MIDP CLDC Perfil Configuração Linguagem de programação JAVA KVM Máquina Virtual Java Foco do TCC Figura 3. Camadas de Software do J2ME Fonte: Adaptado de Muchow (2004). 2.4.1 Configuração A SUN introduziu o conceito de Configurações, para poder suportar a grande quantidade e variedade de dispositivos móveis. Uma configuração define o menor denominador comum dos recursos da plataforma Java suportados por todos os dispositivos com características similares que pertencem a uma determinada categoria, tanto pela própria linguagem Java como pela máquina virtual, assim como suas bibliotecas de classes e APIs (SUN, 2006). O que limita a configuração de uma aplicação é basicamente a memória, vídeo, conectividade de rede e processamento. Segundo Muchow (2004), as configurações podem ser divididas em duas categorias distintas como segue: Configuração de Dispositivo Conectado Limitado (CLDC): Ambiente de execução com um conjunto de APIs especificas para dispositivos restritos que possuem baixo poder de processamento, fonte de energia limitada e display reduzido, caso da maioria dos celulares encontrados no Brasil atualmente; e 14 Configuração de Dispositivo Conectado (CDC): conjunto de tecnologias destinadas à utilização em dispositivos mais potentes que aqueles contemplados na configuração CLDC. Possibilidade de construção de interfaces gráficas mais poderosas a aplicações com maior poder de processamento quando comparadas com as feitas em CLDC. 2.4.2 Perfis Mesmo os dispositivos sendo classificados como uma ou outra categoria de configuração eles podem possuir características diferentes. Tendo em vista esta questão, a SUN incorporou o conceito de perfil (profile). Segundo Muchow (2004), ”um perfil é uma extensão de uma configuração. Ele fornece as bibliotecas para o desenvolvedor escrever aplicativos para um tipo em particular de dispositivo”. O perfil MIDP (Mobile Information Device Profile) é o perfil responsável por definir as APIs de entrada, saída, interfaces com o usuário, interligação entre redes, dentre outros, isto sempre levando em consideração as limitações de cada dispositivo, tais como tamanho da tela e memória (MUCHOW, 2004). 2.4.2.1 MIDP Levando em consideração os recursos do dispositivo móvel disponível para este trabalho, foi escolhido o perfil MIDP. Segundo Muchow (2004), os recursos de hardware são de extrema importância para a escolha do perfil. Para suportar os requisitos mínimos do MIDP os dispositivos devem possuir: Tela de pelo menos 96x54 pixels; Deve possuir um tipo de entrada de dispositivo como teclado QWERTY1; 128 Kilobytes de memória ROM; 32 Kilobytes de memória RAM e Conectividade de rede sem fio; 1 QWERTY é o layout de teclados atualmente mais utilizado em computadores e máquinas de escrever. O nome vem das primeiras 6 letras "QWERTY". 15 O MIDP encontra-se hoje em sua segunda versão com recursos de HTTPS (HiperText Transfer Protocol Secure), Datagramas, analisador XML e extensões para linguagem de baixo nível (MUCHOW, 2004). 2.4.3 JVM Toda aplicação Java, necessita da JVM (Java Virtual Machine) para ser executada. Segundo Muchow (2004), “a JVM é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes em código executável de máquina”. A JVM é responsável pelo gerenciamento dos aplicativos, à medida que são executados, além disso, de acordo com Muchow (2004), a JVM é responsável pela segurança, gerenciamento da memória e execução das linhas de comando. A JVM para dispositivos móveis é conhecida como KVM (Máquina Virtual K), que foi projetada pela SUN, para execução de aplicativos para pequenos dispositivos. Esta máquina virtual é responsável por atender os requisitos exigidos pelo CLDC. De acordo com Muchow (2004), “a KVM não é a maquina virtual tradicional do Java, mas sim, a implementação da SUN de uma JVM, que se enquadra nas diretrizes da CLDC”. 2.4.4 Vantagens do J2ME Segundo Muchow (2004), o J2ME é destinado diretamente aos dispositivos com recursos limitados e pouco poder de processamento. Além disso, o J2ME é a tecnologia que alcança o maior número de micro dispositivo disponíveis no mundo é independente de arquitetura e é gratuita para download e para uso comercial, o que minimiza os custos de desenvolvimento e aumenta a quantidade de usuários. De acordo com Muchow (2004), estima-se que a quantidade de desenvolvedores Java (J2ME) seja mais de dois milhões de pessoas no mundo. 2.5 Ambiente de desenvolvimento Para o desenvolvimento de aplicações utilizando o J2ME, torna-se necessária a utilização de alguns softwares. Todos estes softwares são gratuitos e encontram-se disponíveis para download na 16 internet. Esta seção apresentará os softwares e ferramentas necessárias para a implementação deste trabalho. 2.5.1 Java 2 Standard Edition O J2SE (Java 2 Standard Edition) ou Java SE é a ferramenta necessária para o desenvolvimento, compilação de aplicações em Java. Ela é composta por um ambiente com máquina virtual, compilador java e APIs do java. 2.5.2 Wireless Toolkit O Java Wireless Toolkit (WTK) é o kit de desenvolvimento para dispositivos móvel desenvolvimento pela SUN e é responsável por emular um dispositivo móvel, no padrão MIDP. O WTK encontra-se atualmente, na versão 2.0, compilável com a especificação MIDP 2.0. É importantes salientar, que o WTK não provê um ambiente de desenvolvimento completo, e sim um compilador para as aplicações móveis e emuladores de alguns dispositivos para testar os sistemas criados, por isso torna-se necessária a utilização de uma IDE para desenvolvimento. A Figura 4 apresenta a tela do emulador WTK. Figura 4. Tela do Emulador do WTK 17 2.5.3 Eclipse O Eclipse foi a ferramenta utilizada para o desenvolvimento do sistema. Esta ferramenta foi escolhida por ser de fácil utilização bem como de possibilitar uma fácil integração com o WTK. O Eclipse é uma ferramenta de desenvolvimento gratuita e licença GNU (Licença Pública Geral), isto garante que os softwares possam ser de livre distribuição. Além disto, é uma ferramenta gratuita utilizada por muitos desenvolvedores JAVA. 2.6 Web Services A utilização do Web Services neste projeto é de vital importância, por se tratar de uma integração entre dois sistemas desenvolvidos por pessoas diferentes e em tecnologias diferentes. O sistema proposto, será desenvolvido em J2ME e o sistema para Programação Alimentar utilizando RBC em PHP. Os Web Services apresentam uma estrutura arquitetural que permite a comunicação entre aplicações. As aplicações podem ser desenvolvidas em qualquer plataforma ou tecnologia. O Web Service é um componente de software que interage com o outro componente de software através de protocolos de rede.A comunicação ocorre de forma invisível para o cliente, a transferência das informações é feita através de arquivos XML (CHAPPELL E JEWELL, 2002). Segundo Chappel e Jewell (2002), Web Service é um componente que implementa uma lógica de negócio, localizado em algum lugar na Internet, podendo ser acessado através de algum protocolo padrão. Este serviço pode ser simples, como fazer um logon em um site, ou tão complexo quanto realizar uma negociação empresarial. Uma das características do Web Service é que as aplicações o acessam através de protocolos padrão, como HTTP (HiperText Transfer Protocol) e SOAP (Simple Object Access Protocol) e transferem os dados no formato XML. Segundo Chappell e Jewell (2002), baseado nos conceitos de Web Services, pode-se citar algumas características do seu comportamento como segue: Interoperabilidade entre plataformas: Os web services não dependem de plataformas; 18 Fraco acoplamento: um cliente não está vinculado diretamente ao serviço. Alterações em um dos dois serviços (cliente/serviço) não necessariamente obrigam alterações no outro serviço; e Habilidade de atender requisições de forma síncrona e assíncrona; 2.6.1 Arquitetura dos Web Services De acordo com Chappell e Jewell (2002), a arquitetura dos Web Services definem padrões para interoperabilidade entre diferentes aplicações rodando em diferentes plataformas, a arquitetura não define como os Web Services devem ser implementados, mas sim como os diversos componentes do Web Services devem se comunicar. A relação entre estes componentes pode ser observada na Figura 5. Figura 5. Interação dos Componentes do Web Service Fonte: Chappell e Jewell (2002). O SOAP é o protocolo responsável por troca de mensagens e tem como finalidade a intercomunicação entre sistemas heterogêneos através da WEB, o HTTP é o protocolo responsável pelo transporte (CHAPPELL E JEWELL, 2002). Os Web Services tem que se registrar num repositório central, onde os softwares clientes necessitaram pesquisa-los para poderem usar as suas funções. Uma vez localizado, o Software cliente receberá uma referência para o serviço encontrado, podendo usufruir os serviços apenas 19 executando os vários métodos implementados com a ajuda das interfaces públicas (CHAPPELL E JEWELL, 2002). Segundo Chappell e Jewell (2002), o WSDL (Web Service Description Language) é a linguagem que prove informações especificas para que os clientes possam utilizar os serviços implementados no Web Service. Ainda segundo Chappel e Jewell (2002), o UDDI (Universal Description, Discovery and Integration) é responsável por prover o registro do Web Service na Web. Um serviço de registro UDDI é um Web Service que gerencia informação sobre provedores, implementações e metadados de serviços. 2.6.2 Segurança dos Web Services Ao se utilizar Web Services com aplicações móveis, deve-se salientar que esses serviços estarão disponíveis no servidor, e não no dispositivo móvel devido a suas limitações. Desta forma, são necessárias algumas medidas que garantam uma segurança fim-a-fim, sendo que os Web Services tem como característica principal a disponibilização de rotinas para acesso remoto. O WTLS (Wireless Transport Layer Security), é um protocolo semelhante ao protocolo de segurança de transporte da internet, ele é responsável por fornecer autenticação, integridade de dados e privacidade de serviços (MILLER, 2001). Uma transmissão de um site para um dispositivo móvel deve, primeiramente, atravessar um gateway que converte a encriptação de SSL (Secure Sockets Layer – protocolo criptografado) para WTLS, neste processo de conversão, a mensagem é codificada e decodificada no destino. 2.7 Tecnologias para Comunicação sem fio Ao passo que se possui os dispositivos móveis, torna-se necessário a utilização de alguma tecnologia que viabilize a comunicação entre o dispositivo móvel e a rede física, lembrando que esta tecnologia deve permitir tal comunicação com o dispositivo móvel por meio de uma rede sem fio. Para a comunicação na computação móvel, é necessária uma infra-estrutura que forneça aos dispositivos móveis a capacidade de troca de informações para uma rede fixa. Esta infra-estrutura ocorre por meio de tecnologias que possibilitem a comunicação e/ou a troca de informações e 20 podem ser divididas em infra-estrutura interna ou externa, dependendo da área de cobertura da rede (FIQUEIREDO e NAKAMURA, 2003). De acordo com Lima (2005), a comunicação entre dispositivos móveis, pode se dar através de vários meios de comunicação que podem ser via airtime como WI-FI, BlueTooth, conexão HTTP, SyncML (Synchronization Markup Language) e infra-vermelho ou como não airtime como conexão via cabos, cabo USB (Universal Serial Bus) por exemplo. Esta seção tem como objetivo apresentar as principais tecnologias envolvidas na comunicação entre dispositivos móveis e a rede física, por meio de uma comunicação sem fio. A seguir são apresentadas as características de tais tecnologias. 2.7.1 WAP O WAP (Wireless Application Protocol) é uma especificação que fornece métodos para acesso a internet por meio de um dispositivo móvel. Segundo Agustini (2000), o WAP é uma especificação aberta e global, que visa permitir que usuários de dispositivos móveis, sem fio, acessem facilmente informações e serviços de forma instantânea. A comunicação pode ser feita através de ondas de rádio via satélite ou antenas. O WAP pode ser comumente utilizado em palmtops, handheds, notebooks e equipamentos com modens sem fio, entretanto o celular é o dispositivo mais utilizado. O protocolo WAP foi criado especificamente para o uso com dispositivos sem fio, por este motivo, tornou-se mais eficiente do que outros protocolos utilizados para este fim. O WAP surgiu a partir de uma proposta feita pela empresa Ominipoint em 1997 que queria um serviço de WEB Móvel. A empresa abriu um processo de concorrência à qual as empresas ou pessoas deveriam apresentar a tecnologia e os serviços a serem aplicados. Quatro empresas apresentaram suas propostas, dentre elas, três operadoras de telefonia celular. As propostas apresentadas pelas empresas, embora interessantes comercialmente e tecnologicamente, não foram aproveitadas por se tratarem de tecnologia proprietária, ou seja, torna obrigatória a utilização de um software ou equipamento de um único fornecedor. Então a Ominipoint optou pela adoção e criação de um único padrão, surgindo então a criação do WAP Fórum, formado originalmente pelas quatro 21 empresas. Após um ano, esse fórum foi aberto para novos membros, surgindo então a primeira versão do WAP (AGUSTINI, 2000). Nesse ínterim, outras soluções surgiram, porém o WAP se destacou por ser não apenas uma nova linguagem de marcação, mas todo um conjunto de protocolos utilizados na formação de uma WEB sem fio. O protocolo WAP é basicamente uma pilha de protocolos de comunicação que tem como meta unir um servidor de aplicação a um dispositivo sem fio. Conforme apresentado na Figura 6, observa-se a arquitetura do protocolo WAP, que é formada por diversos protocolos divididos nas camadas de rede. A seguir são apresentados alguns componentes da pilha do protocolo (DORNAN, 2001). Figura 6. Pilha de protocolos WAP Fonte: Dornan (2001). 22 1. WTA: a finalidade do WTA é fornecer meios para criar serviços de telefonia (voz) usando WAP; 2. WSP: responsável por decodificar e converter do padrão WAP para o padrão HTTP uma solicitação recebida; e 3. WML: linguagem de marcação projetada para apresentar principalmente as páginas baseadas em texto. De acordo com Dias (2003), o processo de funcionamento do protocolo WAP é semelhante à de uma página WEB. Uma solicitação é enviada de um computador até um servidor Web através da Internet. O servidor interpreta a solicitação e envia a resposta ao computador que a solicitou, onde será exibida. De acordo com Cani (2000), na forma convencional, uma solicitação é enviada de uma estação de acesso até um servidor de conteúdo através da Internet. O servidor interpreta a solicitação e envia a resposta à estação que a solicitou, onde a mesma será recebida , conforme observado na Figura 7. Figura 7. Acesso a internet na forma convencional Fonte: Adaptado de Cani (2000). Ainda segundo Cani (2000), no caso da tecnologia WAP, o dispositivo envia uma solicitação através da rede sem fio para um gateway wap, o gateway converte a requisição para o protocolo na internet e envia para o servidor de conteúdo. O servidor de conteúdo processa as informações envia a resposta para o gateway onde a mensagem é codificada e enviada através da rede sem fio para o cliente que fez a requisição. Isto pode ser observado na Figura 8. 23 Figura 8. Acesso à internet através da tecnologia WAP Fonte: Adaptado de Cani (2000). 2.7.2 Infra Vermelho Tecnologia para comunicação entre dispositivos móveis e fixos, por meio de uma rede sem fio. Uma das características destes dispositivos é que não permitem que eles estejam afastados por pouco mais de alguns metros, assim como um controle remoto de televisão. Possui alta taxa de transmissão de dados que vai de 9600 b/s a 4 Mb/s (LIMA, 2005). Hoje a tecnologia de comunicação por infra-vermelho é praticamente restrita a redes pessoais (PANs) e a algumas aplicações especificas para redes sem fio. 2.7.3 SyncML O SyncML (Synchronization Markup Language) é um protocolo de sincronização de dados e informação baseada no formato XML (NOKIA, 2006). O SyncML surgiu em 2000 como iniciativa de empresas como Nokia, Motorola, Ericsson, Palm, Pison, Lotus e IBM, com o objetivo de se criar um protocolo para sincronização de dados, utilizando dispositivos móveis. Segundo Nokia (2006), o SyncML pretende ser uma linguagem comum que permita a sincronização eficaz e estável de informações pessoais e profissionais, em redes fixas ou móveis. 24 Como dito anteriormente, o objetivo do SyncML é o de criar um protocolo para troca de informações e que seja universal não estando imposto a limitações de dispositivos proprietários, linguagens de programação ou aplicativos de sincronização utilizada em cada dispositiva. Figura 9. Funcionamento do SyncML Fonte: Nokia (2006b). A Figura 9, exemplifica basicamente o funcionamento do protocolo SyncML, onde os dispositivos A e B possuem softwares compatíveis com o SyncML e o transporte dos dados pode ser feito utilizando WAP, HTTP, cabo ou bluetooth. Ou seja, utiliza praticamente qualquer tipo de transporte para troca de informações. 2.7.4 BlueTooth Segundo Alçada (2004), o Bluetooth é um sistema de comunicação sem fios de curta distância com alcance de aproximadamente 10 metros levando-se em consideração os obstáculos ou não. O padrão opera na faixa ISM (Industrial, Scientific, and Medical) de 2,4 GHz e tem como princípio propor uma tecnologia de baixo custo para conectividade sem fio. De acordo com Gonçalves (2000), o padrão Bluetooth visa facilitar as transmissões em tempo real de voz e dados, permitindo conectar quaisquer aparelhos eletrônicos, fixos ou móveis, que estejam de acordo com a tecnologia. Vantagens do BlueTooth: Solução viável e de baixo custo; Cada vez mais dispositivos possuem chips Bluetooth; e Permite transmissão tanto de voz quanto de dados. Desvantagens do BlueTooth: 25 Alcance curto, aproximadamente 10 metros e Possui uma capacidade limitada de dispositivos que podem se conectar. 2.8 Nutrição Muitas doenças estão diretamente relacionadas com a alimentação e a receita para este problema é um cardápio bem elaborado e com critério para evitar uma série de problemas com a saúde. De acordo com a Organização Mundial da Saúde (OMS), “as doenças causadas por uma má alimentação ocasionam a morte de mais de seis milhões de pessoas anualmente em todo o mundo. Metade delas pode ser evitada com medidas de prevenção para reduzir o risco de hipertensão, colesterol alto e obesidade”. Outras doenças como a Osteoporose, hipertensão, Diabetes Melitus e Obesidade, podem ser evitadas, com alguns cuidados na alimentação (COCOLO, 2006). Os resultados demonstrados por um estudo feito pela Pesquisa Nacional de Saúde e Nutrição (PNSN), no que diz respeito à situação econômica, apresentam que o “Brasil revelou que a prevalência de excesso de peso aumenta de acordo com o poder aquisitivo, especialmente entre os homens” (OLIVEIRA 2002). Para se manter bons hábitos alimentares é necessário saber a quantidade e a qualidade dos alimentos que se deve consumir. Sendo assim, somente com mudança de hábitos alimentares e reformulação/adequação da dieta, pode-se alcançar uma alimentação com qualidade e mais saúde. No entanto, corrigir os hábitos alimentares, apesar de ser uma tarefa essencial, não é fácil, principalmente quando não há um controle e/ou uma forma de se controlar. Segundo Cervato (2004), as ações em educação nutricional devem se basear em teorias da educação e de outras ciências humanas, para que possam, então, contribuir à promoção da saúde. Esta seção tem como objetivo, apresentar questões sobre avaliação nutricional, transtornos alimentares e a prescrição alimentar. Esta seção visa apresentar a importância da avaliação nutricional e o como esta avaliação deve ser feito junto ao acompanhamento de um profissional especializado nesta área (nutricionista). 26 2.8.1 Avaliação Nutricional Cada paciente possui uma necessidade específica de alimentação, para isto, é importante o acompanhamento do nutricionista. A influência da nutrição na saúde do individuo é medida através da avaliação nutricional ou avaliação do estado nutricional. Para garantir a qualidade da atenção nutricional o primeiro passo consiste na avaliação das necessidades especiais de cada paciente (MITCHELL e ANDERSON, 1988). Para Krause, Mahan e Escott-Stump (2002), a avaliação nutricional serve para medir a influência da nutrição na saúde do individuo. Ainda segundo Krause, Mahan e Escott-Stump (2002), os objetivos da avaliação nutricionais são: 1. Identificar um grupo de pacientes necessitados de acompanhamento nutricional; 2. Estabelecer valores básicos para avaliar a eficácia de regimes nutricionais; e 3. Identificar a probabilidade de riscos de saúde devido a fatores nutricionais. Segundo Dutra-de-Oliveira e Marchini (1998), a seleção dos alimentos deve se basear na quantidade necessária de nutrientes para suprir o organismo de cada paciente e não apenas nos tipos de alimentos que devem ser consumidos. Segundo Correia (1996), a ingestão inadequada de nutrientes leva a uma diminuição do peso corporal, como um excesso de ingestão vai resultar num aumento de peso corporal. Além disso, o importante é saber de quais alimentos retirar os nutrientes necessários ou não ao organismo de cada paciente. Para determinar a necessidade de cada paciente, é preciso fazer uma Avaliação nutricional do mesmo. Segundo Mitchell e Anderson (1988), os dados objetivos para uma avaliação nutricional são: Dados antropometricos: Altura, peso, espessura da dobra cutânea e circunferência muscular do braço; e 27 Dados bioquímicos: exame do plasma, glóbulos vermelhos e brancos, urina ou tecidos, como fígado, ossos, cabelos e unhas. Em relação aos dados antropométricos, são métodos relativamente imprecisos e com grandes margens de erros, se comparados com os métodos laboratoriais, contudo são mais baratos e ideais para serem utilizados em serviço de campo pelo nutricionista. Este método se baseia em vários índices, a fim de determinar a composição corporal do paciente (NOBREGA, 1998). Segundo Nobrega (1998), alguns desses índices são: Índice da relação de Peso para Estatura (P/E): É a relação entre o peso real e o peso ideal, correspondente ao percentil 50 da sua idade/altura, multiplicado por 100; Índice de Quetelet ou Índice de Massa Corporal: Considerado o método antropométrico mais simples e preciso, e pode ser calculado pela seguinte formula: Peso IMC 2 Altura Equação 1 Pregas Cutâneas: A utilização das medidas baseadas nas pregas cutâneas é a de identificar a quantidade de gordura corporal. Esta medida se baseia no fato de que metade do conteúdo corporal total da gordura fica localizada nos depósitos adiposos existentes diretamente debaixo da pele; e Circunferência: Relação entre a circunferência da cintura e do quadril e é um índice que representa a gordura localizada no nível abdominal. Além dos dados Antropométricos e bioquímicos do pacientes, existem os dados subjetivos que são levantados do pacientes como a Anamnese alimentar e dados de ingestão. Segundo Krause, Mahan e Escott-Stump (2002), os dados de ingestão alimentar do paciente, podem ser obtidos através de: Questionário 24h: Método mais popular e fácil de obter informações sobre a ingestão alimentar de uma pessoa. Este método consiste num questionário ou entrevista com o nutricionista, que pede ao paciente que relate tudo que ele consumiu nas últimas 24h. Entretanto este método é muito passível de erro, pois o paciente pode não se lembrar do que comeu no dia anterior, ou as quantidades não podem ser exatas; 28 Questionário de Freqüência de uso de alimentos: Método utilizado muitas vezes para suprir as deficiências do questionário 24h. Neste método, o nutricionista coleta informações de quantas vezes no dia, semana ou mês o paciente consumiu determinado alimento. Este questionário pode determinar um padrão real da alimentação do indivíduo; Anamnese Alimentar: É um método mais completo que o questionário 24h e o de freqüência. A anamnese alimentar requer um certo tempo por parte do nutricionista, e um outro problema, tendo em vista que a alimentação é algo particular do paciente, é a de que o paciente não fale a verdade ou não queira falar. Para compensar estes problemas, a anamnese alimentar pode ser colocada em um questionário objetivo, que pode ser preenchido pelo paciente, visando assim a obtenção de um padrão mais próximo da alimentação do paciente; e do Diário ou Registro Alimentar: Este método consome mais tempo do paciente e nutricionista. Consiste basicamente na responsabilidade do paciente de descrever tudo que come ou bebe durante certo período de tempo. 2.8.2 Transtorno Alimentar Segundo Oliva e Fagundes (2002), o principal responsável pelos transtornos alimentares é a insuficiente ingestão de nutrientes, muitas vezes associada a outras alterações do comportamento alimentar. Os transtornos alimentares ou nutricionais são doenças psiquiátricas ligadas diretamente à imagem que a pessoa faz de si mesma e caracteriza-se por alterações no comportamento alimentar. Por isso, torna-se importante o profissional de saúde estar atento, a fim de identificar o problema e a realizar uma avaliação nutricional adequada a cada paciente. Existem vários diagnósticos possíveis para doenças de transtornos alimentares, tais como: Bulimia Nervosa, Anorexia Nervosa e Obesidade, dentre outros. 2.8.2.1 Bulimia Nervosa Segundo Nobrega (1998), a Bulimia Nervosa é uma doença psiquiátrica onde o padrão e comportamentos alimentares estão profundamente comprometidos. 29 A bulimia nervosa caracteriza-se por episódios recorrentes de compulsão alimentar seguidos de vômitos auto-induzidos, uso abusivo de laxantes, diuréticos e jejuns prolongados (NOBREGA, 1998). Segundo Nobrega (1998), alguns critérios diagnósticos para bulimia nervosa são: Sensação de falta de controle sobre o comportamento alimentar; Preocupação excessiva, persistente com peso e formato do corpo; Uma média mínima de dois episódios de compulsão alimentar por semana, durante no mínimo três meses; Compulsão alimentar e grande consumo de alimento em um curto espaço de tempo; e A pessoa geralmente pratica vômitos induzidos, utiliza-se de laxantes, ou jejum rigoroso. 2.8.2.2 Anorexia Nervosa A anorexia nervosa caracteriza-se por ser um distúrbio da alimentação, que primariamente, afetam adolescentes e adultos do sexo feminino, onde se caracterizam pela recusa do individuo em manter o peso adequado à sua altura e um distúrbio da percepção da própria imagem, em que a pessoa considera estar acima do peso, mesmo estando aparentemente abaixo do peso (NOBREGA, 1998). Segundo Nobrega (1998), alguns critérios diagnósticos para anorexia nervosa são: Medo intenso de ganhar peso ou de ficar obeso mês Distúrbio na forma de vivenciar o próprio peso, ou seja, a pessoa acredita estar acima do mo com peso inferior ao normal; peso, mesmo quando esta obviamente abaixo do peso; No sexo feminino, ausência de, pelo menos, 3 ciclos menstruais consecutivos, quando sua ocorrência é normalmente esperada; e 2.8.2.3 Perda de mais de 15% do peso corporal. Obesidade Segundo Nobrega (1998), a obesidade é um distúrbio do metabolismo energético, onde ocorre o armazenamento excessivo de energia. 30 De acordo com Nobrega (1998), o fator de risco mais importante para a causa da obesidade é a freqüência entre os familiares, isto relacionado a fatores genéticos, hábitos alimentares e estilo de vida. Nobrega (1998), também afirma que “o risco de uma criança ser obesa aumenta em função da obesidade dos pais. É baixo quando nenhum dos pais é obeso, alto quando apenas um é obeso e muito alto quando ambos são obesos”. Um importante dado é de que a obesidade atinge principalmente os paises desenvolvidos e estão atingindo no mundo pessoas de todos os fatores econômicos (NOBREGA, 1998). Os resultados demonstrados por um estudo feito pela Pesquisa Nacional de Saúde e Nutrição (PNSN), no que diz respeito à situação econômica, apresentam que o “Brasil revelou que a prevalência de excesso de peso aumenta de acordo com o poder aquisitivo, especialmente entre os homens” (OLIVEIRA 2002). Segundo Correia (1996), existem várias doenças associadas à obesidade, dentre elas: Hipertensão arterial; Diabetes; Aumento de gordura no sangue; Doenças cardiovasculares; e Osteoartrite; A prevenção da obesidade deve se dar a partir da infância, evitando que as crianças cresçam com o peso acima do normal (CZEPIELEWSKI, 2001). 31 2.8.3 Prescrição Alimentar Segundo Krause, Mahan e Escott-Stump (2002), “a tarefa de planejar refeições nutritivas está centrada na inclusão de nutrientes essenciais, em quantidades ótimas e com calorias necessárias”. Segundo Pessa (1998), para suprir as necessidades de nutrientes que o nosso organismo precisa para funcionar adequadamente é preciso selecionar os alimentos e as quantidades. Por este motivo, as recomendações nutricionais foram definidas para orientar as pessoas sadias nas quantidades que são necessárias dos vários nutrientes. De acordo com Camargo (1999), após efetuar o diagnóstico do paciente, o nutricionista elabora uma prescrição alimentar individualizada, compatível com o paciente, seguindo guias de recomendações nutricionais. Ainda de acordo com Camargo (1999), o Recommended Dietary Allowances (RDA) é o guia alimentar mais utilizado para a definição das recomendações nutricionais. Segundo Camargo (1999), algumas recomendações propostas pelo RDA são: Não existem alimentos "bons ou maus"; As chaves para uma boa dieta são o balanceamento, a variedade e a moderação; Deve-se encarar a dieta como um todo e não como alimentos em separado; A escolha adequada de alimentos deve ser encorajada e A atividade física regular é um componente essencial para a boa saúde. 2.9 Trabalhos Relacionados Segundo Larcher (2003), um dos grandes desafios da área de saúde é a integração da parte médica com a tecnologia da informação, com a construção de sistemas que possam ajudar os profissionais da saúde na tomada de decisões, tanto no atendimento quanto no momento critico. Os principais sistemas para auxílio alimentar, são os sistemas baseados em casos (RBC). Aliado a esta técnica da IA, o uso dos dispositivos móveis para o auxilio a esta atividade tem se popularizado bastante nos últimos anos, isto pode ser demonstrado com alguns sistemas disponíveis 32 no mercado. O uso da informática na saúde vem crescendo bastante, isto se deve à grande facilidade que o computador tem trazido no processo e acesso a informações. Esta seção tem como objetivo elencar os principais sistemas encontrados e que possuem relevância ao escopo deste projeto. Será feita uma análise comparativa entre as características desses sistemas com o objetivo de facilitar o entendimento e visando também coletar informações que serão úteis para utilização como sugestões para o projeto. Foram pesquisados sistemas que estão em desenvolvimento além de sistemas que já estão em uso comercial no mercado. 2.9.1 Calorie Burner - Diet and Exercise Planner O Calorie Burner é um software para Pocket PC, destinado a ajudar no controle da alimentação e nos exercícios diários. Segundo Handango (2006), este software possui as seguintes características: Interface intuitiva; Cálculo automático do metabolismo (Basal Metabolic Rate - BMR); Cálculo automático do balanço diário e peso equivalente; Calendário de fácil utilização para controle e duração das atividades físicas; e Possibilidade de exportação dos dados para formato de arquivo CSV. Na Figura 10, é possível visualizar duas das principais telas do sistema, a tela de controle calórico e calendário para exercícios. 33 Figura 10. Tela de controle do Balanço Alimentar e Calendário de atividades físicas Fonte: Handango (2006). Este software encontra-se no mercado com o valor de U$24.99 para comercialização. 2.9.2 MyPersonalDiet O MyPersonalDiet é uma ferramenta que visa facilitar o controle e gerenciamento do peso, permitindo alcançar o peso ideal, fornecendo para isso meios simples de seguir sua alimentação. De acordo com Handango (2006b), o MyPersonalDiet consiste basicamente em três telas, descritas assim: A tela do dia, que mostra informações relevantes ao dia e permite que o usuário incorpore informações referentes às refeições e dados do usuário, revise seus objetivos calóricos diários e ajuste sua dieta; A tela do mês, que permite ao usuário visualizar os resultados referentes ao seu peso, indicando se o usuário conseguiu alcançar seu(s) objetivo(s); e A tela do gráfico, que permite que o usuário visualize dados como peso e o seu progresso, e dados nutricionais e calóricos sobre os alimentos. 34 Além disso, com o MyPersonalDiet, o usuário pode adicionar seu próprio alimento com informação nutritiva detalhada, por peso (g/mg) ou pelo valor diário dos por cento (%DV), fazendo lhe uma pressão para consumir alimentos feitos sob encomenda se o usuário tiver os fatores nutritivos (encontrados em quase todos os alimentos) (HANDANGO 2006b). Na Figura 11, é observada uma tela do MyPersonalDiet, onde o usuário pode informar a quantidade calórica mínima e máxima de cada nutriente que ele possa vir a consumir. Figura 11. Tela do Sistema MyPersonal Diet Fonte: Handango (2006b). 2.9.3 PmEB: A Mobile Phone Application for Monitoring Caloric Balance Aplicação para celular que permite aos usuários monitorar suas calorias como parte no gerenciamento do peso. O sistema PmEB consiste em uma aplicação do cliente que funciona no telefone móvel do usuário e uma aplicação server. Foram construídas a aplicação do cliente usando a edição móvel de Java 2 (J2ME) e a aplicação do Server usando Java no servidor Tomcat. A aplicação do cliente de J2ME na teoria funciona em todo o telefone móvel que for compatível com J2ME. Entretanto foram testados somente no Nokia 6620 e no Motorola V300, que eram os únicos telefones disponíveis para o estudo (LEE at al., 2006). A arquitetura da aplicação pode ser observada na Figura 12. 35 Figura 12. Funcionamento do Sistema PmEB Fonte: LEE at al. (2006). 2.9.4 Uso da Tecnologia Móvel no Auxílio à Reeducação Alimentar Este é um projeto de conclusão de curso desenvolvido na Universidade Federal de Lavras no ano de 2003 por Garrozi (2003). Segundo Garrozi (2003) o sistema possui as seguintes características: Desenvolvido em J2ME; Permite ao paciente armazenar data e hora de cada alimento consumido; Permite ao paciente armazenar o alimento e quantidade consumida; e Permite ao paciente consultar os alimentos mais nutritivos e vantajosos, de acordo com horários, alimentos já consumidos no dia, semana ou mês. Outra característica importante do sistema é o controle alimentar em forma de pontos onde cada paciente tem uma cota de pontos a ser consumida (cada alimento equivale a uma quantidade de pontos), determinada pelo nutricionista. O sistema permite o controle, agendamento e consulta dos pontos consumidos pelo paciente (GARROZI, 2003). 36 2.9.5 Análise das ferramentas similares A utilização dos dispositivos móveis na área de saúde, tem se tornado uma importante ferramenta no auxilio a obtenção de informações dos pacientes. Com base nas ferramentas descritas anteriormente, pode-se observar isso. A seguir, uma breve comparação entre os sistemas encontrados: Tabela 3. Comparação dos Aplicativos Projeto Tecnologia Dispositivo Móvel Calorie Burner .NET Pocket PC Acompanhamento do Nutricionista Não MyPersonalDiet .NET Pocket PC Não PmEB J2ME Celular Não Uso da Tecnologia Móvel no Auxílio à Reeducação Alimentar J2ME Celular Não 2.10 Integração com o Sistema para Programação Alimentar utilizando RBC De acordo com Miotto (2006), o Sistema para programação alimentar utilizando RBC é sistema web que permite a interação do paciente com o nutricionista, através do cadastro do recordatório da ingestão de alimentos durante o tratamento, a possibilidade do cadastro de dúvidas referente ao tratamento, consulta a tabela de substituição de alimentos, respeitando os gostos pessoais do paciente, além de um ambiente para educação alimentar através de dicas, sugestões e receitas atualizadas pelo nutricionista. O sistema tem como característica o funcionamento na web, possibilitando assim uma interação entre paciente e nutricionista, outra característica importante do sistema é a utilização da técnica de Inteligência Artificial (IA), RBC, sendo utilizado como ferramenta para a partir de avaliações nutricionais anteriores, prescrever novos planos alimentares para o paciente. O Sistema para consulta de planos alimentares utilizando dispositivo móvel, é um sistema que visa interagir diretamente como Sistema para consulta de planos alimentares utilizando RBC, alimentando o sistema da Web por meio do dispositivo móvel possibilitando assim ao paciente estar respondendo questões no momento em que elas acontecem, ou que seja mais viável a ele, como o questionário 24hrs, questionário de freqüência de alimentos e pesos e medidas corporais. Além disso o usuário poderá agendar refeições, consultar alimentos semelhantes, pois nem sempre o 37 paciente poderá se alimentar com aquilo que foi previamente determinado pelo nutricionista, e consultar alimentos que ele não deve consumir e porque. A integração se dará da forma apresentada na Figura 13: Figura 13. Integração entre os Sistemas O usuário irá escolher a opção do sistema em que deseja operar o sistema irá pegar as informações e por meio da internet, enviá-las ao web service, localizado no servidor, a partir daí o web service irá acessar as classes do sistema Programação alimentar utilizando RBC e retornar a resposta ao usuário. O celular utilizado para a fase de implantação e testes foi o Nokia 6230i semelhante ao encontrado na Figura 14, que é compatível com CLDC e MIDP 2.0, e possui as seguintes características: Visor de 208 x 208 pixels; Memória interna de 32MB; Memória no MMC de até 512MB; Compatibilidade com WAP 2.0; e Possui browser para acesso a internet conectado através do protocolo TCP/IP. 38 Figura 14. Celular Nokia 6230i 39 3 DESENVOLVIMENTO O protótipo do Sistema para controle de planos alimentares, resultante deste trabalho, é um software que permite o acompanhamento do paciente pelo nutricionista, fornecendo assim informações adicionais ao nutricionista, permitindo um maior acompanhamento do paciente. O sistema visa fornecer informações relevantes ao nutricionista, para que este seja capaz de tomar decisões e fazer um melhor acompanhamento do paciente. O Software é composto da seguinte forma: a) Um módulo que é executado em um dispositivo celular, utilizando J2ME, em que a comunicação com o banco de dados e a lógica do sistema é feita através de Web Services, utilizando o protocolo SOAP para transferência de dados e WAP para comunicação com a internet; b) Componente de negócio implementado em JAVA com Servidor AXIS, onde estarão os web services, responsáveis por toda a lógica do sistema. Para modelagem e especificação do sistema, foi utilizada a ferramenta Enterprise Architect, baseada em UML. Com o Enterprise Architect, foram criados os diagramas de seqüência, de componente, Caso de Uso, além do diagrama de entidade e relacionamento utilizado no banco de dados. A ferramenta possibilitou a criação e geração do código em JAVA e o mesmo sincronismo com os Diagramas. Neste capítulo serão apresentadas as principais características do sistema, bem como os requisitos, diagramas, implementação e testes e validações. 3.1 Análise de Requisitos Segundo Bezerra (2002), é na atividade de levantamento de requisitos que há uma compreensão do problema aplicado ao desenvolvimento do software, sendo assim, o principal objetivo do levantamento de requisitos é que os usuários e desenvolvedores tenham a mesma visão do problema e da solução proposta. Nesta seção, serão apresentados os requisitos funcionais, não funcionais e regras de negócio do sistema. 40 3.1.1 Requisitos Funcionais Com base nas entrevistas com a nutricionista e levando em consideração as informações que o paciente pode transmitir sem a presença do mesmo, os seguintes requisitos funcionais foram especificados: RF01. O sistema deve permitir o agendamento das refeições; RF02. O sistema deve permitir a consulta de substituições de alimentos; RF03. O sistema deve permitir o cadastro das medidas do paciente; RF04. O sistema deve enviar por e-mail o cadastro do paciente e senha de acesso ao sistema; RF05. O sistema deve permitir a consulta da prescrição alimentar do paciente; RF06. O sistema deve permitir o cadastro e a consulta de dúvidas do paciente referente ao tratamento; RF07. O sistema deve permitir o cadastro do Questionário de 24h; RF08. O sistema deve permitir o cadastro do Questionário geral de freqüência de uso dos alimentos; e 3.1.2 RF09. O sistema deve permitir a consulta dos alimentos evitados pelo paciente. Requisitos Não Funcionais Os requisitos não funcionais são restrições sobre como o sistema deve realizar seus requisitos funcionais. Segundo Bezerra (2002), os requisitos não funcionais declaram as características de qualidade que o sistema deve possuir. Os requisitos não funcionais do sistema são: RNF01: O sistema deve ser executado em um celular; RNF02: O sistema deve ser implementado utilizando a tecnologia J2ME; RNF03: O sistema deve ter uma interface de fácil utilização; RNF04: A troca entre telas não deve demorar mais que 30s; RNF05: O Banco de dados utilizado deve ser o MySql 4.0 ou superior; 41 RNF06: O web service para integração dos sistemas, deve ser desenvolvido em Java; RNF07: O sistema deve permitir acesso somente aos pacientes cadastrados no sistema; RNF08: O celular deve suportar o perfil MIDP 2.0; RNF09: O celular deve possuir memória para aplicações de no mínimo 16MB; e RNF10: A comunicação entre celular e rede estática, deve ser implementada sobre o protocolo WAP. 3.1.3 Regras de negócio RN01: O sistema deve armazenar as ultimas cinco dúvidas cadastradas pelo paciente; RN02: O sistema deve armazenar as ultimas cinco respostas a dúvidas recebidas pelo paciente; RN03: O sistema deve armazenar somente cinco agendamentos de refeições; e RN04: Caso o usuário tenha cinco agendamentos cadastrados, ao cadastrar mais um, o sistema deve excluir o primeiro agendamento cadastrado. 3.2 Modelagem do sistema Nesta seção, serão apresentados os diagramas de caso de uso, de classe de negócio e de implantação. 3.2.1 Diagrama de Classes De acordo com Bezerra (2002), o modelo de classes fornece uma visão dos casos de uso do sistema e é utilizado para representar um modelo apresentando as classes, tipos, conteúdos e suas relações. O diagrama de classes é a base para a construção dos diagramas de comunicação, seqüência e estados. A Figura 15 apresenta o diagrama de classes de domínio que compõem o sistema, e uma breve descrição das classes mais importantes do sistema. As principais classes do Sistema são: 42 Avaliação Nutricional: Cada avaliação nutricional está associada a um questionário 24hrs e a um Questionário de freqüência de alimentos; e Paciente: A classe paciente está associada ao agendamento, dúvida e alimentos evitados, permitindo assim as operações do paciente nestas classes. 43 cd 4.1 Diagrama de Classes de Domínio EA 6.1 Unregistered Trial Version EAAv6.1 Unregistered Trial Version EA 6.1 Questionario24H Unregistered Trial Version aliacaoNutricional MedidaIndice - DtAvaliacao: date 1 - HrAtualDormir: DateT ime HrDormirAnteontem: DateT ime HoraHabitual Levantar: DateT ime HrPrimei raIngestao: DateT ime DsIngestaoSeguinte: String DsPrimeiraIngestao: String DsAposIngestaoSeguinte: String QtIngestaoSeguinte: int DsLogalIngSeguinte: String HrLevantouOntem: DateTime DsEntrePrimeiraSegunda: String DsSegundaTerceira: DateT ime DsEntreTerceiraDormir: DateT ime EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version - DtMedida: date VlAl tura: float VlPeso: float VlCi ntura: float VlQuadril: float VlPregaBicipital: float VlPregaQuadri l: float VlPregaSubscapular: float + CadastraMedidaIndice() : void + ConsultaAval iacao() : void 1 EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 1..* EA 6.1 Unregistered Trial1 Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + CadastraQuestionario24H() : void EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version QuestionarioFrequencia 1..* EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version - QtFrLeite: int 1 1 - TipoLeite: stri ng QtFreqGordura: stri ng TipoGordura: String QtFreCarne: int QtFreqOvos: int QtFreqQuei jo: i nt DsTi poLanche: String QtFreqFei jao: int QtFreqCereai s: int QtFreqLanche: int QtFreqPao: i nt QtPao: i nt QtFreqAcucar: i nt QtFreqMassa: int QtFreqAgua: int EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 1 + CadastraQuestionario() : void Paciente Agenda EA 6.1 Unregistered Trial Version - EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Duv ida NomePessoa: String - DtAgenda: Date DtCadastro: Date Emiti rLembrete: String HrAgenda: DateTi me Observacao: String 0..* - IdEstado: String - DsPergunta: String T elefoneResidencial: String - T ipoPergunta: String EA 6.1 Unregistered Trial Version -- EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version T elefoneCelular: String - DescPergunta: String 1 - T elefoneComercial: String Email: String Login: String Senha: Stri ng 1 0..* - DescResposta: String IdPessoaResposta: int EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + + + Incl uirAgenda() : void AlterarAgenda() : void ExcluirAgenda() : void + + CadastraDuvida() : void ConsultaDuvida() : void BuscaPaciente() : void EA 6.1 Unregistered Trial Version + EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 1 EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 0..* Grupo AlimentoEv itado EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version - DsGrupo: int - DsRazao: String QtT empo: float EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + BuscaGrupo() : void + BuscaAlimentoEvi tado() : voi d EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 1 0..* EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version 1..* Produto EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version - DsProduto: String QtCalorias: float EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + BuscaProduto() : void 1 EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Figura 15. Diagrama de Classes do projeto 44 3.2.2 Diagrama de casos de uso Um caso de uso é a especificação de uma seqüência de interações entre um sistema e agentes externos (ator) e que descrevem a seqüência de eventos do ator que usa o sistema para completar um processo (BEZERRA, 2002). O diagrama de caso de uso deste projeto contém três casos de uso e um ator denominado Paciente, sendo que cada pacote oferece uma visão de partes da interação do sistema com o usuário. Os diagramas apresentados na Figura 16 e na Figura 17 representam as principais funcionalidades do sistema. ud Cadastro EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC02.01 Cadastrar o agendamento das refeições UC02.02 Cadastrar EA 6.1 Unregistered Trial Version EA 6.1 Unregisteredmedidas Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC02.05 Cadastrar EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Questionário geral de freqüência de uso dos alimentos EA 6.1 Unregistered Trial Version EA Paciente 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC02.04 Cadastrar UC02.03 Cadastrar EA 6.1 Unregistered Trial Version EA 6.1 Unregistereddúv Trial questionário 24Hrs idas Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Figura 16. Diagrama de Caso de uso do pacote Cadastro. 45 EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version ud Consultas EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC03.02 Consultar Repostas das Dúv idas EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC03.03 Consultar tabela de substituição de alimentos UC03.01 Consultar prescrição alimentar EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Paciente EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version UC03.04 Consultar Alimentos ev itados EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Figura 17. Diagrama de Caso de uso do pacote Consultas. 3.2.3 Diagrama de Implantação Segundo Bezerra (2002), o diagrama de implantação (deployment diagram) representa a topologia física do sistema, ou seja, este diagrama apresenta um mapeamento entre os componentes de software e hardware utilizado pelo sistema. Os componentes principais deste diagrama são: Nó: Representa uma peça física de equipamento na qual o sistema será implantado. Artefatos: Qualquer pedaço físico de informação usada ou produzida por um sistema. Especificação de implantação: Especifica um conjunto de propriedades que determina os parâmetros de execução de um artefato que está instalado em um nó. O diagrama apresentado na Figura 18 tem como objetivo facilitar a visualização e o entendimento do processo de integração entre os sistemas. 46 EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version dd 3 Diagramas de Implantação utilizando RBC EA 6.1 Unregistered Trial Version EA 6.1 Unregistered TrialProgramação VersionAlimentar EA 6.1 Unregistered Trial Version Cliente: WebServ ice Serv idor WEB Cliente:Celular EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Requisita operações <<SOAP>> Programação ice Unregistered Trial Version Alimentar EA 6.1 Unregistered Trial Version WebServ EA 6.1 EA 6.1 Unregistered Trial Version Aplicativ o J2ME utilizando RBC <<HT TP>> EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Banco de EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Dados EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Figura 18. Diagrama de implantação e de componente da aplicação 3.2.4 Diagrama de Seqüência O diagrama de seqüência é responsável por demonstrar e atribuir responsabilidade aos objetos e mostrar a colaboração e interação entre eles. Os diagramas de seqüência apresentam a interação entre os objetos enfatizando a seqüência temporal em que as mensagem serão trocadas. A Figura 19 apresenta o diagrama de seqüência para o caso de uso Cadastra Agendamento (UC 02.01) e demonstra os métodos utilizados para a implementação do sistema, bem como o que foi implementado no dispositivo móvel e no Web Services. A Figura 20, demonstra o diagrama de seqüência para o caso de uso cadastro do questionário 24 horas também demonstrando o que foi implementado no dispositivo móvel e o que foi implementado no Web Services. A Figura 21 representa o diagrama de seqüência para o caso de uso cadastro geral de freqüência de uso de alimentação (UC 02.05), responsável por registrar os alimentos e quantidades geralmente consumidas pelo paciente. A Figura 22 representa o diagrama de seqüência do caso de uso consulta prescrição alimentar, uma das partes mais importantes do sistema, pois por esta funcionalidade do sistema, o usuário ira basear a sua alimentação. Toda vez que o nutricionista disponibilizar uma prescrição alimentar (esta etapa é feita no Programação alimentar utilizando RBC), esta ficará disponível para consulta pelo paciente. 47 Os diagramas apresentados aqui, demonstram a integração do dispositivo móvel com o Web Service, apresentando a troca de mensagens (métodos) e o que é de responsabilidade de cada módulo do sistema. O sistema Programação Alimentar utilizando RBC (T-Diet), é responsável por alimentar os Web Services, fornecendo as funções que serão invocadas por tal. Figura 19. Diagrama de seqüência do Cadastro de Agendamento 48 Figura 20. Diagrama de seqüência do Cadastro do Questionário 24 horas 49 Figura 21. Diagrama de seqüência para o Cadastro geral de freqüência de uso de alimentos 50 Figura 22. Diagrama de seqüência para a consulta de prescrição alimentar 3.3 Modelagem do banco de dados O modelo Entidade Relacionamento (ER), representa graficamente a “arquitetura” da base de dados e representa as entidades e atributos que farão parte do projeto físico do bando de dados. O modelo ER que se encontra no Apêndice A e que será utilizado neste projeto, foi criado por Miotto (2006). Neste modelo estão representadas as entidades, baseados no diagrama de classes, onde as principais entidades são: Paciente, Avaliação Nutricional, Medida Índice e Prescrição alimentar. O modelo do banco de dados contento apenas as tabelas utilizadas neste projeto, estão apresentados na figura 19 . A figura 19, busca dar uma visão geral das entidades e relacionamentos utilizadas no projeto e que são utilizadas para armazenamento das informações do sistema proposto. 51 Figura 23. Diagrama ER do banco de dados. A tabela QUESTIONARIO_24, foi utilizada para armazenar informações alimentares do paciente, esta tabela é responsável por armazenar o que foi consumido pelo paciente nas últimas 24 horas. Esta tabela contém informações tais como: hora em que o paciente foi dormir no ultimo dia, horário em que o paciente costuma dormir, hora da primeira ingestão de alimentos do dia do paciente, dentre outras. A tabela ALIMENTO_EVITADO, é responsável por armazenar todos os alimentos que devem ser evitados pelo paciente, sejam eles por motivos de dieta, alergia. Esta tabela contém os produtos evitados e o motivo de o paciente ter que evitar este alimento. A tabela DUVIDA, é responsável por registrar as dúvidas dos pacientes. Estas dúvidas poderão ser cadastradas como públicas ou privadas, dependendo do interesse do paciente em que outras pessoas vejam ou não a resposta para esta dúvida. A tabela PRESCRICAO_ALIMENTAR é responsável por registrar o que foi prescrito pelo nutricionista ao paciente, está tabela tem relacionamento com a tabela PRESCRICAO_GRUPO, que é responsável por armazenar o grupo de pacientes aos quais serão feitas as prescrições do nutricionista. A tabela PRODUTO armazena as informações sobre os alimentos e armazena informações tais como quantidade de calorias, e unidade de medida do produto. Esta tabela se associa a tabela GRUPO_PRODUTO, e que serão utilizadas para consulta de substituição de alimentos. Estas são as principais tabelas do sistema, além dessas, existe a tabela PESSOA, responsável por armazenas as entidades do sistema, tabela MEDIDA_INDICE, que armazena informações métricas sobre o paciente, dentre outras conforme apresentado na Figura 19. 52 3.4 Implementação Esta etapa aborda a codificação do projeto em uma aplicação funcional. Para implementação, foram utilizadas as tecnologias e ferramentas propostas inicialmente. Além disso, foi necessária a utilização de um servidor para processar os Web Services o qual se chama AXIS. O AXIS é responsável por gerar o arquivo WSDL a partir de uma classe Java. O arquivo WSDL, é uma linguagem baseada em XML utilizada para descrever Web Services. O WSDL trata-se de um documento escrito em XML que além de descrever o serviço, especifica como acessá-lo e quais as operações ou métodos disponíveis. O desenvolvimento do sistema foi feito visando à utilização de dados reais os quais foram adquiridos junto a profissionais da saúde. Foi utilizado JAVA (J2ME) para criação da aplicação para o dispositivo móvel, e JAVA (J2EE) para criação dos Web Services. A aplicação foi desenvolvida utilizando os padrões da edição J2ME, com base nas especificações da configuração CLDC e perfil MIDP versão 2.0. A ferramenta utilizada para codificação foi o Eclipse, juntamente com o plugin Carbije.j, que é uma ferramenta gratuita para desenvolvimento de aplicações para a plataforma J2ME voltada à criação de aplicativos para celulares e smartphones Nokia, nas plataformas Series 40, S60 e Series 80. O banco de dados utilizado foi o mesmo proposto no projeto inicial, MYSQL. Para modelagem e especificação do sistema, foi utilizada a ferramenta Enterprise Architect, baseada em UML. Com o Enterprise Architect, foram criados os diagramas de seqüência, de componente, caso de uso e o modelo ER do banco de dados. A ferramenta possibilitou a criação e geração do código em JAVA e o mesmo sincronismo com os Diagramas. A integração com o sistema Programação alimentar utilizando RBC (T-Diet) ocorre de maneira invisível ao usuário, pois as classes de lógica de negócio contidas nos Web Services, fazem este papel, fornecendo chamadas a métodos contidos no T-Diet e trazendo o retorno desses métodos aos usuários. A implementação do sistema, foi baseada utilizando o conceito de três camadas, utilizando a técnica de MVC (Model, View, Controler). O MVC é um padrão de projeto, que separa a lógica da aplicação (Model), da interface do usuário (View) e do fluxo da aplicação (Controller). O Model é responsável por implementar a camada de persistência ou camada de dados. View é a camada de apresentação ao usuário, responsável por todas as telas que serão apresentadas ao usuário. Controler 53 é a camada responsável pelos eventos de gerenciamento do projeto, tais como cliques em botões, eventos e processos. Com esta técnica de programação, fica fácil portar o aplicativo para outros celulares e/ou dispositivos, tornando necessário apenas, em alguns casos, modificar a camada de visualização. Figura 24. Estrutura de pacotes da aplicação Na Figura 24, é possível observar como foram organizados os pacotes a fim de atender a especificação do MVC. O pacote src/view é responsável pela camada de visualização à lógica de negócio do sistema, está todo implementado nos WebServices. Além deste pacote, tornou-se necessário adicionar outros pacotes ao projeto, para que o mesmo possa ser utilizado no dispositivo móvel. Estes pacotes são: Axis.jar – Responsável pela conexão com o WebService; Log4j-1.2.8.jar – Responsável por gerar arquivo de logs com possíveis erros no sistema; O arquivo build.xml, é um arquivo de configuração do sistema, neste arquivo são encontrados os principais parâmetros do sistema, como endereço do servidor e nome da aplicação. A Figura 25 apresenta a estrutura do arquivo build.xml. Os WebServices também foram implementados em Java e depois convertidos para XML no padrão WSDL. 54 Para implementação das funcionalidades no celular, foi necessário utilizar o conceito de programação paralela (thread) a fim de evitar que o telefone celular fique bloqueado em alguma tela ou funcionalidade. Com utilização de thread é possível processar as informações, enquanto o telefone fique livre para processar outras informações. Está técnica foi utilizada, pois com a utilização do webservice, torna-se necessário aguardar a resposta do servidor para que o usuário possa prosseguir com a operação desejada. Figura 25. Arquivo build.xml A seguir estão relacionadas as principais telas do sistema, para demonstrar como o sistema se comporta e sua interface, afim de facilitar o entendimento do mesmo. A Figura 26 apresenta a tela inicial do sistema, onde o usuário irá informar o seu nome e senha e então poderá ter acesso ao sistema. Este nome e senha serão fornecidos pelo nutricionista, no momento que o mesmo for cadastrado no sistema “Programação alimentar utilizando RBC”. Caso o usuário não lembre sua senha, existe a opção “Esqueci minha senha”, que imediatamente disparará um e-mail ao usuário informando sua senha. 55 Figura 26. Login no sistema A seguir serão apresentadas ao usuário, as opções disponíveis no sistema, conforme indicado na Figura 27. Figura 27. Menu principal do sistema. A Figura 28 apresenta a tela de Agendamento, que permite ao usuário registrar agendamento futuro de refeições, possibilitando a emissão de um alerta ou não. O usuário informa data e hora em que deseja ser lembrado, e a alimentação que deve ser consumida. 56 Figura 28. Tela de cadastro de agendamento de refeições. A Figura 29 apresenta a tela de cadastro de medidas do paciente, nesta tela o usuário poderá informar medidas tais como peso, cintura, altura e quadril. Estas informações serão cruciais para a tomada de decisão do nutricionista, sobre o melhor plano alimentar para o paciente. Figura 29. Tela de cadastro de medidas dos pacientes. A Figura 30 apresenta o cadastro do questionário 24 horas. O questionário 24 horas é responsável por avaliar através de métodos de abordagem a ingestão dietética do paciente. Estas informações vão desde a hora em que o paciente costuma dormir e foi dormir na noite anterior, até questões relativas a alimentação. 57 Figura 30. Tela de cadastro do questionário 24hrs. Outro questionário importante para as avaliações do nutricionista, é o questionário de freqüência, que registra a quantidade e freqüência de determinados alimentos consumidos pelo paciente. Nele o usuário irá registrar a quantidade de cada alimento consumido. Esta tela está representada na Figura 31. As respostas devem ser registradas desta forma: 1/dia, 1/semana, 3/mês ou o mais exato possível. Pode ser usada a notação "ocasionalmente ”" ou "raramente". Figura 31. Tela do Questionário geral de freqüência de alimentos. A tela representada na Figura 32 apresenta a opção para consulta de alimentos semelhantes. Ocorreram momentos onde o paciente não poderá consumir o alimento prescrito pelo nutricionista, então ele terá a opção de consultar algum alimento semelhante que ele poderá consumir. O usuário irá informar o alimento, e o sistema irá sugerir os alimentos que são semelhantes nutritivamente. 58 Figura 32. Tela de pesquisa de alimentos semelhantes. 3.5 Teste e Validações Teste de Software é o processo de executar o software de uma maneira controlada com o objetivo de avaliar se o mesmo se comporta conforme o especificado. O objetivo dos testes, é o de encontrar o maior número de erros possíveis. A etapa de testes foi efetuada no momento do desenvolvimento do projeto, efetuando os testes unitários (testa-se individualmente as unidades do sistema, no caso as classes) e posteriormente efetuando os testes de integração (testou-se o sistema como um todo, visando identificar se implementações em alguma classe possa ter interferido em outra). Os principais testes efetuados no sistema foram: Testes de funcionalidade. Verificando se o que foi levantado nos requisitos realmente corresponde ao que foi implementado; Testes de interface. Visando identificar se as telas correspondem ao que foi prototipado e se ergonomicamente são fáceis de usar e Testes de desempenho: A principio encontraram-se problemas com a comunicação com os Web Services, pois demorava muito para obter uma resposta. Para isso foi utilizado o conceito de programação concorrente, a fim de aperfeiçoar o tempo de resposta ao usuário. As validações do sistema foram efetuadas por pessoas que pouco conheciam a lógica de negócio do aplicativo, ao todo foram utilizadas cinco pessoas no auxilio a validação do sistema, isso 59 causou certa dificuldade em saber se realmente o que foi feito estava de acordo com as regras estabelecidas. Para isso foram contatados profissionais de saúde para que pudessem facilitar e auxiliar no processo de validação do sistema. A principio as validações ocorreram quando o sistema ainda estava rodando no emulador, pois se tornou mais fácil alterar o sistema conforme fossem encontrados os problemas. As principais dificuldades encontradas foram em relação à ergonomia do sistema, pois o teclado numérico do celular dificulta muito o acesso do usuário, por isso procurou-se facilitar ao máximo as telas para que os usuários se sentissem familiarizados com o sistema. Outro problema encontrado foi em relação ao tempo de resposta do servidor, algumas vezes demorando minutos, isso foi corrigido com a utilização de threads que diminuíram o tempo de resposta de minutos para segundos. Todos os problemas encontrados na validação foram corrigidos conforme apresentado acima. 60 4 CONCLUSÕES O estudo e pesquisa realizados neste projeto possibilitaram a compreensão sobre a computação móvel, dispositivos móveis e nutrição. Na etapa de pesquisas, iniciou-se por uma pesquisa e análise no sistema “programação alimentar utilizando RBC” na qual se buscou identificar as principais características e quais delas poderiam ser abordadas neste projeto, ou seja, o que seria viável para um projeto de computação móvel na área de nutrição. Além disso, buscou-se uma orientação junto a profissionais de saúde tentando identificar os pontos relevantes ao desenvolvimento do projeto. Seguindo as pesquisas, partiu-se para análise da computação móvel e dos dispositivos móveis buscando identificar na tecnologia escolhida para dispositivos móveis quais características melhor se encaixava na proposta do trabalho, além disso, vale ressaltar que a escolha do dispositivo móvel adotado (Nokia 6230i) foi feito baseado nos requisitos mínimos do sistema, e por ser um dispositivo que mais se adequou a solução desenvolvida. Na parte de projeto, foi desenvolvida uma modelagem inicial do sistema, apresentando os diagramas considerados relevantes ao sistema, e que pudessem deixar claro o que o sistema está se propondo a fazer e como será feito. Durante a análise do sistema, foi encontrada muita dificuldade, pois mesmo que o celular tenha se propagado em todo mundo, ainda há uma certa relutância em utilizá-lo como uma ferramenta para auxílio as tarefas do dia-a-dia, isto devido à baixa taxa de transmissão de dados e principalmente a ergonomia. Entretanto, buscou-se desenvolver um projeto que visasse ser o mais fácil possível em relação à utilização e que pudesse ser efetivamente utilizada no auxilio a alimentação do paciente. A modelagem do sistema foi elaborada utilizando os padrões da UML e técnica de programação MVC, possibilitando assim uma maior portabilidade do sistema. Foram apresentados os diagramas relevantes ao projeto do software, bem como as telas e suas funcionalidades visando um maior entendimento do sistema. A implementação do software seguiu os diagramas descritos e os protótipos de telas desenvolvidos na etapa de projeto, buscou-se seguir a arquitetura de três camadas facilitando assim o desenvolvimento do sistema. 61 As validações efetuadas ajudaram a aperfeiçoar o sistema, bem como identificar problemas ergonômicos e erros de projeto, os testes contribuíram assim para que se pudesse alcançar uma maior excelência do sistema. Como sugestão para novos estudos e projetos, baseado nesta proposta, propõe-se desenvolver uma ferramenta que também seja disponível ao nutricionista, e que o mesmo possa fazer uso da computação móvel no trabalho do dia a dia, permitindo assim, ainda mais, uma interação com o paciente. Outra sugestão é portar o sistema para pocket-pc , PDA e Smartphones além de portar para o maior número de celulares disponíveis no mercado. 62 REFERÊNCIAS BIBLIOGRÁFICAS AGUSTINI, A.M.V.A. Novos papéis da tecnologia para internet: Wireless Aplication Protocol. 2000. Disponível em <http://www.ccuec.unicamp.br/revista/infotec/> . Acesso em: 21 set. 2006. ALÇADA, J.A.G. Estudo sobre a utilização de uma aplicação móvel num serviço hospitalar. 2004. 108 f. Trabalho de Conclusão de Curso (Licenciado(a) em Engenharia da Comunicação) – Universidade Fernando Pessoa, Porto, 2004. ALVARENGA, M. Bulimia Nervosa - Aspectos Atuais. Disponível em: <http://www.nutricaoempauta.com.br/lista_artigo.php?cod=99>. Acesso em: 15 set 2006. ANATEL, Agência Nacional de Telecomunicações. Dados Relevantes do Serviço Móvel Pessoal - SMP. 2006. Disponível em: <http://www.anatel.gov.br/Tools/frame.asp?link=/comunicacao_movel/smc/dados_relevantes_smc_ smp.pdf>. Acesso em: 09 Ago. 2006. BERNARDINO, H. S. J2ME (Java 2 Micro Edition). 2006. Disponível em: < http://www.ipixel.com.br/artigos_esp.aspx?cod_artigo=12&relacao=2 >. Acesso em: 10 nov. 2006. BEZERRA, E. Princípios de análise e projeto de sistemas com UML. Rio de Janeiro: Campus: Elsevier, 2002. BURÉGIO, Vanilson A. A. Desenvolvimento de aplicações para dispositivos móveis com .NET. 2003. 69 f. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Informática, Universidade Federal de Pernambuco, Recife. CAMARGO, K.G. Inteligência Artificial aplicada à nutrição na prescrição de planos alimentares. 1999. Trabalho de Conclusão de Curso (Mestrando em Engenharia de Produção)– Universidade Federal de Santa Catarina, Florianópolis, 1999. CANI, G. E. Protótipo de software para acesso a informações baseado na tecnologia WAP. 2000. 88 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, 2000. CERVATO, A. M. drª et al. Bases Teóricas para a Prática da Educação Nutricional. 2004. Disponível em < http://www.nutricaoempauta.com.br/lista_artigo.php?cod=45 >. Acesso em: 08 ago. 2006. CHAPPELL, D.; JEWELL, T. Java Web Services. 2002. O'Reilly, 2002. COCOLO, A.C. Soja, fonte do bom colesterol. 2006. Disponível em <http://www.unifesp.br/comunicacao/jpta/ed177/pesquisa1.htm>. Acesso em: 15 ago. 2006. CORREIA, M.I.T.D. Nutrição, esporte e saúde. Belo Horizonte: Health, 1996. CZEPIELEWSKI, M. A. Obesidade. Porto Alegre, 2001. Disponível em: <http://www.abcdasaude.com.br/artigo.php?303>. Acesso em: 04 jun. 2006. 63 DIAS, B. C. Análise da tecnologia WAP via estudo de caso em jogos distribuídos e interativos. 2003. 75 f. Trabalho de Conclusão de Curso (Bacharel em Ciências da Computação) – Departamento de Ciências da Computação, Universidade Federal de Lavras, Lavras, 2003. DORNAN, A. Wireless communications. 2001. O guia essencial de comunicação sem fio. São Paulo: Campus, 2001. DUARTE, R. L. Utilização da tecnologia J2ME para acesso ao serviço de correio eletrônico. 2005. 146 f. Trabalho de Conclusão de Curso (Bacharelado em Ciência da Computação) – Universidade do Vale do Itajaí, São José, 2005. DUTRA-DE-OLIVEIRA, J. E; MARCHINI, J. S. 1998. Ciências nutricionais. São Paulo: Sarvier, 1998. FIGUEIREDO, C. M. S.; NAKAMURA, E. Computação móvel: novas oportunidades e desafios. 2003. T&C Amazônia, Ano 1, no. 2, jun. 2003. FIGUEIREDO, T.H.P. MultiMad: Uma ferramenta multimodelo de desenvolvimento de aplicações para dispositivos móveis. 2005. 90 f. Dissertação (Mestrado em Ciências da Computação) - Conselho Nacional de Desenvolvimento Científico e Tecnológico, Universidade Federal de Minas Gerais, 2005. FRANK, Gail C. Guidelines for selecting a dietary analysis system. Journal of American Dietetic Association. USA, n. 1, v. 86, pp. 72-75, January, 1986. GARROZI, C. Uso da tecnologia móvel no auxílio à reeducação alimentar. 2003. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Departamento de Ciências da Computação, Universidade de Lavras, Lavras, 2003. GONÇALVES, P.A.da S. Bluetooth. 2000. Disponível em: <http://www.gta.ufrj.br/~apaulo/seminarios/adhoc-e-bluetooth/>. Acesso em: 04 nov. 2006. HADDAD, R. Entendendo aplicações móveis no .NET. 2005. Diponível em: <http://www.microsoft.com/brasil/msdn/tecnologias/movel/mobilidade_entendendo.aspx>. Acesso em: 18 ago. 2006. HANDANGO. Calorie Burner - Diet and Exercise Planner. 2006. Disponível em: < http://www.handango.com/PlatformProductDetail.jsp?siteId=1&jid=AEB3F8D4E4B9C817AEC55 B7347D3A7A3&platformId=2&N=96806%2095824&productId=140133&R=140133>. Acesso em: 12 set. 2006. HANDANGO. MyPersonalDiet. 2006b. Disponível em: < http://www.handango.com/PlatformProductDetail.jsp?siteId=1&jid=AEB3F8D4E4B9C817AEC55 B7347D3A7A3&platformId=2&N=96806%204294926756&productId=160537&R=160537>. Acesso em: 12 set. 2006. KRAUSE, M. V; MAHAN, L. K.; ESCOTT-STUMP, S. Alimentos, nutricao & dietoterapia. 10. ed. Sao Paulo: Roca, 2002. 64 LARCHER, M. CNPq financia inovações em informação médica. 2003. Disponível em: < http://memoria.cnpq.br/noticias/150503.htm>. Acesso em: 01 out. 2006. LEE, G.; TSAI, C.; RAAB, F.; GRISWOLD, W.G.; PATRICK, K.. PmEB: a mobile phone application for monitoring caloric balance. 2006. Disponível em: <http://portal.acm.org/citation.cfm?id=1125451.1125645#references>. Acesso em: 21 out. 2006. ISAN, Infraestrutura de Suporte às Aplicações Móveis Distribuídas. Definição de computação móvel. Disponível em <http://www.inf.ufrgs.br/~isam/paginaDefComputacaoMovel.html>. Acesso em 05 ago. 2004. LIMA, A.L.S. Identificação e exemplificação de aspectos da computação distribuída no desenvolvimento de aplicações para celulares usando J2ME e Bluetooth. 2005. Trabalho de Conclusão de Curso (Graduação em Sistemas Distribuídos). Universidade Federal de Pernambuco, Recife, 2005. MATEUS, G. R.; LOUREIRO, A. A.F. Introdução à computação móvel. Rio de Janeiro: 11a Escola de Computação, 1998. MICROSOFT. Microsoft Mobile Internet Toolkit. 2006. Redmond: Microsoft, 2006. Disponível em: < http://www.asp.net/mobile/intro.aspx?tabindex=6 >. Acesso em: 26 set. 2006. MILLER, S. K. Facing the challenge of wireless security. 2001. IEEE Computer, pages 16–18, July 2001. MIOTTO, M. Programação alimentar utilizando RBC. 2006. Trabalho de Conclusão de Curso (Graduação em Ciência da Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí, Itajaí, 2006. MITCHELL, H. S.; ANDERSON, L. Nutrição. Rio de Janeiro, 1988. MUCHOW, J. W. Core J2ME: tecnologia e MIDP. 2004. São Paulo: Makron Books, 2004. NOBREGA, F. J. de. Distúrbios da nutrição. Rio de Janeiro: Revinter, 1998. NOKIA. Tecnologias: A solução SyncML. 2006. Disponivel em < http://www.nokia.com.br/nokia/0,8764,43752,00.html>. Acesso em: 15 set. 2006. NOKIA. Tecnologias: A solução SyncML. 2006b. Disponivel em < http://www.nokia.com.br/nokia/0,8764,43754,00.html>. Acesso em: 15 set. 2006. OLIVA, C.A.G.; FAGUNDES, U. Aspectos clínicos e nutricionais dos transtornos alimentares. 2002. Disponível em <http://www.unifesp.br/dpsiq/polbr/ppm/atu1_06.htm>. Acesso em: 18 Set. 2006. OLIVEIRA, E. Nutrição - Ponto de Vista. 2002. Disponível em <http://www.saudeemmovimento.com.br/conteudos/conteudo_exibe1.asp?cod_noticia=126>. Acesso em: 07 ago. 2006. PESSA, R. P. Seleção de uma alimentação adequada. In : OLIVEIRA J. E. Dutra de; , MARCHINI, J.S. Ciências nutricionais. São Paulo: Sarvier, 1998. 65 PEKUS. Wireless. 2002. Disponível em: <http://www.pekus.com.br/wireless.htm> Acesso em: 15 set. de 2006. QUALCOMM. A Solução BREW. 2006. Disponível em: < http://brew.qualcomm.com/brew/pt/developer/resources/gs/brew_solution.html >. Acesso em: 18 Set. 2006. SUN, Introduction to Mobility Java Technology. 2006. Disponível em: <http://developers.sun.com/techtopics/mobility/getstart/>. Acesso em: 09 de Agosto de 2006. SUPERWABA. Plataforma: resumo. Rio de Janeiro: SuperWaba, 2006. Disponível em: <http://www.superwaba.com.br/pt/overview.asp>. Acesso em: 15 Set. 2006. TANEMBAUM, A.S. Rede de computadores. 4.ed. Tradutor: Vandenberg D. de Souza. Rio de Janeiro: Campus, 2003. TELECO. Telefonia celular. 2006. Disponível em <http://www.teleco.com.br/ncel.asp> . Acesso em: 15 Set. 2006. 66 GLOSSÁRIO Anamnese História colhida pelo médico sobre saúde do paciente, bem como hábitos do paciente. Antropometricos Os dados antropometricos são os dados das medidas físicas do corpo humano. A origem da antropometria remonta-se à antigüidade pois Egípcios e Gregos já observavam e estudavam a relação das diversas partes do corpo Anorexia Nervosa Distúrbio psicológico que leva à diminuição da ingestão de alimentos. Bulimia Distúrbio emocional que leva a surtos de abusos alimentares, seguidos por sentimento de culpa e conseqüentes indução de vômitos. Tomcat Servidor de aplicações Java para WEB. 67 APÊNDICES 68 A MODELAGEM DO SISTEMA Esta seção apresenta a modelagem completa do sistema produzida pela ferramenta case Enterprise Architect bem como as telas do sistema. A.1 CASOS DE USO A modelagem do sistema proposto é composta por 3 pacotes: Controle de Acesso, Consulta e Cadastros. A figura 20 ilustra os pacotes e a interação deles. pd 2.1 Diagrama de Pacotes EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Cadastro Controle de Acesso + Paciente + UC02.01 Cadastrar o agendamento das refei ções EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + Paciente + UC02.02 Cadastrar medidas + UC01. Login no Si stema + UC02.03 Cadastrar dúvidas EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + UC02.04 Cadastrar questionário 24Hrs + UC02.05 Cadastrar Questionário geral de freqüência de uso dos alimentos (from 2.2 Diagrama de casos de uso) EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version (from 2.2 Diagrama de casos de uso) EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version Consultas + Paciente EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + UC03.01 Consultar prescrição alimentar + UC03.02 Consultar Repostas das Dúvidas + UC03.03 Consultar tabela de substituição de al imentos EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version + UC03.04 Consultar Alimentos evitados (from 2.2 Diagrama casos de uso) EA 6.1 Unregistered Trial Version EA 6.1 Unregistered Trial Version EA 6.1 Unregistered TrialdeVersion Figura 33. Pacotes do sistema A.1.1 Pacote 01: Controle de Acesso Este caso de uso trata a autenticação dos usuários no sistema. O Ator deste caso de uso é o Paciente que faz o login no sistema. A.1.1.1 UC01.01 Login no Sistema Pré-Condição: O Paciente acessa a tela de login do Sistema. Pós-Condição: O Paciente está autenticado no sistema. Cenários do caso de uso: Fluxo principal: Efetua login no sistema. 1. O Sistema apresenta uma tela solicitando o login e a senha do Paciente (TEL001). 2. O Paciente informa Login e Senha. 3. O Paciente confirma os dados. 4. O Sistema valida o Login e Senha fornecida. 5. O Sistema registra a data e hora que o paciente se conectou no sistema. 6. O Sistema apresenta a tela principal ao paciente (TEL003). Fluxo Alternativo: Enviar lembrete de senha. 1. O Sistema apresenta uma tela solicitando o login e a senha do Paciente (TEL001). 2. O paciente seleciona a opção “Esqueci minha senha.” (TEL001). 3. O sistema envia para o e-mail do paciente a senha com o seu respectivo login. 4. A mensagem de confirmação de envio de login e senha é enviada ao paciente (TEL002). Fluxo de Exceção 1: Login ou Senha em branco. Se no passo 3 do fluxo principal o paciente não informou o login, senha ou a opção “Esqueci minha senha”, a seguinte mensagem é apresentada: “Favor informar login ou senha.” (TEL002) e retorna ao passo 1. Fluxo de Exceção 2: Login e Senha inválidos. Se no passo 4 do fluxo principal o login e a senha não forem validadas pelo sistema, a seguinte mensagem é apresentada: “Login ou Senha inválida.” (TEL002) e retorna ao passo 1. Relações: RNF07: O sistema deve permitir acesso somente aos pacientes cadastrados no sistema;. RF04: O sistema deve enviar por e-mail o cadastro do paciente e senha de acesso ao sistema 70 A.1.2 Pacote 02: Consultas Neste pacote serão apresentados os casos de uso relacionados aos cadastros dos dados do paciente, dúvidas e agendamento de refeições. A.1.2.1 UC02.01 Cadastrar o agendamento das refeições Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: Um novo agendamento foi cadastrado no sistema. Cenários do caso de uso: Fluxo principal: Cadastrar o agendamento das refeições. 1. O Sistema apresenta a tela de cadastro de agendamento de refeições (TEL004). 2. O paciente preenche as informações necessárias. 3. O paciente salva os dados do agendamento. 4. O sistema grava as informações de agendamento de refeições. 5. O sistema apresenta a mensagem ao paciente “Cadastrado com sucesso.” (TEL002). Fluxo de Exceção: Data e hora não informadas. Se no passo 3, caso os campos não tenham sido preenchidos ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Relações: RF01: O sistema deve permitir o agendamento das refeições. A.1.2.2 UC02.02 Cadastrar medidas do paciente Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: As medidas do paciente foram cadastradas no sistema. Cenários do caso de uso: 71 1. O Sistema apresenta a tela de cadastro de medidas do paciente (TEL005). 2. O paciente preenche as informações necessárias. 3. O paciente salva os dados. 4. O sistema grava as informações das medidas do paciente. 5. O sistema apresenta a mensagem ao paciente “Cadastrado com sucesso.” (TEL002). Fluxo de Exceção: Inconsistência na validação dos dados. Se no passo 3, caso os campos não tenham sido preenchidos ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Relações: RF03: O sistema deve permitir o cadastro das medidas do paciente. A.1.2.3 UC02.04 Cadastrar dúvidas Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: Uma nova dúvida foi cadastrada no sistema. Cenários do caso de uso: Fluxo principal: Cadastrar dúvidas. 1. O Sistema apresenta a tela de cadastro de dúvidas (TEL006). 2. O paciente preenche as informações necessárias. 3. O paciente salva os dados da dúvida. 4. O sistema grava as informações da dúvida do paciente. 5. O sistema apresenta a mensagem ao paciente “Cadastrado com sucesso.” (TEL002). Fluxo de Exceção: Campo “dúvida” não informado. 72 Se no passo 3, caso os campos não tenham sido preenchidos ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Relações: RF06: O sistema deve permitir o cadastro e consulta de dúvidas do paciente referente ao tratamento. A.1.2.4 UC02.05 Cadastrar questionário 24Hrs Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: O questionário 24hrs foi cadastrado no sistema. Cenários do caso de uso: Fluxo principal: Cadastrar questionário 24Hrs. 1. O Sistema apresenta a tela do cadastro 24hrs (TEL007). 2. O paciente preenche as informações necessárias. 3. O paciente salva os dados do cadastro 24hrs. 4. O sistema grava as informações do cadastro 24hrs. 5. O sistema apresenta a mensagem ao paciente “Cadastrado com sucesso.” (TEL002). Fluxo de Exceção: Inconsistência na validação dos dados. Se no passo 3, caso os campos não tenham sido preenchidos ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Relações: RF07: O sistema deve permitir o cadastro do Questionário de 24h. A.1.2.5 UC02.05 Cadastrar questionário geral de freqüência de uso dos alimentos Pré-Condição: O Paciente precisa estar logado no sistema. 73 Pós-Condição: Os dados do questionário de freqüência de uso dos alimentos foi cadastrado no sistema. Cenários do caso de uso: 1. O Sistema apresenta a tela do cadastro do questionário geral de freqüência de alimentos (TEL008). 2. O paciente preenche as informações necessárias. 3. O paciente salva os dados do questionário. 4. O sistema grava as informações do cadastro do questionário. 5. O sistema apresenta a mensagem ao paciente “Cadastrado com sucesso.” (TEL002). Fluxo de Exceção: Inconsistência na validação dos dados. Se no passo 3, caso os campos não tenham sido preenchidos ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Relações: RF08: O sistema deve permitir o cadastro do Questionário geral de freqüência de uso dos alimentos. A.1.3 Pacote 03: Consultas Neste pacote serão apresentados os casos de uso relacionado ás consultas dos dados do paciente, dúvidas, planos alimentares e agendamento de refeições. A.1.3.1 UC03.01 Consultar prescrição alimentar do paciente Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: A consulta da prescrição alimentar foi efetuada com sucesso. Cenários do caso de uso: Fluxo principal: Consultar a programação alimentar 74 1. O Sistema apresenta a tela da prescrição alimentar do paciente contendo a ultima prescrição cadastrada pelo nutricionista (TEL009). Fluxo de Exceção: Nenhuma prescrição apresentada. Se no passo 1, caso a prescrição alimentar do paciente ainda não tenha sido informada pelo nutricionista, apresenta mensagem "Nenhuma prescrição alimentar cadastrada." (TEL002) e retorna ao passo 1. Relações: RF05: O sistema deve permitir a consulta da prescrição alimentar do paciente. A.1.3.2 UC03.02 Consultar Repostas das Dúvidas Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: A consulta da resposta à dúvida do paciente foi efetuada com sucesso. Cenários do caso de uso: Fluxo principal: Cadastrar dúvidas. 2. O Sistema apresenta a tela de Consulta de dúvidas (TEL010). 3. O paciente seleciona uma das 5 últimas dúvidas que ele cadastrou. 4. O sistema apresenta os dados da resposta (TEL011). 5. O paciente visualiza as informações. Fluxo de Exceção: Resposta à dúvida não encontrada. Se no passo 2, caso a dúvida do paciente ainda não tenha sido respondida, apresenta mensagem "A dúvida ainda não foi respondida." (TEL002) e retorna ao passo 1. Relações: RF06: O sistema deve permitir o cadastro e consulta de dúvidas do paciente referente ao tratamento. 75 A.1.3.3 UC03.03 Consultar tabela de substituição de alimentos Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: O usuário visualiza o alimento substituto. Cenários do caso de uso: Fluxo principal: Consultar tabela de substituição de alimentos. 1. O Sistema apresenta a tela de pesquisa de alimentos (TEL012). 2. O paciente preenche as informações necessárias. 3. O paciente confirma a operação. 4. O sistema apresenta os dados encontrados (TEL013). 5. O paciente visualiza as informações. Fluxo de Exceção 1: Campo “Alimento” não informado. Se no passo 2, caso o campo “Alimento” não tenha sido preenchido ou o formato não é válido, apresenta mensagem "Verifique os seguintes campos: <<listar campos>>." (TEL002) e retorna ao passo 1. Fluxo de Exceção 2: Nenhum resultado encontrado. Se no passo 3, caso não tenha encontrado nenhum alimento semelhante, apresenta mensagem "Nenhum alimento semelhante encontrado." (TEL002) e retorna ao passo 1. Relações: RF02: O sistema deve permitir a consulta de substituições de alimentos. A.1.3.4 UC03.04 Consultar Alimentos evitados Pré-Condição: O Paciente precisa estar logado no sistema. Pós-Condição: A consulta do alimento evitado pelo paciente foi efetuada com sucesso. Cenários do caso de uso: 76 Fluxo principal: Consultar alimentos evitados. 1. O Sistema apresenta a tela de alimentos evitados (TEL014). 2. O seleciona o alimento que ele deseja visualizar. 3. O sistema apresenta os dados do alimento evitado (TEL015). 4. O paciente visualiza as informações. Fluxo de Exceção: Nenhum alimento a ser evitado. Se no passo 1, caso não haja alimentos a ser evitado pelo paciente, apresenta mensagem "Nenhum alimento a ser evitado." (TEL002) e retorna para a tela principal do sistema (TEL003). Relações: RF09: O sistema deve permitir a consulta dos alimentos evitados. 77 A.2 PROTÓTIPOS DAS TELAS DO SISTEMA Esta seção indica as telas criadas para o sistema, as telas referem-se aos elementos TEL citados na seção anterior. A.2.1 TEL001: Login no sistema Figura 34. Login no sistema A.2.2 TEL002: Mensagens do sistema Figura 35. Mensagens do sistema A.2.3 TEL003: Menu principal do sistema Figura 36. Menu principal do sistema. A.2.4 TEL004: Tela de cadastro de agendamento de refeições Figura 37. Tela de cadastro de agendamento de refeições. 79 A.2.5 TEL005: Tela de cadastro de medidas dos pacientes Figura 38. Tela de cadastro de medidas dos pacientes. A.2.6 TEL006: Tela de cadastro de dúvidas Figura 39. Tela de cadastro de dúvidas. 80 A.2.7 TEL007: Tela de cadastro do questionário 24hrs Figura 40. Tela de cadastro do questionário 24hrs. A.2.8 TEL008: Tela do Questionário geral de freqüência de alimentos As respostas devem ser registradas desta forma: 1/dia, 1/semana, 3/mês ou o mais exato possível. pode ser usada a notação "ocasionalmente" ou "raramente". Figura 41. Tela do Questionário geral de freqüência de alimentos. 81 A.2.9 TEL009: Tela de consulta de prescrição alimentar Figura 42. Tela de consulta de prescrição alimentar. A.2.10 TEL010: Tela de consulta de dúvidas Figura 43. Tela de consulta de dúvidas. 82 A.2.11 TEL011: Tela de resposta ás dúvidas Figura 44. Tela de resposta às dúvidas. A.2.12 TEL012: Tela de pesquisa de alimentos semelhantes Figura 45. Tela de pesquisa de alimentos semelhantes. 83 A.2.13 TEL013: Tela de alimentos semelhantes encontrados Figura 46. Menu principal do sistema. A.2.14 TEL014: Tela de alimentos evitados Figura 47. Tela de alimentos evitados. 84 A.2.15 TEL015: Tela de observação sobre o alimento evitado Figura 48. Tela de observação sobre o alimento evitado. 85 A.3 MODELO DO BANCO DE DADOS A.3.1 Diagrama ER do banco de dados Figura 49. Diagrama ER do banco de dados. 86