Documentação do Sistema Mobile Fitness 1.0 Autores: Bernardo Giori Estevão Mognatto Mirella Antunes Pedro Gazolla Viçosa – MG Fevereiro – 2007 Índice 1. Introdução e Motivação .................................................................................................. 3 2. Documentação do sistema .............................................................................................. 4 2.1 Requisitos Funcionais ............................................................................................... 4 2.2 Decisões de Projeto................................................................................................... 6 2.3 Diagramas ................................................................................................................. 8 2.3.1 Diagramas de classes ......................................................................................... 8 2.3.2 Modelo Conceitual........................................................................................... 10 2.3.3 Diagrama de Interface...................................................................................... 11 3. Descrição das tecnologias utilizadas............................................................................. 13 3.1 Ferramentas de desenvolvimento............................................................................ 13 3.1.1 Celulares .......................................................................................................... 13 3.1.2 NetBeans .......................................................................................................... 13 3.1.3 Tomcat ............................................................................................................. 14 3.1.4 J2ME Wireless Toolkit .................................................................................... 14 3.1.5 MySQL ............................................................................................................ 14 3.2 Tecnologias utilizadas............................................................................................. 15 3.2.1 J2ME................................................................................................................ 15 3.2.2 J2SE ................................................................................................................. 15 3.2.3 Webservice....................................................................................................... 16 3.2.4 WAP................................................................................................................. 17 3.3 Protocolos de Comunicação.................................................................................... 17 3.3.1 Wi-Fi ................................................................................................................ 17 4. Descrição do funcionamento do Sistema...................................................................... 18 4.1 Tela de Login .......................................................................................................... 18 4.2 Tela Principal .......................................................................................................... 19 4.3 Tela de Consulta a Atletas ...................................................................................... 20 4.4 Tela de Seleção de Atleta........................................................................................ 20 4.5 Tela de Consulta a Fichas de Exercícios ................................................................ 21 4.6 Tela de Consulta de Exercícios............................................................................... 22 4.7 Tela de Cadastro de Exercícios............................................................................... 23 4.8 Tela de Consulta a Fichas de Medidas.................................................................... 24 4.9 Tela de Cadastro de Medidas.................................................................................. 24 5. Dificuldades encontradas .............................................................................................. 25 6. Bibliografia ................................................................................................................... 26 1. Introdução e Motivação Atualmente, há uma grande procura pela prática de atividades físicas. Porém, a falta de orientação especializada e adequada aos objetivos e limitações de cada pessoa acaba por conduzi-las à prática de exercícios sem nenhum tipo de avaliação, pondo em risco a sua saúde, principalmente, àqueles com mais de 35 anos que apresentam fatores de risco cardiovasculares. Isso faz da avaliação física um componente indispensável para a elaboração de um correto e eficiente programa de exercícios. Uma avaliação bem feita é aquela em que se utiliza critérios e protocolos bem selecionados, fornecendo dados quantitativos e qualitativos que indique, através de análises e comparações, a real situação em que se encontra o avaliado. Além disso, as avaliações devem ser periódicas e sucessivas, permitindo uma comparação para que possamos acompanhar o progresso do avaliado com precisão, sabendo se houve evolução positiva ou negativa. Dessa forma, é possível reciclar o programa de treinamento e estabelecer novas metas. Na maioria das vezes esta tarefa é realizada anotando-se os dados em papel para posteriormente serem passados para algum sistema ou banco de dados. Porém, essa técnica pode causar uma base de dados errada, uma vez que a pessoa que passa os dados para o meio digital pode não a ser a mesma que anotou estes dados. Além disso, realizando-se esta atividade desta forma são necessárias duas etapas, o que atrasa o processo. Devido a essas deficiências, nossa idéia foi desenvolver um aplicativo para celular para facilitar o trabalho de instrutores em academias de ginásticas. Neste aplicativo, os instrutores poderiam fazer a coleta dos dados e ao mesmo tempo passá-los para um banco de dados evitando assim os erros e a segunda parte do processo anterior. Além disso, nosso aplicativo também auxiliria no processo de confecção da ficha de exercícios dos alunos. Essa atividade nas academias é feita pelo instrtutor que determina os exercícios a serem realizados por cada aluno, baseando-se em sua avaliação física, anotando os exercícios em uma ficha de papel. Muitas vezes essas fichas se perdem e é necessário fazer outra ficha. Porém, como não se tem nenhum registro da ficha anterior, isso acaba prejudicando o aluno além de ter um custo maior para as academias. Com o aplicativo desenvolvido os instrutores economizariam tempo, evitariam erros, tudo isso proporcionado pela mobilidade do aplicativo. Nos próximos tópicos serão apresentadas as características do sistema, como plataformas, tecnologias, requisitos, diagramas, interfaces, etc. 2. Documentação do sistema 2.1 Requisitos Funcionais Figura 1 – Diagrama de casos de usos Visualizar Atletas O sistema deverá possuir uma funcionalidade que possa permitir ao instrutor visualizar todos os atletas da academia. Criar ficha de exercícios O sistema deve possibiltar que o instrutor cadastre uma ficha de exercícios para um determinado atleta. Visualizar fichas de exercícios O sistema deverá ter a função de visualizar todas as fichas de exercícios cadastradas para um determinado atleta. Remover fichas de exercícios O sistema deverá ser capaz de remover qualquer ficha de exercícios. Visualizar exercicios de uma ficha de exercicios O sistema deve ter a função de visualização dos exercícios cadastrados para uma determinada ficha de exercícios. Cadastrar exercicios para uma ficha de exercícios O sistema deverá possibiltar o cadastro dos exercícios que farão parte de uma ficha de exercícios de um determinado atleta. Remover exercicios de uma ficha de exercícios O sistema deve ter a capacidade para remoção de qualquer exercício de uma fich ade exercícios. Visualizar fichas de medidas de um atleta O sistema deverá possuir a funcionalidade de visualizar as fichas de medidas de um determinado atleta. Criar uma ficha de medidas para um atleta Poderão ser criadas fichas de medidas para um determinado atleta. Remover uma ficha de medidas Qualquer ficha de medidas poderá ser removida do sistema. Cadastrar medidas em uma ficha de medidas As medidas dos atletas poderão ser cadastradas em uma ficha de medidas. Visualizar medidas de uma ficha de medidas O sistema deverá possibilitar a visualização das medidas dos atletas cadastradas em uma determinada ficha de medidas. 2.2 Decisões de Projeto A principal decisão tomada para o desenvolvimento do sistema foi a arquitetura em multi-camadas. Este tipo de arquitetura possibilita que a camada de apresentação do software seja independente da camada de controle de regras de negócios e que essa seja independente da camada de armazenamento dos dados. Dessa forma, é possível construir um software inteiro sem se preocupar se o armazenamento de dados será em arquivos simples, xml ou bancos de dados relacionais. Além disso, softwares construídos dessa forma tornam-se mais manuteníveis pois impedem que uma mudança em uma parte do software seja propagada para todo ele. Esta decisão foi importante pois possibilitou que o sistema fosse feito em paralelo pelos membros do grupo o que agilizou o desenvolvimento. Por todas essas vantagens o sistema foi dividido em 7 camadas, como pode ser visto na figura abaixo. Figura 2 – Arquitetura do sistema Camada de Interface (Telas J2ME)– é a camada responsável por toda a parte visual do sistema. È onde são desenvolvidas as telas e os relacionamentos entre elas. Camada Delegates (Service Locator)– é a camada responsável por fazer a comunicação entre a interface e o webservice. É nessa camada que acontece a chamada aos métodos disponibilizados pelo webservice. Camada Webservice – é o próprio webservice construído para disponibilizar as funcionalidades do sistema através de um servidor de aplicações. Camada Controller – é a camada responsável por fazer uma fachada entre o webservice e a camada de negócio. O que esta camada faz é receber uma requisição do webservice e passar essa requisição a camada de negócio, devolvendo para o webservice a resposta obida. Camada Business – é a camada reponsável por fazer a persistência dos dados. Esta camada lida diretamente com o banco de dados. Camada DTO – essa camada foi construída para encapsular os dados e tornar mais fácil a transferência destes entre as diversas camadas. Basicamente, a única camada que lida diretamente com o objeto de negócio é a Business, todas as outras acessam estes objetos através de seus DTO’s que significa Data Transfering Object. Nessa camada também acontece a serialização e desserialização dos dados, uma vez que o pacote J2ME não possui a classe Serializable do java que faz este papel. Camada de Banco de Dados – é o próprio banco de dados utilizado para o armazeamento dos dados. Além disso, o sistema foi desenvolvido utilizando padrões de codificação, que torna o código mais legível e manutenível. Foram utilizados padrões de projeto como o Abstract Factory, que possibilita a criação de uma família de objetos de forma abstrata. Também foi decidido tornar o sistema o mais robusto possível. Dessa forma, todas as falhas são tratadas incluindo inconsistências geradas por operações realizadas em paralelo por diversos instrutor sobre uma mesma entidade. Quando algum erro acontece uma mensagem é exibida para o instrutor. 2.3 Diagramas 2.3.1 Diagramas de classes Figura 3 - Diagrama de classes da camada Delegates Figura 4 – Diagrama de classes da camada Controller Figura 5 – Diagrama de classes da camada DTO Figura 6 – Diagrama de classes da camada Business 2.3.2 Modelo Conceitual Figura 7 – Modelo Conceitual do Banco de Dados 2.3.3 Diagrama de Interface Este diagrama é produzido pelo próprio NetBeans e mostra o um diagram de estados entra as telas que compõem a interface do sistema. Mais adiante essas telas poderão ser visualizadas. Figura 8 – Diagrama de Interface WSErroForm – é a tela onde aparace uma mensagem quando não é possível encontrar o webservice ou acontece algum erro na comunicação com esse. LoginForm - é a tela de login do sistema. LoginErroForm - é a tela onde aparece mensagem de erro quando usuário e/ou senha são inválidos. MenuOpcoesForm – é a tela principal do sistema que mostra as opções de consulta a atletas , fichas de exercícios ou fichas de medidas. Se selecionada alguma das duas últimas opções, esta tela leva a tela SelecionarAtletasForm. AtletasForm - é a tela onde os atletas do sistema podem ser listados. SelecionarAtletasForm - é a tela onde deve-se selecionar o atleta desejado para seguir para a consulta de fichas de exercícios ou de medidas. FichasMedidasForm - é a tela onde podem ser visualizadas as fichas de medidas de um determinado atleta. Se a opção Abrir é direcionado para a tela AbrirFichaMedidaForm. FichasMedidasErroForm – é a tela em que aparece mensagem de erro quando algum erro ocorre ao abrir, remover ou adicionar fichas de medidas. AbrirFichaMedidaForm – tela onde são mostradas as medidas cadastradas para uma determinada ficha de medidas. CadastroMedidasForm – tela onde medidas são cadastradas para uma nova ficha de medidas. CadastroMedidasErroForm – tela de advertência por algum erro no cadastro de medidas, como por exemplo a inclusão de uma caracter num campo numérico. FichasExercíciosForm – é a tela onde podem ser visualizadas as fichas de exercícios de um determinado atleta. Se a opção Abrir é direcionado para a tela AbrirFichaExercícioForm. FichasExercíciosErroForm - é a tela em que aparece mensagem de erro quando algum erro ocorre ao abrir, remover ou adicionar fichas de exercícios. AbrirFichaExercícioForm – tela onde são listados os exercícios cadastrados para uma ficha de exercícios. Se a opção Adicionar for selecionada a tela AdicionarExercicioForm é aberta. AdicionarExercícioForm – tela onde pode ser adicionado um novo exercício à ficha. AdicionarExercícioErroForm – tela de alerta quando algum erro acontece ao adicionar um exercício, por exemplo se o instrutor esqueceu de editar algum campo necessário. 3. Descrição das tecnologias utilizadas 3.1 Ferramentas de desenvolvimento 3.1.1 Celulares Os celulares são divididos segundo o protocolo de comunicação utilizado. A primeira geração de celulares (1G) possuía comunicação analógica e não permitia a transmissão de dados digitais. É uma tecnologia em desuso. A segunda geração de celulares (2G) usa comunicação digital e é atualmente a tecnologia mais usada no país. Celulares 2G permitem, além da comunicação por voz, transmissão de dados digitais a baixa velocidade (14,4 Kbps), acesso a internet (WAP) e envio de mensagens SMS. Os protocolos mais utilizados são o TDMA (Time Divison Multiple Access), CDMA (Code-Division Multiple Access) e GSM. Esses protocolos permitem uma taxa de transmissão de cerca de 10 Kbps. Algumas extensões desses protocolos permitem taxas de transmissão da ordem de algumas dezenas de Kbps. É o caso do CDMA 1xRTT, com taxa de transmissão de 144 kbps (adotada, por exemplo, pela Vivo), e do GPRS, extensão do GSM, com conexão permanente e taxa de transmissão da ordem de 50 kbps (adotada pela TIM). Esses protocolos são conhecidos como geração 2,5G e estão começando a ser implantados no país. Há ainda uma terceira geração de celulares (3G), com taxas de transmissão ainda maiores, da ordem de centenas de kbps. O protocolo mais famoso é o EDGE, a terceira geração do GSM. O celulare foi escolhido como portador do nosso sistema por ser um aparelho de fácil acesso que não incluiria gastos em excesso para as academias. 3.1.2 NetBeans O open-source NetBeans, feito 100% em Java, é um dos mais tradicionais IDEs de desenvolvimento. A versão utilizada no trabalho foi a 5.5. Esse IDE apresenta uma tradicional interface com o desenvolvedor, com uso de menus, barras de ferramentas e outros componentes UI-interfaces, além de editores para aplicações visuais ou WEB / J2EE, com suporte a XML/ DTDs /Schemas. Sempre lembrando, que devido a sua natureza 100% Java, é um IDE multi-plataforma. Observando mais diretamente as qualidades do NetBeans, podemos citar: • Suporte a linguagens Java, C, C++; • Depurador de Servlets; • Suporte a EJBs e Web Services; • Suporte ao framework ANT e servidor TOMCAT; • http Monitor para Monitoramento de aplicações WEB; Com uma grande aceitação junto aos desenvolvedores Java, também possui vários módulos de expansão, semelhantes aos conhecidos plugins do Eclipse, seu concorrente direto. Para a realização do trabalho foi utilizado o módulo Mobility Pack. Esse módulo é usado para desenvolver aplicativos para dispositivos compatíveis com CLDC (Connected Limited Device Configuration) 1.0 ou 1.1 e MIDP (Mobile Information Device Profile) 1.0 ou 2.0. Entre suas ferramentas está o Visual Mobile Designer para desenvolvimento e protótipos rápidos: apenas arrastando e soltando são criadas telas de espera, tabelas e telas de abertura na tela. Além disso, este pacote disponibiliza um simulador onde os aplicativos podem ser testados como num celular. 3.1.3 Tomcat O Tomcat é um servidor de aplicações Java para web. É distribuído como software livre e desenvolvido como código aberto dentro do conceituado projeto Apache Jakarta e oficialmente endossado pela Sun como a Implementação de Referência (RI) para as tecnologias Java Servlet e JavaServer Pages (JSP). O Tomcat é robusto e eficiente o suficiente para ser utilizado mesmo em um ambiente de produção. Tecnicamente o Tomcat é um container Web, cobrindo parte da especificação J2EE com tecnologias como Servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurança, JNDI Resources e JDBC DataSources. O Tomcat tem a capacidade de atuar também como servidor web/HTTP, ou pode funcionar integrado a um servidor web dedicado como o Apache httpd ou o Microsoft IIS. O NetBeans já possui o Tomcat embutido e este foi utilizado no sistema para hospedar o webservice que oferece os serviços para a aplicação. 3.1.4 J2ME Wireless Toolkit O J2ME Wireless Toolkit é uma ferramenta avançada para desenvolver as aplicações wireless que são baseadas CLDC e MIDP, e projetado para funcionar em telefones celulares, nos assistentes digitais pessoais, e em outros dispositivos móveis pequenos. O toolkit inclui os ambientes da simulação, otimização do desempenho, documentação, e os exemplos que os colaboradores necessitam para desenvolver aplicações wireless eficientes e bem sucedidas. Para o sistema em questão o toolkit foi utilizado utilizado para gerar os stubs (classes que simulam os serviços oferecidos pelo Web Service) para que a camada Delegates pudesse acessar a camada Controller via Web service. 3.1.5 MySQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) como interface. É atualmente um dos bancos de dados mais populares, com mais de 4 milhões de instalações pelo mundo. Algumas características do MySQL são: • • • Portabilidade (suporta praticamente qualquer plataforma atual) Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Python, Perl, PHP e Ruby) Excelente desempenho e estabilidade • • • Pouco exigente quanto a recursos de hardware Fácil de usar É um Software Livre (característica mais importante no nosso caso). A versão do MySQL utilizda no projeto foi 5.0. 3.2 Tecnologias utilizadas 3.2.1 J2ME O J2ME (Java 2 Micro Edition) é o ambiente de desenvolvimento para dispositivos móveis ou portáteis, como telefones celulares e palmtops. Como a linguagem Java já era conhecida e a adaptação ao J2ME não é complicada, logo surgiram diversos tipos de aplicativos para tais dispositivos, como jogos e agendas eletrônicas. As empresas saíram ganhando com isso porque, desde que seus dispositivos tenham uma JVM (Java Virtual Machine - Máquina Virtual Java), é possível, com poucas modificações, implementar os aplicativos em qualquer aparelho, sendo o único limite a capacidade do hardware. A plataforma J2ME contém configurações e bibliotecas trabalhadas especialmente para a atuação em dispositivos portáteis. Assim, o desenvolvedor tem maior facilidade para lidar com as limitações de processamento e memória, por exemplo. Um exemplo disso é a configuração chamada CLDC (Connected Limited Device Configuration), destinada a dispositivos com recursos de hardware bastante limitados, como processadores de 16 bits e memórias com 512 KB de capacidade. Essa configuração contém uma JVM e um conjunto básico de bibliotecas que permite o funcionamento da aplicação Java em dispositivos com tais características. O J2ME no sistema foi utilizado para o desenvolvimento das interfaces. 3.2.2 J2SE O J2SE ou Java SE é a ferramenta necessária para o desenvolvimento de aplicações em Java. Ela contém todo o ambiente necessário para a criação e execução de aplicações Java, incluíndo a máquina virtual Java (JVM), o compilador Java, as APIs do Java e outras ferramentas utilitárias. O J2SE (Java 2 Standard Edition) é o ambiente de desenvolvimento mais utilizado. Isso porque seu uso é voltado a PCs e servidores, onde há bem mais necessidade de aplicações. Além disso, pode-se dizer que essa é a plataforma principal, já que, de uma forma ou de outra, o J2EE e o J2ME tem sua base aqui. Pode-se dizer que esses ambientes de desenvolvimento são versões aprimoradas do J2SE para as aplicações a que se propõem. O J2SE foi utilizado no sistema para o desenvolvimento das camadas Controller, Business, Delegates, DTO e o Webservice. 3.2.3 Webservice Web service é uma solução utilizada na integração de sistemas e na comunicação entre aplicações diferentes. Com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existem e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. Os Web services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria "linguagem", que é traduzida para uma linguagem universal, o formato XML. Para as empresas, os Web services podem trazer agilidade para os processos e eficiência na comunicação entre cadeias de produção ou de logística. Toda e qualquer comunicação entre sistemas passa a ser dinâmica e principalmente segura, pois não há intervenção humana. As bases para a construção de um Web service são os padrões XML e SOAP. O transporte dos dados é realizado, normalmente, via protocolo HTTP (o padrão não determina o protocolo de transporte). Os dados são transferidos no formato XML, encapsulados pelo protocolo SOAP. Os serviços (operações, mensagens, parâmetros, etc.) são descritos usando a linguagem WSDL (WebServices Definition Language). O processo de publicação/pesquisa/descoberta de WebServices, quando estes são publicados num servidor de aplicação, utiliza o protocolo UDDI (Universal Description, Discovery and Integration). Figura 9 – Tecnologias utilizadas por um webservice. Para o desenvolvimento do sistema foi criado um webservice para disponibilizar através do Tomcat todas as funcionalidades exigidas para a aplicação, exigidas pelos requisitos funcionais. 3.2.4 WAP WAP (Wireless Application Protocol) é o equivalente ao HTTP para telefones celulares. O padrão WAP define uma linguagem de markup (WML) semelhante ao HTML. Define também uma linguagem de script (WMLScript), semelhante ao JavaScript. As páginas WAP são bastante limitadas quanto aos recursos gráficos e à interação com o usuário. WAP possui, por exemplo, um protocolo de conexão segura, mas não permite, entre outras coisas, o uso de cookies. Para acessar uma página WAP, o usuário precisa de um telefone celular com um browser WAP. Celulares com essas características são bastante comuns atualmente. 3.3 Protocolos de Comunicação 3.3.1 Wi-Fi O Wi-Fi (Wireless Fidelity) também conhecido como WLAN (Wireless Local Area Network), é uma tecnologia de redes locais wireless que se estendem por uma pequena área, e que utilizam altas freqüências de ondas de rádio, ao invés de fios, para a comunicação entre dispositivos móveis. É uma tecnologia que, apesar de possuir pequenos alcances, permite acesso em banda larga, e está implementada sobre o padrão IEE 802.11, que opera em freqüências que variam entre 2,4 GHz e 5 GHz, e que fornece aos seus usuários o acesso a redes públicas e privadas de uma forma simples e cômoda, possibilitando alta mobilidade, flexibilidade e conveniência no acesso à informação, além da facilidade de montagem e manutenção. A tecnologia Wi-Fi pode ser constituída de várias formas dependendo do tipo de rede em que ela se situa: • Rede Local: utilização de Access-Points, que são considerados switches de uma rede sem fio, e adaptadores Wi-Fi simples. • Rede Metropolitana: utilização de antenas e adaptadores Wi-Fi com pigtails. • Rede Ampla: utilização de antenas, amplificadores, adaptadores Wi-Fi com pigtails. A figura abaixo mostra a topologia básica de uma rede local Wi-Fi. Figura 10: Topologia básica de uma rede local Wi-Fi No processo de implementação de redes Wi-Fi, volta-se atenção para locais estratégicos também chamados de Hot-Spots, que são locais freqüentados por profissionais em viagem, como por exemplo, hotéis, aeroportos, centros de reuniões, zonas comerciais, ou estádios de futebol, onde parece ser necessário se ter acesso à Internet. Outra tecnologia que poderia ter sido usada é o Bluetooth que é um padrão proposto pelo Bluetooth SIG (Special Interest Group), um consórcio das maiores empresas de telecomunicações e computação do mundo. O padrão opera na faixa de 2,4 GHz e tem como princípio propor uma tecnologia de baixo custo, para conectividade sem fio. Porém, optamos por usar o Wi-Fi que pode operar a distâncias maiores entre os aparelhos. 4. Descrição do funcionamento do Sistema 4.1 Tela de Login Para realizar o login são necessários os seguintes passos: 1 – o instrutor digita o login 2 – o instrutor digita a senha 3 – o instrutor aperta o botão onde está indicado ok. Figura 11 – Tela de Login Caso a senha ou o login estiverem incorretos o sistema exibe a seguinte mensagem: Figura 12 – Mensagem exibida quando não é possível realizar login 4.2 Tela Principal Figura 13 – Tela Principal Na tela principal existem 3 opções. A primeira habilita a funcionalidade de consulta a atletas, a segunda habilita a funcionalidade de consulta a fichas de exercícios e a terceira habilita a funcionalidade de consulta a fichas de medidas. Para selecionar alguma das opções basta navegar pelos botões e , selecionar a opção desejada com o botão e clicar sobre o botão indicando ok. 4.3 Tela de Consulta a Atletas Nesta tela é possível listar os atletas cadastrados no sistema. Para isto, basta digitar o nome ou parte do nome no campo Nome que se deseja procurar e clicar sobre o botão indicando Filtrar. Para listar todos os atletas cadastrados, basta deixar o campo Nome em branco. Figura 14 – Tela de Consulta a Atletas 4.4 Tela de Seleção de Atleta Para acessar as funcionalidades de consulta a fichas de exercícios e medidas é necessário antes selecionar o atleta que deseja-se consultar e para tanto a tela acima é utilizada. Nesta tela o instrutor precisa digitar um nome ou parte de um nome no campo Nome do Atleta, clicar sobre o botão indicando Menu, selecionar a opção Filtrar com os botões e e finalizar clicando sobre o botão . Logo após aparecerão os atletas correspondentes ao nome digitado. Para selecionar o atleta e assim acessar as funcionalidades o instrutor deverá usar novamente os botões , e , e então acessar de novo o menu e selecionar a opção Selecionar. Logo após estes passos a funcionalidade desejada será iniciada. Figura 15 – Tela de Seleção de Atleta 4.5 Tela de Consulta a Fichas de Exercícios Figura 16 – Tela de Consulta a Fichas de Exercícios A tela acima mostra todas as fichas de exercícios cadastradas para o atleta escolhido anteriormente, como pode ser visto na parte superior da tela onde diz a funcionalidade e o atleta escolhidos. A partir desta tela pode-se criar uma nova ficha, editar/visualizar ou remover uma ficha. Para editar ou visualizar uma ficha de exercícios é necessário selecionar uma ficha com os botões , e , clicar sobre o botão indicando Menu e novamente com os botões ditos anteriormente selcionar a opção Abrir. Neste caso, a tela abaixo será aberta a Tela de Consulta de Exercícios. Para criar uma nova ficha basta acessar o Menu, como dito antes, e selecionar a opção Novo. Neste caso, uma nova ficha será criada automaticamente e adicionada a lista mostrada nesta mesma tela. Os exercícios podem ser cadastrados através da opção Abrir. Para remover uma ficha é necessário acessar o Menu e selecionar a opção Remover. Neste caso, a ficha será automaticamente removida juntamente com os exercícios cadastrados para ela. 4.6 Tela de Consulta de Exercícios Figura 17 – Tela de Consulta de Exercícios Nesta tela podem ser removidos e adicionados exercícios de uma ficha de exercícios. Para adicionar é necessário clicar sobre o botão indicando Menu e com os botões , e selecionar a opção Adicionar. Neste caso, a Tela de Cadastro de Exercício será aberta. Para remover um exercício basta acessar o Menu e selecionar a opção Remover. Neste caso, o exercício selecionado será removido automaticamente e desaparecerá da lista mostrada nesta tela. 4.7 Tela de Cadastro de Exercícios Nesta tela um exercício deve ser cadastrado. Os campos necessários para o cadastro são o Nome do Exercício, o número de Repetições, o Peso que será utilizado no exercício, o Tipo, se o exercício fará parte da ficha A, B, C , etc. e o número de Séries que serão realizadas. Qualquer inclusão de um caracter nos campos Repetição, Peso e Séries é tratada exibindo-se uma mensagem indicando o erro. Da mesma forma, a inclusão de um número no campo Tipo também faz o sistema exibir uma mensagem de erro. Todos os campos acima são obrigatórios e para adicionar o exercício é necessário clicar sobre o botão indicando Adicionar. Para cancelar a operação basta clicar sobre o botão indicando Voltar. Figura 18 – Tela de Cadastro de Exercícios 4.8 Tela de Consulta a Fichas de Medidas Figura 19 – Tela de Consulta a Fichas de Medidas A partir desta tela pode-se editar/visualizar, remover ou adicionar uma ficha de medidas para o atleta anteriormente selecionado. Para adicionar uma ficha de medidas é necessário clicar sobre o botão indicando Menu, e com os botões , e selecionar a opção de menu Novo. Dessa forma, será criada uma nova ficha automaticamente e está será mostrada na lista desta mesma tela. Como inicialmente são listadas todas as fichas de medidas cadastradas para o atleta selecionado, para editar/visualizar uma das fichas é necessário selecioná-la dentre esta lista, para isto deve-se usar os botões , e . Após este passo basta acessar o Menu e selcionar a opção Abrir. Neste caso, a Tela de Cadastro de Medidas será aberta. Para remover uma ficha, basta selecioná-la, como mostrado no passo anterior, acessar o Menu e selecionar a opção Remover. Neste caso, a ficha será removida automaticamente e retirada da lista mostrada nesta tela. 4.9 Tela de Cadastro de Medidas Nesta tela são cadastradas as seguintes medidas Peso, Altura, Dobra Toráxica, Dobra Abdominal, Dobra Tricipal, Dobra Supra-Ilíaca, Dobra de Coxa, Tórax, Cintura, Abdômen, Quadril, Antebraço Direito, Antebraço Esquerdo, Braço Direito, Braço Esquerdo, Coxa Direita, Coxa Esquerda, Panturrilha Direita e Panturrilha Esquerda. Todos estes campos são obrigatórios e devem ser numéricos. Qualquer caracter incluso em algum destes campos é indicado como erro pelo sistema através de uma mensagem. Para adicionar as medidas basta clicar sobre o botão indicando Salvar. E para cancelar a operação basta clicar sobre o botão indicando Voltar. Figura 20 – Tela de Cadastro de Medidas 5. Dificuldades encontradas Não foram encontradas muitas dificuldades na realização do trabalho uma vez que as ferramentas utilizadas tem bom suporte ao tipo de aplicação desenvolvida. A dificuldade que damos destaque é a serialização de dados. Para a utilização do webservice construído era necessário uma forma de serializar e desserializar os dados que estavam representados em forma de objetos. No Java convencional existe uma classe Serializable que dá a característica de serialização às suas sub-classes. Porém no J2ME não existe essa classe. Portanto, foi necessário criar um pacote DTO tanto do lado cliente quando do lado servidor da aplicação, uma vez que as classes deste pacote é que deveriam ser “transporatadas” pelo webservice. Por isso foram criados dois métodos nas classes deste pacote, um deles responsável por serializar os objetos, transformá-los em uma string, e outro para desserializar os objetos, transformar a string recebida novamente em objeto. Esta deficiência do J2ME acabou dificultando e atrasando o desenvolvimento do sistema. Além disso, encontramos dificuldade na utilização da ferramenta disponibilizada pelo NetBeans para o desenvolvimento de interfaces. Esta ferramenta gera um código difícil de ser entendido e de baixa manutenibilidade. Além disso, o código gerado impede o uso de eficientes técnicas de orientação a objeto como a herança, obrigando-nos a reptir código em diversas telas com caracter´sticas semelhantes. 6. Bibliografia [1]Bluetooth.org - The Official Bluetooth Membership Site., URL: http://www.bluetooth.org, Pesquisado em 10 de fevereiro de 2007. [2]Deitel e Deitel., Internet and Mobile Business: How To Program., 2002. [3]Deitel e Deitel ; Java: Como Programar – 6ª Edição – São Paulo [4]Maia, R.M.F.; Bluetooth - Promessas de uma nova tecnologia, Monografia de Conclusão do Curso de Bacharelado em Sistemas De Informação - Faculdade Integrada do Recife, 2003. [5]Toso, R. F.; Andrade, C.E.; Nogueira, F.L.B., Redes sem fio IEEE 802.11., URL: http://www.comp.ufla.br/ rtoso/docs/Wireless.pdf, Pesquisado em 10 de Fevereiro de 2007. [6]Wap Forum., Wireless Application Protocol White Paper.,2000. [7] Material das aulas de INF655