Universidade Estadual de Campinas – UNICAMP Centro Superior de Tecnologia - CESET Atualização do sistema Gene e condução de dinâmicas de aprendizado Renata Yoko Guima Limeira – SP 2008 ii Universidade Estadual de Campinas – UNICAMP Centro Superior de Tecnologia - CESET Atualização do sistema Gene e condução de dinâmicas de aprendizado Discente: Renata Yoko Guima Orientador: Prof. Dr. Marcos A. F. Borges Trabalho de Graduação Interdisciplinar apresentado ao Centro Superior de Educação Tecnológica – CESET, como requisito de conclusão do Curso Superior Informática. Limeira – SP 2008 de Tecnologia em iii A todos meus amigos que sempre me apoiaram e que perdoaram a minha ausência para que eu pudesse concluir este trabalho. iv AGRADECIMENTOS: Primeiramente a Deus pois a ele devo tudo que faço e tudo que sou. A Marcos Nakata, Raquel Sales, Leon Watanabe, Danilo Ribeiro e Rogério Zamboin pela ajuda concedida direta ou indiretamente. Ao professor Marcos Borges pela paciência e orientação para realizar este trabalho da melhor forma possível. v Sumário 1 – Introdução...............................................................................................................1 2 – Objetivo .................................................................................................................2 3 – Embasamento Teórico...........................................................................................4 4 – Materiais e Métodos ..............................................................................................7 5 – Implementação do Sistema .................................................................................12 6 – Resultados...........................................................................................................15 7 – Conclusão............................................................................................................24 8 – Referências Bibliográficas ...................................................................................25 9 – Apêndice..............................................................................................................28 vi Índice Geral 1 – Introdução...............................................................................................................1 2 – Objetivo...................................................................................................................2 3 – Embasamento Teórico...........................................................................................4 3.1 – Computadores na Educação.....................................................................4 3.2 – Construcionismo e Construtivismo............................................................4 3.3 – Combinação Genética e Organelas..........................................................5 3.4 – e-PING......................................................................................................5 4 – Materiais e Métodos...............................................................................................7 4.1 – Java...........................................................................................................7 4.2 – IDE Eclipse................................................................................................8 4.3 – Servidor de Aplicação Tomcat..................................................................8 4.4 – Framework Struts......................................................................................9 4.5 – API Ajax...................................................................................................10 4.6 – Corel Draw e Gif Movie Gear..................................................................10 4.7 – Javadoc...................................................................................................10 4.8 – MVC........................................................................................................11 5 – Implementação do Sistema..................................................................................12 6 – Resultados............................................................................................................15 7 – Conclusão.............................................................................................................24 8 – Referências Bibliográficas....................................................................................25 9 – Apêndice...............................................................................................................28 vii Lista de Figuras Figura 1 – Tela da Célula Eucarionte da primeira versão............................................3 Figura 2 – Tela do jogo da primeira versão ................................................................ 3 Figura 3 – Arquitetura Física do Sistema.................................................................. 12 Figura 4 – Principais Classes do Gene..................................................................... 14 Figura 5 – Tela de Apresentação.............................................................................. 15 Figura 6 – Tela Inicial................................................................................................ 16 Figura 7 – Tela de boas-vindas ................................................................................ 17 Figura 8 – Célula ...................................................................................................... 18 Figura 9 – Tela de Combinação Genética ................................................................ 19 Figura 10 – Tela de Combinação com prévia ........................................................... 20 Figura 11 – Tela do Jogo .......................................................................................... 21 Figura 12 – Comendo maçã ..................................................................................... 22 Figura 13 – Bichinho virtual morto ............................................................................ 23 viii RESUMO Guima, Renata Yoko, Atualização do sistema Gene e condução de dinâmicas de aprendizado, Limeira, 2008, 38p. Trabalho de Graduação Interdisciplinar, Graduação no Curso Superior de Tecnologia em Informática, Universidade Estadual de Campinas, 2008. A primeira versão do sistema Gene foi concluída no ano de 1999, tendo como objetivo servir no apoio ao aprendizado de conceitos de genética. O sistema demonstrou capacidade de apoiar seus usuários no entendimento dos conceitos de genética mas foi pouco utilizado, entre outros motivos por possuir uma arquitetura fechada e necessitar de instalação. Este projeto contempla a atualização do sistema Gene explorando tecnologias mais modernas e visando melhorias em recursos multimídia.O projeto mantém como base o paradigma de aprendizado construcionista. O resultado obtido foi um sistema disponível em web e com recursos multimídia melhorados, tornando o sistema mais atrativo ao usuário. ix ABSTRACT Guima, Renata Yoko, Gene System's Update and driving of dynamics of learning, Limeira, 2008, 38p. Trabalho de Graduação Interdisciplinar, Graduação no Curso Superior de Tecnologia em Informática, Universidade Estadual de Campinas, 2008. The first version of Gene system was completed in 1999. Its goal was serve to support the learning of genetics. It was demonstrated the system capacity to support users learning process. The system was not so used, among other reasons because it had a closed architecture and it required installation. This project includes the construction of a new version of the system Gene exploring “state of the art” technology, including improvements in multimedia resources. The project keeps the learning paradigm of constructionism. The result was a system available on web, with multimedia resources improved, making the system more attractive to the user. 1 1 - Introdução Entre os diversos tipos de jogos, o tamagotchi ou Bichinho Virtual teve sucesso na década de 90. Deste sucesso derivou-se o Gene, uma ferramenta de apoio à aprendizagem para formação em genética (Borges e Oliveira, 2000). A ferramenta em questão é um ambiente de aprendizado interativo cujo foco principal de aprendizagem é a genética. Nele, o usuário manipula os genes de um bichinho virtual e depois simula a criação do bichinho resultante das manipulações genéticas. A primeira versão do Gene apresentava algumas desvantagens como: multimídia não muito atraente (imagens com baixa resolução, quase sem animações e sons) e dificuldade de instalação. A proposta da segunda versão do Gene surgiu para tentar resolver algumas dificuldades associadas ao projeto original. Estão entre as mudanças melhorias na parte multimídia e na parte de apoio ao aprendizado da genética e ainda um sistema disponível na Internet, livre de instalação. Este trabalho está incluído no projeto de construção do novo sistema Gene. O foco deste trabalho, especificamente, é construir a primeira versão para Internet do Gene, incorporando melhoria na interface, na multimídia e nas funcionalidades relacionadas a um jogo isoladamente. Outros trabalhos estão sendo feitos com foco em continuidade do jogo (salvar, reabrir) e também buscando estruturar uma comunidade de usuários. Este documento está organizado como se segue: o capítulo 2 apresenta os objetivos do sistema Gene. O capítulo 3 – Embasamento teórico – expõe temas como a utilização de computadores na educação, conceitos de paradigmas de aprendizagem como construcionismo e construtivismo, conceito de combinação genética e e-PING. Já no capítulo 4 – Materiais e Métodos – são citadas todas as ferramentas e tecnologias utilizadas para a construção do sistema, como Java, Struts, MVC, etc. O capítulo 5 – Implementação do Sistema - diz respeito à arquitetura do sistema, tanto física quanto lógica. O capítulo 6 – Resultados – relata o resultado obtido do projeto, com suas respectivas telas e funcionalidades do sistema. A Conclusão, contida no capítulo 7, discorre sobre os resultados obtidos, e traz informações importantes sobre como o projeto poderia ser continuado, concluído e aperfeiçoado. 2 2 – Objetivo O sistema Gene tem como idéia base o tamagotchi (Besser, 1997). O uso de um jogo como este como material complementar na aprendizagem de genética motiva seus usuários (normalmente crianças e jovens) que, assumindo o papel de pais, são os atores, os sujeitos responsáveis pela situação. Brincando com tamagotchis os usuários desenvolvem a inteligência emocional vivendo experiências em uma realidade virtual (Fagundes, 1997). No sistema Gene, o usuário age como um cientista genético que pode definir como será seu "animal" de estimação. Inicialmente, o usuário modela seu "bichinho" (manipulando o DNA do embrião). Baseado neste modelo genético, o sistema simula a vida do "bichinho" depois de seu nascimento. Manipulando o DNA, testando os resultados e retornando para a manipulação, o usuário estará envolvido em um processo de aprendizado conhecido como "estética construcionista" (Valente, 1993). A forma de jogar se adequa aos modelos mentais dos usuários, seguindo o paradigma denominado construcionismo, de Papert (1990). A primeira versão do sistema foi desenvolvida na linguagem de programação Delphi. Ela possui uma interface não muito atraente ao usuário (Figura 1 e Figura 2) e para o usuário poder jogá-la é necessária a instalação do sistema. O objetivo deste projeto é reconstruir o sistema Gene, disponibilizando uma nova versão, onde foram exploradas tecnologias mais modernas a fim de se obter um sistema disponível na Internet e com material multimídia mais elaborado, tornando assim o sistema mais atrativo ao usuário e livre de instalação. Em paralelo, o sistema foi validado de acordo com a arquitetura e-PING (ePING, 2007), com o objetivo de ajudar a equipe que está construindo a arquitetura a identificar a viabilidade ou não de se construir sistemas totalmente aderentes ao que se está padronizando em âmbito do governo federal. Em suma, este projeto tem como objetivo uma segunda versão do Gene melhorada, com algumas das características similares à primeira versão, porém, agora, disponibilizado na internet, livre de instalação e com melhorias na parte multimídia. 3 Figura 1 – Tela da célula eucarionte da primeira versão Figura 2 – Tela do jogo da primeira versão 4 3 – Embasamento teórico Esta seção apresenta informações adicionais sobre os conceitos mais importantes utilizados neste projeto. As subseções a seguir apresentam maiores informações sobre: computadores na educação, Construcionismo e Construtivismo, Combinação Genética, Organelas e e-PING. 3.1 – Computadores na Educação Segundo Valente (1995), o uso de computadores na educação tem provocado uma verdadeira revolução na concepção de ensino e de aprendizagem. A quantidade de programas educacionais e funcionalidades diferentes que o computador tem na educação deixam mais evidente que essa tecnologia pode ser bastante útil no processo de aprendizagem. No entanto, o foco da utilização dos computadores na educação não é mais como “máquina de ensinar”, mas sim um complemento para ensino. Hoje em dia o mundo é dominado pela informação e por processos que acontecem de forma imperceptível. Não basta aos estudantes apenas decorar informações, mas sim entendê-las, sendo estimulados a buscar e utilizar as informações compreendidas. (Valente, 1995) 3.2 – Construcionismo e Construtivismo Vários paradigmas tradicionais de ensino e aprendizagem sugerem que o conhecimento seja repassado de uma pessoa para outra pelo contato entre elas, seja de forma oral, escrita ou gestual. Em confronto a essas linhas de ensino/aprendizagem existem outros paradigmas que são o construtivismo de Piaget e o construcionismo de Papert. Segundo Papert (1990), construcionismo é entendido como o que Piaget denomina Construtivismo, porém vai além deste. O Construtivismo expressa a teoria de que o conhecimento adquirido pelo aluno foi construído por ele próprio. Já no Construcionismo, além do conhecimento adquirido por conta própria, o indivíduo conta com o apoio de algo externo, como objetos (computador, por exemplo) e/ou pessoas. Uma forma interessante de se aplicar o Construcionismo é fazendo de um jogo uma ferramenta de apoio à aprendizagem. Segundo Wang (2006), os jogos 5 podem motivar o aprendizado, aumentando o desejo de aprender do estudante, apresentando oportunidades de não somente se aprender os conceitos e conteúdos tradicionais, mas também de executar a habilidade de pensamento lógico, enquanto os usuários estão se divertindo. 3.3 – Combinação Genética e Organelas A Combinação Genética segue a primeira lei de Mendel, que diz que na produção de gametas, os genes se separam e vai cada um para uma gameta, para que a carga genética seja sempre constante nas espécies (Mori e Pereira, 2008). Para se obter uma combinação genética, é necessário combinar as características que são representadas por um gene. Este por sua vez é composto de dois alelos. De acordo com Pazza (2006), uma característica que pode se manifestar quando há uma combinação de dois alelos diferentes ou dois alelos iguais é chamada de dominante, pois possui pelo menos um alelo dominante, representado por letra maiúscula. Quando tal característica se manifesta apenas quando dois alelos são iguais, esta é recessiva e é representada por letra minúscula, ou seja, se tal característica tem como alelo dominante A, ela pode se manifestar quando os alelos forem Aa, aA ou AA. Porém, a característica recessiva só ocorrerá se os alelos forem aa. Tradicionalmente, a letra que representa os alelos é equivalente à primeira letra do aspecto recessivo. Por exemplo: se o aspecto recessivo de uma cor é a cor rosa, a letra que corresponde à combinação genética de cor é a letra R. Assim, como o sistema atual do Gene possui apenas a possibilidade de duas cores (amarelo e rosa), quando a combinação feita for RR, Rr ou rR, a cor do bichinho virtual será amarelo (característica dominante); e terá a característica recessiva apenas quando ambos os alelos forem representados com letra minúscula, rr. Segundo Infoescola (2008), as organelas são estruturas compostas de várias moléculas e estão localizadas no interior das células com o objetivo de desempenhar funções específicas. Alguns exemplos de organelas: mitocôndrias, lisossomo, centríolo, núcleo celular, etc. 3.4 – e-PING 6 A arquitetura e-PING consiste em uma infra-estrutura que serve como alicerce para criação de serviços de melhor qualidade a custos reduzidos em sistemas do governo brasileiro. Segundo e-PING (2008), esta arquitetura tem como principais características: alinhamento com a internet, onde todos os sistemas de informação da administração pública deverão estar alinhados com as principais especificações usadas na Internet; adoção do XML como padrão intercâmbio de dados para todos os sistemas do setor público; adoção de navegadores (browsers) como principal meio de acesso; taxonomia de navegação (LAG), que contemple, em uma estrutura de diretório, os assuntos relacionados com a atuação de governo; escalabilidade; adoção preferencial de padrões abertos e garantia à privacidade de informação. A arquitetura e-PING cobre as áreas segmentadas em interconexão, segurança, meios de acesso, organização e intercâmbio de informações e áreas de integração para Governo Eletrônico. A partir do momento que um sistema está validado de acordo com a arquitetura e-PING, há uma maior tendência para que o serviço seja prestado à sociedade da melhor forma possível e com custo mais baixo. (ePING, 2007). 7 4 - Materiais e Métodos As tecnologias e padrões utilizados no projeto são: Java 1.6, Eclipse, Tomcat 6, Struts 2, DWR Ajax, Javadoc, Corel Draw X3,Gif movie gear e MVC. As subseções a seguir irão apresentar maiores informações sobre cada um deles. 4.1 - Java A utilização da linguagem Java no desenvolvimento do Gene se deve a algumas vantagens, enumeradas por Fernandéz (1998): • Simplicidade: em Java existe um número reduzido de formas claras para abordar uma tarefa dada. Oferece toda a funcionalidade de uma linguagem potente, mas sem as características menos usadas e mais confusas destas, ou seja, elimina tópicos como: aritmética de ponteiros, registros (struct), definição de tipos (typedef), macros (#define), necessidade de liberar memória (free), herança múltipla, sobrecarga de operadores, estrutura ou uniões. • É orientada a objetos; • É distribuída: permite aos programadores acessarem a informação através da rede com tanta facilidade como aos arquivos locais. • É robusta: Java é fortemente tipado. A realocação de memória é realizada de forma automática, já que proporciona um coletor de lixo automático para os objetos que não estão sendo utilizados. • É de arquitetura neutra: o código Java é compilado a um código de bytes de alto nível independente da máquina. • É segura: Java proporciona segurança através de várias características de seu ambiente em tempo de execução, como um verificador de bytecodes, disposição de memória em tempo de execução, restrições de acesso aos arquivos, etc. • É portável: independente da arquitetura de onde são implementados (UNIX, PC, Mac). • É interpretada: o compilador gera um código intermediário (bytecodes). Este código pode ser executado em qualquer sistema que possua um interpretador (máquina virtual Java). 8 • É multitarefa: Com Java podemos escrever programas que façam várias coisas ao mesmo tempo e de uma forma fácil e robusta. • É dinâmica: tenta agregar todos os módulos que compõem uma aplicação até o momento da execução. Isto permite agregar dinamicamente o código de uma forma segura e conveniente De acordo com Paulo e Graça (2003), Java é mais simples e mais fácil de ser compreendida e foi projetada com base em 10 anos de experiência de C++, aproveitando suas melhores características. A linguagem ainda oferece tratamento de exceções hierárquicas e a memória dinâmica é gerenciada automaticamente, diminuindo o potencial para erros. Programas em Java podem ser executados na maioria das plataformas sem necessidade do código-fonte ou recompilação. 4.2 – IDE Eclipse O Integrated Development Environment (IDE) – Ambiente integrado de desenvolvimento –, escolhido para o desenvolvimento foi o Eclipse (Eclipse, 2007). Segundo Gallardo et al. (2003), o Eclipse é um ambiente para desenvolvimento Java com ferramentas necessárias para o desenvolvedor, inclusive um depurador (debugger), o que ajuda a verificação de erros. Por se tratar de uma ferramenta gratuita, muitas outras ferramentas adicionais específicas também gratuitas já foram distribuídas e podem ser agregadas ao Eclipse. 4.3 – Servidor de Aplicação Tomcat Segundo Martins (2003), um servidor de aplicação é uma plataforma sobre a qual roda a porção servidora de um aplicativo, incluindo hardware e software. O servidor de aplicação do Gene é o Apache Tomcat, na sua versão 6, pois oferece estabilidade, segurança e simplicidade ao desenvolvedor e principalmente ao sistema. (Apache, 2007) Segundo DataSynapse (2008), Tomcat é uma ferramenta gratuita e de código aberto (open-source) que foi desenvolvida em um projeto denominado Jakarta, da Apache Software Foundation (Jakarta, 2008), cujo foco é desenvolver diversas soluções de software livre baseadas em Java. A ferramenta está disponível para uso comercial sob a licença ASF (Apache Software Foundation), no site da 9 Apache (Apache2, 2008), nas versões binárias e source e foi integrada e adaptada pela Sun ao Java EE SDK que envolve JSP e servlets. Tomcat está disponível para qualquer empresa ou desenvolvedor para ser utilizado como ferramenta de apoio a desenvolvimento de sites dinâmicos e interativos e como servidor, ou seja, como uma aplicação disponível para receber solicitações de outros programas ou computadores e as processar através de uma rede de computadores. (CNS, 1999). 4.4 – Framework Struts Um framework é uma aplicação reusável, semi-completa que pode ser adaptada para fazer parte de aplicações completas (Johnson, 1988). Segundo Husted et al. (2003), assim como as pessoas, aplicações possuem comportamentos mais parecidos do que se parecem esteticamente. Rodam no mesmo computador, esperam dados de entrada dos mesmos dispositivos, retornam dados de saída para os mesmos dispositivos de saída, e salvam informações no mesmo disco rígido. Desenvolvedores trabalhando em aplicações para desktop convencionais estão acostumados a ferramentas e ambientes de desenvolvimento que geralmente têm o mesmo comportamento nas aplicações. Desta forma, frameworks permitem que desenvolvedores obtenham uma estrutura reutilizável, útil para desenvolvimento de seus próprios sistemas com seus requisitos específicos. Determinado framework pode ser bastante utilizado por ser conhecido por sua funcionalidade em determinada aplicação, estando pronto para ser utilizado para um projeto posterior, e podendo ainda ser utilizado por outras equipes da empresa, seja ela num mesmo projeto ou em outro. O framework escolhido para o desenvolvimento do Gene foi o Struts 2 (Struts, 2008) devido à sua organização de arquitetura. Struts 2 é um framework de código aberto, pertencente a Apache Software Foundation, que tem como função auxiliar o desenvolvedor a fazer aplicações web de modo mais fácil e rápido. É composto de tecnologias como JavaBeans, Java Servlet e JavaServer Pages. Outra vantagem do Struts 2 é economizar tempo a cada novo projeto que é iniciado, pois agiliza parte da codificação de um sistema (Husted et al, 2003). 10 4.5 – API Ajax A Application Programming Interface (API) DWR AJAX foi escolhida devido às suas boas funcionalidades de apoio à camada de interface, economizando tempo de desenvolvimento e fornecendo classes padronizadas (DWR, 2008). AJAX - Asynchronous Javascript and XML, consiste em fazer com que, sem a requisição do usuário, o sistema busque novos dados no servidor em um limite de tempo, atualizando os dados em pontos específicos de uma página sem a necessidade de atualizar a página inteira (GUJS, 2007). Segundo Baudisch (2006), AJAX é um conjunto de tecnologias que está sendo muito utilizado devido ao fato de trazer mais interatividade e usabilidade para as aplicações web. As tecnologias que podem ser incorporadas ao AJAX são: HTML, XHTML, CSS, Javascript, XML, etc. 4.6 – Corel Draw e Gif Movie Gear O software Corel Draw X3 (Corel, 2007) foi utilizado para desenhar o bichinho virtual e todo o layout de página, incluindo imagens estáticas que foram depois animadas com Gif Movie Gear (Gamani, 2007). Esses programas foram usados por possuírem grandes funcionalidades e efeitos para aplicar nas figuras e também grandes facilidades de uso. 4.7 – Javadoc Segundo Medeiros (2006), documentar pontos estratégicos dos códigos fontes é uma necessidade universal em vários paradigmas ou plataformas de desenvolvimento. É crescente a necessidade de se reutilizar comentários feitos em alguns pontos nos códigos fontes como documentação. Javadoc é um recurso útil para isso na linguagem de programação Java, fornecendo uma linguagem específica para os comentários que introduzem classes, atributos e métodos e seu funcionamento. Javadoc baseia-se na inserção de textos explicativos em forma de um comentário especial, que antecedem uma classe ou método. Ainda de acordo com Medeiros (2006), o interessante deste recurso é que ele nos permite combinar linhas de comandos da própria especificação HTML, com 11 as linhas de comandos oferecidas pelo javadoc tornando possível a criação de documentos completos gerados a partir dos comentários do próprio código. Segundo Graça e Paulo (2003), Javadoc tem a vantagem de deixar a documentação próxima ao código, facilitando a sincronização entre as versões do código e as versões da documentação. Assim, cada vez que alguma parte do código é modificada, basta atualizar os comentários correspondentes e utilizar ferramenta correspondente para gerar nova documentação. 4.8 – MVC A arquitetura do Projeto Gene2 é baseada no padrão MVC de camadas, onde o projeto fica dividido por partes e estruturado de uma maneira mais lógica e fácil de compreender. Segundo Martins (2006), MVC é dividido em três abstrações centrais: Model, View e Controller: • Camada de persistência (Model): Esta camada será responsável pelo tráfego de informações entre o sistema e fontes de dados. • Camada de apresentação (View): Esta camada será responsável pela interface do sistema para interação direta com o usuário e comunicação com a camada de negócio para aquisição de dados. • Camada de controle (Controller): Esta camada será responsável por prover ao usuário funções para a obtenção, organização e atualização de dados. 12 5 – Implementação do Sistema O sistema, por se tratar de uma aplicação web, necessita de um servidor de aplicação para ser utilizado. O usuário, através de um computador, acessa o sistema pela Internet. O sistema está em um servidor de aplicação, onde também estão todos os arquivos necessários para executar o mesmo (Figura 3). Figura 3 – Arquitetura Física do Sistema Em termos de arquitetura lógica do Gene, uma das principais classes do sistema é a classe Bicho que possui uma lista de atributos referentes à Felicidade, Banho, Calorias, Idade, Nutrientes, Água, Humor, Saúde e Peso e lista de Genes (pares de alelos de sua combinação genética). Na Figura 4 é possível ver a arquitetura de classes básica do bichinho virtual. Optou-se por essa arquitetura devido à facilidade na manutenção e flexibilidade. Por exemplo, na inserção de novos atributos, será necessário apenas criar outra classe que herda os métodos e atributos da classe Atributos. Como cada atributo tem comportamento diferente, ou seja, um método como o timer pode variar sua implementação de acordo com um tipo de atributo, fica mais prático e organizado disponibilizar os atributos em classes separadas. Quando o usuário faz a combinação genética, os pares de alelos são distribuídos nos nós de uma lista ligada de pares que está associada ao objeto bicho. Após criar o bicho e associar seus pares de alelos, os atributos também são criados e adicionados a uma outra lista ligada de atributos. 13 Os atributos foram definidos como sendo cada um uma classe derivada de uma classe Atributo e ainda classificados como primeiro nível e de segundo nível. Os de primeiro nível não precisam de outros atributos para obter seu valor: por exemplo, o atributo Calorias pode ser calculado diretamente quando o bicho ingere algo. Os de segundo nível têm seu valor calculado com base em outros atributos: por exemplo, Saúde depende de Humor, Felicidade, Banho, Peso, etc. Além destes atributos, a classe bicho possui alguns métodos, entre eles, o timer. Este método tem como objetivo atualizar os valores dos atributos em uma certa freqüência de tempo. Porém, vale ressaltar que todas as classes de atributos e as listas também possuem um timer. Quando o timer do objeto do tipo Bicho é ativado, o timer da lista do bicho também é ativado e assim, ativa o timer dos atributos contidos em sua lista. Quando este atributo for de segundo nível, o valor será recalculado em base de valores de outros atributos; já quando este for de primeiro nível, apenas será decrementado uma quantia do valor correspondente do atributo. Por exemplo, dados os atributos saúde de segundo nível, nutrientes, banho e água de primeiro nível; quando o timer é ativado, o atributo saúde recalcula seu valor tendo como base os valores de nutrientes, banho e água. Já estes três últimos atributos, é apenas decrementado um valor específico de seu valor total. Desta forma, garante que os valores dos atributos referentes àquele bicho serão sempre atualizados com certa freqüência. Cada timer possui uma função diferenciada, decrementando valores diferentes ou somando valores de alguns atributos: por exemplo, o timer da água, cada vez que é acionado, decrementa 8 unidades de seu valor; já o timer da idade, depois de ser ativado 10 vezes, incrementa 1 unidade. A classe Bicho e as classes derivadas de Atributo se relacionam com algumas Actions que funcionam como classes de controle, ou seja, estão entre a interface e a camada de negócio (lógica) do sistema e são responsáveis pela comunicação entre um ou mais objetos e a interface. Actions são associadas à alteração de imagens da tela e também às atividades como dar banho, dar comida, dar bebida e brincar, as quais o usuário executa e podem resultar na alteração dos valores dos atributos do bicho. Seguindo o padrão de modelagem MVC, no sistema Gene a camada de apresentação é toda a interface, em sua maioria do tipo JavaServer Pages (JSP); a camada de controle é composta pelas actions feitas em Struts e a camada modelo 14 são os objetos em si como Bicho, Atributo, etc. Caso houvesse um banco de dados, este também faria parte da camada Model. Figura 4 – Principais Classes do Gene 15 6 – Resultados Quando se inicia o sistema, abrirá uma tela de apresentação (Figura 5) e logo em seguida a primeira tela do sistema contendo um logo do Gene e algumas imagens com movimento que foram utilizadas no próprio jogo (Figura 6). Figura 5 – Tela de Apresentação 16 Figura 6 – Tela Inicial O usuário, para iniciar o jogo deve clicar no Iniciar Jogo. A tela seguinte é uma breve tela de apresentação (Figura 7), dando as boas-vindas ao usuário. 17 Figura 7 – Tela de boas-vindas A próxima tela apresenta um esquema de uma célula eucarionte animal, com suas respectivas organelas como: Cromatina, Mitocôndria, Retículo Endoplasmático Rugoso, etc., como consta na Figura 8. Ao clicar em cada organela, o usuário tem à disposição um pequeno texto explicativo sobre aquela organela e ainda, em alguns casos, uma explicação em áudio. 18 Figura 8 – Célula A tela seguinte é o início do jogo em si, onde o usuário faz a combinação genética do bichinho virtual (Figura 9). Conforme ele escolhe os alelos dispostos em botões próprios para seleção, uma prévia do resultado da combinação é disponibilizada na tela (Figura 10). Os passos da combinação genética estão descritos no caso de uso Fazer Combinação Genética, no Apêndice. 19 Figura 9 – Tela de Combinação Genética 20 Figura 10 – Tela de Combinação com prévia Após essa manipulação dos genes o bichinho virtual é criado e uma nova tela é mostrada, com o bichinho gerado a partir da combinação genética, menu para manipulação do usuário, barras que indicam o humor, peso e saúde do bicho. (Figura 11). 21 Figura 11 – Tela do Jogo Buscando aumentar a motivação dos usuários, o bichinho tem um nível que aumenta com o passar do tempo e faz o controle de toda parte dinâmica do jogo. No início, apenas algumas das atividades podem ser executadas pelo usuário e, conforme o tempo, o nível aumenta e outras atividades são liberadas. Neste protótipo, o primeiro nível permite que o usuário alimente e dê bebida ao bichinho. No segundo nível, além das atividades anteriores, permite brincar e por último, no terceiro nível, permite ainda dar banho. Há também uma associação de imagem para cada tipo de atividade. Por exemplo, quando o usuário seleciona comer, irá aparecer no quadrado de atividade, uma maçã sendo comida (Figura 12), cujos os passos estão descritos no caso de uso Comer, no Apêndice. Para cada atividades, existem alguns atributos que deverão mudar: no exemplo de comer maçã, calorias e nutrientes irão aumentar. 22 Quando for selecionado Relatório, uma nova tela irá abrir e mostrar os valores dos atributos do bicho e a combinação genética do mesmo. Figura 12 – Comendo maçã Ainda neste protótipo, o bichinho tem somente três idades diferentes, come maçã e bebe água, tem a opção tomar banho e brincar. Caso o bichinho não esteja bem, seja por falta de comida, de bebida, banho ou de brincar, aparece ao lado dele mensagens indicando o que falta. Sua fisionomia também pode ser normal (apenas piscando, quando há um nível razoável de humor que é uma combinação de felicidade, banho e alimentação) ou chorando (quando o humor está baixo e, neste caso, além de mostrar a imagem, há o som de choro também). Caso a falta de comida e bebida, por enquanto definido como nutrientes igual a zero, permaneça por muito tempo, o bichinho pode vir a falecer (Figura 13). 23 Figura 13 – Bichinho virtual morto 24 7 – Conclusão Tendo como base bichinhos virtuais que fizeram grande sucesso na década de 90, surgiu a idéia de se desenvolver um projeto com “bichinho virtual”, porém com um diferencial, o de apoiar o aprendizado de genética através de sua manipulação. Este projeto recebeu o nome de Gene e sua primeira versão tinha recursos multimídias não muito atraentes, necessidade de instalação, não evolução no cruzamento de genes e nas atividades. Devido a essas características, decidiu-se reconstruir o sistema, fazendo uso de tecnologias mais atuais, disponibilizando o sistema em web e melhorando a parte multimídia do mesmo. Com a utilização de algumas tecnologias mais modernas, foi possível construir um “bichinho virtual” que é gerado a partir de uma combinação genética. O protótipo atual conta com alelos relacionados a sexo e cor e tem disponíveis algumas atividades como comer, beber, tomar banho e brincar. Esta nova versão pode ser jogada através da Internet. Futuramente, espera-se aumentar o número dos tipos de alelos para se fazer a combinação genética e também o número de atividades disponíveis. Também está em curso por outro projeto incluir no sistema um banco de dados, para que o usuário possa criar e salvar os seus bichinhos virtuais. Além disso, estão sendo avaliadas alterações para possibilitar “cruzamento” entre bichinhos, de forma a aumentar o potencial de aprendizado de genética, pois seria abordado o conceito de combinação genética na reprodução. Por fim, com base na reprodução, poder-seia criar um nível de evolução dos bichos. 25 8 – Referências Bibliográficas APACHE. Apache Tomcat. http://tomcat.apache.org/download-60.cgi. Acesso em: 12/06/2007. APACHE2, The Apache Software Foundation, 2008. Disponível em: http://www.apache.org/ Acesso em: 16/06/2008. BAUDISCH, A. R. O que é AJAX e como aplicá-lo com PHP, parte 1, 2006. Disponível em: Http://www.plugmasters.com.br/sys/materias/251/1/O-que-%E9-AJAX-e-comoaplic%E1-lo-com-PHP,-parte-1 Acesso em: 16/06/2008. BESSER, H. - Critical Thoughts About Tamagotchi. Disponível em: http://www.sims.berkeley.edu/courses/is296a-3/s97/Focus/Identity/FINAL/index.htm, 1997. BORGES, Marcos; OLIVEIRA, Simony Pelicer de. Design de uma ferramenta de apoio ao aprendizado. Publicado nos Anais do Simpósio Brasileiro de Informática na Educação, (Ed. Costa, E.B.), Universidade Federal de Alagoas, Maceió-Al, 2000, pp. 121-127 Disponível em: http:/www.ic.unicamp.br/~maborges/sbie2000/sbie2000.htm. CNS, Glossário, R – Z, 1999. Disponível em: http://www.estudar.org/pessoa/internet/22glossary/r-z.html Acesso em: 15/07/2008 COREL. Suíte de aplicativos gráficos, CorelDraw X3. Disponível em: http://www.corel.com.br/pt/mod_produtos.asp?page=prod_draw_x3&click_idfamilia=2 &click_iditem=2 Acesso em: 20/05/07 DATASYNAPSE. Glossário, 2008 Disponível em: http://www.datasynapse.com/en/glossary.php. Acesso em: 10/06/2008. DWR. Direct Web Remoting. Disponível em: http://getahead.org/dwr Acesso em: 12/01/08. ECLIPSE. Eclipse, an open development platform. Disponível em: http://www.eclipse.org/ Acesso em: 15/03/2007 EPING, Governo Eletrônico, Apresentação e-Ping. Disponível em: https://www.governoeletronico.gov.br/acoes-e-projetos/e-ping-padroes-deinteroperabilidade Acesso em: 20/08/2007. 26 EPING e-PING Padrões de Interoperabilidade de Governo Eletrônico, 2008 Disponível em: https://www.governoeletronico.gov.br/biblioteca/arquivos/e-pingversao-3.0 Acesso em: 15/07/2008 FAGUNDES, L. - Jornal Correio Popular, Campinas, 1997. FERNANDÉZ, M. José. Java. Parte I. 1998 Disponível em: http://linuxfocus.org/Portugues/July1998/article57.html Acesso em: 15/01/2008 GALLARDO, D. et al. Eclipse in Action A GUIDE FOR JAVA DEVELOPERS. Manning, 2003. 402p GAMANI. Get your animation in gear. Disponível em: http://www.gamani.com/ Acesso em: 13/06/2007 GUJS. Tutorial básico sobre Ajax. 2007. Disponível em: http://gujs.com.br/blog/2007/03/tutorial-basico-sobre-ajax Acesso em: 15/06/2008. HUSTED, T. et al. Struts in Action Building web applications with the leading Java framework. Manning. 2003. 664p. INFOESCOLA, Níveis de organização em Biologia, 2008. Disponível em: http://www.infoescola.com/biologia/niveis-de-organizacao-em-biologia Acesso em: 16/06/2008. JAKARTA. The Apache Jakarta Project, 2008. Disponível em: http://jakarta.apache.org Acesso em: 16/06/2008. JOHNSON, Ralph , “Designing Reusable Classes,” Journal of Object-Oriented Programming. SIGS, 1, 5 (June/July 1988), 22–35, Disponível em: http://www.laputan.org/drc/drc.html. Acesso em: 15/05/2008 MARTINS, D. F. Apresentando Model-View-Presenter, o MVC focado na visualização, 2006. Disponível em: http://www.javafree.org/content/view.jf?idContent=91. Acesso em: 15/08/2007 MARTINS, V. Servidores de Aplicação , 2003. Disponível em: http://www.pr.gov.br/batebyte/edicoes/1999/bb87/servidores.htm Acesso em: 16/06/2008 MEDEIROS, M. P. JavaDoc - Implementando documentação através do NetBeans, 2006. Disponível em: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2495. Acesso em: 10/06/2008. 27 MORI, L.; PEREIRA, M. A, Q. R. Meiose e as leis de Mendel. Disponível em: http://www.ib.usp.br/microgene/files/manuais-7-PDF.pdf . Acesso em 15/02/2008. PAPERT. Idit Harel (Ed.), Constructionist Learning. Cambridge, MA: MIT Media Laboratory, 1990. p.3. PAULO, J. L.; GRAÇA, J. Uma Introdução ao Javadoc, 2003. Disponível em: http://mega.ist.utl.pt/~ic-po/2005/apoio/IntroJavadoc.html. Acesso em: 15/01/2008 PAZZA, R. Introdução a Genética, Maio de 2006. Disponível em: http://www.biociencia.org/index.php?option=com_content&task=view&id=211&Itemid =71 Acesso em: 15/01/2008 STRUTS. About Struts Apache 2. Disponível em: http://struts.apache.org/2.0.9/index.html. Acesso em: 15/01/2008 VALENTE, J. A. Computadores e Conhecimento: Repensando a Educação. Campinas. Gráfica Central da Unicamp, 1995. VALENTE, J. A. - Por que o computador na educação. Campinas. Gráfica Central da Unicamp, 1993, p.24-44. WANG, W. O aprendizado através de jogos para computador: por uma escola mais divertida e mais eficiente. 2006. Disponível em: http://www.familiaviva.org.br/artigos/artigo479.shtml Acesso em: 05/03/2008 28 9 - Apêndice Universidade Estadual de Campinas – UNICAMP Centro Superior de Tecnologia – CESET Sistema Gene 2 Documento de Caso de Uso Caso de Uso: Fazer Combinação Genética Versão do Documento: 1.0 Funcionalidades: Fazer Combinação Genética e criar novo bichinho virtual. Descrição: Este caso de uso permite que o usuário faça a combinação genética de seu novo bichinho virtual. Atores envolvidos: Usuário. Fluxo básico: 1. O Usuário seleciona Iniciar Jogo; 2. O sistema carrega uma tela com opções de alelos e uma imagem como prévia do novo bichinho; 3. Usuário seleciona os alelos e a imagem muda de acordo com os alelos selecionados. 4. Usuário encerra combinação genética, novo bichinho é criado de acordo com a nova combinação e caso de uso se encerra. Fluxos alternativos: No fluxo 4, usuário seleciona voltar, o caso de uso é encerrado e o usuário vai à tela da Célula. Fluxo de exceção: Não há. Informações complementares: Não há. 29 Universidade Estadual de Campinas – UNICAMP Centro Superior de Tecnologia – CESET Sistema Gene 2 Documento de Caso de Uso Caso de Uso: Comer Versão do Documento: 1.0 Funcionalidades: Alimentar Bichinho Virtual. Descrição: Quando esta atividade é ativada, o número de nutrientes e calorias é aumentado de acordo com o alimento escolhido, neste protótipo está disponível apenas maçã e, posteriormente os atributos que foram incrementados influenciam no cálculo do peso. Atores envolvidos: Usuário. Fluxo básico: 1. 2. 3. 4. O Usuário seleciona Dar Comida; O sistema carrega imagem de atividade referente a dar comida. Calorias e Nutrientes são incrementados de acordo com o alimento. Sistema retorna para tela padrão do Bichinho Virtual e Caso de Uso se encerra. Fluxos alternativos: Não há. Fluxo de exceção: Não há. Informações complementares: Casos de Uso como Brincar, Dar Banho e Beber se comportam da mesma forma; porém as imagens carregadas são referentes a cada atividade, e os atributos que são alterados são: felicidade em Brincar (posteriormente influenciará em Humor), Banho em Dar Banho (posteriormente influenciará em Saúde) e Água em Beber.