UNIVERSIDADE DO PLANALTO CATARINENSE DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE SISTEMAS DE INFORMAÇÃO (BACHARELADO) APLICATIVO LÚDICO PARA APOIO AO ENSINO DE INGLÊS ATRAVÉS DE DISPOSITIVOS MÓVEIS DANIEL D'ÁVILA MOMBACH LAGES, JULHO DE 2007 UNIVERSIDADE DO PLANALTO CATARINENSE DEPARTAMENTO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE SISTEMAS DE INFORMAÇÃO (BACHARELADO) APLICATIVO LÚDICO PARA APOIO AO ENSINO DE INGLÊS ATRAVÉS DE DISPOSITIVOS MÓVEIS Relatório do Trabalho de Conclusão de Curso submetido à Universidade do Planalto Catarinense para obtenção dos créditos de disciplina com nome equivalente no curso de Sistemas de Informação - Bacharelado. DANIEL D'ÁVILA MOMBACH Orientação: LAGES, JULHO DE 2007 Profª. Sabrina Bet, M.Sc. Prof. Angelo Augusto Frozza, M.Sc. iii APLICATIVO LÚDICO PARA APOIO AO ENSINO DE INGLÊS ATRAVÉS DE DISPOSITIVOS MÓVEIS DANIEL D'ÁVILA MOMBACH ESTE RELATÓRIO, DO TRABALHO DE CONCLUSÃO DE CURSO, FOI JULGADO ADEQUADO PARA OBTENÇÃO DOS CRÉDITOS DA DISCIPLINA DE TRABALHO DE CONCLUSÃO DE CURSO DO VIII SEMESTRE, OBRIGATÓRIA PARA OBTENÇÃO DO TÍTULO DE: BACHAREL EM SISTEMAS DE INFORMAÇÃO Profª. Sabrina Bet, M.Sc. Orientador Prof. Angelo Augusto Frozza, M.Sc. Co-Orientador BANCA EXAMINADORA: Profª. Daiana Petry, M.Eng. UNIPLAC Prof. Diego Ricardo Holler, Esp. UNIPLAC Prof. Angelo Augusto Frozza, M.Sc. Professor de TCC Prof. Wilson Castello Branco Neto, Dr. Coordenador de Curso Lages, 04 de julho de 2007. iv Dedico este trabalho à Humanidade, desejando que ele possa de alguma forma contribuir para a paz e o conforto de todos. v Agradeço.... A meus pais, por terem moldado meu caráter. A meu filho, pela paciência e compreensão todas as vezes que não pude participar de sua vida. À minha esposa, pelo constante incentivo e pelas inúmeras vezes que precisou exercitar sua compreensão quando eu estava cansado demais. À Professora Sabrina Bet pelas orientações, bom humor e atenção. Ao Professor Angelo Augusto Frozza por suas valiosas idéias e orientações. A todos os professores e alunos do curso de Sistemas de Informação pelo incentivo, interesse e bom humor que sempre demonstraram. vi “A única coisa importante na vida é a transformação radical, total e definitiva; tudo o mais, francamente, não tem a menor importância.” V.M. Samael Aun Weor SUMÁRIO LISTA DE ILUSTRAÇÕES..................................................................................... IX LISTA DE SIGLAS..................................................................................................... X RESUMO................................................................................................................... XI ABSTRACT.............................................................................................................. XII 1 INTRODUÇÃO................................................................................................................. 1.1 Apresentação............................................................................................................ 1.2 Descrição do problema............................................................................................. 1.3 Justificativa.............................................................................................................. 1.4 Objetivo geral........................................................................................................... 1.5 Objetivos específicos............................................................................................... 1.6 Metodologia............................................................................................................. 1 1 2 2 4 4 5 2 ATIVIDADES LÚDICAS E O ENSINO DE IDIOMAS.................................................................... 6 2.1 Atividades lúdicas na educação................................................................................ 6 2.2 Jogos no ensino de idiomas...................................................................................... 7 2.3 Jogos no ensino de inglês......................................................................................... 7 2.4 Jogos de palavras no ensino de idiomas................................................................... 9 2.5 Conclusão.............................................................................................................. 11 3 DESENVOLVIMENTO DE SISTEMAS PARA DISPOSITIVOS MÓVEIS............................................ 12 3.1 Contextualização.................................................................................................... 12 3.2 Aspectos da tecnologia........................................................................................... 13 3.2.1 A tecnologia Java e a plataforma Java Micro Edition................................................... 13 3.3 Processos de desenvolvimento............................................................................... 16 3.3.1 eXtreme Programming (XP)............................................................................................ 18 3.4 Conclusão.............................................................................................................. 20 4 ANÁLISE E PROJETO DO SISTEMA.................................................................................... 4.1 Enredo do jogo....................................................................................................... 4.2 Artefatos aplicados................................................................................................. 4.3 Sumário executivo.................................................................................................. 4.4 Histórias de usuário................................................................................................ 4.5 Definição de requisitos........................................................................................... 21 21 23 24 24 27 4.5.1 Requisitos funcionais e não-funcionais........................................................................... 27 4.5.2 Requisitos suplementares.................................................................................................29 4.6 Diagrama de classes............................................................................................... 30 4.7 Diagrama de estados.............................................................................................. 32 4.8 Conclusão.............................................................................................................. 32 5 IMPLEMENTAÇÃO DO APLICATIVO................................................................................... 34 5.1 Características de implementações Java Micro Edition......................................... 34 5.2 Implementação das telas do aplicativo................................................................... 35 5.2.1 Tela de jogo..................................................................................................................... 38 5.3 Implementação da lógica do aplicativo.................................................................. 41 5.3.1 Persistência das informações.......................................................................................... 43 5.4 Documentação da implementação.......................................................................... 44 5.4.1 Comentários de codificação............................................................................................ 45 5.4.2 Documentação para API................................................................................................. 45 5.5 Conclusão.............................................................................................................. 46 6 TESTES DO APLICATIVO................................................................................................. 48 6.1 Testes de validação................................................................................................ 48 6.1.1 Validação pedagógica..................................................................................................... 50 6.1.2 Validação tecnológica..................................................................................................... 51 6.2 Conclusão.............................................................................................................. 51 7 CONSIDERAÇÕES FINAIS................................................................................................ 53 REFERÊNCIAS BIBLIOGRÁFICAS..................................................................... 56 BIBLIOGRAFIA COMPLEMENTAR.................................................................... 59 APÊNDICES.............................................................................................................. 61 LISTA DE ILUSTRAÇÕES FIGURA 1 - Resumo da tecnologia Java e suas diferentes edições............................. 14 FIGURA 2 - Esquema da tecnologia JME................................................................... 16 FIGURA 3 - Diagrama de classes................................................................................ 31 FIGURA 4 - Diagrama de estados................................................................................ 32 FIGURA 5 - Diagrama de fluxo gerado no NetBeans 5.0............................................ 35 FIGURA 6 - Tela de boas-vindas (a) e tela principal (b)............................................. 36 FIGURA 7 - Tela de ajuda (a) e tela de pontuações (b)............................................... 37 FIGURA 8 - Tela de fim de jogo................................................................................. 38 FIGURA 9 - Esquema da codificação da classe MemoBoxCanvas em alto nível.........40 FIGURA 10 - Tela de jogo inicial (a) e tela durante o jogo (b).................................... 40 FIGURA 11 - Tela de jogo completa (a) e tela exibindo informações de jogo (b)....... 41 FIGURA 12 - Esquema da codificação da classe GameEngine em alto nível.............. 42 QUADRO 1 - História de usuário HU01, versão 1...................................................... 25 QUADRO 2 - História de usuário HU02, versão 1...................................................... 25 QUADRO 3 - História de usuário HU03, versão 1...................................................... 25 QUADRO 4 - História de usuário HU04, versão 1...................................................... 26 QUADRO 5 - História de usuário HU05, versão 1...................................................... 26 QUADRO 6 - História de usuário HU06, versão 1...................................................... 26 QUADRO 7 - Requisito funcional F1.......................................................................... 27 QUADRO 8 - Requisito funcional F2.......................................................................... 27 QUADRO 9 - Requisito funcional F3.......................................................................... 28 QUADRO 10 - Requisito funcional F4........................................................................ 28 QUADRO 11 - Requisito funcional F5........................................................................ 28 QUADRO 12 - Requisito funcional F6........................................................................ 28 QUADRO 13 - Requisito funcional F7........................................................................ 29 QUADRO 14 - Requisito funcional F8........................................................................ 29 QUADRO 15 - Requisito funcional F9........................................................................ 29 QUADRO 16 - Requisitos suplementares.................................................................... 30 QUADRO 17 - Fragmento de código para capturar e tratar a seleção de comandos.... 38 QUADRO 18 - Fragmento de código para a recuperação de informações................... 44 QUADRO 19 - Trecho de código-fonte com comentário de codificação..................... 45 QUADRO 20 - Trecho de código-fonte com documentação de codificação................ 46 QUADRO 21 - Verbos irregulares do nível básico...................................................... 61 QUADRO 22 - Verbos irregulares do nível intermediário........................................... 62 QUADRO 23 - Verbos irregulares do nível avançado................................................. 63 LISTA DE SIGLAS API CDC CLDC HTML JEE JME JDK JSE JVM KVM MIDP PDA PDAP PNG ROM SDK TDD UML PU UNIPLAC XP - Application Programming Interfaces - Connected Device Configuration - Connected Limited Device Configuration - HyperText Markup Language - Java Enterprise Edition - Java Micro Edition - Java Development Kit - Java Standard Edition - Java Virtual Machine - Kilobyte Virtual Machine - Mobile Information Device Profile - Personal Digital Assistant - Personal Digital Assistant Profile - Portable Network Graphics - Read Only Memory - Software Development Kit - Test-Driven Development - Unified Modelling Language - Processo Unificado - Universidade do Planalto Catarinense - eXtreme Programming RESUMO O ensino à distância tem se intensificado nas últimas décadas e, mais recentemente, tem se aliado às facilidades oferecidas pela informática. Da mesma forma, a utilização da tecnologia móvel tem se intensificado, trazendo consigo a praticidade de se ter à mão um dispositivo capaz de prestar vários serviços úteis. Adicionalmente, dispositivos móveis, a exemplo dos aparelhos celulares e dos telefones inteligentes, têm atingido níveis de desenvolvimento tecnológico que possibilitam inúmeras funcionalidades computacionais. Assim, o presente trabalho propõe a implementação de um aplicativo lúdico para apoio ao ensino de inglês capaz de operar em uma vasta gama de aparelhos celulares, sendo utilizada para isto a plataforma de desenvolvimento Java Micro Edition. O desenvolvimento da solução envolve estudos sobre atividades lúdicas associadas ao ensino de idiomas, identificando uma atividade elegível para a proposta do aplicativo, e pesquisas a respeito das características da implementação de sistemas para dispositivos móveis. O aplicativo implementado mostra que aliar atividades lúdicas, ensino de idiomas e aparelhos celulares não é apenas possível, como também vantajoso, uma vez que tais dispositivos móveis já estão acessíveis para uma grande quantidade de indivíduos de diversas classes sociais. Palavras-chave: Aparelhos celulares; dispositivos móveis; Java Micro Edition; ensino de inglês. ABSTRACT Distance learning has been intensified along the last few decades and, most recently, it has been allied to the facilities offered by Informatics. The same way, the use of mobile technology has been intensified, bringing up the practicability of having a device capable of various useful services at hand. Additionally, mobile devices, such as cell phones and smart phones, have reached levels of technologic development allowing for uncountable computational functionalities. Thus, this work proposes the implementation of a ludic application, to help the English learning process, able to operate on a vast range of mobile phones and, for that, the Java Micro Edition development platform is used. The development of the solution involves studies about ludic activities associated to language learning, the identification of an activity eligible for the application proposal, and research about the characteristics of implementing systems for mobile devices. The application implemented shows that allying ludic activities, language learning, and mobile phones is not only possible, but also profitable once mobile devices are already accessible to a large number of individuals from various social classes. Keywords: Mobile phones; mobile devices; Java Micro Edition; English learning. 1 INTRODUÇÃO 1.1 Apresentação Nas últimas décadas, tem se observado a intensificação do ensino a distância, inicialmente por meio de fascículos enviados por correspondência e, mais recentemente, por meio de veículos informatizados, como as mídias ROM (mídias de armazenamento de dados apenas para leitura) e a rede mundial de computadores. Ademais, a redução dos custos dos computadores pessoais tem viabilizado a integração da informática com a educação, disponibilizando tutoriais inteligentes, redes mundiais de conhecimento, cursos a distância, entre outros (SHERRON e BOETTCHER, 1997). A utilização da tecnologia móvel tem igualmente se intensificado, devido à redução de seu custo de aquisição e manutenção, além da praticidade de se ter à mão um dispositivo capaz de prestar vários serviços úteis. Dispositivos móveis, como os aparelhos celulares e os telefones inteligentes1, têm atingido níveis de desenvolvimento tecnológico que possibilitam várias funcionalidades computacionais (EQUIPE, 2005), viabilizando seu uso aliado à educação. Uma característica marcante dos dispositivos de telefonia móvel é a sua vasta diversidade tecnológica e funcional (VERISIGN, 2006). Neste contexto, uma das tecnologias para o desenvolvimento de soluções informatizadas que mais tem se destacado nos dispositivos móveis é a plataforma Java Micro Edition, a qual tem como base uma máquina virtual adaptada para os mais variados tipos de dispositivos, oferecendo, assim, uma interface comum para os aplicativos desenvolvidos. Desta forma, aplicações computacionais podem ser desenvolvidas e instaladas em uma grande quantidade de dispositivos. 1 Telefones inteligentes são dispositivos manuais que integram as funcionalidades de um telefone celular e um PDA (assistente digital pessoal) ou outro dispositivo de informação (SMARTPHONE, 2006). 2 A integração da informática com a educação toma um novo rumo quando considerados os dispositivos de telefonia celular, uma vez que estes têm se popularizado em larga escala. Neste contexto, o presente trabalho, ao propor o desenvolvimento de um aplicativo lúdico para o ensino de inglês através de dispositivos móveis, apresenta a possibilidade de levar educação e cultura a uma grande quantidade de indivíduos. O presente estudo inicia com um capítulo introdutório abordando a problemática em questão, objetivos, justificativa, bem como a metodologia empregada. Os aspectos conceituais são tratados nos capítulos seguintes, nos quais uma atividade lúdica para solucionar o problema abordado é identificada no capítulo dois e os aspectos da tecnologia e do processo de desenvolvimento empregados na solução são apresentados no capítulo três. A modelagem da solução computacional, detalhando a análise e o projeto do sistema informatizado, é abordada no quarto capítulo. A implementação do sistema é detalhada no quinto capítulo e os testes do aplicativo são comentados no sexto capítulo. As considerações finais são apresentadas no capítulo sete, incluindo idéias para outros aplicativos destinados a dispositivos móveis na área da informática no ensino de inglês. 1.2 Descrição do problema Uma das maiores dificuldades no aprendizado do idioma inglês é a memorização das formas e significados dos verbos irregulares, exigindo dedicação e prática por parte do estudante daquele idioma. Desta forma, este trabalho aborda a problemática de como estimular estudantes do idioma inglês na tarefa de memorização da lista dos verbos irregulares em suas três formas (infinitivo, passado e particípio), bem como seus correspondentes significados. 1.3 Justificativa A aprendizagem da língua mãe ocorre de forma natural e espontânea durante os primeiros anos de vida de uma pessoa, época em que os pais encorajam seus filhos, 3 deliberadamente, a falar e a responder à fala, corrigem seus erros e aumentam seu vocabulário (LANGUAGE, 1994). Paralelamente, alguns lingüistas suportam a teoria de que os seres humanos são geneticamente preparados para aprender idiomas nas idades entre um e seis anos (LEARNING, 1994), sendo a aprendizagem dificultada à medida que a idade avança. No tocante ao processo de aprendizagem, a mente humana, embora ainda não totalmente compreendida pela ciência atual, apresenta certas características notórias, a exemplo do fato de que as atividades realizadas com interesse são mais facilmente e profundamente assimiladas. Neste ínterim, atividades lúdicas adequadamente elaboradas e dirigidas oferecem vantagens no sentido de despertar o interesse do participante, cumprindo a função de facilitador da aprendizagem. Segundo LEIGUARDA (2001), as pessoas tendem a recordar músicas, cantigas e comerciais com mais facilidade do que os assuntos ensinados na escola, porque normalmente lembram melhor o que consideram mais relevante e, neste contexto, jogos, solução de problemas e outras atividades que ativam diferentes aspectos da memória deveriam ser utilizados como estratégia principal de aprendizado. Por outro lado, a observação empírica das linguagens atualmente utilizadas para a comunicação humana mostra que frases são pensamentos articulados exteriorizados e, na maioria dos idiomas, verbos expressam ações, existência ou ocorrência (VERB, 1995). Embora possam haver circunstâncias em que a comunicação é possível sem o uso de verbos, na maioria das situações os verbos emprestam sentido à mensagem comunicada, o que os tornam importante objeto de estudo para aqueles que se dedicam a aprender um idioma. Neste contexto, PHILLIPS (2005) comenta que os estudantes do idioma inglês enfrentam muita dificuldade para aprender os tempos verbais. O sistema de tempos verbais do idioma inglês conta com dois tipos de verbos: os regulares, assim chamados devido ao fato de seguirem regras específicas para a sua conjugação, e os irregulares que, por outro lado, não estão atrelados a qualquer regra gramatical, devendo o estudante memorizá-los, processo este que exige interesse, dedicação e prática. Assim, propõe-se o uso de jogos para auxiliar no aprendizado de verbos 4 irregulares. Na busca por dispositivos ou mídias acessíveis a muitos estudantes do idioma inglês, observa-se que, segundo MATTOS (2005), atualmente a presença de dispositivos móveis é superior à de computadores PC em todo o mundo. LEAL ([2005]) enfatiza que as operadoras de telefonia oferecem no Brasil uma grande variedade de telefones celulares com capacidade para aplicativos informatizados. Ainda, PAVETITS (2005) comenta que, dentre os vários serviços oferecidos pelas operadoras de telefonia celular, os usuários exibem preferência pelos jogos, respondendo estes por 40% de todos os serviços baixados nas redes das operadoras. E, no tocante ao perfil dos usuários de serviços de telefonia móvel, uma pesquisa do Data Folha (CLASSE C E JOVENS, [2006]) mostra que o crescimento da posse de telefones celulares foi mais expressivo entre os segmentos mais populares, alcançando 27% entre 2003 e fevereiro de 2006, e os jovens de 16 a 25 anos, atingindo 31% no mesmo período. Os fatos acima e as idéias expostas indicam que o desenvolvimento de um aplicativo lúdico para celulares, com a finalidade de possibilitar aos estudantes do idioma inglês a prática e a memorização dos verbos irregulares, vem a colaborar com o seu aprendizado e tem condições de se tornar acessível a muitos estudantes. 1.4 Objetivo geral O objetivo deste trabalho é a implementação de uma atividade lúdica voltada para a tecnologia de dispositivos celulares, com a finalidade de estimular estudantes do idioma inglês na memorização e prática dos verbos irregulares. 1.5 Objetivos específicos A relação abaixo enumera os objetivos específicos do presente trabalho: a) Identificar uma atividade lúdica para apoio ao aprendizado dos verbos irregulares do idioma inglês; b) Disponibilizar um aplicativo lúdico capaz de operar em dispositivos celulares. 5 1.6 Metodologia O presente estudo iniciou com o desenvolvimento do projeto do trabalho no primeiro capítulo, abordando a problemática em questão, objetivos, justificativa e a metodologia empregada. O levantamento bibliográfico foi realizado durante todo o desenvolvimento do trabalho e foi feito através de livros, artigos publicados em eventos e periódicos, além de material coletado na Internet. Foram realizados estudos objetivando identificar atividades lúdicas utilizadas no ensino de inglês com a finalidade de eleger uma atividade adequada para o aplicativo proposto. Estes estudos estão documentados no capítulo dois. Com o objetivo de conhecer a arquitetura da plataforma Java Micro Edition, bem como as características do método ágil XP (eXtreme Programming) para o desenvolvimento de sistemas, o capítulo três descreve estudos realizados verificando a viabilidade de empregar tais recursos na solução proposta. Posteriormente, foi realizada a modelagem da solução computacional, na qual foram detalhados os artefatos utilizados para a análise e para o projeto do sistema informatizado. A fase de implementação, posterior à modelagem da solução, foi dividida em três aspectos, sendo eles: os aspectos estruturais, a persistência de dados e os aspectos visuais. Para o desenvolvimento do sistema, foi utilizado o ambiente de desenvolvimento integrado NetBeans, devido ao fato de ser esta uma ferramenta gratuita e de haver à disposição vasta documentação e tutoriais para seu uso. Foram também realizados testes para verificar e validar todas as funcionalidades previstas para o sistema. As considerações finais foram apresentadas no capítulo sete, abordando as experiências adquiridas, sugestões de melhorias para o aplicativo implementado durante o trabalho, bem como apresentando idéias para outros aplicativos para dispositivos móveis na área da informática no ensino de inglês. 2 ATIVIDADES LÚDICAS E O ENSINO DE IDIOMAS Ainda que, segundo LETHABY (2002), ninguém saiba exatamente como se aprende um idioma, existem várias atividades que auxiliam o processo de ensinoaprendizagem. As atividades lúdicas são um exemplo que, conforme comentam WRIGHT, BETTERIDGE e BUCKBY (1996), são reconhecidamente apreciadas por jovens e adultos. O presente capítulo aborda a utilização de atividades lúdicas com objetivo educacional, especialmente no ensino de idiomas. 2.1 Atividades lúdicas na educação Segundo LUDIC (1995), a palavra lúdico se refere a jogo ou brincadeira e, conforme GAME (1995), a palavra jogo se refere a atividade que oferece entretenimento ou diversão. Atividades lúdicas, devido às suas características inerentes envolvendo circunstâncias prazerosas e estimulantes, podem ser dirigidas para o ensino e a prática de diversos assuntos e situações, uma vez que não oferecem restrições quanto à faixa etária dos participantes. Duas das vantagens do uso de jogos na educação incluem o fato de que estes chamam a atenção dos estudantes para o foco a ser aprendido ou praticado e podem simular situações reais, permitindo a tais circunstâncias existir e serem manipuladas sem o ônus e/ou o risco das situações reais (GROS, 2003). Atividades lúdicas têm sido utilizadas na educação e no treinamento em diversos contextos e com variados objetivos. Ainda, jogos podem ser utilizados para ambientar grupos de estudantes, propiciar interação entre grupos heterogêneos, bem como internalizar conhecimentos adquiridos. 7 2.2 Jogos no ensino de idiomas O aprendizado de um idioma é um trabalho difícil. Deve-se fazer um esforço para entender, repetir corretamente, utilizar a linguagem já absorvida e para utilizar toda a linguagem conhecida em conversas e em produções escritas. O esforço é exigido a todo o momento e deve ser mantido por um longo período. Os jogos ajudam e encorajam muitos estudantes a manter o interesse e o trabalho (WRIGHT, BETTERIDGE e BUCKBY, 1996, p. 1). Jogos, uma das modalidades de atividades lúdicas que envolve competição e vontade de superação, ajudam professores a criar contextos nos quais a linguagem adquire significado e, uma vez que os estudantes fazem questão de participar, devem entender o que os outros dizem ou escrevem e devem ser capazes de se fazer entender. Muitos jogos propiciam a mesma intensidade de prática dos exercícios convencionais, oferecendo qualidade. Neste contexto, a contribuição dos exercícios está no uso freqüente da linguagem durante um período limitado de tempo, o que é possível em muitos tipos de jogos. Adicionalmente, WRIGHT, BETTERIDGE e BUCKBY (1996, p. 1) comentam que, “fazendo a linguagem transmitir informações e opinião, os jogos oferecem a característica chave dos exercícios incluindo a oportunidade de sentir o trabalho da linguagem como comunicação ativa”. A idéia de incluir significados ou contextos no aprendizado de um idioma tem sido utilizada há alguns anos, o que oferece aos estudantes a oportunidade de expressar sensações e sentimentos de forma mais natural e espontânea, auxiliando na fixação do conhecimento absorvido. WRIGHT, BETTERIDGE e BUCKBY (1996, p. 1) mencionam, ainda, que “se é aceito que os jogos podem oferecer prática intensa e significativa da linguagem, então devem ser referidos como peça central no repertório de um professor. Assim, eles não são para uso apenas em dias chuvosos ou no final do semestre!” 2.3 Jogos no ensino de inglês O ensino do idioma inglês tem se beneficiado muito com o uso de atividades lúdicas em todos os níveis de aprendizado, especialmente quando estas simulam situações reais em ambientes distantes do convívio constante com a linguagem e a cultura de povos de fala inglesa. 8 Jogos podem oferecer prática para todas as habilidades envolvidas na transmissão e aquisição do conhecimento do idioma inglês, nomeadamente, leitura, escrita, escuta e fala; em todos os estágios de ensino/aprendizado, os quais sejam, apresentação, repetição, reordenação e livre uso da linguagem; bem como para diversos tipos de situações de comunicação. Desta forma, atividades lúdicas cooperam concretamente no aprendizado, na fixação e na construção da fluência da língua inglesa. Alguns tipos de jogos educativos utilizados no ensino de inglês são listados a seguir (LEE, 1965) e (GAMES, [2007?]): • Jogos orais - estes jogos fazem uso do postulado que reza que um idioma pode ser aprendido a partir do uso verbal do próprio idioma. Alguns jogos orais incluem, entre outros: perguntas de identificação e/ou localização de objetos e lugares, em que os alunos devem responder corretamente a perguntas preparadas pelo professor ou por outro grupo de alunos; “faça o que você ouviu”; “o que estou fazendo?” e suas modalidades “o que eu fiz?” e “o que vou fazer?”; “correntes”, em que os alunos devem completar frases ou elaborar frases completas com finalidade específica. • Jogos de pronúncia - alguns exemplos são: “igual ou diferente?”, em que os alunos devem julgar se duas frases faladas pelo professor ou outro grupo de alunos possuem mesmo sentido ou são diferentes; “qual é qual?”, em que os alunos devem ser capazes de distinguir palavras com pronúncia muito similar; “trocadilhos”, em que os alunos devem ser capazes de pronunciar frases corretamente. • Jogos de escrita e de leitura - exemplos incluem: “comandos”, em que os alunos devem obedecer instruções dispostas em cartões contendo frases, comandos ou imagens; “associação”, que abrange um conjunto de possibilidades onde os alunos devem ser capazes de associar imagens a substantivos, perguntas a respostas, partes de frases com seus complementos etc.. • Jogos de ortografia - abrangem um conjunto de atividades que visam 9 testar a corretude das palavras ou frases escritas ou soletradas pelos alunos. Alguns exemplos incluem: “escreva o que você vê” e “escreva o que você ouve”, que contam com várias modalidades; “descreva o que você conhece”, que é uma extensão dos anteriores; “soletre o que você ouve”, similar aos anteriores, mas não envolve a habilidade de escrita. 2.4 Jogos de palavras no ensino de idiomas MACCALLUM (1980) comenta que, quando considerada a importância da competência comunicativa no idioma estudado, um dos principais objetivos no domínio de um idioma, bem como a necessidade de uso espontâneo e criativo da linguagem, salienta-se o papel significativo dos jogos de palavras para atingir tais objetivos. Segundo MACCALLUM (1980), algumas das vantagens do uso de jogos de palavras no ensino de idiomas incluem: • Concentração da atenção do estudante em estruturas, padrões gramaticais e vocabulário específicos; • Capacidade de operar como reforço, revisão ou enriquecimento; • Possibilidade de serem utilizados em qualquer situação de ensino de idioma e com qualquer área de habilidade; • Fonte de informações imediatas ao professor; • Garantia de máxima participação por parte do estudante. Os jogos de palavras no ensino de idiomas envolvem as habilidades de leitura e escrita, separadamente ou em conjunto, e podem ser elaborados de diversos modos. Alguns jogos educativos com palavras são listados a seguir (LEE, 1965) e (GAMES, [2007?]): • Jogos com flash-cards - estes jogos utilizam cartões contendo palavras, comandos ou frases curtas. Podem ser utilizados de diversas maneiras: os alunos podem formar comandos ou frases a partir do conteúdo de um flash-card para que outros alunos realizem o que é solicitado; formar 10 frases que contenham o conteúdo do flash-card com o intuito de elaborar uma história; elaborar frases respeitando uma estrutura definida pelo professor; ou simplesmente pronunciar o conteúdo do flash-card corretamente. • Jogos de associação - em essência, estes jogos podem ser utilizados em grupos de alunos ou individualmente. Frases ou expressões devem ser associadas a imagens ou vice-versa, ou ainda, palavras, frases ou expressões devem ser associadas a palavras, frases ou expressões correspondentes no âmbito da estrutura ou conteúdo estudado, a exemplo do jogo de memória. • Jogos de rimas ou canções - grupos de alunos aprendem rimas ou canções simples e devem ser capazes de citá-las ou cantá-las observando pronúncia e entonação corretas. • Jogos de escrita - existem vários jogos nesta categoria, a exemplo dos jogos: “complete a frase”, o qual pode conter frases com lacunas ou inícios de frases para ser completadas; o “jogo da escada”, em que cada aluno deve escrever uma palavra cuja letra inicial seja a mesma letra final da última palavra escrita; “encontre os objetos”, em que cada aluno deve localizar objetos ocultos, em um limite de tempo definido, e escrever exatamente onde estão, sem divulgar aos demais estudantes. • Outros jogos de palavras - abrangem diversos outros jogos de palavras que não se encaixam nas categorias acima, a exemplo dos jogos: “frases vivas”, no qual cada aluno possui um cartão contendo uma palavra ou expressão e os jogadores devem se colocar em pé na posição necessária para formar uma frase corretamente; “bingo de palavras”, em que cada aluno possui um cartão contendo diversas palavras e o professor, ou outro aluno, lê palavras as quais devem ser reconhecidas e marcadas pelos alunos que contêm os cartões até que um dos estudantes tenha marcado todas as palavras de seu cartão; “jogo das compras”, em que os estudantes simulam possuírem lojas utilizando cartões contendo nomes dos produtos, 11 suas características e preços. 2.5 Conclusão GRAMIGNA (1997, p. 1) comenta que “vivemos numa época de transformações que exige uma profunda revisão de paradigmas e a adoção de novos conceitos e metodologias. (...) O prazer, a alegria, o lúdico, o entretenimento predispõe o espírito à aceitação, motivam o gosto de aprender.” A associação de atividades lúdicas com o ensino de idiomas tem se mostrado vantajosa, uma vez que estas atraem a atenção do estudante e propiciam aprendizado ou prática de forma espontânea e recreativa. Ainda, a motivação envolvida no uso de jogos pode aguçar o interesse do estudante para o assunto objeto da atividade. A pesquisa e o estudo que deram origem ao presente capítulo possibilitaram a identificação de uma atividade lúdica apropriada para a implementação da solução para o problema proposto. A atividade em questão é um jogo de memória, que se enquadra entre os jogos de leitura e escrita, na modalidade de jogo de palavras, os quais cumprem um papel significativo na construção da competência comunicativa do estudante. Estando a atividade lúdica claramente identificada, o passo seguinte necessário para a implementação da solução é a definição do processo de desenvolvimento e o estudo dos aspectos tecnológicos envolvidos. 3 DESENVOLVIMENTO DE SISTEMAS PARA DISPOSITIVOS MÓVEIS O presente capítulo foca o contexto da implementação de soluções informatizadas para dispositivos móveis, incluindo os aspectos tecnológicos, centrados na tecnologia Java, e processos de desenvolvimento, apresentando alguns dos métodos mais populares, porém concentrando a atenção no método ágil XP (eXtreme Programming). 3.1 Contextualização MATTOS (2005) comenta que, atualmente, a produção de dispositivos móveis em o todo mundo é bem superior à de computadores pessoais. Esta afirmação traz em si inferências que incluem aumento da demanda por desenvolvedores de sistemas informatizados para tais equipamentos e a popularização de dispositivos móveis. LI e KNUDSEN (2005, p. 10) comentam que dispositivos móveis são “um amplo conjunto que cobre praticamente tudo o que for menor do que uma cesta de pães. (...) uma seleção diversa de hardware (...)”. Embora os dispositivos móveis incluam aparelhos celulares, PDAs (Personal Digital Assistants), smart phones2, microcomputadores e outros dispositivos conectados, o presente estudo foca apenas os aparelhos celulares, devido a sua popularidade e abrangência. Uma vez que os dispositivos móveis ainda não são totalmente equivalentes aos computadores pessoais, apresentando limitações no tocante ao espaço para armazenamento de informações e aplicações e à capacidade de processamento, o 2 Smart phones são telefones inteligentes, dispositivos manuais que integram as funcionalidades de um telefone celular e um PDA ou outro dispositivo de informação (SMARTPHONE, 2006). 13 desenvolvimento de sistemas para tais dispositivos exige conhecimento e tecnologia específicos. 3.2 Aspectos da tecnologia A principal ferramenta utilizada para o desenvolvimento de sistemas para dispositivos móveis é a plataforma JME (Java Micro Edition) e a tecnologia de desenvolvimento Java é uma das mais completas opções entre as ferramentas oferecidas aos desenvolvedores de software (MATTOS, 2005). Uma das principais vantagens do uso de JME para o desenvolvimento de sistemas é que uma solução desenvolvida com esta plataforma não se restringe a determinados fabricantes ou modelos de equipamentos, podendo a solução ser executada em qualquer dispositivo em que o fabricante tenha instalado uma máquina virtual Java. 3.2.1 A tecnologia Java e a plataforma Java Micro Edition A tecnologia Java abrange um conjunto de recursos para o desenvolvimento de sistemas informatizados baseados nos conceitos de orientação a objetos e de interpretação de código. O desenvolvimento de sistemas tenta imitar a natureza no tocante às características e funcionalidades de objetos reais. A interpretação de código, por sua vez, tem como principal característica, permitir a utilização de programas em qualquer dispositivo que contenha uma máquina virtual da mesma plataforma. Entre os recursos da tecnologia Java, os principais são: a máquina virtual, cuja principal funcionalidade é a interpretação de comandos Java para que o sistema operacional do dispositivo possa entendê-los e executá-los; a linguagem de programação Java utilizada pelos desenvolvedores de sistemas; e o ambiente de desenvolvimento conhecido como JDK (Java Development Kit), que permite a escrita de programas em Java, sua verificação e validação, incluindo diversos recursos organizados na forma de APIs (Application Programming Interfaces). A tecnologia Java está categorizada em três edições, cada uma contendo características e funcionalidades específicas para uma área da computação, conforme 14 indicado na Figura 1: • Java Standard Edition (JSE): desenvolvida para a execução de programas em estações de trabalho e computadores pessoais simples, como os comumente encontrados no mercado; • Java Enterprise Edition (JEE): destinada a sistemas baseados em servidores, a exemplo de ambientes em rede, como as redes virtuais privadas, as intranets e a Internet; • Java Micro Edition (JME): projetada para operar em dispositivos com limitações de recursos de memória, vídeo e processamento, a exemplo dos PDAs, controles remotos, aparelhos celulares, entre outros. FIGURA 1 - Resumo da tecnologia Java e suas diferentes edições. (FONTE: JAVA, 2006) Além das três edições apresentadas, Java oferece uma plataforma especificamente desenvolvida para cartões inteligentes, denominados Java Cards. Considerando JME a edição Java apropriada para o desenvolvimento da solução proposta neste trabalho, uma vez que o sistema resultante deve operar no maior número possível de dispositivos móveis, o foco tecnológico do presente estudo 15 está voltado para esta plataforma. Devido ao fato de que a tecnologia Java Micro Edition abrange uma grande diversidade de hardware, ela é dividida em configurações, perfis e APIs opcionais (LI e KNUDSEN, 2005). CARNIEL e TEIXEIRA (2005) comentam que as configurações JME fornecem os serviços básicos para que as aplicações possam ser executadas, incluindo sistemas de comunicação, segurança interna da máquina virtual e acoplamento com o dispositivo. MATTOS (2005) divide tais configurações em duas categorias caracterizadas da seguinte forma: • Connected Device Configuration (CDC), utilizada em dispositivos que possuem capacidade razoável de processamento e de memória, bem como conexão rápida com a Internet, tais como set-top boxes3, Internet TV, vídeo-fones com Internet, comunicadores sem fio, sistemas de entretenimento e sistemas de telemetria para automóveis; • Connected Limited Device Configuration (CLDC), utilizada em dispositivos com processamento relativamente fraco, pouca memória e conectividade intermitente de baixa velocidade, a exemplo dos aparelhos celulares, PDA e pagers. Esta configuração conta com duas versões: 1.0, implementada na maioria dos equipamentos, e 1.1, mais completa que a versão anterior, incluindo melhorias como o suporte a tipos de dados de ponto flutuante. Perfis são um conjunto de APIs padronizadas que, combinadas com uma configuração, fornecem todas as funcionalidades necessárias para que as aplicações possam ser executadas em uma determinada família de dispositivos (CARNIEL e TEIXEIRA, 2005). Embora existam vários tipos de perfis, dois merecem destaque devido a sua popularidade: o MIDP (Mobile Information Device Profile), desenvolvido para aparelhos celulares e telefones inteligentes, e o PDAP (Personal Digital Assistant Profile), projetado para uso em PDAs. 3 Set-top boxes são aparelhos para controle de TV por assinatura. 16 O perfil MIDP conta com duas versões: a 1.0, atualmente disponibilizada em todos os aparelhos celulares, e a 2.0, já presente em vários aparelhos no mundo e incluindo suporte multimídia, API para interface de usuário para jogos e suporte a conexão segura, além de todos os recursos da versão anterior. O presente trabalho foca a utilização da tecnologia JME com a configuração CLDC 1.0 e o perfil MIDP 1.0, conforme esquema exibido na Figura 2, de forma que o sistema desenvolvido possa ser executado no maior número possível de aparelhos celulares. FIGURA 2 - Esquema da tecnologia JME. (FONTE: GRASIA!, 2004) 3.3 Processos de desenvolvimento BRAUDE (2005, p. 21) comenta que “Os principais desafios para o desenvolvimento de um software útil são a complexidade de código e a tendência de mudança dos objetivos de projeto enquanto eles estão em construção”. A fim de produzir sistemas com qualidade e que atendam às necessidades de seus usuários, muitas pesquisas e experimentos têm sido realizados no tocante ao processo pelo qual os softwares são implementados, implantados e adaptados ou corrigidos, resultando nas cinco fases principais sucintamente apresentadas a seguir 17 (BRAUDE, 2005): • Análise: fase em que as necessidades do usuário são estudadas, com o objetivo de compreender o que deve ser implementado e, em conseqüência, quais as funcionalidades do sistema; • Projeto: fase em que as partes do sistema e sua inter-relação são especificadas em detalhes, com o objetivo de determinar como o sistema deve ser desenvolvido; • Implementação: esta fase está associada à codificação, ou seja, a escrita dos programas que integram um sistema informatizado; • Testes: fase onde a aplicação é verificada por meio do uso de dados de teste, a fim de minimizar a ocorrência de erros; • Manutenção: nesta fase são realizados reparos e melhorias no sistema, bem como sua adaptação a novas necessidades. É relevante observar que, embora existam várias etapas envolvidas no processo de desenvolvimento de um software, estas se encaixam nas cinco fases abrangentes acima. Ainda, estas cinco fases não ocorrem necessariamente em ordem e podem mesclar-se, dependendo das características do sistema a ser desenvolvido e/ou do modelo de desenvolvimento adotado. Existem vários métodos de desenvolvimento de sistemas, os quais organizam as várias atividades envolvidas no processo e documentam seus diversos componentes. Alguns dos métodos mais citados na literatura estão listados a seguir: • Cascata: este método determina que o desenvolvimento do software deve ser realizado de forma linear, seguindo necessariamente as etapas de estudo de viabilidade, análise, projeto, implementação, testes e manutenção nesta ordem (WATERFALL, 2002); • Prototipação: método baseado na implementação de protótipos do sistema. Cada protótipo é desenvolvido passando pelas etapas de análise, projeto, implementação e testes e, posteriormente, validado pelo usuário do sistema. Após cada validação, o protótipo é corrigido ou adaptado e 18 incrementado, recebendo mais funcionalidades de forma a gerar novo protótipo. Cada novo protótipo está mais próximo da versão final do sistema (SOFTWARE, 2004); • Espiral: este método é baseado em ciclos evolutivos. Cada ciclo representa uma fase do desenvolvimento e é dividido em definição de objetivos, avaliação e redução de riscos, desenvolvimento e teste, e planejamento para a próxima fase (SPIRAL, 2002); • Processo Unificado (PU): método fortemente associado à notação UML (Unified Modelling Language) e conta com as fases de concepção, elaboração, construção e transição. A fase de concepção abrange o estudo de viabilidade e uma parte da análise de requisitos. A fase de elaboração abrange a maior parte da análise de requisitos, a análise de domínio e o projeto. A fase de construção corresponde à programação e aos testes. A fase de transição consiste na instalação e na manutenção do sistema (WAZLAWICK, 2004); • Métodos ágeis: são um conjunto de métodos leves para pequenas e médias equipes de desenvolvedores. Tais métodos são orientados à simplicidade, rapidez e eficiência e incluem a valorização dos indivíduos, interações através de processos e ferramentas, documentação compreensiva, colaboração dos usuários, entre outros. Entre os métodos ágeis, estão o Scrum, o Crystal, o Feature Driven Development, o Adaptive Software Development e, com maior destaque, a XP (eXtreme Programming) (MARTIN, 2002). 3.3.1 eXtreme Programming (XP) Segundo BECK (2004), o método ágil XP, ou programação extrema, é baseado em práticas simples e conta com quatro valores: comunicação, simplicidade, feedback e coragem; um conjunto de princípios; e quatro atividades básicas: codificação, testes, interação constante com o usuário e projeto. Os princípios ou práticas da XP, enumerados por BECK (2004), estão 19 listados a seguir: • Planejamento: definição do escopo da nova versão por meio da combinação de prioridades e estimativas técnicas; • Pequenas versões: o sistema é entregue em pequenas versões para que o usuário possa se beneficiar do sistema tão logo quanto possível; • Metáfora: a equipe se comunica em termos de uma metáfora a respeito do sistema como um todo; • Projeto simples: o sistema deve ser projetado da forma mais simples possível, removendo e evitando complexidades desnecessárias; • Testes: os desenvolvedores efetuam testes de forma contínua e ao longo de todo o processo de desenvolvimento do sistema; • Refatoração: os desenvolvedores reestruturam o sistema sem modificar seu comportamento, a fim de remover e evitar duplicidades, melhorar a comunicação, simplificar e acrescentar flexibilidade; • Programação em pares: todo o processo de codificação é efetuado por meio de pares de programadores trabalhando em um único computador; • Propriedade coletiva: qualquer desenvolvedor pode modificar qualquer parte codificada do sistema a qualquer momento; • Integração contínua: o sistema é integrado e reconstruído diversas vezes ao dia, cada vez que uma tarefa é finalizada; • Carga horária de 40 horas: a equipe não trabalha mais de quarenta horas semanais; • Cliente disponível: um usuário real é incluído na equipe, disponível em período integral para solucionar as dúvidas; • Padrões de codificação: desenvolvedores escrevem os códigos de programação, seguindo regras de modo a enfatizar a comunicação por meio da codificação. O método ágil XP se mostrou apropriado para o desenvolvimento do sistema computacional do presente trabalho, uma vez que este método é indicado para equipes pequenas e médias e visa a simplicidade e a qualidade. Porém, devido a uma das 20 características inerentes ao Trabalho de Conclusão do Curso de Sistemas de Informação, da Universidade do Planalto Catarinense, pela qual os estudos devem ser desenvolvidos por apenas um acadêmico, a prática da programação em pares não é realizada. Desta forma, o processo de desenvolvimento do sistema computacional do presente trabalho é categorizado como um método ágil baseado na eXtreme Programming. 3.4 Conclusão Se analisarmos os aparelhos celulares e os serviços oferecidos por eles desde a década de noventa, percebemos nitidamente a evolução tecnológica ocorrida neste mercado. Constantemente somos surpreendidos com o surgimento de novas funcionalidades que buscam facilitar as nossas atividades cotidianas e oferecer novos meios de entretenimento. (EQUIPE, 2005, p. 72) Uma análise superficial da citação acima confirma que os aparelhos celulares foram bem aceitos e têm se incorporado à vida diária das pessoas na forma de companheiros prestadores de serviços. Ainda, pode-se inferir a partir da mesma citação que os usuários de tais dispositivos vêem com bons olhos as novas funcionalidades que aos poucos são acrescentadas aos aparelhos. A implementação da solução proposta no presente trabalho, utilizando a tecnologia Java Micro Edition e o método ágil de desenvolvimento eXtreme Programming, vem a se enquadrar na realidade atual do mercado, oferecendo portabilidade e qualidade. Ainda, a proposta da execução da solução informatizada em aparelhos celulares leva o estudo e a prática do idioma Inglês a uma vasta gama de estudantes e interessados. A definição do método de desenvolvimento da solução e a escolha da tecnologia são o fundamento para a implementação do software proposto. A mencionada implementação toma forma inicial com a análise e o projeto do sistema informatizado, temas abordados no próximo capítulo. 4 ANÁLISE E PROJETO DO SISTEMA A qualidade de software é o resultado de diversas práticas e, entre estas, está o uso de um processo sistemático, a exemplo da metodologia XP (eXtreme Programming) selecionada para o desenvolvimento do aplicativo proposto no presente trabalho. Neste ínterim, o presente capítulo aborda as fases de análise e projeto do aplicativo lúdico, incluindo o enredo do jogo, explanações a respeito dos artefatos utilizados e a apresentação dos artefatos em si. 4.1 Enredo do jogo O aplicativo lúdico proposto é do tipo jogo de memória, envolvendo a lista de verbos irregulares em inglês, composta pelas formas verbais infinitivo, ou forma base, passado e particípio passado, além do correspondente significado em português. As combinações para o jogo ocorrem em pares, envolvendo as possibilidades e os níveis descritos abaixo, os quais servem para fins de nivelamento de dificuldade: • português e infinitivo: combinação de menor nível de dificuldade; • infinitivo e passado: combinação com nível de dificuldade médio; e • passado e particípio: combinação de maior nível de dificuldade. Outra forma de nivelamento de dificuldade levada em conta é a freqüência com que os verbos irregulares são utilizados em inglês, classificando os verbos de maior freqüência como verbos básicos, os de freqüência média como verbos intermediários e os demais como verbos avançados. Os níveis de dificuldade envolvendo as formas verbais e a freqüência de ocorrência dos verbos são definidos por especialista na área do ensino de inglês. A combinação dos nivelamentos de dificuldade expostos nos parágrafos 22 anteriores gera os seguintes níveis para o jogo: • Nível 1: verbos básicos em português e no infinitivo; • Nível 2: verbos básicos no infinitivo e no passado; • Nível 3: verbos básicos no passado e no particípio; • Nível 4: verbos intermediários em português e no infinitivo; • Nível 5: verbos intermediários no infinitivo e no passado; • Nível 6: verbos intermediários no passado e no particípio; • Nível 7: verbos avançados em português e no infinitivo; • Nível 8: verbos avançados no infinitivo e no passado; • Nível 9: verbos avançados no passado e no particípio. Durante o andamento do jogo, são exibidas três telas consecutivas para cada nível de jogo, totalizando assim, vinte e sete telas exibidas, respeitando a ordem crescente de dificuldade exposta acima. A tela de jogo mostra oito retângulos. Cada retângulo oculta uma palavra escolhida aleatoriamente dentre o grupo das palavras que fazem parte do nível corrente do jogo. Para jogar, o jogador deve selecionar um dos retângulos e esta ação exibe a palavra que o respectivo retângulo ocultava. Em seguida, o jogador deve selecionar outro retângulo. Se ambas as palavras formam um par correto, respeitando o nível do jogo, estas permanecem exibidas na tela; caso contrário, são ocultadas após alguns segundos. A pontuação é calculada considerando o número de vezes que o jogador cometeu erros ao tentar localizar um par de palavras válidas. A contagem de pontos inicia com 80 pontos para cada tela de jogo e, para cada erro, ou seja, para cada duas palavras selecionadas sem formar um par válido, são descontados 8 pontos. Ao encontrar todos os pares de uma tela, os pontos são registrados e o jogo passa à tela seguinte. O registro da pontuação total ocorre em dois momentos: ao final do jogo, o que se dá quando todos os pares de todos os níveis foram encontrados, ou quando o jogador sai do jogo. Caso a pontuação total seja menor do que zero, o valor registrado 23 é zero. Quando um jogo é encerrado antes de exibidas todas as telas de todos os níveis, existe a possibilidade de continuação do mesmo jogo. Neste caso, são exibidos o nível corrente e a pontuação alcançada, porém não são registradas informações na relação de pontuações. Após o término do jogo, o que pode ocorrer quando todas as telas de todos os níveis foram exibidas, surge a tela de pontuação, que permite ao jogador inserir seu nome. Em seguida, é exibida uma lista contendo as últimas cinco pontuações registradas. 4.2 Artefatos aplicados Artefatos são textos, gráficos, diagramas e quadros desenvolvidos com o objetivo de documentar detalhes relativos a cada etapa do processo de desenvolvimento de um software, além de servir de guia para a análise, o projeto, a implementação, os testes e a manutenção do sistema (WAZLAWICK, 2004). A análise é a fase do processo de desenvolvimento de software em que a investigação do problema é enfatizada com o objetivo de produzir uma compreensão profunda sobre o sistema (WAZLAWICK, 2004). Na fase de análise, foram utilizados os seguintes artefatos: • Sumário executivo Documento de texto, em formato livre, que descreve a visão geral do sistema; • Histórias de usuário Documentos redigidos pelo usuário ou cliente, normalmente formatados em pequenos quadros, contendo, cada um, a descrição de uma funcionalidade do sistema; • Definição de requisitos Quadros que organizam e exibem as diversas funcionalidades do sistema. “A fase de projeto enfatiza a proposta de uma solução que atenda aos 24 requisitos da análise.” (WAZLAWICK, 2004, p. 22). Na fase de projeto, foram utilizados os seguintes artefatos: • Diagrama de classes Diagrama que organiza e exibe o conjunto de classes, seus atributos, métodos e associações, contendo toda a lógica do sistema de informação; • Diagrama de estados “(...) indica quais são as janelas que compõe o sistema e quais eventos permitem ao usuário navegar de uma para outra.” (WAZLAWICK, 2004, p. 259). 4.3 Sumário executivo Propõe-se o desenvolvimento de um jogo de memória para apoio ao aprendizado da lista de verbos irregulares em inglês que opere em aparelhos celulares. O jogo deve abranger as formas verbais infinitivo, ou forma base, passado e particípio passado, em Inglês, bem como o significado em Português, para cada verbo utilizado. O jogo deve, ainda, contar com níveis de dificuldade estabelecidos com base nos pares de correspondência português-infinitivo, infinitivo-passado e passado-particípio, e na freqüência de uso dos verbos. Pode-se classificar a freqüência de uso dos verbos em verbos básicos, para os mais utilizados na comunicação, verbos intermediários, para aqueles com uso menos freqüente, e verbos avançados, para os menos utilizados. Ao término do jogo, deve ser possível registrar no dispositivo a pontuação obtida pelo jogador e seu nome. Os últimos cinco registros de pontuações devem ser mantidos. 4.4 Histórias de usuário Em virtude do presente sistema não haver sido requisitado por usuários, as histórias de usuário foram descritas pelo próprio desenvolvedor a fim de detalhar e organizar os aspectos funcionais do aplicativo. 25 Os Quadros 1 a 6 exibem as histórias de usuário relativas ao sistema proposto. QUADRO 1 - História de usuário HU01, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS VERSÃO: 1 REFERÊNCIA: HU01 NOME: Tela de apresentação USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 O jogo deve conter uma tela de apresentação que deve ser exibida como primeira tela antes do usuário ser direcionado à tela principal. QUADRO 2 - História de usuário HU02, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS REFERÊNCIA: HU02 VERSÃO: 1 NOME: Tela inicial USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 O jogo deve conter uma tela inicial com opções de menu em inglês para ajuda, para iniciar novo jogo, para continuar jogo em andamento (se houver informações relativas a jogo já iniciado) e para exibir as pontuações. QUADRO 3 - História de usuário HU03, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS REFERÊNCIA: HU03 VERSÃO: 1 NOME: Tela de jogo USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 A tela de jogo deve conter oito retângulos cada um contendo uma palavra oculta. Ao selecionar um retângulo, a palavra oculta neste é exibida. Um segundo retângulo deve ser selecionado. Se a palavra oculta no segundo retângulo corresponder à palavra do primeiro retângulo selecionado, segundo as regras definidas para o jogo, ambas permanecem na tela. Caso contrário, ambos os retângulos ocultam as palavras novamente após um breve lapso de tempo. 26 QUADRO 4 - História de usuário HU04, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS VERSÃO: 1 REFERÊNCIA: HU04 NOME: Pontuação USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 Para cada tela de jogo, a pontuação deve partir de um valor e descontar os erros do jogador. A pontuação total é formada pela soma dos pontos alcançados em cada tela. Caso a pontuação total seja menor do que zero, seu valor deve ser considerado zero. QUADRO 5 - História de usuário HU05, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS VERSÃO: 1 REFERÊNCIA: HU05 NOME: Tela de fim de jogo USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 A tela de fim de jogo deve surgir em qualquer situação em que o jogador sai do jogo e deve conter a pontuação atingida pelo jogador e uma lista com as últimas cinco maiores pontuações. Se o jogador finalizou o jogo, o que ocorre ao vencer todos os níveis, a tela de fim de jogo deve adicionalmente exibir mensagem a respeito. QUADRO 6 - História de usuário HU06, versão 1. JOGO DE M EMÓRIA PARA APARELHOS CELULARES PARA APOIO AO APRENDIZADO DE VERBOS IRREGULARES EM INGLÊS REFERÊNCIA: HU06 VERSÃO: 1 NOME: Tela de ajuda USUÁRIO: Daniel FUNÇÃO: Desenvolvedor DATA: 07/09/2006 ESFORÇO: 1 A tela de ajuda deve conter explanação do funcionamento do jogo, dos níveis, da pontuação e de como jogar. 27 4.5 Definição de requisitos A partir das histórias de usuário documentadas no item anterior, foram definidos os requisitos detalhados a seguir. 4.5.1 Requisitos funcionais e não-funcionais Requisitos funcionais se referem às operações que constituem as funcionalidades do sistema, já os requisitos não-funcionais estão associados a restrições colocadas sobre como o sistema deve realizar seus requisitos funcionais (WAZLAWICK, 2004). Os Quadros 7 a 15 documentam os requisitos funcionais e não-funcionais identificados para o presente sistema, indicando as correspondentes histórias de usuário. QUADRO 7 - Requisito funcional F1. HU: HU01 versão 1 F1 Exibir tela de apresentação Descrição: O sistema deve mostrar uma tela de apresentação antes da tela inicial. Requisitos não-funcionais Nome Restrição NF1.1 Tempo de exibição A tela de apresentação deve ser exibida durante um período máximo de 5 segundos. NF1.2 Conteúdo O conteúdo da tela de apresentação deve incluir imagem ou logo do jogo bem como logo da empresa ou nome do desenvolvedor. QUADRO 8 - Requisito funcional F2. HU: HU02 versão 1 F2 Exibir tela inicial Descrição: O sistema deve exibir uma tela inicial. Requisitos não-funcionais Nome Restrição NF2.1 Conteúdo O conteúdo da tela inicial deve incluir menu em inglês com opções para ajuda, iniciar novo jogo, continuar jogo em andamento (a partir de informações gravadas de jogo anterior não finalizado) e listar pontuações registradas. 28 QUADRO 9 - Requisito funcional F3. HU: HU03 versão 1 F3 Exibir tela de jogo Descrição: O sistema deve mostrar uma tela para o jogo ao estilo de jogo de memória. Requisitos não-funcionais Nome Restrição NF3.1 Conteúdo A tela de jogo deve conter oito retângulos, cada um contendo uma palavra oculta. As palavras ocultas são distribuídas aleatoriamente. NF3.2 Ciclo de vida A tela de jogo é exibida quando da seleção por parte do jogador da opção de menu para iniciar o jogo na tela inicial e até que este selecione a opção para sair ou todos os níveis de jogo tenham sido finalizados. QUADRO 10 - Requisito funcional F4. HU: HU03 versão 1 F4 Permitir jogadas Descrição: O jogo deve operar como jogo de memória ocultando pares de palavras. Requisitos não-funcionais Nome Restrição NF4.1 Jogada Uma jogada corresponde à seleção de dois retângulos. Com a seleção, os retângulos passam a exibir suas palavras ocultas. Caso as palavras correspondam a um par correto, ambas permanecem exibidas na tela. Caso contrário, as palavras são ocultadas novamente após cerca de cinco segundos. QUADRO 11 - Requisito funcional F5. HU: HU03 versão 1 F5 Controlar níveis de jogo Descrição: O jogo deve avançar em níveis de dificuldade cada vez maiores. Requisitos não-funcionais Nome Restrição NF5.1 Níveis de dificuldade Os níveis de dificuldade estão definidos no item 4.1 que estabelece o enredo do jogo. NF5.2 Avanço dos níveis dificuldade de O avanço dos níveis de dificuldade segue a ordem estabelecida no item 4.1. QUADRO 12 - Requisito funcional F6. HU: HU04 versão 1 F6 Calcular pontuações Descrição: O sistema deve calcular a pontuação do jogo. Requisitos não-funcionais Nome Restrição NF6.1 Cálculo de pontuação O cálculo da pontuação segue a determinação estabelecida no item 4.1 que trata do enredo do jogo. QUADRO 13 - Requisito funcional F7. 29 F7 Manter registro de pontuações HU: HU04 versão 1 Descrição: O sistema deve manter registro de pontuações atingidas pelos jogadores que terminaram o jogo. Requisitos não-funcionais Nome Restrição NF7.1 Informações do registro de O registro de pontuação deve incluir o nome do jogador e os pontos pontuação alcançados. NF7.2 Registros mantidos O sistema deve manter registro das últimas cinco maiores pontuações. QUADRO 14 - Requisito funcional F8. HU: HU05 versão 1 F8 Exibir tela de fim de jogo Descrição: O sistema deve exibir tela de fim de jogo. Requisitos não-funcionais Nome Restrição NF8.1 Conteúdo A tela de fim de jogo deve conter a pontuação atingida pelo jogador e uma lista com as últimas cinco pontuações em ordem decrescente. Caso o jogador tenha finalizado todos os níveis do jogo, a tela de fim de jogo deve adicionalmente exibir mensagem a respeito. NF8.2 Encerramento do jogo O jogo pode ser encerrado de duas formas: quando o jogador seleciona a opção de menu finalizar durante o jogo, ou quando todos os níveis do jogo foram finalizados. QUADRO 15 - Requisito funcional F9. HU: HU06 versão 1 F9 Exibir tela de fim de jogo Descrição: O sistema deve exibir tela de ajuda. Requisitos não-funcionais Nome Restrição NF9.1 Conteúdo A tela ajuda deve conter explicações a respeito do funcionamento do jogo, dos níveis de dificuldade, da pontuação e detalhes práticos de como jogar. NF9.2 Acesso O acesso à tela de ajuda deve se dar por meio de opção de menu na tela inicial. 4.5.2 Requisitos suplementares Requisitos suplementares estão associados às funcionalidades que são gerais para o sistema (WAZLAWICK, 2004). O Quadro 16 enumera os requisitos suplementares do sistema proposto. 30 QUADRO 16 - Requisitos suplementares. Nome Restrição S1 Lista de verbos irregulares Devido a restrições de espaço para armazenamento de informações nos dispositivos celulares, serão utilizados apenas os verbos irregulares listados no Apêndice I. S2 Tecnologia Com a finalidade de disponibilizar o aplicativo para o maior número possível de aparelhos celulares, deve-se utilizar a tecnologia Java Micro Edition, configuração CLDC 1.0 e perfil MIDP 1.0 para o desenvolvimento do sistema. S3 Idioma Considerando o contexto educacional do aplicativo, os menus, títulos de janelas e comandos devem estar no idioma inglês e o conteúdo das telas deve estar no idioma português. Exceção é feita para a tela de jogo, a qual contemplará os idiomas inglês e português conforme o nível de jogo. 4.6 Diagrama de classes A Figura 3 exibe o diagrama das classes necessárias para a implementação do aplicativo. São desenvolvidas quatro classes: MemoBoxCanvas, VerbMemoryMIDlet, MemoryCard e GameEngine. A classe VerbMemoryMIDlet MemoBoxCanvas estende a estende classe a MIDlet, classe Canvas. implementa A a classe interface CommandListener e é composta pela classe MemoBoxCanvas. As classes MIDlet e Canvas e a interface CommandListener fazem parte da plataforma de desenvolvimento Java Micro Edition. A classe VerbMemoryMIDlet contém todas as telas que trocam informações com o usuário, exceto a tela de jogo, a qual é desenvolvida na classe MemoBoxCanvas. A classe MemoryCard representa os cartões, ou retângulos, que fazem parte das telas de jogo e contêm informações para seu desenho na tela, palavra oculta e condição da correta associação de sua palavra oculta. A classe GameEngine é responsável pelo controle geral do jogo bem como pela persistência de informações. Além de atributos e métodos instanciáveis, esta classe contém alguns métodos estáticos, os quais são acessados diretamente pela classe VerbMemory. 31 FIGURA 3 - Diagrama de classes. 32 4.7 Diagrama de estados A Figura 4 mostra o diagrama de estados do aplicativo e esclarece que o jogo conta com uma tela de apresentação, uma tela inicial, uma tela de ajuda, uma tela de fim de jogo que solicita o nome do jogador, uma tela contendo a lista das últimas cinco pontuações registradas e uma tela de jogo. FIGURA 4 - Diagrama de estados. 4.8 Conclusão A análise de um sistema serve de base para o seu projeto, uma vez que esta etapa tem o objetivo de propiciar o entendimento do problema. O projeto, por sua vez, é a base para o desenvolvimento da solução. Neste contexto, o presente capítulo apresenta os fundamentos para o desenvolvimento do aplicativo lúdico proposto. 33 As fases de implementação e testes do processo de desenvolvimento do sistema objeto do presente trabalho, apresentadas no próximo capítulo, estão intimamente relacionadas com os resultados obtidos na análise realizada, bem como com o projeto definido no presente capítulo. 5 IMPLEMENTAÇÃO DO APLICATIVO A implementação do aplicativo proposto no presente estudo envolve o conhecimento das características específicas da tecnologia utilizada, bem como a familiarização com recursos que diferem dos disponibilizados para o desenvolvimento de soluções desktop e web. Desta forma, a fim de auxiliar no processo de familiarização com a tecnologia, o desenvolvimento da solução segue a seguinte ordem: primeiramente, as telas de interface com codificação em alto nível são implementadas; em seguida, a tela de jogo, que requer codificação em baixo nível, é desenvolvida; e, por fim, a lógica de jogo e a persistência de informações são implementadas em paralelo. O presente capítulo apresenta as informações mencionadas acima, exibindo figuras contendo as telas do aplicativo, quadros contendo trechos de código-fonte e explicações detalhadas do processo de desenvolvimento. 5.1 Características de implementações Java Micro Edition A implementação de aplicativos para aparelhos celulares utilizando a plataforma JME (Java Micro Edition) possui características inerentes às limitações dos dispositivos físicos (hardware) a que se destinam os aplicativos, tais como baixa capacidade de processamento e pouco espaço para armazenamento. Desta forma, o desenvolvimento da solução proposta no presente trabalho segue as diretrizes comentadas por LI e KNUDSEN (2005), MATTOS (2005) e ELOI JÚNIOR (2007), que resultam nos itens abaixo: • O aplicativo possui a menor quantidade possível de objetos; • Os objetos possuem a menor quantidade possível de atributos e métodos; • Laços de repetição, variáveis e objetos estáticos são utilizados com 35 cautela. Ainda, devido ao tamanho reduzido das telas dos aparelhos celulares, conforme comenta MUCHOW (2004), as mensagens e os textos são curtos, claros e precisos. 5.2 Implementação das telas do aplicativo O ambiente de desenvolvimento NetBeans, versão 5.0, utilizado para a implementação do aplicativo oferece facilidades gráficas para a codificação de interfaces de usuário, respeitando as limitações mencionadas no item anterior. Uma das facilidades é a elaboração de um diagrama de fluxo para o aplicativo, a exemplo da Figura 5, com a vantagem de que, ao incluir componentes de interface e suas dependências, a codificação correspondente é gerada automaticamente. FIGURA 5 - Diagrama de fluxo gerado no NetBeans 5.0. A implementação de componentes de interface utilizando as facilidades gráficas do ambiente NetBeans é suficiente para muitas das necessidades de uma aplicação. As Figuras 6, 7 e 8 mostram a tela de boas-vindas (Figura 6a), a tela 36 principal (Figura 6b), a tela de ajuda (Figura 7a), a tela de pontuações (Figura 7b) e a tela de fim de jogo (Figura 8). Estas telas são desenvolvidas com base nas facilidades de recursos gráficos citados anteriormente e suas imagens são geradas pelo simulador de dispositivos móveis do ambiente NetBeans. (a) (b) FIGURA 6 - Tela de boas-vindas (a) e tela principal (b). O simulador do ambiente NetBeans exibe um dispositivo genérico com tela de 240 pixels de largura por 320 pixels de altura. Porém, as telas dos aparelhos celulares podem ser de tamanho bastante reduzido quando comparadas ao dispositivo exibido no simulador. A tela de boas-vindas do aplicativo exibe uma imagem no formato PNG (Portable Network Graphics) fixa, em tons de cinza, que é incluída no aplicativo e referenciada de forma a ocupar o local desejado. A título de exemplo de codificação Java Micro Edition, o Quadro 17 exibe um trecho do código utilizado para capturar a ação de comandos exibidos na tela de interface com o usuário. 37 (a) (b) FIGURA 7 - Tela de ajuda (a) e tela de pontuações (b). O trecho de exemplo mostra o método commandAction que é invocado sempre que um comando exibido na tela do aplicativo é selecionado. Este método recebe como parâmetros um objeto Command, que representa o comando selecionado, e um objeto Displayable, que representa o componente visual exibido quando da seleção do comando. Com base nas informações do comando selecionado e do objeto visual exibido, códigos condicionais são utilizados para determinar ações a tomar. No exemplo do Quadro 17, o código condicional verifica se o objeto Displayable é a tela de boas-vindas, referenciada como formWelcome, e se o objeto Command é a opção Next, referenciada como cmdNext. Caso positivo, a tela principal é obtida por meio do método get_formMain() e exibida utilizando-se para isso o método setCurrent(Displayable) do objeto Display capturado por meio do método getDisplay(). 38 FIGURA 8 - Tela de fim de jogo. QUADRO 17 - Fragmento de código para capturar e tratar a seleção de comandos. 1 public void commandAction(Command command, 2 Displayable displayable) { 3 4 if (displayable == formWelcome) { 5 if (command == cmdNext) { 6 7 getDisplay().setCurrent(get_formMain()); 8 9 } 10 } 11 ... 12 } 5.2.1 Tela de jogo A tela de jogo requer maior controle dos componentes de interface com o usuário como, por exemplo, o posicionamento exato, a alteração de estado de apenas alguns componentes e a gerência de atributos pela implementação do aplicativo e não pela máquina virtual do dispositivo. Essas características exigem objetos diferentes dos utilizados pelas facilidades gráficas disponibilizadas pelo ambiente NetBeans. Desta forma, a tela de jogo é desenvolvida por meio da extensão da classe Canvas, que é 39 parte integrante da máquina virtual Java Micro Edition e permite maior controle da tela do dispositivo. A extensão da classe Canvas permite que cada componente visual seja criado, posicionado e desenhado por meio de instruções detalhadas codificadas pelo desenvolvedor. A Figura 9 mostra a visão em alto nível da codificação da classe MemoBoxCanvas, que estende a classe Canvas e é responsável pelo desenho da tela de jogo e de seus componentes visuais, bem como pela captura e tratamento da seleção de comandos. Na classe MemoBoxCanvas, o método paint(Graphics) efetua o desenho da tela de jogo, o método buildDrawCards(Graphics) é responsável pela construção dos objetos que representam os cartões de memória e pelo seu desenho na tela, o método keyPressed(int) captura e trata o pressionamento de qualquer tecla no dispositivo, o método getLevelText() traz informações textuais a respeito do próximo nível de jogo, os métodos privados de navegação são encarregados de efetuar a navegação visual entre os cartões de memória na tela de jogo e o método select() captura e trata a seleção de um cartão de memória. As Figuras 10 e 11 mostram, respectivamente, a tela de jogo em quatro estados: estado inicial (Figura 10a), durante o jogo (Figura 10b), tela completada com êxito (Figura 11a) e exibição de informações de jogo (Figura 11b). O estado inicial da tela de jogo exibe oito cartões de memória. Por padrão, o primeiro cartão da primeira fila recebe o foco e, durante o jogo, os cartões selecionados exibem as palavras anteriormente ocultas. Se o par de palavras selecionadas tem correspondência, este permanece visualizado na tela. Caso contrário, as palavras nos cartões são novamente ocultas. Quando uma tela de jogo é completada com êxito, esta exibe as palavras de todos os cartões de memória e, após após alguns segundos, a mesma tela exibe as informações de jogo atuais, isto é, o nível atual e a pontuação atingida até o momento. 40 FIGURA 9 - Esquema da codificação da classe MemoBoxCanvas em alto nível. (a) (b) FIGURA 10 - Tela de jogo inicial (a) e tela durante o jogo (b). 41 (a) (b) FIGURA 11 - Tela de jogo completa (a) e tela exibindo informações de jogo (b). 5.3 Implementação da lógica do aplicativo A lógica do aplicativo, isto é, as regras do jogo, incluem a construção e seleção de cartões de memória, a exibição de palavras, a verificação dos pares selecionados, a contabilização de erros e acertos, o avanço tela após tela e nível após nível e a persistência de informações. Estas operações são efetuadas pela classe GameEngine, cuja codificação é apresentada em visão de alto nível na Figura 12. Além do método construtor, responsável pela instanciação inicial de alguns atributos da classe, e dos métodos get e set, que permitem acesso aos atributos desta, a classe GameEngine possui 11 métodos operacionais: • selectPairs(MemoryCard[]) é responsável pela seleção e apresentação aleatória de pares de verbos irregulares conforme o nível corrente de jogo; • checkPair(MemoryCard[], int, int) verifica se um par de palavras está corretamente associado; • goNextScreen(MemoryCard[]) providencia o avanço do jogo para a próxima tela, ajustando o nível de jogo sempre que necessário; • finishGame() realiza o encerramento do jogo persistindo as informações 42 necessárias; • saveStatus() é responsável pela persistência da situação corrente de jogo para que possa haver a continuação do mesmo; • canContinue() é um método estático utilizado para verificar se existe a possibilidade de continuação do jogo; • getLevelPoints() é um método estático que retorna o nível e a pontuação correntes; • cancelPreviousGame() é um método estático que cancela informações de jogo para não haver a possibilidade de continuação do mesmo; • registerScore(String) é um método estático que efetua a persistência do nome do jogador e de sua pontuação; FIGURA 12 - Esquema da codificação da classe GameEngine em alto nível. 43 • getScores() é um método estático que retorna os nomes dos últimos cinco melhores jogadores e suas respectivas pontuações; • saveScores(String[]) é um método estático que efetua a persistência dos nomes dos últimos cinco melhores jogadores e suas respectivas pontuações. 5.3.1 Persistência das informações A persistência das informações é realizada por meio do uso de métodos da classe RecordStore, que é parte integrante da máquina virtual Java Micro Edition e atua de modo bastante simplificado, quando comparada a recursos de bases de dados. A classe RecordStore opera com coleções de registros na forma de array de bytes e possui recursos para armazenar, recuperar, remover, atualizar e ordenar registros, entre outros. O Quadro 18 mostra um exemplo de codificação da recuperação de informações persistidas. No exemplo, o método getLevelPoints() retorna um array contendo dois objetos do tipo String representando o nível e a pontuação persistidos. Na linha 9, o método openRecordStore(String, boolean) abre uma coleção de registros com o nome passado pelo parâmetro String. O parâmetro boolean do mesmo método informa ao RecordStore se uma coleção de registros deve ser criada caso não haja coleção com o nome informado. As linhas 20 e 21 mostram a recuperação de registros, sua transformação em objetos String e inclusão no array que retorna como resultado do método getLevelPoints(). Ainda, as linhas 31 e 32 se encarregam de ajustar o nível de jogo para 1, correspondente à primeira posição no array de String, e a pontuação para 0, correspondente à segunda posição no array de String, caso a coleção de registros com o nome informado não seja localizada. No aplicativo, as informações sujeitas à persistência se dividem em dois tipos: informações persistidas temporariamente e informações persistidas permanentemente. As informações com persistência temporária são o nível corrente de jogo e a pontuação atingida, que servem para possibilitar a continuação do jogo. Estas 44 informações são armazenadas sempre que um nível de jogo é finalizado, o que ocorre após serem completadas corretamente três telas de jogo de um mesmo nível. As informações com persistência permanente são o nome do jogador e sua pontuação, e são utilizadas para exibir a lista dos últimos cinco melhores jogadores em termos de pontos atingidos. Estas informações são armazenadas sempre que o jogo é finalizado por iniciativa do jogador ou quando todos os níveis foram corretamente completados. QUADRO 18 - Fragmento de código para a recuperação de informações. 1 public static String[] getLevelPoints() { 2 String[] result = new String[ 2 ]; 3 RecordStore rs = null; 4 try { 5 rs = RecordStore.openRecordStore( "GameStatus", false ); 6 } catch ( RecordStoreException ex ) { 7 rs = null; 8 } 9 if ( rs != null ) { 10 try { 11 result[ 0 ] = new String( rs.getRecord( 1 ) ); 12 result[ 1 ] = new String( rs.getRecord( 2 ) ); 13 rs.closeRecordStore(); 14 } catch ( Exception ex ) { 15 result = null; 16 } 17 } else { 18 result[ 0 ] = "1"; 19 result[ 1 ] = "0"; 20 } 21 return result; 22 } 5.4 Documentação da implementação A implementação de um aplicativo pode ocorrer de diversas maneiras, seguindo padrões pré-estabelecidos, costumes praticados pelo desenvolvedor ou uma mescla destes. Assim, a documentação da implementação serve de base para orientar o próprio desenvolvedor, ou outros desenvolvedores que venham a ter contato com a implementação, quanto aos passos seguidos para a codificação do aplicativo de forma a auxiliar a sua manutenção, modificação ou extensão. O aplicativo está documentado de duas formas: comentários para o entendimento da codificação e documentação para a geração de API (Application 45 Programming Interfaces ou Interfaces de Programação de Aplicativos). 5.4.1 Comentários de codificação Os comentários de codificação são normalmente curtos e objetivos e visam esclarecer funcionalidades ou trechos de código-fonte. Estes comentários são escritos no próprio código-fonte. A plataforma Java ignora comentários, de forma que estes não influenciam a aplicação em si. As linhas 1 e 2 do Quadro 19 mostram um exemplo de comentário de codificação em Java. 1 2 3 4 5 QUADRO 19 - Trecho de código-fonte com comentário de codificação. // Se o nome do jogador for nulo ou vazio, // registra nome como "Anônimo". if ( name == null || name.length() == 0 ) { name = "Anônimo"; } 5.4.2 Documentação para API A documentação para API é normalmente mais extensa que os comentários, incluindo detalhes a respeito das funcionalidades de classes, métodos e atributos bem como informações a respeito de parâmetros e retornos de métodos. Este tipo de documentação serve para a geração de documentos de fácil acesso e utilização, os quais podem ser distribuídos ou publicados separadamente do código-fonte. A plataforma Java possibilita a escrita da documentação no próprio códigofonte. Uma ferramenta da máquina virtual Java, conhecida como Javadoc, é utilizada para extrair as informações e organizá-las na forma de documentos HTML (HyperText Markup Language). Os documentos HTML são dispostos de forma a possibilitar fácil navegação entre eles. As linhas 1 a 13 do Quadro 20 mostram exemplo de documentação de código-fonte para API em Java. QUADRO 20 - Trecho de código-fonte com documentação de codificação. 46 1 /** 2 * Verifica se o par é válido e ajusta os cartões para 3 * indicar sua situação. 4 * 5 * @param memoryCard Vetor de objetos da classe 6 * MemoryCard. 7 * @param firstWordShown Inteiro indicando a posição da 8 * primeira palavra a verificar. 9 * @param secondWordShown Inteiro indicando a posição da 10 * segunda palavra a verificar. 11 * @return Boolean indicando se o par de 12 * palavras está correto. 13 */ 14 public boolean checkPair( MemoryCard[] memoryCards, 15 int firstWordShown, int secondWordShown ) { 16 ... 17 } 5.5 Conclusão A implementação da solução permite colocar em prática o estudo, a análise e o projeto do aplicativo proposto, fazendo surgir necessidades reais para a aplicação do conhecimento. Neste contexto, devido à escolha da versão 1.0 do perfil MIDP (Mobile Information Device Profile) para o desenvolvimento da solução, com a finalidade de possibilitar que o aplicativo opere numa maior quantidade de aparelhos celulares, fazse necessário o estudo prático da classe Canvas, integrante da plataforma Java Micro Edition. Esta classe requer a codificação de detalhes dos objetos de interface com o usuário, bem como da captura de ações. Por outro lado, a versão 2.0 do MIDP oferece Customs Items e Game API que são facilidades gráficas para os mesmos objetos e ações. Ainda, como característica inerente à plataforma Java Micro Edition para a persistência de informações, a classe RecordStore tem codificação e lógica de funcionamento distintos das bases de dados utilizadas em sistemas desktop e web, exigindo mais estudos e experimentações por parte do desenvolvedor. Diversos testes e verificações foram realizados durante todo o processo de desenvolvimento do aplicativo e, após a finalização da implementação, ocorreram os 47 testes de validação. O próximo capítulo aborda detalhes a respeito da metodologia de testes e da sua realização. 6 TESTES DO APLICATIVO O presente capítulo aborda os testes de verificação realizados no aplicativo durante o processo de implementação e apresenta informações a respeito de testes de validação realizados, comentando os resultado obtidos. 6.1 Testes de validação A realização de testes, essenciais para aplicativos de qualquer porte, envolve diversas verificações tais como sintaxe, semântica, lógica, aspectos visuais, bem como a validação das funcionalidades requeridas (BRAUDE, 2005). Os testes de verificação do aplicativo são realizados com base na técnica de desenvolvimento orientado a testes, ou TDD (Test-Driven Development), em que cada bloco de código é testado em todas as suas funcionalidades logo após a codificação (TELES, [2006]). O uso desta técnica “... é adotada em muitos processos ágeis de desenvolvimento, como o Extreme Programming (XP)” (TELES, 2006, p. 47) no qual se baseia o desenvolvimento do aplicativo objeto do presente trabalho. Os testes de validação são elaborados de forma a possibilitar a avaliação tecnológica e pedagógica do aplicativo por parte de usuários voluntários. A natureza pedagógica do aplicativo suscita dois tipos de testes de validação: a validação tecnológica, inerente ao próprio aplicativo, e a validação pedagógica, ligada a seu objetivo principal que envolve o apoio ao ensino de inglês. A validação tecnológica foi realizada por alunos e professores do Curso de Sistemas de Informação da UNIPLAC – Universidade do Planalto Catarinense, localizada em Lages, S.C. A validação pedagógica foi realizada pela diretora e professores de uma instituição de ensino de inglês no mesmo município. Em ambos os casos, as validações ocorreram por meio do uso do aplicativo e respostas a questionários. 49 Com o propósito de facilitar o processo de validação, elaborou-se um website com as seguintes características: • Hospedagem no computador servidor da Coordenação do Curso de Sistemas de Informação da UNIPLAC – Universidade do Planalto Catarinense; • Desenvolvimento com tecnologia a Java Enterprise Edition versão 1.4; • Disponibilização pelo aplicativo servidor Apache Tomcat versão 5.5.20; • Página principal contendo informações sobre o trabalho de conclusão de curso, o aplicativo, requisitos mínimos e instruções de instalação; • Página de download com acesso ao aplicativo e instruções para instalação via computador PC bem como instruções para instalação opcional diretamente no dispositivo móvel do usuário; • Contabilização de downloads realizados – o responsável pelo trabalho de conclusão de curso recebe um e-mail informativo cada vez que é realizado o download do aplicativo; • Página de acesso às pesquisas de validação, que exige identificação do usuário e contém informações a respeito das pesquisas; • Página para a pesquisa pedagógica – disponível apenas após a identificação do usuário; • Página para a pesquisa tecnológica – disponível apenas após a identificação do usuário; • Página de contato com formulário e endereço de e-mail; • Envio de mensagens via e-mail para o responsável pelo trabalho de conclusão de curso e cópia para o remetente. Esta funcionalidade está disponível para as mensagens enviadas via formulário de contatos e para as respostas da pesquisa enviadas pelo usuário. Os questionários e o aplicativo foram disponibilizados para o público validar e indicar sugestões por um período de três meses compreendido entre março e maio de 2007. Paralelamente, a aplicação foi divulgada a alunos, professores e comunidade externa à Universidade; porém, o retorno foi muito aquém do esperado. Por outro lado, 50 os questionários respondidos apresentaram diversas sugestões para a melhoria do aplicativo bem como para pesquisas futuras. Os testes de validação ocorreram em vários modelos de aparelhos celulares das marcas Nokia, Samsung e Motorola. Alguns destes modelos ofereciam suporte à versão 1.0 do perfil JME MIDP (Java Micro Edition Mobile Information Device Profile), que é mais limitado, e outros suportavam a versão 2.0 deste perfil, que oferece mais recursos. 6.1.1 Validação pedagógica O objetivo da validação pedagógica é avaliar o quanto o aplicativo apóia o ensino dos verbos irregulares em inglês e quão estimulante é o jogo. A validação pedagógica do aplicativo conta com o apoio de um questionário contendo sete perguntas objetivas e um espaço para sugestões, conforme observado no Apêndice II. O questionário foi inteiramente desenvolvido com o acompanhamento da diretora de uma instituição de ensino de inglês. Os resultados expostos na Tabela 1 indicam que, de um modo geral, o aplicativo desenvolvido cumpre com o aspecto pedagógico de seu objetivo, qual seja o apoio ao ensino de inglês. TABELA 1 - Resultado da pesquisa de validação pedagógica Perguntas / Opções de respostas Muito Bastante Indiferente Quanto você aprendeu jogando? 33,33 % 50,00 % 16,67 % Você acha que este jogo ajuda na memorização? 33,34 % 66,67 % Você acha que os verbos são muito repetidos durante o jogo? 16,66 % O tempo que as palavras permanecem na tela durante o jogo é apropriado? 50,00 % 50,00 % A dificuldade dos verbos selecionados está de acordo com os níveis? 66,68 % 16,66 % Você acha que aprender através de jogos facilita o aprendizado? 33,33 % 66,67 % Você sente que este jogo incentiva a jogar mais? 33,33 % 50,00 % 33,34 % Pouco Muito Pouco 16,66 % 33,34 % 16,66 % 16,67 % 51 6.1.2 Validação tecnológica O objetivo da validação tecnológica é avaliar o quanto o aplicativo cumpre com as funcionalidades propostas, sua facilidade de uso e o comprometimento de espaço no dispositivo. A validação tecnológica do aplicativo conta com o apoio de um questionário contendo sete perguntas objetivas e um espaço para sugestões, conforme observado no Apêndice III. O questionário foi desenvolvido com a supervisão de dois professores universitários da área de Informática. Conforme poder ser visto na Tabela 2, a solução implementada é tecnologicamente viável, cumprindo assim com o objetivo de disponibilizar um aplicativo capaz de operar em aparelhos celulares. TABELA 2 - Resultado da pesquisa de validação tecnológica Indiferente Pouco Muito Pouco O espaço de 20KB utilizado pelo aplicativo compromete o espaço total disponível no seu dispositivo móvel? 14,28 % 14,28 % 71,44 % O tempo de carregamento do aplicativo é longo? 28,57 % 28,57 % 48,86 % Perguntas / Opções de respostas Muito Bastante As instruções de jogo são claras? 14,28 % 71,44 % A disposição das opções (novo jogo, ajuda, finalizar, pontuações, etc.) facilitam a operação do aplicativo? 28,57 % 48,86 % O tamanho da fonte das palavras visualizadas durante o jogo está satisfatório? 42,86 % 57,14 % A navegação e a seleção durante o jogo estão satisfatórias? 28,57 % 57,15 % O acompanhamento dos resultados durante e ao final do jogo está claro? 57,14 % 48,86 % 14,28 % 28,57 % 14,28 % 6.2 Conclusão Embora o retorno das pesquisas de validação tenha sido aquém do esperado, diversas sugestões surgiram durante o processo de validação da solução. Muitas destas sugestões foram registradas para pesquisas futuras, uma vez que fugiam do escopo 52 tecnológico do aplicativo, e várias outras foram de fato implementadas. As informações obtidas e as observações efetuadas no decorrer do processo de desenvolvimento do aplicativo permitem a formulação de um conjunto de idéias para a extensão ou a adaptação da solução, assunto abordado no próximo capítulo. 7 CONSIDERAÇÕES FINAIS Tendo surgido a partir de uma constatação prática, a de que os aparelhos celulares têm se difundido, tornando-se acessíveis a diversas classes de usuários, e têm alcançado capacidades computacionais que permitem várias funcionalidades, a proposta do presente trabalho apresenta um potencial concreto para a difusão de recursos educacionais atingindo várias classes sociais. O desenvolvimento da solução envolveu estudos sobre o ensino de idiomas aliado a atividades lúdicas, visando identificar uma atividade elegível para o aplicativo; pesquisas sobre a implementação de sistemas computacionais para dispositivos móveis, incluindo abordagens a respeito dos aspectos tecnológicos e de processo de desenvolvimento de software, com o objetivo de definir a tecnologia e o processo de desenvolvimento que melhor de adaptam às necessidades da solução; a elaboração da análise e do projeto do sistema, possibilitando organizar, planejar e projetar a solução; bem como estudos práticos voltados para a codificação e os testes, com o intuito de implementar, verificar e validar o aplicativo. Devido ao fato de existirem diferenças significativas entre os diversos modelos de aparelhos celulares no tocante às funcionalidades disponibilizadas, buscou-se utilizar apenas os recursos mínimos oferecidos pela tecnologia JME (Java Micro Edition) comuns a todos os dispositivos que a suportam, os quais, conforme estudos documentados no presente trabalho, perfazem a maioria dos tipos de dispositivos móveis. Assim, a solução desenvolvida cumpre com os objetivos propostos de identificar uma atividade lúdica para apoio ao aprendizado de inglês e disponibilizá-la na forma de um aplicativo capaz de operar na maior variedade possível de dispositivos celulares. Alguns aspectos importantes no desenvolvimento de aplicativos para 54 aparelhos celulares observados durante a implementação da solução incluem: capacidades reduzidas nos dispositivos para processamento e armazenamento de dados; limitações de tamanho da área visual; e limitações para a entrada e a saída de dados. Os citados aspectos tornam o desenvolvimento de aplicativos para pequenos dispositivos um processo diferente das implementações para desktop e web, o suficiente para exigir do desenvolvedor estudos aprofundados de suas características e recursos. A proposta do presente trabalho não tem a intenção de ser considerada um marco no desenvolvimento de aplicativos educacionais para aparelhos celulares; ao contrário, quer demonstrar a possibilidade de aliar o lúdico à educação e aos dispositivos móveis. A solução desenvolvida mostrou que é possível conseguir, por meio de um aplicativo que opera em aparelhos celulares, resultados pedagógicos similares aos obtidos nas atividades lúdicas utilizadas em salas de aula. Com relação ao recurso lúdico proposto, ao simular um jogo de memória, este atingiu o objetivo pedagógico de auxiliar os estudantes na memorização da lista de verbos irregulares em inglês. Futuras pesquisas e/ou extensões do presente trabalho poderiam incluir recursos como os disponibilizados pelas versões 2.0 e 3.0 do perfil JME MIDP (Mobile Information Device Profile), tais como: o uso de cores; a inclusão de recursos de áudio; o uso de animações como, por exemplo, na inicialização do aplicativo e durante o jogo, quando um cartão de memória é selecionado, fazendo-o virar para exibir seu conteúdo; e a utilização do recurso de vibração do aparelho celular. Ademais, trabalhos futuros podem incluir a criação de uma versão apropriada para dispositivos móveis com teclado tipo QWERTY, como PDAs (Personal Digital Assistants) e SmartPhones, os quais possuem mais recursos computacionais e de interfaces com o usuário, e pesquisas mais aprofundadas podem considerar a criação de versões do aplicativo para séries específicas de dispositivos móveis levando em conta recursos especialmente disponibilizados pelos seus fabricantes. Outrossim, uma vez que o desenvolvimento do aplicativo foi realizado segundo conceitos de orientação a objetos, o software pode ser facilmente adaptado 55 para o treino e/ou ensino de outros assuntos, desde que mantendo as funcionalidades de um jogo de memória. Desta forma, tópicos gramaticais, conceituais, fonéticos, ortográficos, etc., provenientes das áreas de línguas, literatura, matemática, história, geografia, biologia, física e química, para citar algumas, podem se beneficiar do aplicativo lúdico disponibilizado no presente trabalho. REFERÊNCIAS BIBLIOGRÁFICAS BECK, K. Programação Extrema (XP) Explicada: acolha as mudanças. Porto Alegre: Bookman, 2004. 182 p. BRAUDE, E. Projeto de Software: da programação à arquitetura: uma abordagem baseada em Java. Porto Alegre: Bookman, 2005. 619 p. CARNIEL, J.; TEIXEIRA, C. Introdução ao J2ME. Web Mobile. Curitiba: Neofício, ano I. p. 11-12, fev./mar. 2005. CLASSE C E JOVENS lideram posse de celular em São Paulo. Cidade Biz. [fev. 2006]. Crescimento da posse de aparelhos celulares em São Paulo. Disponível em: <http://cidadebiz.oi.com.br/noticias/noticia.php?artigo_id=34946>. Acessado em: 07 mai. 2006. EQUIPE Webmobile. Entrevista: Marcelo Nunes de Carvalho. Web Mobile. Curitiba: Neofício, ano I. p. 72-74, fev./mar. 2005. GAME. In: The American Heritage Dictionary of the English Language. 3. ed. Cambridge, USA: The Learning Company, 1995. GAMES to Teach English Learners. International Teacher Training Organization. Guadalajara, Mexico: ITTO, [2007?]. Artigo sobre o uso de jogos para o ensino de inglês incluindo exemplos. Disponível em: <http://www.teflcertificatecourses.com/teflarticles/games-teach-english-learners.html>. Acessado em: 25 mar. 2007. GRAMIGNA, M. R. M. Jogos de empresa e técnicas vivenciais. São Paulo: Makron Books, 1997. 216 p. GRASIA!. J2ME-grasia!: MIDP. Apresenta a arquitetura MIDP de Java Micro Edition. Universidade Complutense de Madrid. Departamento de Sistemas Informáticos y Programación. Madrid, Espanha: grasia!, [2004?]. Disponível em: <http://grasia.fdi.ucm.es/j2me/_J2METech/MIDP.html>. Acessado em: 22 jul. 2006. GROS, B. The Impact of Digital Games in Education. First Monday - Peer-Reviewed Journal of the Internet. Chicago, USA: First Monday, v. 8, n. 7, jul. 2003. Disponível em: <http://www.firstmonday.org/issues/issue8_7/xyzgros/index.html>. Acessado em: 29 jul. 2006. 57 JAVA Licensee Support from Sun. Santa Clara, USA: Sun Microsystems, 2006. Informações ao licenciado Java da Sun. Disponível em: <http://www.sun.com/software /jpe/ls/index.xml>. Acessado em: 22 jul. 2006. JÚNIOR, ELOI. Otimização de Aplicações Java ME. Web Mobile. Curitiba: Neofício, 12. ed. ano 2. p. 28-36, 2007. LANGUAGE. In: The New Encyclopaedia Britannica: Macropaedia. 15. ed. Chicago, USA: Encyclopaedia Britannica, v. 22, p. 563, 1994. LEAL, M. Começando com Java Wireless. Java Magazine. Curitiba: Neofício, 18. ed., ano III. p. 16-17, [2005]. LEARNING and Cognition, Human: Language. In: The New Encyclopaedia Britannica: Macropaedia. 15. ed. Chicago, USA: Encyclopaedia Britannica, v. 22, p. 883, 1994. LEE, W. R. Language-Teaching Games and Contests. London, UK: Oxford University Press, 1965. 166 p. LEIGUARDA, A. Making it memorable. English Teaching Professional. 20. ed. London, UK: Modern English Publishing, p. 48-50, jul. 2001. LETHABY, C. Skyline 4: Teacher's Guide. Oxford, UK: Macmillan Education, 2002. LI, S.; KNUDSEN, J. Beginning J2ME: From Novice to Professional. 3. ed. Berkeley, USA: Apress, 2005. LUDIC. In: The American Heritage Dictionary of the English Language. 3. ed. Cambridge, USA: The Learning Company, 1995. MACCALLUM, G. P. 101 word games: for students of english as a second or foreign language. Oxford, UK: Oxford University, 1980. 162 p. MARTIN, R. C. Agile Processes. Illinois, EUA: Agile Alliance, 2002. Disponível em: <http://www.objectmentor.com/resources/articles/agileProcess.pdf>. Acessado em: 4 jan. 2007. MATTOS, E. T. Programação Java para Wireless: Aprenda a Desenvolver Sistemas em J2ME! São Paulo: Digerati, 2005. 125 p. MUCHOW, J. W. Core J2ME: tecnologia & MIDP. São Paulo: Pearson Education, 2004. 588 p. PAVETITS, L. Conexão em Movimento. Web Mobile. Curitiba: Neofício, ano I. p. 47, fev./mar. 2005. PHILLIPS, A. Presenting tenses 1. English Teaching Professional. 37. ed. London, UK: Modern English Publishing, p. 18-20, mar. 2005. 58 SHERRON, G. T.; BOETTCHER, J. V. Distance Learning: The Shift to Interactivity. Cause Professional Paper Series. Boulder, USA: Cause, n. 17, 1997. Disponível em: <http://www.educause.edu/ir/library/pdf/pub3017.pdf>. Acessado em: 29 jul. 2006. SMARTPHONE. In: Wikipedia: The Free Encyclopedia. St. Peterburg, USA: Wikimedia Foundation, 2006. Disponível em: <http://en.wikipedia.org/wiki/Smartphone>. Acessado em: 25 mai. 2006. SOFTWARE Prototyping. In: Wikipedia: The Free Encyclopedia. St. Peterburg, USA: Wikimedia Foundation, 2004. Disponível em: <http://en.wikipedia.org/wiki/ Software_Prototyping>. Acessado em: 4 jan. 2007. SPIRAL Model. In: Wikipedia: The Free Encyclopedia. St. Peterburg, USA: Wikimedia Foundation, 2002. Disponível em: <http://en.wikipedia.org/wiki/ Spiral_model>. Acessado em: 4 jan. 2007. TELES, V. M. Test-Driven Development: Dos Testes à Implementação, Passo a Passo e sem Receios. Java Magazine. Curitiba: Neofício, 32. ed., ano IV. p. 46-57, [2006]. VERB. In: The American Heritage Dictionary of the English Language. 3. ed. Cambridge, USA: The Learning Company, 1995. VERISIGN Brasil. Uma Nova Era nas Telecomunicações. White Paper. São Paulo: Verisign Brasil. p. 10-13. 2006. WAZLAWICK, R. S. Análise e Projeto de Sistemas de Informação Orientados a Objetos. Rio de Janeiro: Elsevier/Campus, 2004. WATERFALL Model. In: Wikipedia: The Free Encyclopedia. St. Peterburg, USA: Wikimedia Foundation, 2002. Disponível em: <http://en.wikipedia.org/wiki/ Waterfall_model>. Acessado em: 4 jan. 2007. WRIGHT, A.; BETTERIDGE, D.; BUCKBY, M. Games for language learning. 2. ed. New York, USA: Cambridge University, 1996. 212 p. BIBLIOGRAFIA COMPLEMENTAR AGILE Alliance. Informações sobre processos ágeis de desenvolvimento de software. 2006. Disponível em: <http://www.agilealliance.org/>. Acessado em: 22 jul. 2006. AMBLER, S. W. Modelagem ágil: práticas eficazes para a programação extrema e o processo unificado. Porto Alegre: Bookman, 2004. 351 p. CRYSTAL, D. English as a Global Language. Cambridge, UK: Cambridge University Press, 1997. GUJ: Notícias, tutoriais, e o maior fórum brasileiro sobre Java. Disponível em: <http://www.guj.com.br/>. Acessado em: 04 nov. 2006. HOW to Write Doc Comments for the Javadoc Tool. Sun Developer Network (SDN). Santa Clara, USA: Sun Microsystems, 2006. Tutorial sobre o uso da ferramenta de documentação Javadoc. Disponível em: <http://java.sun.com/j2se/javadoc/writing doccomments/index.html>. Acessado em: 11 dez. 2006. JAVA.NET: The Source for Java Technology Collaboration. Santa Clara, USA: Sun Microsystems, 2006. Tutoriais, exemplos, projetos e informações sobre Java. Disponível em: <http://www.java. net/>. Acessado em: 11 nov. 2006. MOBILITY Device Matrix. Sun Developer Network (SDN). Santa Clara, USA: Sun Microsystems, 2006. Tabela de dispositivos móveis e características tecnológicas. <http://developers.sun.com/techtopics/mobility/device/device>. Acessado em: 21 jun. 2006. NETBEANS IDE Tutorials, Guides, and Articles. Santa Clara, USA: Sun Microsystems, [2006]. Tutoriais, guias e artigos sobre a ferramenta de desenvolvimento NetBeans 5.0. Disponível em: <http://www.netbeans.org/kb/50/ index.html>. Acessado em: 11 nov. 2006. OXFORD, R.; SHEARIN, J. Language Learning Motivation: Expanding the Theoretical Framework. Modern Language Journal, v. 78, n. 1, p. 12-28, 1994. PFLEEGER, S. L. Engenharia de Software: Teoria e Prática. 2. ed. São Paulo: Prentice Hall, 2004. 535 p. POLLOCK, C. W. Communicate What You Mean: A Concise Advanced Grammar. 2. ed. Upper Saddle River, USA: Prentice-Hall, 1997. 311 p. 60 PORTALJAVA.COM. Brasil, 2005. Tutoriais, artigos e fóruns sobre Java. Disponível em: <http://www.portaljava.com/>. Acessado em: 02 dez. 2006. RAMON, H. S. Acesso remoto a horários de ônibus: Uma abordagem de acesso a dispositivos móveis utilizando J2ME e MIDP. 2004. 157 f. Trabalho de Conclusão de Curso (Bacharelado em Ciências da Computação) - Departamento de Informática e Estatística, Universidade Federal de Santa Catarina, Florianópolis. SHIN, S. Java Passion. 2006. Cursos, palestras, tutoriais e exercícios sobre Java. Disponível em: <http://www.javapassion.com>. Acessado em: 11 nov. 2006. SOMMERVILLE, I. Engenharia de Software. 6. ed. São Paulo: Addison Wesley, 2003. 592 p. THE JAVA ME Platform: the Most Ubiquitous Application Platform for Mobile Devices. Sun Developer Network (SDN). Santa Clara, USA: Sun Microsystems, 2006. Informações sobre a plataforma Java Micro Edition. <http://java.sun.com/javame/ index.jsp>. Acessado em: 04 nov. 2006. WELLS, J. D. Extreme Programming: A Gentle Introduction. Informações sobre o processo ágil de desenvolvimento de software XP (Extreme Programming). 2006. Disponível em: <http://www.extremeprogramming.org/>. Acessado em: 22 jul. 2006. APÊNDICES APÊNDICE I – VERBOS IRREGULARES UTILIZADOS.................................. 62 APÊNDICE II – QUESTIONÁRIO DE VALIDAÇÃO PEDAGÓGICA.............. 65 APÊNDICE III – QUESTIONÁRIO DE VALIDAÇÃO TECNOLÓGICA......... 66 APÊNDICE IV – UM APLICATIVO LÚDICO PARA APOIO AO ENSINO DE INGLÊS ATRAVÉS DE DISPOSITIVOS MÓVEIS......... 67 APÊNDICE I – VERBOS IRREGULARES UTILIZADOS Conforme requisito suplementar S1, constante no Quadro 17 mencionado no item 4.5.2, seguem abaixo os verbos irregulares em inglês utilizados no aplicativo, incluindo as formas verbais infinitivo, passado e particípio, bem como o correspondente significado em português. Ao todo, foram utilizados setenta e oito verbos irregulares, distribuídos em igual quantidade entre os níveis básico, intermediário e avançado, conforme indicado nos Quadros 21, 22 e 23, respectivamente. As tarefas de seleção dos verbos irregulares, definição dos níveis básico, intermediário e avançado, e distribuição dos verbos nos níveis, contaram com o apoio da diretora de uma instituição de ensino de inglês. QUADRO 21 - Verbos irregulares do nível básico. Português Infinitivo Passado Particípio ser/estar be was/were been comprar buy bought bought vir come came come cortar cut cut cut fazer do did done beber drink drank drunk dirigir drive drove driven comer eat ate eaten dar give gave given ir go went gone ter have had had ouvir hear heard heard manter keep kept kept perder lose lost lost colocar put put put ler read read read 63 correr run ran run ver see saw seen vender sell sold sold sentar sit sat sat dormir sleep slept slept falar speak spoke spoken gastar spend spent spent levar take took taken ensinar teach taught taught escrever write wrote written QUADRO 22 - Verbos irregulares do nível intermediário. Português Infinitivo Passado Particípio tornar-se become became become quebrar break broke broken trazer bring brought brought construir build built built custar cost cost cost lutar fight fought fought encontrar find found found voar fly flew flown esquecer forget forgot forgotten conseguir get got gotten crescer grow grew grown manter hold held held emprestar lend lent lent fazer make made made encontrar meet met met pagar pay paid paid soar ring rang rang dizer say said said enviar send sent sent definir set set set suportar stand stood stood roubar steal stole stolen nadar swim swam swum contar tell told told pensar think thought thought vencer win won won 64 QUADRO 23 - Verbos irregulares do nível avançado. Português Infinitivo Passado Particípio começar begin began begun morder bite bit bitten soprar blow blew blown pegar catch caught caught escolher choose chose chosen cair fall fell fallen sentir feel felt felt perdoar forgive forgave forgiven machucar hurt hurt hurt saber know knew known deitar lay laid laid partir leave left left deixar let let let acender light lit lit desistir quit quit quit andar de ride rode ridden disparar shoot shot shot mostrar show showed shown afundar sink sank sunk fincar stick stuck stuck varrer sweep swept swept rasgar tear tore torn lançar throw threw thrown perturbar upset upset upset acordar wake woke woken usar wear wore worn APÊNDICE II – QUESTIONÁRIO DE VALIDAÇÃO PEDAGÓGICA Conforme mencionado no item 6.1.1, segue abaixo o questionário utilizado para a validação pedagógica do aplicativo. Por favor, marque apenas uma alternativa para os itens 1 a 7. 1. Quanto você aprendeu jogando? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 2. Você acha que este jogo ajuda na memorização? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 3. Você acha que os verbos são muito repetidos durante o jogo? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 4. O tempo que as palavras permanecem na tela durante o jogo é apropriado? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 5. A dificuldade dos verbos selecionados está de acordo com os níveis? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 6. Você acha que aprender através de jogos facilita o aprendizado? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 7. Você sente que este jogo incentiva a jogar mais? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 8. Sugestões: ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ APÊNDICE III – QUESTIONÁRIO DE VALIDAÇÃO TECNOLÓGICA Conforme mencionado no item 6.1.2, segue abaixo o questionário utilizado para a validação tecnológica do aplicativo. Por favor, marque apenas uma alternativa para os itens 1 a 7. 1. O espaço de 20KB utilizado pelo aplicativo compromete o espaço total disponível no seu dispositivo móvel? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 2. O tempo de carregamento do aplicativo é longo? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 3. As instruções de jogo são claras? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 4. A disposição das opções (novo jogo, ajuda, finalizar, pontuações, etc.) facilitam a operação do aplicativo? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 5. O tamanho da fonte das palavras visualizadas durante o jogo está satisfatório? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 6. A navegação e a seleção durante o jogo estão satisfatórias? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 7. O acompanhamento dos resultados durante e ao final do jogo está claro? ( ) Muito ( ) Bastante ( ) Indiferente ( ) Pouco ( ) Muito pouco 8. Sugestões: ___________________________________________________________ ___________________________________________________________ ___________________________________________________________ APÊNDICE IV – UM APLICATIVO LÚDICO PARA APOIO AO ENSINO DE INGLÊS ATRAVÉS DE DISPOSITIVOS MÓVEIS Daniel D'Ávila Mombach, Sabrina Bet, Angelo Augusto Frozza Universidade do Planalto Catarinense (UNIPLAC) Caixa Postal 525 – 88.509-900 – Lages – SC – Brasil {danielddm,sabrina,frozza}@uniplac.net Abstract. Distance learning has been intensified along the last few decades and, most recently, it has been allied to the facilities offered by Informatics. The same way, the use of mobile technology has been intensified, bringing up the practicability of having a device capable of various useful services at hand. Additionally, mobile devices, such as cell phones and smart phones, have reached levels of technologic development allowing for uncountable computational functionalities. Thus, this work proposes the implementation of a ludic application, to help English learning, able to operate on a vast range of mobile phones and, for that, the Java Micro Edition development platform is used. Resumo. O ensino à distância tem se intensificado nas últimas décadas e, mais recentemente, tem se aliado às facilidades oferecidas pela informática. Da mesma forma, a utilização da tecnologia móvel tem se intensificado, trazendo consigo a praticidade de se ter à mão um dispositivo capaz de prestar vários serviços úteis. Adicionalmente, dispositivos móveis, como os aparelhos celulares e os telefones inteligentes, têm atingido níveis de desenvolvimento tecnológico que possibilitam inúmeras funcionalidades computacionais. Assim, o presente trabalho propõe a implementação de um aplicativo lúdico para apoio ao ensino de inglês, capaz de operar em uma vasta gama de aparelhos celulares, sendo utilizada para isto a plataforma de desenvolvimento Java Micro Edition. 1. Introdução O fenômeno da globalização suscita, entre outros aspectos, a necessidade de padronizações em várias áreas e, neste contexto, a língua inglesa tem se firmado como uma linguagem de comunicação internacional de facto o que embasa a importância do domínio deste idioma (Crystal, 1997). O processo de aprendizagem de um idioma envolve diversas atividades, variados recursos e uma boa dose de interesse dos sujeitos envolvidos. Dentre as atividades educacionais, os jogos representam um importante papel devido a sua principal característica, qual seja a concentração quase sempre espontânea dos esforços dos estudantes (Games, 2007). 68 Outro fenômeno contemporâneo relevante vem a ser a proliferação de dispositivos móveis passíveis de processamento de informações, a exemplo dos aparelhos celulares, os quais têm apresentado melhoria significativa nas suas capacidades de processamento e armazenamento de dados (Equipe, 2005). Os aparelhos celulares têm alcançado níveis tecnológicos que permitem aliar a informática à educação com vantagens, tendo em vista seu baixo custo e sua praticidade de uso. Neste ínterim, o presente trabalho propõe a implementação de uma atividade lúdica capaz de operar na maior variedade possível de aparelhos celulares, com a finalidade de estimular estudantes do idioma inglês na memorização e na prática dos verbos irregulares visto que, segundo Phillips (2005), estes estudantes enfrentam muita dificuldade para aprender os tempos verbais. Este artigo está organizado em seis seções que abordam desde a contextualização do lúdico no ensino de idiomas até os resultados alcançados e propostas para pesquisas futuras. 2. Atividades Lúdicas no Ensino de Idiomas Segundo Lethaby (2002), ninguém sabe exatamente como se aprende um idioma, entretanto, existem várias atividades que auxiliam o processo de ensino-aprendizagem. Neste contexto, as atividades lúdicas são exemplos que, conforme comentam Wright, Betteridge e Buckby (1996), são reconhecidamente apreciadas por jovens e adultos. Atividades lúdicas, devido às suas características inerentes envolvendo circunstâncias prazerosas e estimulantes, podem ser dirigidas para o ensino e a prática de diversos assuntos e situações, uma vez que não oferecem restrições quanto à faixa etária dos participantes. Estas atividades têm sido utilizadas na educação e no treinamento em diversos contextos e com variados objetivos. Ainda, jogos podem ser utilizados para ambientar grupos de estudantes, propiciar interação entre grupos heterogêneos, bem como internalizar conhecimentos adquiridos. Os jogos são uma das modalidades de atividades lúdicas que envolve competição e vontade de superação. Na área do ensino de idiomas, ajudam professores a criar contextos nos quais a linguagem adquire significado e, uma vez que os estudantes fazem questão de participar, devem entender o que os outros dizem ou escrevem e devem ser capazes de se fazer entender. Muitos jogos propiciam a mesma intensidade de prática dos exercícios convencionais, oferecendo qualidade. Neste contexto, a contribuição dos exercícios está no uso freqüente da linguagem durante um período limitado de tempo, o que é possível em muitos tipos de jogos. Adicionalmente, Wright, Betteridge e Buckby (1996, p. 1) comentam que, “fazendo a linguagem transmitir informações e opinião, os jogos oferecem a característica chave dos exercícios incluindo a oportunidade de sentir o trabalho da linguagem como comunicação ativa”. O ensino do idioma inglês tem se beneficiado com o uso de atividades lúdicas em todos os níveis de aprendizado, especialmente quando estas simulam situações reais em ambientes distantes do convívio constante com a linguagem e a cultura de povos de fala inglesa. Jogos podem oferecer prática para todas as habilidades envolvidas na transmissão e aquisição do conhecimento do idioma inglês, nomeadamente, leitura, escrita, escuta e fala; em todos os estágios de ensino/aprendizado, os quais sejam, apresentação, repetição, reordenação e livre uso da linguagem; bem como para diversos tipos de situações de comunicação. Desta forma, atividades lúdicas cooperam concretamente no aprendizado, fixação e construção da 69 fluência da língua inglesa. Alguns tipos de jogos educativos utilizados no ensino de inglês incluem (Lee, 1965; Games, 2007): jogos orais, jogos de pronúncia, jogos de ortografia e jogos de leitura e escrita. Maccallum (1980) comenta que, quando considerada a importância da competência comunicativa no idioma estudado, um dos principais objetivos no domínio de um idioma, bem como a necessidade de uso espontâneo e criativo da linguagem, salienta-se o papel significativo dos jogos de palavras para atingir tais objetivos, os quais envolvem as habilidades de leitura e escrita, separadamente ou em conjunto, e podem ser elaborados de diversos modos. Alguns tipos de jogos educativos com palavras são listados a seguir (Lee, 1965; Games, 2007): jogos com flash-cards, jogos de associação, jogos de rimas ou canções e jogos de escrita. Partindo destes estudos, a atividade lúdica selecionada para a implementação da solução proposta no presente artigo é um jogo de memória, que se enquadra entre os jogos de leitura e escrita, na modalidade de jogo de palavras, os quais cumprem um papel significativo na construção da competência comunicativa do estudante. 3. Desenvolvimento de Sistemas para Dispositivos Móveis Mattos (2005) comenta que, atualmente, a produção de dispositivos móveis em o todo mundo é bem superior à de computadores pessoais. Esta afirmação traz em si inferências que incluem aumento da demanda por desenvolvedores de sistemas informatizados para dispositivos móveis e a popularização de tais equipamentos. Embora os dispositivos móveis incluam aparelhos celulares, PDAs (Personal Digital Assistants), smart phones, microcomputadores e outros dispositivos conectados, o presente estudo foca os aparelhos celulares, devido a sua popularidade e abrangência. Uma vez que os dispositivos móveis ainda não são totalmente equivalentes aos computadores pessoais, apresentando limitações no tocante ao espaço para armazenamento de informações e aplicações e à capacidade de processamento, o desenvolvimento de sistemas para estes dispositivos exige conhecimentos e tecnologia específicos. Uma das principais ferramentas utilizadas para o desenvolvimento de sistemas para dispositivos móveis é a plataforma JME (Java Micro Edition). A tecnologia de desenvolvimento Java é uma das mais completas opções entre as ferramentas oferecidas aos desenvolvedores de software (Mattos, 2005). Entre as vantagens do uso de JME para o desenvolvimento de sistemas destaca-se que uma solução desenvolvida com esta plataforma não se restringe a determinados fabricantes ou modelos de equipamentos, podendo a solução ser executada em qualquer dispositivo em que o fabricante tenha instalado uma máquina virtual Java. Os principais recursos da tecnologia Java são: a máquina virtual, cuja principal funcionalidade é a interpretação de comandos Java para que o sistema operacional do dispositivo possa entendê-los e executá-los; a linguagem de programação Java, utilizada pelos desenvolvedores de sistemas; e o ambiente de desenvolvimento, conhecido como JDK (Java Development Kit), que permite a escrita de programas em Java, sua verificação e validação, incluindo diversos recursos organizados na forma de APIs (Application Programming Interfaces). 70 A Figura 1 exibe um esquema da tecnologia Java incluindo suas diferentes edições. Cada edição contém características e funcionalidades específicas para uma área da computação. Figura 1. Resumo da tecnologia Java e suas diferentes edições. (Fonte: Java, 2006) Devido ao fato de que a tecnologia JME abrange uma grande diversidade de hardware, ela é dividida em configurações, perfis e APIs opcionais (Li e Knudsen, 2005). As configurações JME fornecem os serviços básicos para que as aplicações possam ser executadas, incluindo sistemas de comunicação, segurança interna da máquina virtual e acoplamento com o dispositivo. Os perfis compõe um conjunto de APIs padronizadas que, combinadas com uma configuração, fornecem todas as funcionalidades necessárias para que as aplicações possam ser executadas em uma determinada família de dispositivos (Carniel e Teixeira, 2005). Figura 2. Esquema da tecnologia JME. (Fonte: Grasia!, 2004) A solução proposta no presente artigo foca a utilização da tecnologia JME com a 71 configuração CLDC 1.0 (Connected Limited Device Configuration 1.0) e o perfil MIDP 1.0 (Mobile Information Device Profile 1.0), conforme esquema exibido na Figura 2, de forma que o sistema desenvolvido possa ser executado na maior variedade possível de aparelhos celulares. 4. Análise e Projeto do Sistema O aplicativo lúdico proposto é do tipo jogo de memória, envolvendo a lista de verbos irregulares em inglês, a qual é composta pelas formas verbais infinitivo, ou forma base, passado e particípio passado, além do correspondente significado em português. São definidos nove níveis de dificuldade para o jogo, determinados a partir das formas verbais e da freqüência de ocorrência dos verbos. Os níveis e a seleção dos verbos são definidos por um especialista na área do ensino de inglês. A tela de jogo mostra oito retângulos, cuja estrutura é indicada na Figura 3. Cada retângulo oculta uma palavra escolhida aleatoriamente dentre o grupo das palavras que fazem parte do nível corrente do jogo. Para jogar, o jogador deve selecionar um dos retângulos e esta ação exibe a palavra que o respectivo retângulo ocultava. Em seguida, o jogador deve selecionar outro retângulo. Se ambas as palavras formam um par correto, estas permanecem exibidas na tela; caso contrário, são ocultadas após alguns segundos. Durante o andamento do jogo são exibidas três telas consecutivas para cada nível de jogo, totalizando vinte e sete telas exibidas, respeitando a ordem crescente de dificuldade definida. Figura 3. Estrutura da tela de jogo. A pontuação é calculada considerando o número de vezes que o jogador cometeu erros ao tentar localizar um par válido de verbos. A contagem de pontos inicia com 80 pontos para cada tela de jogo e, para cada erro, ou seja, para cada duas palavras selecionadas sem formar um par válido, são descontados 8 pontos. A pontuação mínima é zero, ou seja, apenas os 10 primeiros erros são registrados. Ao encontrar todos os pares de uma tela, os pontos são registrados e o jogo passa à tela seguinte. O registro da pontuação total ocorre em dois momentos: ao final do jogo, o que se dá quando todos os pares de todos os níveis foram encontrados, ou quando o jogador decide abandonar o jogo. Caso a pontuação total seja menor do que zero, o valor registrado é zero. Quando um jogo é encerrado antes de exibidas todas as telas de todos os níveis, existe a possibilidade de continuação do mesmo jogo. Neste caso, são exibidos o nível corrente e a pontuação alcançada, porém não são registradas informações na relação das melhores 72 pontuações. O desenvolvimento do aplicativo transcorreu com base no método ágil XP (eXtreme Programming) uma vez que este método é indicado para equipes pequenas e médias, visando a simplicidade e a qualidade (Beck, 2004). Ademais, o citado método prevê as cinco fases principais para o desenvolvimento de aplicativos (Braude, 2005), quais sejam: análise, projeto, implementação, testes e manutenção. 5. Implementação do Aplicativo A implementação do aplicativo proposto envolveu o conhecimento das características específicas da tecnologia utilizada, bem como a familiarização com recursos que diferem dos disponibilizados para o desenvolvimento de soluções desktop e web. Desta forma, a fim de auxiliar no processo de familiarização com a tecnologia, o desenvolvimento da solução seguiu a seguinte ordem: primeiramente, as telas de interface com codificação em alto nível foram implementadas; em seguida, a tela de jogo, que requer codificação em baixo nível, foi desenvolvida; e, por fim, a lógica de jogo e a persistência de informações foram implementadas em paralelo. O desenvolvimento de aplicativos para aparelhos celulares utilizando a plataforma Java Micro Edition possui características inerentes às limitações dos dispositivos físicos (hardware) a que se destinam, tais como baixa capacidade de processamento e pouco espaço para armazenamento. Assim, o desenvolvimento da solução seguiu as seguintes diretrizes, comentadas por Li e Knudsen (2005), Mattos (2005) e Júnior (2007): o aplicativo possui a menor quantidade possível de objetos; os objetos possuem a menor quantidade possível de atributos e métodos; e laços de repetição, variáveis e objetos estáticos são utilizados com cautela. Ainda, devido ao tamanho reduzido das telas dos aparelhos celulares, conforme comenta Muchow (2004), as mensagens e os textos são curtos, claros e precisos. Figura 4. Diagrama de fluxo gerado no NetBeans 5.0. Para o desenvolvimento do sistema, foi utilizado o ambiente de desenvolvimento integrado NetBeans, versão 5.0, devido ao fato de ser esta uma ferramenta gratuita que oferece facilidades gráficas para a codificação de interfaces de usuário, e de haver à disposição vasta documentação e tutoriais para seu uso. 73 A Figura 4 exibe o diagrama de fluxo para o aplicativo, elaborado no NetBeans. A principal vantagem da elaboração deste diagrama está em que, ao incluir componentes de interface e suas dependências, a codificação correspondente é gerada automaticamente. A implementação de componentes de interface utilizando as facilidades gráficas do ambiente NetBeans é suficiente para muitas das necessidades de uma aplicação. A tela de boasvindas, a tela principal, a tela de ajuda, a tela de pontuações e a tela de fim de jogo são desenvolvidas com base nas facilidades de recursos gráficos do ambiente NetBeans. A tela de jogo requer maior controle dos componentes de interface com o usuário, como por exemplo, posicionamento exato, alteração de estado de apenas alguns componentes e gerência de atributos a partir da implementação do aplicativo e não pela máquina virtual do dispositivo. Essas características exigem objetos diferentes dos utilizados pelas facilidades gráficas disponibilizadas pelo ambiente NetBeans. Desta forma, a tela de jogo foi desenvolvida por meio de extensão da classe Canvas, que é parte integrante da máquina virtual Java Micro Edition e permite maior controle da tela do dispositivo. A Figura 5 exibe imagens da tela de jogo em duas situações: estado inicial (Figura 5a) e durante um jogo (Figura 5b). As imagens foram capturadas a partir do simulador do ambiente NetBeans. O simulador exibe um dispositivo móvel genérico com tela de 320 pixels de altura por 240 pixels de largura; porém, as telas dos aparelhos celulares podem ter tamanho bastante reduzido quando comparadas ao dispositivo exibido no simulador. (a) (b) Figura 5. Tela de jogo inicial (a) e tela durante o jogo (b). A lógica do aplicativo, isto é, as regras do jogo, incluem a construção e seleção de cartões de memória, a exibição de palavras, a verificação dos pares selecionados, a contabilização de erros e acertos, o avanço tela após tela e nível após nível e a persistência de informações. Para estas operações, foi desenvolvida a classe GameEngine. Algumas informações do aplicativo estão sujeitas à persistência. Tais informações são dividas em dois tipos: informações persistidas temporariamente e informações persistidas permanentemente. As informações com persistência temporária são o nível corrente de jogo e a pontuação atingida, que servem para possibilitar a continuação do jogo. Estas informações são armazenadas sempre que um nível de jogo é finalizado, o que ocorre após serem completadas corretamente três telas de jogo de um mesmo nível. As informações com persistência permanente são o nome do jogador e sua pontuação, e estas são utilizadas para 74 exibir a lista dos últimos cinco melhores jogadores em termos de pontos atingidos. Todas as operações de persistência fazem uso dos recursos da classe RecordStore, que é parte integrante da máquina virtual Java para dispositivos móveis. Uma vez que a implementação de um aplicativo pode ocorrer de diversas maneiras, seguindo padrões pré-estabelecidos, costumes praticados pelo desenvolvedor ou uma mescla destes, se faz necessária a documentação da implementação, que serve de base para orientar o próprio desenvolvedor, ou outros desenvolvedores que venham a ter contato com a implementação, quanto aos passos seguidos para a codificação do aplicativo de forma a auxiliar a sua manutenção, modificação ou extensão. Assim, a documentação do aplicativo ocorre de duas formas: comentários para o entendimento da codificação e documentação para a geração de API. Os comentários de codificação, escritos no próprio código-fonte, são curtos e objetivos e visam esclarecer funcionalidades ou trechos de código-fonte. A documentação para API é mais extensa que os comentários e inclui detalhes a respeito das funcionalidades de classes, métodos e atributos, bem como informações a respeito de parâmetros e retornos de métodos. Uma ferramenta da máquina virtual Java conhecida como Javadoc é utilizada para extrair as informações para a geração da documentação para API e organizá-las na forma de documentos HTML (HyperText Markup Language) de fácil acesso e navegação. 5.1. Testes do Aplicativo O aplicativo foi submetido a testes de verificação realizados com base na técnica de desenvolvimento orientado a testes, ou TDD (Test-Driven Development), em que cada bloco de código foi testado em todas as suas funcionalidades logo após a codificação. O uso desta técnica “... é adotada em muitos processos ágeis de desenvolvimento, como o Extreme Programming (XP)” (Teles, 2006, p. 47). Ainda, a natureza do aplicativo suscita dois tipos de testes de validação: a validação tecnológica, inerente ao próprio aplicativo, e a validação pedagógica, ligada a seu objetivo principal que envolve o apoio ao ensino de inglês. A validação tecnológica foi realizada por alunos e professores do Curso de Sistemas de Informação da UNIPLAC – Universidade do Planalto Catarinense, localizada em Lages, S.C. A validação pedagógica foi realizada pela diretora e professores de uma instituição de ensino de inglês no mesmo município. Em ambos os casos, as validações ocorreram por meio do uso do aplicativo e de respostas a questionários publicados em um website desenvolvido para este fim. Os testes foram realizados no simulador de dispositivos móveis do ambiente de desenvolvimento NetBeans e em vários modelos de aparelhos celulares das marcas Nokia, Samsung e Motorola. Alguns destes modelos ofereciam suporte ao perfil JME MIDP 1.0, que é mais limitado, e outros suportavam o perfil JME MIDP 2.0, que oferece mais recursos. 5.2. Validação As respostas aos questionários das validações pedagógica e tecnológica foram contabilizadas e transformadas em valores percentuais para auxiliar no seu entendimento. Os resultados expostos na Tabela 1 indicam que, de um modo geral, o aplicativo desenvolvido cumpre com o aspecto pedagógico de seu objetivo, qual é o apoio ao ensino de inglês. Diversas sugestões surgiram durante o processo de validação da solução e, embora 75 muitas destas tenham sido registradas para pesquisas futuras, uma vez que fugiam do escopo tecnológico do aplicativo, várias outras foram de fato implementadas. Tabela 1. Resultado da pesquisa de validação pedagógica Perguntas / Opções de resposta Muito Bastante Indiferente Quanto você aprendeu jogando? 33,33 % 50,00 % 16,67 % Você acha que este jogo ajuda na memorização? 33,34 % 66,67 % Você acha que os verbos são muito repetidos durante o jogo? 16,66 % O tempo que as palavras permanecem na tela durante o jogo é apropriado? 50,00 % 50,00 % A dificuldade dos verbos selecionados está de acordo com os níveis? 66,68 % 16,66 % Você acha que aprender através de jogos facilita o aprendizado? 33,33 % 66,67 % Você sente que este jogo incentiva a jogar mais? 33,33 % 50,00 % 33,34 % Pouco Muito Pouco 16,66 % 33,34 % 16,66 % 16,67 % Conforme a Tabela 2, a solução implementada é tecnologicamente viável, cumprindo assim com o objetivo de disponibilizar um aplicativo capaz de operar em aparelhos celulares. Tabela 2. Resultado da pesquisa de validação tecnológica Indiferente Pouco Muito Pouco O espaço de 20KB utilizado pelo aplicativo compromete o espaço total disponível no seu dispositivo móvel? 14,28 % 14,28 % 71,44 % O tempo de carregamento do aplicativo é longo? 28,57 % 28,57 % 48,86 % Perguntas / Opções de resposta Muito Bastante As instruções de jogo são claras? 14,28 % 71,44 % A disposição das opções (novo jogo, ajuda, finalizar, pontuações, etc.) facilitam a operação do aplicativo? 28,57 % 48,86 % O tamanho da fonte das palavras visualizadas durante o jogo está satisfatório? 42,86 % 57,14 % A navegação e a seleção durante o jogo estão satisfatórias? 28,57 % 57,15 % O acompanhamento dos resultados durante e ao final do jogo está claro? 57,14 % 48,86 % 14,28 % 28,57 % 14,28 % As pesquisas de validação indicaram alguns pontos negativos, cujos índices estão destacados nas Tabelas 1 e 2. Os pontos negativos identificados estão sendo tratados a fim de melhorar o aplicativo desenvolvido. 76 6. Considerações Finais O desenvolvimento do aplicativo lúdico para aparelhos celulares aqui proposto, com a finalidade de possibilitar aos estudantes do idioma inglês a prática e a memorização dos verbos irregulares, vem a colaborar com o seu aprendizado e tem condições de se tornar acessível a muitos estudantes. Algumas dificuldades surgiram durante a implementação da solução, uma vez que o desenvolvimento de aplicativos para dispositivos móveis apresenta características bastante diferentes das implementações para sistemas desktop ou web; porém, a principal dificuldade no desenvolvimento do aplicativo é inerente aos equipamentos aos quais se destina, nomeadamente o tamanho de suas telas, o que requer informações textuais breves e claras em títulos, comandos, menus e conteúdos. A solução desenvolvida tem caráter genérico, no sentido em que utiliza apenas recursos mínimos de implementação a fim de cumprir com o objetivo de se tornar operacional na maior variedade possível de aparelhos celulares e, devido a este fato, vários recursos foram deliberadamente desconsiderados. Tais recursos incluem a aplicação de cores, animações, sons, vibração e maior exploração de imagens. Trabalhos futuros podem considerar os citados recursos, prevendo o desenvolvimento de aplicativos adaptados para variadas séries de dispositivos celulares e incluindo funcionalidades e facilidades específicas de cada fabricante. Além dos recursos citados, pesquisas podem ser desenvolvidas no que se refere ao uso dos perfis Java Micro Edition MIDP 2.0 e MIDP 3.0, os quais oferecem diversas funcionalidades e facilidades, bem como o desenvolvimento para dispositivos com teclado alfanumérico tipo QWERTY semelhantes aos teclados encontrados em computadores pessoais. Referências Beck, K. (2004) “Programação Extrema (XP) Explicada”: acolha as mudanças. Porto Alegre, Bookman, 182 p. Braude, E. (2005) “Projeto de Software”: da programação à arquitetura: uma abordagem baseada em Java. Porto Alegre, Bookman, 619 p. Carniel, J.; Teixeira, C. (2005) Introdução ao J2ME. “Web Mobile”. Curitiba, Neofício, ano I, p. 11-12, fev./mar. Crystal, D. (1997) English as a Global Language. Cambridge, UK, Cambridge University Press. Equipe Webmobile (2005). Entrevista: Marcelo Nunes de Carvalho. “Web Mobile”. Curitiba, Neofício, ano I, p. 72-74, fev./mar. Games to Teach English Learners. (2007?) “International Teacher Training Organization”. Guadalajara, Mexico, ITTO. Disponível em: <http://www.teflcertificatecourses.com/teflarticles/games-teach-english-learners.html>. Acessado em: 25 mar. 2007. Grasia!. (2004?) “J2ME-grasia!: MIDP”. Universidade Complutense de Madrid. Disponível em: <http://grasia.fdi.ucm.es/ j2me/_J2METech/MIDP.html>. Acessado em: 22 jul. 2006. Java Licensee Support from Sun. (2006) Santa Clara, USA: Sun Microsystems. Disponível em: <http://www.sun.com/software/jpe/ls/index.xml>. Acessado em: 22 jul. 2006. 77 Júnior, Eloi. (2007) Otimização de Aplicações Java ME. “Web Mobile”. Curitiba, Neofício, 12. ed, Ano 2, p. 28-36. Lee, W. R. (1965) “Language-Teaching Games and Contests”. London, UK, Oxford University Press, 166 p. Lethaby, C. (2002) “Skyline 4: Teacher's Guide”. Oxford, UK, Macmillan Education. Li, S.; Knudsen, J. (2005) “Beginning J2ME”: From Novice to Professional. 3. ed. Berkeley, USA, Apress. Maccallum, G. P. (1980) “101 word games”: for students of english as a second or foreign language. Oxford, UK, Oxford University, 162 p. Mattos, E. T. (2005) “Programação Java para Wireless”: Aprenda a Desenvolver Sistemas em J2ME! São Paulo, Digerati, 125 p. Muchow, J. W. (2004) Core J2ME: tecnologia & MIDP. São Paulo, Pearson Education, 588 p. Phillips, A. (2005) Presenting tenses 1. “English Teaching Professional”. 37. ed, London, UK, Modern English Publishing, p. 18-20, mar. Teles, V. M. (2006) Test-Driven Development: Dos Testes à Implementação, Passo a Passo e sem Receios. “Java Magazine”. Curitiba, Neofício, 32. ed., ano IV, p. 46-57. Wright, A.; Betteridge, D.; Buckby, M. (1996) “Games for language learning”. 2. ed. New York, USA, Cambridge University, 212 p.