Universidade Estadual de Campinas – UNICAMP Centro Superior

Transcrição

Universidade Estadual de Campinas – UNICAMP Centro Superior
Universidade Estadual de Campinas – UNICAMP
Centro Superior de Tecnologia – CESET
Comunidade do Sistema Gene de Apoio ao Aprendizado de
Genética
Henrique da Mota Silveira
Limeira – SP
2008
i
Universidade Estadual de Campinas – UNICAMP
Centro Superior de Tecnologia – CESET
Comunidade do Sistema Gene de Apoio ao Aprendizado de
Genética
Discente: Henrique da Mota Silveira
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
de
Informática.
Limeira – SP
2008
Tecnologia
em
ii
“O único lugar onde o sucesso vem
antes do trabalho é no dicionário.”
Albert Einstein
iii
AGRADECIMENTOS:
Agradeço aos professores e
funcionários do CESET pela
formação e serviços de qualidade
excelente que me foram prestados.
À minha amiga e namorada Nathalia,
que sempre me ajudou em tudo.
A toda família de amigos Mamutes,
que sempre me apoiaram de forma
direta ou indireta.
Ao professor Marcos Borges pela
paciência, confiança e orientação
para realizar este trabalho da melhor
forma possível.
iv
Sumário
Sumário ...................................................................................................................... iv
Índice Geral ................................................................................................................. v
Lista de Figuras.........................................................................................................viii
Lista de Tabelas .......................................................................................................... x
Resumo ...................................................................................................................... xi
1 – Introdução .............................................................................................................1
2 – Embasamento Teórico ..........................................................................................3
3 – Projeto Gene .......................................................................................................10
4 – Resultados ..........................................................................................................32
5 – Conclusão ...........................................................................................................42
6 – Referências Bibliográficas ...................................................................................43
Apêndice ...................................................................................................................47
v
Índice Geral
Sumário ...................................................................................................................... iv
Índice Geral ................................................................................................................. v
Lista de Figuras.........................................................................................................viii
Lista de Tabelas .......................................................................................................... x
Resumo ...................................................................................................................... xi
1 – Introdução .............................................................................................................1
2 – Embasamento Teórico ..........................................................................................3
2.1 – Computadores na Educação......................................................................3
2.2 – Construcionismo e Construtivismo.............................................................3
2.3 – Jogos Educativos.......................................................................................4
2.4 – Influência dos Jogos no Desenvolvimento .................................................5
2.5 – Jogos Educativos Digitais ..........................................................................6
2.6 – Combinação Genética ...............................................................................8
3 – Projeto Gene .......................................................................................................10
3.1 – Materiais e Métodos.................................................................................10
3.1.1 – Java ..............................................................................................10
3.1.2 – Integrated Development Environment (IDE) Eclipse ....................12
3.1.3 – Servidor de Aplicação Tomcat......................................................12
3.1.4 – JavaServer Pages (JSP) ..............................................................13
vi
3.1.5 – JSP Standard Tag Library (JSTL)................................................13
3.1.6 – Framework Struts 2 ......................................................................14
3.1.7 – Application Programming Interface (API) AJAX............................15
3.1.8 – Corel Draw e Gif Movie Gear........................................................15
3.1.9 – Documentação Javadoc ...............................................................15
3.1.10 – Arquitetura ePING ......................................................................16
3.1.11 – Padrão Model View Controller (MVC).........................................16
3.1.12 – MySQL........................................................................................17
3.1.13 – Framework Hibernate .................................................................18
3.1.14 – Padrão Data Access Object (DAO) ............................................20
3.2 – Arquitetura e Modelagem do Sistema......................................................21
3.3 – Persistência e Internacionalização...........................................................29
3.4 – Comunidade Gene...................................................................................30
4 – Resultados ..........................................................................................................32
4.1 – Resultados da Ferramenta.......................................................................32
4.2 – Resultados de Dinâmica com Usuários ...................................................40
5 – Conclusão ...........................................................................................................42
6 – Referências Bibliográficas ...................................................................................43
Apêndice ...................................................................................................................47
Caso de Uso Criar Conta..................................................................................47
vii
Caso de Uso Solicitar Relacionamento dos Bichinhos .....................................50
Caso de Uso Avaliar Relacionamento dos Bichinhos .......................................53
viii
Lista de Figuras
Figura 1 – Estrutura do Padrão DAO ........................................................................21
Figura 2 – Arquitetura Física do Sistema ..................................................................22
Figura 3 – Ambiente do Projeto.................................................................................22
Figura 4 – Diagrama de Entidade Relacionamento do Gene ....................................23
Figura 5 – Arquitetura Lógica do Sistema .................................................................23
Figura 6 – Dependência entre as Famílias de Classes .............................................24
Figura 7 – Detalhamento da Camada de Apresentação do Projeto ..........................25
Figura 8 – Detalhamento da Camada de Negócio do Projeto ...................................26
Figura 9 – Detalhamento da Camada de Persistência do Projeto.............................26
Figura 10 – Diagrama de Classes do Relacionamento Atributos / Bicho ..................28
Figura 11 – Diagrama de Classes de Atualização do Bichinho .................................28
Figura 12 – Tela Inicial do Sistema ...........................................................................32
Figura 13 – Cadastro do Usuário ..............................................................................33
Figura 14 – Perfil do Usuário.....................................................................................34
Figura 15 – Funcionalidade Célula............................................................................35
Figura 16 – Tela de Ajuda .........................................................................................35
Figura 17 – Escolhendo um de seus Bichinhos.........................................................36
Figura 18 – Comunidade Gene .................................................................................36
Figura 19 – Aviso de Nova Mensagem .....................................................................37
ix
Figura 20 – Correio do Usuário .................................................................................38
Figura 21 – Tela do Jogo ..........................................................................................39
Figura 22 – Relatório do Bichinho .............................................................................39
Figura 23 – Fim de Jogo ...........................................................................................40
Figura 24 – Caso de Uso Criar Conta .......................................................................47
Figura 25 – Diagrama de Sequência UC - Criar Conta .............................................49
Figura 26 – Caso de Uso Solicitar Relacionamento dos Bichinhos...........................50
Figura 27 – Diagrama de Sequência UC - Solicitar Relacionamento dos Bichinhos.52
Figura 28 – Caso de Uso Avaliar Relacionamento dos Bichinhos.............................53
Figura 29 – Diagrama de Sequência UC - Avaliar Relacionamento dos Bichinhos...54
x
Lista de Tabelas
Tabela 1 – Comparação Entre Nível e Atividades.....................................................30
Tabela 2 – Comparação Entre Nível e Características Genética ..............................31
xi
Resumo
Em sua primeira versão, o sistema Gene demonstrou capacidade em apoiar
seus usuários no aprendizado de conceitos de genética, mas foi pouco utilizado,
entre outros motivos, por não possuir recursos multimídia muito atraentes, necessitar
de instalação e não possuir evolução durante jogo. Este projeto provê uma segunda
versão do sistema, sendo a interatividade um dos meios de evolução do ambiente,
em que o usuário desenvolve seu jogo e aprendizado a partir de relacionamentos
com outros usuários. A Comunidade Gene, proposta no projeto, realiza a
interatividade entre os usuários, sendo a partir de um relacionamento com um
bichinho de outro usuário, mais genes para a manipulação e atividades do jogo são
habilitadas, proporcionando assim o jogo em um estágio mais evoluído. O projeto
conduz as dinâmicas de aprendizagem e viabiliza seu uso livre através da Internet,
sem a necessidade de instalação. Em dinâmica realizada com possíveis usuários do
sistema durante o evento Unicamp de Portas Abertas (UPA) 2008, o Gene se
mostrou capaz de apoiar os usuários no aprendizado de genética. Outro ponto
relevante desta segunda versão é a internacionalização para as línguas Espanhola
e Inglesa, além da língua Portuguesa que é a padrão do sistema, contribuindo assim
para a difusão do conhecimento e uso do Gene como uma ferramenta de apoio a
genética.
1
1 – Introdução
Sucesso na década de 90, o jogo tamagotchi ou “Bichinho Virtual”, deu
origem à proposta de uma ferramenta de apoio à aprendizagem para formação em
genética (Borges e Oliveira, 2000). Esta ferramenta é um ambiente de aprendizado
interativo, chamado Gene, cujo foco principal de aprendizagem é a genética. Nele, o
usuário faz o papel de um cientista genético, manipulando os genes de um “bichinho
virtual” e depois simula o nascimento, resultante das manipulações.
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). Para Stahl (1991) e Bongiolo (1998) um
ambiente que propõe um jogo educativo digital deve atrair o jogador, mantendo seu
interesse e entusiasmo, permitindo-o controlar a interação e a continuação do jogo,
a taxa de avanço e a possibilidade de repetir segmentos. Além disso, deve explorar
efeitos auditivos e visuais, para manter a curiosidade, a fantasia e facilitar o alcance
do objetivo educacional proposto
A
primeira
versão
do
Gene
apresentava
algumas
desvantagens
principalmente na questão de motivação do usuário. Os recursos multimídia não
eram muito atraentes (imagens com baixa resolução, quase sem animações e sons),
o sistema tinha uma forma muito peculiar de instalação dificultando sua difusão. A
não evolução do jogo também criava certo desânimo nos usuários.
A proposta da segunda versão do Gene aborda a reconstrução do sistema
explorando tecnologias mais modernas, condução das dinâmicas de aprendizagem
e inclusão de recursos para evolução do jogo propondo um sistema mais motivador.
Desta forma, optou-se por reconstruir toda parte multimídia, acrescentar mais
atividades e ainda tornar o sistema disponível para web, livre de instalação. Além
disso, o projeto dispõe de internacionalização de sua parte textual para as línguas
Espanhola e Inglesa, a fim de difundir ao maior número de pessoas o seu propósito.
Porém o objetivo principal deste projeto é criar uma comunidade que permita certo
2
nível de interação entre os usuários do sistema, contribuindo assim para o
desempenho evolutivo do jogo de cada um.
Em paralelo, o sistema tentou seguir os padrões de acordo com a arquitetura
ePING (ePING, 2007), a fim de identificar a viabilidade ou não de se construir
sistemas totalmente aderentes ao que se está padronizando em âmbito do governo
federal.
Este trabalho está dividido da seguinte maneira: o capítulo 2 contém o
embasamento teórico; no capítulo 3 é apresentado o Projeto Gene; os resultados
estão no capítulo 4; no capítulo 5 está a conclusão; as referências bibliográficas
utilizadas neste trabalho estão listadas no capítulo 6 e por último o apêndice, que
contém maiores detalhes do projeto, mostrando casos de uso dos processos mais
relevantes do sistema.
3
2 – Embasamento Teórico
Este capítulo aborda uma coleção de referências, que contribuíram para a
motivação, definição do escopo e relevância deste projeto. Primeiramente é
apresentada a visão dos computadores no contexto educacional; a seguir são
levantadas as idéias dos paradigmas educacionais construcionista e construtivista;
os jogos educacionais e a influência deles no desenvolvimento de uma criança são
apresentados a seguir, assim como a importância e motivação da existência de
jogos educativos digitais. Por fim estão as definições de combinações genéticas e
como elas surgiram.
2.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).
2.2 – Construcionismo e Construtivismo
Vários paradigmas tradicionais de ensino-aprendizagem sugerem que o
conhecimento seja repassado de uma pessoa para outra pelo contato entre elas,
seja
de
forma
oral,
escrita,
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
4
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. Para Ackermann (2008) os pontos chaves
do construtivismo de Piaget são que as visões evoluem continuamente e que o
conhecimento
expande
e
se
estabelece
(transforma-se
e
reconfigura-se),
internamente, enquanto o construcionismo de Papert trabalha mais com as
dinâmicas de mudança.
Uma forma interessante de se aplicar o Construcionismo é fazendo de um
jogo uma ferramenta de apoio à aprendizagem. Segundo Wang (2006), os jogos
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.
2.3 – Jogos Educativos
Os jogos educativos baseiam-se no interesse pelo lúdico, que independe da
faixa etária. Considerando-se este aspecto, os jogos podem promover ambientes de
aprendizagem atraentes e gratificantes, constituindo-se num recurso poderoso de
estímulo para o desenvolvimento integral do aluno. Segundo Rizzo (1988), os jogos
desenvolvem a atenção, disciplina, autocontrole, respeito a regras e habilidades
perceptivas e motoras relativas a cada tipo de jogo oferecido.
Conforme Negrine (1994, p. 9), “(...) jogo se origina do vocábulo latino iocus,
que significa diversão, brincadeira. Em alguns dicionários aparece como sendo a
‘atividade lúdica com um fim em si mesma, embora ocasionalmente possa se
realizar por motivo extrínseco’”.
Uma criança tem por principal motivo o ato de jogar por que este causa
entretenimento e também porque o jogo representa esforço e conquista. Grande
parte do tempo da infância é dedicada ao jogo, o qual é uma maneira de preparação
para a vida, possibilitando o equilíbrio entre o mundo externo e o interno. Para
Lebovici e Deatkine (1985) e Rodrigues (1992), o ato de jogar é uma atividade muito
importante na vida da criança.
5
O jogo é um possível caminho para estimular ou reforçar tanto as situações
familiares como comunitárias, sendo a atividade de jogar uma alternativa de
realização pessoal que, além de possibilitar a expressão de sentimentos e emoções,
contribui para a aprendizagem de comportamentos adequados e adaptativos,
aumentando a possibilidade de êxito na aprendizagem (Kotliarenco, 1997).
Chapman e Martin (1995) afirmam que os jogos dão oportunidades para a
descoberta de soluções para os mais variados problemas, pois estimulam o
estabelecimento de estratégias e implicações, encorajando os jogadores a resolvêlos.
2.4 – Influência dos Jogos no Desenvolvimento
Segundo Grossi (1986, p. 86), “O jogo é uma atividade rica e de grande efeito
que responde às necessidades lúdicas, intelectuais e afetivas, estimulando a vida
social e representando, assim, importante contribuição na aprendizagem”. Santos
(1998) afirma que as atividades lúdicas podem contribuir significativamente para o
processo de construção do conhecimento da criança e que o jogo é uma fonte de
prazer e descoberta.
Para Leif e Brunelle (1978, p. 114), “Desde Claparède e Dewey, Wallon e
Piaget, está bastante claro que a atividade lúdica é o berço obrigatório das
atividades intelectuais e sociais superiores”. Rizzi (1994) diz que jogando a criança
forma suas atitudes sociais tais como: respeito mútuo, solidariedade, cooperação,
obediência às regras, senso de responsabilidade, iniciativa pessoal e grupal.
Segundo Clunie (1996), a função do jogo é “treinar o sujeito para a convivência
social no mundo regido por leis que precisam ser conhecidas, simulando situações
que ele vivencia, onde pode extrapolar o concreto. Um único jogo pode desenvolver
e aperfeiçoar diversos tipos de conceitos, sendo aplicável em diversas áreas do
conhecimento”.
Piaget afirma que a importância do jogo está na satisfação das necessidades
das crianças quanto à assimilação da realidade à sua própria vontade. Estas
necessidades originam-se da estranheza de coisas que as crianças não
compreendem no mundo dos adultos, como regras, por exemplo: hora de dormir,
6
comer, tomar banho, não mexer em certos objetos, entre outras. O jogo tem uma
relação estreita com a construção da inteligência e possui uma efetiva influência
como instrumento incentivador e motivador no processo de aprendizagem.
Segundo Negrine (1994, p.18), “(...) Piaget entende que a inteligência é uma
forma de adaptação ao meio, e o jogo é basicamente uma forma de relação da
criança com o contexto no qual ela está inserida; neste sentido, adverte que a
criança elabora e desenvolve suas estruturas mentais através das diversas
atividades lúdicas”. Para Piaget, conforme Brenelli (1996, p. 21), “(...) por meio de
atividade lúdica, a criança assimila ou interpreta a realidade própria, atribuindo,
então, ao jogo um valor educacional muito grande. Neste sentido, propõe-se que a
escola possibilite um instrumental à criança, para que, por meio de jogos, ela
assimile as realidades intelectuais, a fim de que estas mesmas realidades não
permaneçam exteriores à sua inteligência”. Baseando-se nestas afirmações, podese verificar a importância que Piaget atribui às atividades lúdicas, reforçando a idéia
de que os educadores devem utilizá-las no contexto educacional.
2.5 – Jogos Educativos Digitais
Os jogos educativos digitais são elaborados para divertir os alunos e
potencializar a aprendizagem de conceitos, conteúdos e habilidades embutidas no
jogo. Um jogo educativo digital pode propiciar ao aluno um ambiente de
aprendizagem rico e complexo. Estes jogos podem ser denominados micro mundos,
porque fornecem um mundo imaginário a ser explorado e no qual os alunos podem
aprender.
As características que tornam os jogos educativos digitais motivadores são o
desafio, a fantasia e a curiosidade. Os jogos podem fornecer alguns resultados
educativos não previstos e que são tão importantes quanto os previamente
determinados. Podem oferecer oportunidades para o aluno usar lógica, raciocínio e
habilidades de organização para resolver problemas de maneira mais interessante
do que seriam expostos em um exercício comum. Um jogo simples pode ensinar
várias habilidades e conceitos, propiciando o desenvolvimento de novas habilidades
cognitivas.
7
Segundo resultados de uma pesquisa realizada sobre a utilização de jogos
educativos digitais (Geller e Silveira, 1998), os professores pesquisados consideram
que a utilização destes jogos é vantajosa para o processo de ensino e
aprendizagem. A justificativa é de que os jogos educativos digitais servem como
estímulo e reforço à motivação, reforçam os conteúdos estudados, despertam o
interesse dos alunos, desenvolvem o raciocínio lógico, atraem os alunos,
potencializam a aprendizagem, possibilitam a construção do conhecimento de forma
prazerosa e propiciam uma forma diferenciada de aprendizagem.
Stahl (1991) e Bongiolo (1998) relacionam características importantes que
devem estar presentes em um jogo educativo digital, das quais se destacam as
seguintes:
•
As instruções do jogo devem estar claras para os participantes e os
objetivos dele devem ser compreendidos pelos alunos;
•
O jogo deve atrair e manter o interesse e o entusiasmo;
•
O jogo deve explorar efeitos auditivos e visuais, para manter a curiosidade
e a fantasia e facilitar o alcance do objetivo educacional proposto;
•
Explorar a competição;
•
Permitir ao jogador controlar a interação e a continuação do jogo, o nível
de dificuldade desejado, a taxa de avanço e a possibilidade de repetir
segmentos;
•
Deve oferecer reforço positivo nos momentos adequados;
•
Incorporar o desafio, através da utilização de diferentes níveis para
solucionar um determinado problema, pontuação, velocidade de resposta,
feedback do progresso, entre outros aspectos;
•
Deve manter os alunos informados do nível de seu desempenho durante o
jogo, fornecendo resumos do desempenho global ao final;
•
Utilizar mecanismos para corrigir possíveis erros dos alunos e melhorar o
desempenho dos mesmos;
8
•
Fornecer instruções inequívocas, exceto quando a descoberta de regras
for parte integrante do jogo;
•
Propiciar um ambiente rico e complexo para resolução de problemas,
através da aplicação de regras lógicas, da experimentação de hipóteses e
antecipação de resultados e planejamento de estratégias.
Franciosi (citado por Bongiolo, 1998) coloca que, além das características
apresentadas anteriormente, um jogo educativo digital precisa observar requisitos de
qualidade didático-pedagógica e também de qualidade técnica, tais como:
•
Requisitos de qualidade didático-pedagógica: objetivos bem definidos,
encadeamento
lógico
do
conteúdo,
adequação
do
vocabulário,
possibilidade de formação de conceitos, ortografia e gramática corretas,
feedback apropriado, clareza e concisão dos textos apresentados,
possibilidade de acesso direto a diferentes níveis do programa e
possibilidade do professor interagir com o sistema, incluindo, excluindo ou
alterando o conteúdo proposto;
•
Requisitos de qualidade técnica: execução rápida e sem erros, resistência
a respostas inadequadas, tempo suficiente de exibição das telas,
possibilidade de acesso à ajuda, possibilidade de trabalho interativo,
possibilidade de controle do usuário sobre a seqüência de execução do
jogo, possibilidade de correção das respostas, possibilidade de sair do
sistema a qualquer momento e uso de telas com diagramação seguindo
um modelo único de organização.
2.6 – Combinação Genética
Gregor Mendel foi o primeiro cientista a elucidar os mecanismos básicos da
hereditariedade. Ele obteve com êxito devido a uma adequada escolha do material
de pesquisa. Além disso, usou um método que empregava indivíduos de linhagens
puras, observando um caráter de cada vez e não todos os caracteres ao mesmo
tempo, como fizeram seus predecessores. Ele interpretou os dados de suas
experiências empregando análises estatísticas de modo a obter resultados
quantitativos sobre suas pesquisas. A primeira lei de Mendel conclui que os fatores
9
(genes) seriam transmitidos aos descendentes através dos gametas. Entretanto,
esses “fatores” se separam durante processo de formação dos gametas de forma
que cada gameta herdaria apenas um “fator” de cada par. (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, a mesma pode se manifestar quando
os alelos forem Aa, aA ou AA. Porém, a característica recessiva só ocorrerá se os
alelos forem aa.
Na maioria das vezes, 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.
Este
capítulo
tratou
de
apresentar
o
embasamento
teórico,
mais
especificadamente a importância dos jogos educativos, das necessidades que os
jogos educativos digitais devem suprir, além dos conceitos dos paradigmas de
aprendizagem construcionista e construtivista e da influência dos jogos no
desenvolvimento infantil. Por fim, a seção de combinação genética ilustrou como são
feitas as manipulações genéticas do bichinho, fundamentadas na primeira lei de
Mendel.
10
3 – Projeto Gene
O Projeto Gene é abordado neste capítulo, que contém todas as ferramentas,
padrões e softwares que foram utilizados no desenvolvimento, incluindo a
modelagem e a arquitetura do sistema, que inclui a arquitetura física e lógica. A
seguir são apresentadas a persistência do jogo e a internacionalização da parte
textual, que visa provocar maior motivação nos usuários e difundir o conhecimento
do sistema, respectivamente. O funcionamento da Comunidade Gene também é
apresentado neste capítulo, mostrando como é realizada a evolução do jogo e a
interatividade entre os usuários.
3.1 – Materiais e Métodos
As ferramentas e softwares que foram utilizados no projeto são: Java 1.6,
Eclipse, Tomcat 6, JSP, JSTL, Struts 2, AJAX, Javadoc, Corel Draw X3, Gif movie
gear, Padrão MVC de Camadas, Arquitetura ePING, MySQL, Hibernate e o Padrão
DAO. As subseções a seguir irão apresentar maiores informações sobre cada uma
delas.
3.1.1 – Java
A utilização da linguagem Java no desenvolvimento do Gene se deve a
algumas vantagens, enumeradas por Fernandéz (1998):
•
Simples: 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;
•
Orientado a objetos: maior facilidade para reutilização de código,
possibilidade de trabalhar em um nível mais elevado de abstração;
11
•
Distribuído: permite aos programadores acessarem a informação através
da rede com tanta facilidade como aos arquivos locais;
•
Robusto: Java é fortemente tipado, o que permite verificar o código em
tempo de compilação. Também verifica o código em tempo de execução.
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;
•
Arquitetura neutra: o código Java é compilado a um código de bytecodes
de alto nível independente da máquina;
•
Seguro: 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 é implementado (UNIX, PC,
Mac);
•
Interpretado: o compilador gera um código intermediário (bytecodes). Este
código pode ser executado em qualquer sistema que possua um
interpretador;
•
Multitarefa: com Java podemos escrever programas que façam várias
coisas ao mesmo tempo;
•
Dinâmico: 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), a linguagem Java 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. Programas em Java podem ser
executados na maioria das plataformas sem necessidade do código-fonte ou
recompilação.
12
3.1.2 – Integrated Development Environment (IDE) Eclipse
O Integrated Development Environment (IDE) ou Ambiente Integrado de
Desenvolvimento escolhido foi o Eclipse (Eclipse, 2008). Segundo Gallardo et al.
(2003), o Eclipse é um ambiente para desenvolvimento Java com todas as
ferramentas necessárias para o desenvolvedor, inclusive um depurador, 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.
3.1.3 – Servidor de Aplicação Tomcat
De acordo com 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, 2008 A).
Segundo DataSynapse (2008), Tomcat é uma ferramenta gratuita e de código
aberto (open-source) que foi desenvolvida em um projeto cujo foco é desenvolver
diversas soluções de software livre baseadas em Java, denominado Jakarta, da
Apache Software Foundation (Jakarta, 2008). A ferramenta está disponível para uso
comercial sob a licença ASF (Apache Software Foundation), no site da Apache
(Apache, 2008 B), nas versões binária e source.
O 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).
13
3.1.4 – JavaServer Pages (JSP)
Este projeto fez uso da tecnologia JavaServer Pages (JSP), que é utilizada no
desenvolvimento de aplicações Web, desenvolvida pela Sun Microsystem. Seu
conteúdo pode ser puramente estático HyperText Markup Language (HTML) ou
conter elementos dinâmicos, que são processados pelo servidor de aplicação Web
antes da página HTML ser enviada (Jendrock et al., 2006).
Segundo SUN (2008), a página JSP é baseada na linguagem de
programação Java, tem a vantagem de portabilidade de plataforma, que permite a
sua execução em diversos sistemas operacionais; como o Windows e o Linux.
Permite ainda a produção de aplicações que acessem o banco de dados, manipulem
arquivos no formato texto, capturem informações a partir de formulários e a captura
de informações sobre o visitante e o servidor. Para desenvolver aplicações que
utilizem JSP é necessário o conhecimento prévio sobre a especificação Java
Enterprise Edition (JEE), que é um conjunto de padrões e especificações
responsável por receber as requisições do cliente (browser), entendê-las e
direcioná-las aos responsáveis pelas respostas às ações solicitadas.
A tecnologia JSP fornece um poderoso recurso na confecção de páginas web:
as bibliotecas de tags ou taglibs. Através delas, é possível encapsular trechos de
código Java em tags, facilitando a manutenção, aumentando a clareza do código e
estimulando o reuso das páginas (SUN, 2008).
3.1.5 – JSP Standard Tag Library (JSTL)
A tecnologia JSTL foi utilizada no projeto por meio do uso de suas tags nas
páginas JSP. Segundo Leme (2006), a JSTL é a Application Programming Interface
(API) que encapsulou em tags toda a funcionalidade que diversas páginas web
precisam, como controle de laços (fors), controle de fluxo do tipo if else,
manipulação de dados XML e a internacionalização da aplicação.
14
3.1.6 – Framework Struts 2
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 pode ainda ser utilizado por outras equipes da empresa, seja ela
em um mesmo projeto ou em outros.
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 à 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, utilizadas pela maioria dos programadores web. 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).
Outros pontos positivos são a validação de formulários das páginas JSP e
muita documentação disponível em Livros e na Internet, deixando-o mais simples
para o uso.
15
3.1.7 – Application Programming Interface (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).
Segundo Baudisch (2006), AJAX (Asynchronous Javascript And XML) é um
conjunto de tecnologias, para tornar páginas mais interativas com o usuário,
utilizando-se de solicitações assíncronas de informações. AJAX não é somente um
novo modelo, é também uma iniciativa na construção de aplicações web mais
dinâmicas e criativas.
3.1.8 – Corel Draw e Gif Movie Gear
O software Corel Draw X3 (Corel, 2008) 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, 2008).
Esses programas foram usados por possuírem grandes funcionalidades de
efeitos, edição e manipulação de imagens, além da facilidade de uso.
3.1.9 – Documentação Javadoc
Segundo Medeiros (2006), documentar pontos estratégicos dos códigos
fontes é uma necessidade, indiferente do paradigma de programação ou da
plataforma de desenvolvimento. É crescente a necessidade de se reutilizar como
documentação comentários feitos em alguns pontos nos códigos fontes. Javadoc é
um recurso útil para isso em linguagem 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 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.
16
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.
3.1.10 – Arquitetura ePING
A arquitetura ePING 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 ePING (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 de 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, que contemple, numa estrutura de diretório, os
assuntos relacionados com a atuação de governo; suporte de mercado;
escalabilidade; adoção preferencial de padrões abertos e garantia à privacidade de
informação.
A arquitetura ePING 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 ePING, 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).
3.1.11 – Padrão Model View Controller (MVC)
O MVC é um padrão de arquitetura de software. Com o aumento da
complexidade das aplicações desenvolvidas torna-se fundamental a separação entre
os dados e o layout. Desta forma, alterações feitas no layout não afetam a
manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.
17
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 web 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.
A modelagem do projeto utilizando o padrão de camadas MVC ajuda a
promover a modularidade pois os objetos podem ter reduzidas as dependências
entre si ficando assim fracamente acoplados, proporcionando um código mais fácil
de manter e evoluir.
3.1.12 – MySQL
O Sistema Gerenciador de Banco de Dados (SGBD) usado no projeto foi o
MySQL. Ele é um sistema de gerenciamento de banco de dados, que utiliza a
linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada)
como interface. É atualmente um dos bancos de dados mais populares, com mais de
10 milhões de instalações pelo mundo.Entre os usuários do banco de dados MySQL
estão: NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa,
U.S Army, US. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco
Systems e outros. (MySQL, 2008)
O MySQL é um dos sistemas de gerenciamento de banco de dados mais
populares que existe e, por ser otimizado para aplicações Web, é amplamente
utilizado na internet.
Outro fator que ajuda na popularidade do MySQL é sua disponibilidade para
praticamente qualquer sistema operacional, como Linux, FreeBSD (e outros
sistemas baseados em Unix), Windows e Mac OS X. Além disso, o MySQL é um
18
software livre (sob licença GPL), o que significa que qualquer um pode estudá-lo ou
alterá-lo conforme a necessidade.
Segundo MySQL (2008), entre as características técnicas principais do SGBD
MySQL, estão:
•
Alta compatibilidade com linguagens como PHP, Java, Python, C#, Ruby e
C/C++;
•
Baixa exigência de processamento (em comparação como outros SGBD);
•
Vários sistemas de armazenamento de dados, como MyISAM, MySQL
Cluster, CSV, Merge, InnoDB, entre outros;
•
Recursos
como
transactions
(transações),
conectividade
segura,
indexação de campos de texto, replicação, etc;
•
Instruções em SQL, como indica o nome.
O principal foco do MySQL é a agilidade. Assim, se a aplicação necessita de
retornos rápidos e não envolve operações complexas, o MySQL é otimizado para
proporcionar processamento rápido dos dados e tempo curto de resposta sem exigir
muito do hardware.
3.1.13 – Framework Hibernate
O Hibernate é um framework para mapeamento objeto-relacional, escrito na
linguagem Java. Este framework facilita o mapeamento dos atributos entre uma
base tradicional de dados relacionais e o modelo objeto de uma aplicação, mediante
o uso de arquivos (XML) para estabelecer esta relação. Hibernate é um software
livre de código aberto.
Segundo Bauer e King (2005), o objetivo do Hibernate é diminuir a
complexidade entre os programas Java, baseados no modelo orientado a objeto,
que precisam trabalhar com um banco de dados do modelo relacional (presente na
maioria dos SGDBs); em especial, no desenvolvimento de consultas e atualizações
dos dados.
19
Para Hibernate (2008), a principal característica do Hibernate é a
transformação das classes em Java para tabelas de dados (e dos tipos de dados
Java para os da SQL). O Hibernate gera as chamadas SQL e libera o desenvolvedor
do trabalho manual da conversão dos dados resultantes, mantendo o programa
portável para quaisquer bancos de dados SQL, porém causando um pequeno
aumento no tempo de execução.
As questões relacionadas ao gerenciamento de transações e à tecnologia de
acesso à base de dados são de responsabilidade de outros elementos na
infraestrutura do programa. Apesar de existir uma Application Programming Interface
(API) no Hibernate para realizar operações de controle transacional, ele
simplesmente delegará estas funções para a infraestrutura sobre a qual foi instalada.
Hibernate (2008) cita algumas das vantagens oferecidas pelo framework
Hibernate:
•
Controle transacional: o framework deve permitir rollback quando ocorrer
algum erro e commit quando o objeto for persistido com sucesso;
•
Identificadores de objeto: cada objeto deve ter um identificador único para
ser relacionado com o registro correspondente. Um OID (Object Identifier)
garante que o objeto não se duplicará;
•
Mapeamento O-R: se não utilizar um banco de dados orientado a objetos
deve existir um mapeamento de objeto relacional entre a classe e a tabela
do banco de dados. Isso é um dos requisitos principais de um framework
de
persistência
de
objetos
é
responsável
por
transformar
uma
representação de dados não orientada a objetos em um objeto e por
armazenar um objeto persistente no seu mecanismo de persistência como
um banco de dados, por exemplo;
•
Cache: com o uso de cache o objeto é colocado em uma memória local
para obter um maior desempenho; quando for necessário o uso desse
objeto, basta apenas buscá-lo na memória local em que ele foi colocado,
agilizando todo o processo;
20
•
Consultas sob demanda: os objetos são carregados apenas quando
necessário, evitando que registros sejam recuperados todos de uma vez
só. Isso reduz a carga de informações na rede; se a aplicação for utilizada
através da Internet este recurso garante um melhor desempenho;
•
Queries: utilizadas para consultas mais complexas, isto pode ser feito
através de OQL (Object Query Language) que é uma linguagem de
consulta a banco de dados orientados a objetos ou também embutindo
código SQL (Structure Query Language) na aplicação;
•
Portabilidade: um framework de persistência deve ser compatível com
vários tipos de mecanismos de persistência de dados e também
disponibilizar diversas maneiras de conexão, sendo isso muito importante
porque quando for necessário trocar de mecanismo de persistência de
dados não é necessário mudar toda sua aplicação.
3.1.14 – Padrão Data Access Object (DAO)
Na última década tem-se dedicado esforços no estudo e disseminação dos
padrões de projeto para aumentar a reusabilidade de software e por consequência
diminuir o custo de manutenção. Segundo Gamma et al (2000), Valente (2003),
Shalloway e Trott (2004) e Fowler (2006), os padrões de projeto permitem a
reutilização de arquiteturas e projetos bem sucedidos, reaproveitando soluções e a
experiência dos modeladores, assim como estabelecendo um vocabulário comum
para os envolvidos no desenvolvimento, fazendo com que se melhore a
comunicação entre eles. Além disso, a adoção de padrões requer adaptação dos
projetos, e com isso naturalmente as aplicações precisam ser bem arquitetadas para
tal reaproveitamento.
Na busca de uma solução para melhorar a manutenibilidade do projeto quanto
à conexão de banco de dados foi proposto a adoção do padrão de projetos Data
Access Object (DAO), que segundo AECE (2005), abstrai e encapsula os
mecanismos de acesso a banco de dados.
Usando esse padrão, a camada de negócios acessa os dados persistidos
sem ter conhecimento se os dados estão em um banco de dados relacional ou um
21
arquivo XML. O padrão DAO esconde os detalhes da execução da origem dos
dados (SUN, 2007).
A figura 1 apresenta a estrutura do padrão DAO. A classe DataAccessObject
encapsula o acesso aos dados, que por sua vez é mantido pela classe DataSource
que pode ser um arquivo XML, uma base de dados ou algum serviço remoto, ou
seja, a origem dos dados. A classe BusinessObject representa a aplicação (também
conhecida como cliente do padrão), que usa um objeto DataAccessObject. Ao
utilizar esse objeto DataAcessObject, o objeto cliente recebe ou envia um objeto
TransferObject (no projeto chamado de ValueObject). Esse objeto contém os dados
a serem enviados ou trazidos da origem dos dados, e normalmente referem-se aos
campos de um registro.
Figura 1 – Estrutura do Padrão DAO (SUN, 2007)
3.2 – Arquitetura e Modelagem do Sistema
O sistema, por se tratar de uma aplicação web Java Enterprise Edition (JEE),
necessita de um servidor de aplicação para ser utilizado, sendo este o Tomcat para
este projeto. Este servidor possui configurado o componente chamado Gene e o seu
acesso é feito via Internet pelo computador do usuário.
A base de dados pode ficar ou não na mesma máquina física onde o Tomcat
está instalado, pois o acesso a base da dados é facilmente configurável. A figura 2
ilustra a arquitetura física do projeto.
22
Figura 2 – Arquitetura Física do Sistema (Silveira e Borges, 2008 A, pág. 5)
A figura 3 mostra um diagrama de componentes Unified Modeling Language
(UML) (UML, 2008), representando como está organizado o ambiente do projeto. O
Gene funciona como um componente dentro do servidor de aplicação Tomcat e tem
uma relação direta com o Banco de Dados Gene que funciona dentro do Sistema
Gerenciador de Banco de Dados MySQL. O acesso a base de dados é configurada
por meio de um arquivo de propriedades (*.properties), que contém as informações
de localização, nome, usuário e senha do banco de dados.
Figura 3 – Ambiente do Projeto
A figura 4 apresenta o Diagrama de Entidade Relacionamento (DER) do
sistema. A tabela BICHO possui relacionamentos um para muitos com as tabelas
ATRIBUTO e PAR. A tabela USUARIO tem relacionamento um para muitos com
BICHO e MENSAGEM. A tabela ATIVIDADES é uma tabela de configuração do
sistema, que contém todas as atividades possíveis para conduzir o bichinho (comer,
beber, jogar e dar banho).
Esta tabela é carregada no sistema, e com base nos níveis do bichinho, um
filtro separa as atividades disponíveis naquele momento para o bichinho.
23
Figura 4 – Diagrama de Entidade Relacionamento do Gene
Silveira e Borges (2008 A) citam que a arquitetura do Projeto Gene é baseada
no padrão MVC de camadas, no qual o projeto fica dividido por partes e estruturado
de uma maneira mais lógica e fácil de compreender.
A figura 5 mostra o Gene conforme a arquitetura deste padrão, mostrando em
cada camada as tecnologias usadas no sistema. O Framework Struts 2 encontra-se
entre as camadas de Apresentação e Negócio, fazendo uma ponte de comunicação
entre as mesmas.
Figura 5 – Arquitetura Lógica do Sistema (Silveira e Borges, 2008 A, pág. 4)
24
A dependência entre as famílias de classes do projeto é apresentada na
figura 6.
<<Apresentação>>
Tags
<<Apresentação>>
Páginas JSP
<<Apresentação>>
Actions /
ActionsForms
<<Negócio>>
Business Class
<<PersistênciaHibernate>>
...>>
DaoHibernate
<<Persistência>>
ValueObjects
Figura 6 – Dependência entre as Famílias de Classes
A descrição de cada componente da figura 6 é mostrada a seguir:
•
Páginas JSP: são as que de fato o usuário tem contato, é a interface visual
interagindo o usuário com o sistema. É responsabilidade dela a conversão
para o HTML que o browser entende.
•
Tags: devem aplicar a lógica e/ou as reutilizações de visualização HTML.
No sistema foram utilizadas Tags JavaServer Pages Standard Tag Library
(JSTL) (JSTL, 2008), e Tags do framework Struts 2 (Struts, 2008), por
serem pacotes com as principais tags utilizadas e já estarem prontas para
o uso.
•
Actions: correspondem a uma ação junto ao sistema. Realizam a ligação
entre uma ação disparada pelo usuário e a sua execução junto ao
modelos de negócios.
•
ActionForms: são os parâmetros de uma determinada ação do sistema,
que permite a validação dos dados no servidor.
•
BusinessClass: nesta família de classes estão mapeadas as regras do
sistema, como por exemplo, regra de nascimento de um novo Bichinho.
Faz também a comunicação com o componente de PersistênciaHibernate.
25
•
PersistênciaHibernate: é uma família de classes do grupo Hibernate, que
foi adaptado aos moldes de necessidades do projeto. Auxilia a integração
entre o modelo de negócios e o modelo de dados. Com estas foram
possíveis o mapeamento da Base de Dados em objetos, possuindo
métodos prontos para o uso como Inserts, Selects e também flexível
quanto à criação de métodos mais específicos.
•
Persistência: trata-se das classes modeladas conforme as tabelas da base
dados. Para cada tabela foi criado um ValueObject ou mesmo chamado de
VO. Estas classes podem também conter métodos para manipular seus
próprios dados.
O detalhamento da camada de apresentação do projeto, mostrada na figura 7,
é implementada por ações (actions) do framework Struts 2. Esta camada faz a ponte
de comunicação entre a interface visual e as regras de negócio. No pacote
presentation estão as actions do sistema. Elas podem ser chamadas diretamente
pela interface visual ou por outra action. Dentro do pacote presentation.form ficam as
classes que abstraem os formulários do sistema. Os atributos dessas classes são
lidos dentro das actions.
Figura 7 – Detalhamento da Camada de Apresentação do Projeto
26
Todas as operações que precisam acessar a base de dados são
implementadas na camada de negócio do sistema, presente no pacote business,
mostrado na figura 8.
Figura 8 – Detalhamento da Camada de Negócio do Projeto
O detalhamento da camada de persistência do projeto é apresentado a seguir
na figura 9. Para melhor abstração dos dados foi utilizado o padrão DAO, citado na
seção 3.1.14 do trabalho.
Figura 9 – Detalhamento da Camada de Persistência do Projeto
27
Dentro do pacote persistence estão as classes HibernateUtil e DAOFactory. A
primeira é responsável por configurar a sessão para comunicação do Hibernate a
base de dados, através de um arquivo de propriedades que possui: nome, usuário e
senha do banco da dados. A segunda tem em seu construtor a chamada do atributo
session da primeira, métodos para iniciar, fechar e efetivar a transação entre o
software e o banco, e além disso, possui métodos que “fabricam” o DAO, chamados
nas classes de negócio. O pacote persistence.dao possui a classe DAO. Esta é uma
classe genérica, implementada com template, que tem métodos que acessam a
base de dados abstraídos pelo framework Hibernate.
Em persistence.mappings estão os mapeamentos das classes contidas em
persistence.vo, que são modelos das tabelas no sistema. Basicamente é a tradução
de uma classe Java para uma tabela da base de dados. As classes dentro de
persistence.vo.attributes são as classes filhas que herdam a classe Atributo de
persistence.vo, pois cada uma delas possui implementação própria do método
timer(), que atualiza os seus próprios valores. Para uma visualização mais
organizada dos pacotes foi decidido a separação destas classes em outro pacote
(persistence.vo.attributes).
O diagrama de classes parcial do projeto (figura 10) tem como uma das suas
principais classes a classe Bicho que possui uma lista de atributos referentes a
Felicidade, Calorias, Nutrientes, Água, etc. Esses atributos foram classificados como
de primeiro nível e de segundo nível.
Os atributos 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 tem seu valor calculado com base em outros
atributos: o Peso (segundo nível) depende do valor de Nutrientes, Calorias e Água
(primeiro nível).
A classe Atributo possui o método timer(), que é abstrato, assim cada uma
das classes que a herda precisa implementar este método. Esta estrutura foi
definida assim pois cada uma das classes que herdam Atributo (Calorias, Nutrientes,
Água, etc) precisam implementar uma lógica diferente no método timer().
28
Figura 10 – Diagrama de Classes do Relacionamento Atributos/Bicho
(Silveira e Borges, 2008 A, pág. 5)
Para o projeto foi necessária a criação de Listas personalizadas para disparar
o timer de cada um de seus nós (atributos de primeiro e segundo nível) além de um
método de busca chamado pesquisar(“nomeDoAtributo”), que faz uma busca pelo
nome do atributo e retorna o seu objeto.
Figura 11 – Diagrama de Classes de Atualização do Bichinho
29
A ação de atualização dos dados do bichinho no sistema é mostrada na figura
11. A classe TimerServlet é chamada quando é iniciado o jogo com um bichinho.
Esta classe tem o método iniciarTimer() que chama BichoTask. Esta é uma classe
que implementa o método run() da classe abstrata TimerTask do Java, além de ter o
atributo session do tipo HttpSession e por meio deste é recuperada a instância do
objeto Bicho.
A classe TimerService é de fato a responsável pela chamada de atualização.
No seu método update(), é chamado bicho.getListaAtributos().acionaTimers(), que
aciona os timers de todos os atributos adicionados na Lista de Atributos. Este
processo acontece a cada 10 segundos.
3.3 – Persistência e Internacionalização
Segundo Silveira e Borges (2008 B), a persistência do bichinho é outro
atrativo que aumenta a motivação do jogo, pois o usuário pode salvar o estado atual
do bichinho para continuar jogando mais tarde.
Quando o usuário faz o login de sua conta, ele é direcionado para o seu perfil
que possui os bichinhos já criados e salvos. Caso exista algum bichinho mais
habilitado para o usuário jogar, porém o jogo com este bichinho não foi iniciado
ainda, a manipulação dos genes fica a disposição do usuário.
A internacionalização do sistema foi uma estratégia adotada para tentar levar
o projeto para o conhecimento também de países de língua Espanhola e Inglesa.
Primeiramente o sistema captura o objeto locale do navegador do usuário a
fim de saber em que língua o sistema deve iniciar. Porém o usuário tem a liberdade
de escolher uma visualização textual do sistema em outra língua apenas
pressionando os botões representados por bandeiras, disponíveis no canto superior
direito da tela.
Todos os textos disponíveis no sistema encontram-se separados das páginas
JSP, modularizados por língua em arquivos de propriedades do projeto
(*.properties).
30
3.4 – Comunidade Gene
Buscando aumentar a motivação dos usuários, o bichinho criado inicialmente
a partir de uma manipulação genética, em determinado momento de sua vida, podese relacionar com outro bichinho de outro usuário. Desse relacionamento surgem
novos bichinhos, mais evoluídos, um para cada usuário, com mais genes para
manipular e atividades disponíveis para jogar. O critério de seleção da lista de
bichinhos aptos a se relacionar com outro funciona da seguinte maneira:
•
Deve ser do sexo oposto;
•
Ter mais de 10 anos de idade;
•
É dada prioridade aos bichinhos de usuários conectados no sistema.
De acordo com Silveira e Borges (2008 B), a partir do momento que é feita a
escolha de um dos bichinhos da lista, uma mensagem é enviada para o usuário do
bichinho escolhido. Com o intuito de oferecer a opção de decisão ao usuário que
recebeu a mensagem, ele escolhe “Aceitar”, caso queira que um bichinho novo mais
evoluído (com mais genes e atividades) seja disponibilizado para ele. Com isso o
usuário remetente da mensagem também ganha um bichinho mais evoluído. Porém
caso a opção “Recusar” seja a escolhida pelo destinatário da mensagem, nenhuma
ação acontece para os dois usuários.
O controle de evolução dos bichinhos é feito por um nível que aumenta cada
vez que um relacionamento com outro usuário é efetivado com sucesso. Este nível é
responsável por controlar os genes a serem manipulados e atividades disponíveis
para os usuários conduzirem com os bichinhos. As tabelas 1 e 2 ilustram como
foram desenvolvidos esses controles no sistema.
Tabela 1. Comparação Entre Nível e Atividades
Nível do Bichinho
Atividades
0
Comer, Beber
1
Comer, Beber, Jogar
2
Comer, Beber, Jogar, Banhar
31
Tabela 2. Comparação Entre Nível e Características Genéticas
Nível do Bichinho
Características Genéticas
0
Sexo, Cor
1
Sexo, Cor, Antena
2
Sexo, Cor, Antena, Miopia
Para a implementação da comunidade foi decida a criação de contas de
usuários no sistema. Estas são efetuadas preenchendo um formulário com alguns
dados pessoais (Nome, Escolaridade, e-mail, Usuário, Senha, etc). No Apêndice
deste trabalho são abordados maiores detalhes sobre os fluxos de criação de conta
no sistema, além dos fluxos realizados na Comunidade Gene (Solicitar e Avaliar
relacionamento dos Bichinhos)
O Projeto Gene foi abordado neste capítulo, sendo apresentados todos os
materiais e métodos utilizados (padrões, ferramentas e softwares), assim como toda
arquitetura e modelagem do sistema. A persistência do jogo e a internacionalização
da parte textual do sistema para as línguas Portuguesa, Espanhola e Inglesa foram
abordadas neste capítulo também. Foi detalhada a funcionalidade da Comunidade
Gene, que integra e interage os usuários do sistema, cuja finalidade é proporcionar
maior motivação nos usuários do Gene.
32
4 – Resultados
Os resultados são apresentados neste capítulo, que está subdividido em duas
seções: resultados da ferramenta e resultados de dinâmica com usuários. Na
primeira são mostradas as funcionalidades disponíveis aos usuários do Gene, como
criar contar, acesso ao perfil, o jogo, a comunidade Gene, etc. Os resultados da
dinâmica feita com usuários durante o evento Unicamp de Portas Abertas 2008 são
analisados a seguir.
4.1 – Resultados da Ferramenta
Quando o sistema é iniciado é aberta a tela de apresentação (figura 12).
Nesta, o usuário que já possui conta no sistema pode entrar em seu perfil digitando
o Usuário e Senha escolhidos por ele na hora do cadastro.
Figura 12 – Tela Inicial do Sistema
33
Porém caso o usuário não possua conta ainda, ele pode criá-la clicando no
link “Cadastre-se Aqui”, disponibilizado abaixo do botão “Entrar”. A partir daí o
sistema redireciona o usuário para a tela de cadastro para que ele possa criar uma
conta. Na figura 13 é apresentada a tela de cadastro. Alguns campos do formulário
de cadastro são obrigatórios (Nome Completo, Usuário, Senha, Confirmação de
Senha). Quando o usuário não os preenche, uma mensagem de alerta é exibida a
fim de orientá-lo sobre o processo correto de preenchimento do formulário de
cadastro.
Figura 13 – Cadastro do Usuário
O sistema também valida se já existe algum usuário que já tenha o nome de
Usuário escolhido e se os campos Senha e Confirmação de Senha estão com
valores iguais.
Após a validação de Usuário e Senha ou do Cadastro, o sistema abre a tela
de perfil do usuário. Nesta tela de perfil as opções Dados Pessoais, Sair,
Comunidade, Célula, Ajuda e Correio estão disponíveis ao Usuário. A figura 14
mostra essa tela de perfil do usuário depois que ele já possui uma conta no sistema.
34
Neste caso o usuário possui dois bichinhos (esquerda e meio) com a manipulação
genética já realizada e um (direita) ainda não disponível para o jogo.
Figura 14 – Perfil do Usuário
A função Dados Pessoais oferece ao usuário o retorno aos seus dados
cadastrados no sistema, podendo atualizá-los. Os dados são apresentados na tela
de cadastro exibida na figura 13.
Na funcionalidade Célula da tela de perfil, é apresentada uma célula
eucarionte animal, com suas respectivas organelas (figura 15). Ao pressionar 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.
A funcionalidade Ajuda do abre uma tela com explicação das funcionalidades
do sistema. Conforme mostrado na figura 16 a seguir.
35
Figura 15 – Funcionalidade Célula
Figura 16 – Tela de Ajuda
36
Comunidade oferece ao usuário a funcionalidade de interação com outros
usuários. Quando chamada, é aberta uma tela para escolha de um de seus
bichinhos (figura 17). Após esta escolha o sistema exibe uma tela com os possíveis
bichinhos para o relacionamento (figura 18). Assim o usuário escolhe um dos
bichinhos mostrados para o relacionamento e o sistema envia a solicitação ao
usuário escolhido.
Figura 17 – Escolhendo um de seus Bichinhos
Figura 18 – Comunidade Gene
37
A funcionalidade Correio é o canal que comunica o usuário quando ele foi
escolhido para um relacionamento. Assim que o usuário recebe uma nova
mensagem, um aviso é mostrado como uma barra informativa para ele no perfil com
a mensagem “Você tem mensagem(ns) não lida(s) no seu Correio”, além do
desenho de um envelope ao lado do botão Correio (figura 19).
Partindo do pressuposto que o usuário depois de ter sido informado de que
existe alguma mensagem não lida, clica no botão Correio, o sistema abre uma tela
com as suas mensagens, como mostra a figura 20.
Figura 19 – Aviso de Nova Mensagem
Se o usuário clicar no botão “Aceitar”, um bichinho mais evoluído nasce para
ele e para o solicitante do relacionamento. Caso contrário, a opção seja a do botão
“Recusar”, nada acontece para ambos.
38
Figura 20 – Correio do Usuário
Quando algum dos bichinhos do perfil é pressionado, incia-se o jogo com ele.
Qualquer alteração dele na aparência é refletida no perfil após o término do jogo. A
figura 21 mostra a tela de jogo do primeiro bichinho (esquerda) mostrado na figura
19.
Durante o jogo o usuário pode consultar o Relatório do Bichinho. Neste estão
listados todos seus atributos. Assim o usuário fica sabendo melhor sobre o
andamento do seu jogo (figura 22).
39
Figura 21 – Tela do Jogo
Figura 22 – Relatório do Bichinho
40
O jogo quando mal conduzido ou quando o bichinho chega a certa idade
mostra uma tela (figura 23) de fim de jogo. Esta contém os valores de todos os
atributos do bichinho dando um feedback ao jogador de como foi o seu desempenho
no jogo. Assim novas estratégias, experiências e aprendizados podem ser
construídos visualizando estas informações.
Figura 23 – Fim de Jogo
4.2 – Resultados de Dinâmica com Usuários
Como análise dos resultados do projeto foi feito um estudo da exposição do
Projeto Gene durante o evento UPA 2008 (UNICAMP de Portas Abertas).
Os usuários de faixa etária mais nova (13 a 15 anos), um total de 8 pessoas,
passaram mais tempo fazendo as combinações genéticas e jogando. Questionavam
mais sobre o sistema em termos de como evoluir o bichinho, se ele iria crescer, se
haveria mais genes disponíveis para fazer mais combinações possíveis. Porém
poucos usuários dessa faixa etária perceberam que os números de atividades do
bichinho estavam aumentando (inicialmente comer e beber, depois tomar banho e
por último brincar).
41
Usuários de maior faixa etária (16 a 25 anos), totalizando 25 pessoas,
focaram mais sobre o funcionamento do sistema, verificando mais vezes a
funcionalidade de informações do bichinho (Relatório). Alguns ainda tentaram por
diversas vezes matar o bichinho dando a ele comida e água em excesso. Porém
quando viam que em determinado momento o bichinho não aceitava mais comida
nem água; questionavam em que momento ele morria, que é quando ele fica com
muita fome e/ou sede ou quando chega a certa idade.
A versão apresentada durante o UPA 2008 ainda não tinha a parte da
Comunidade Gene construída. Apenas o jogo com um Bichinho, criado a partir de
uma manipulação genética, estava disponível. A Comunidade Gene não foi testada
em dinâmicas com usuários até o momento, porém trabalhos futuros realizarão
estas dinâmicas.
42
5 – 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ídia não muito atraentes, dificuldade de instalação, não evolução no
cruzamento de genes e nas suas atividades.
Devido a tais circunstâncias, decidiu-se fazer a reengenharia do projeto,
fazendo uso de tecnologias mais atuais, disponibilizando o sistema em ambiente
web e ainda acrescentando atividades, cruzamento de genes, etc. Visando deixar o
jogo mais atrativo e contribuindo para uma maior motivação dos usuários, os
recursos de evolução e persistência do jogo foram incorporados ao projeto. A
evolução do jogo acontece de duas maneiras: nos números de genes para se
manipular e no de atividades (comer, beber, jogar e banho) para conduzir o bichinho.
Os resultados apareceram fazendo-se uma análise do uso do sistema durante
o evento Unicamp de Portas Abertas 2008 (UPA), citado na seção 4.2, assim como
uma versão do projeto que fosse mais motivadora e aplicasse o uso de interação
entre os usuários do sistema.
Como um próximo passo, o projeto será disponibilizado na Internet, facilitando
o acesso de terceiros ao conhecimento e ao uso do Gene. Assim o sistema ganhará
maior visibilidade, possibilitando a difusão de diversos conceitos de genética de uma
forma divertida e motivadora. A partir do trabalho realizado, outros trabalhos irão
complementar ou dar continuidade ao tema explorado, tanto na parte de condução
das dinâmicas de aprendizagem como em questões de motivação e interação dos
usuários.
43
6 – Referências Bibliográficas
ACKERMANN, E. Construtivismo ou Construcionismo: Qual é a diferença?
MEDIA
LAB
–
MIT
–
BOSTON/EUA.
Disponível
em:
<http://www.cec.g12.br/artigos/artigo_004.pdf> Acesso em: 15 fev 2008.
AECE, I. Analisando o Microsoft PetShop 3.0. São Paulo. 2005. Disponível em:
<http://www.projetando.net/Sections/ViewArticle.aspx?ArticleID=14> Acesso em:
07 jul. 2008.
APACHE. Apache Tomcat. Disponível em: http://tomcat.apache.org/download60.cgi Acesso em: 12 jun. 2008 A.
APACHE.
The
Apache
Software
Foundation.
<http://www.apache.org> Acesso em: 16 jun. 2008 B.
Disponível
em:
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-%E9AJAX-e-como-aplic%E1-lo-com-PHP> Acesso em: 16 ago. 2008.
BAUER C.; KING G. Hibernate in Action. São Paulo. Editora Ciência Moderna.
2005.
BESSER, H. Critical Thoughts About Tamagotchi. 1997. Disponível em:
<http://www.sims.berkeley.edu/courses/is296a3/s97/Focus/Identity/FINAL/index.h
tm>
BONGIOLO, C. E. F.; et al. Subindo e Escorregando: jogo para introdução do
conceito de adição de números inteiros. In: CONGRESSO DA REDE
IBEROAMERICANA DE INFORMÁTICA NA EDUCAÇÃO, 4., 1998, Brasília:
Universidade de Brasília, 1998.
BORGES, M. A. F.; OLIVEIRA, S. P. 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>
BRENELLI, R. P. O Jogo como Espaço para Pensar: a construção de noções
lógicas e aritméticas. Campinas, São Paulo: Papirus, 1996.
CHAPMAN, G. M.; MARTIN, J. F. Computerized Business Games in
Engineering Education. Computers & Education, Oxford, v. 25, n. 1/2, p. 67-73,
1995.
CLUNIE, G.; et al. ESCOLA: Meta-ambiente de aprendizagem baseado em
hipertecnologias. In: CONGRESSO DA REDE IBEROAMERICANA DE
INFORMÁTICA NA EDUCAÇÃO, 3., 1996, Colômbia, Barranquilla. Anais... [s.l.:
s.n.], 1996.
CNS.
Glossário,
R
–
Z,
1999.
Disponível
em:
<http://www.estudar.org/pessoa/internet/22glossary/r-z.html> Acesso em: 15 set.
2008.
44
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_idfami
lia=2&click_iditem=2> Acesso em: 20 ago 2008
DATASYNAPSE.
Glossário
2008
Disponível
<http://www.datasynapse.com/en/glossary.php> Acesso em: 10 set 2008.
em:
DWR. Direct Web Remoting. Disponível em: <http://getahead.org/dwr> Acesso
em: 12 out 2008.
ECLIPSE. Eclipse, an open development
<http://www.eclipse.org> Acesso em: 12 out 2008.
platform.
Disponível
em:
EPING. Governo Eletrônico, Apresentação ePing. Disponível
<https://www.governoeletronico.gov.br/acoes-e-projetos/e-ping-padroes-deinteroperabilidade> Acesso em: 20 out 2007.
em:
EPING. ePING 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 jul 2008.
FAGUNDES, L. Jornal Correio Popular, Campinas, 1997.
FERNANDÉZ,
M.
J.
Java.
Parte
I.
1998
Disponível
em:
<http://linuxfocus.org/Portugues/July1998/article57.html> Acesso em: 15 jan.
2008.
FOWLER, M. Padrões de arquitetura de aplicações corporativas. 2006 [s.l.;
s.n.].
GALLARDO, D.; et al. Eclipse in Action A GUIDE FOR JAVA DEVELOPERS.
Manning, 402p. 2003.
GAMANI. Get your animation in gear. Disponível em: <http://www.gamani.com>
Acesso em: 13 out. 2008.
GAMMA, E.; et al. Padrões de projeto: soluções reutilizáveis de software
orientado a objetos. 2000. [s.l.; s.n.].
GELLER, M.; SILVEIRA, S. R. Estudo e Análise de Jogos Educativos
Computadorizados. Relatório de Pesquisa. Canoas: ULBRA, 1998.
GROSSI, E. P. (Org.). Escolas Infantis: leitura e escrita. Erechim: Edelbra,
1986.
HIBERNATE. Relational Persistence for Java and .NET. Disponível em:
<http://www.hibernate.org> Acesso em: 15 nov. 2008.
HUSTED, T.; et al. Struts in Action Building web applications
leading Java framework. Manning, 664p. 2003.
JAKARTA. The Apache Jakarta Project,
<http://jakarta.apache.org> Acesso em: 16 jun. 2008.
2008.
with the
Disponível
em:
JENDROCK, E.; et al. The JavaTM EE 5 Tutorial Third Edition. Addison
Wesley, 2006. Disponível em: <http://java.sun.com/javaee/5/docs/tutorial/doc>
Acesso em: 29 nov. 2008.
45
JOHNSON, R. 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 jul. 2008.
JSTL. JavaServer Pages Standard Tag Library. Disponível
<http://java.sun.com/products/jsp/jstl> Acesso em: 10 nov. 2008.
em:
KOTLIARENCO, M. A. El Juego como Posibilidad de Refuerzo a la
Resiliencia. In: Brinquedoteca: o lúdico em diferentes contextos. Petrópolis, Rio
de Janeiro: Vozes, 1997.
LEBOVICI, S.; DIATKINE, R. Significado e Função do Brinquedo na Criança.
Porto Alegre: Artes Médicas, 1985.
LEIF, J.; BRUNELLE, L. O Jogo pelo Jogo: a atividade lúdica na educação de
crianças e adolescentes. Rio de Janeiro: Zahar, 1978.
LEME, F. JSTL – Guia Completo. Java Magazine, Neofício Editora, Grajaú - RJ,
Edição 9 – Ano II, pp. 36–42.
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 dez.
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 ago. 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 jul. 2008.
MORI, L.; PEREIRA, M. A. Meiose e as leis de Mendel. Disponível em:
<http://www.ib.usp.br/microgene/files/manuais-7-PDF.pdf> Acesso em 15 fev.
2008.
MYSQL. The world's most popular open source database. Disponível em:
<http://www.mysql.com>. Acesso em: 15 nov. 2008
NEGRINE, A. Aprendizagem e Desenvolvimento Infantil: simbolismo e jogo.
Porto Alegre: PRODIL, v. 1, 1994.
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 jan
2008.
PAPERT, I. H. (Ed.), Constructionist Learning. Cambridge, MA: MIT Media
Laboratory, 1990. p.3.
PAZZA,
R.
Introdução
a
Genética,
2006.
Disponível
em:
<http://www.biociencia.org/index.php?option=com_content&task=view&id=211&It
emid=71> Acesso em: 15 jan. 2008.
RIZZI, L.; et al. Atividades Lúdicas na Educação da Criança. São Paulo, 1994.
Série Educação.
46
RIZZO, G. O Método Natural de Alfabetização. In: Alfabetização Natural. Rio de
Janeiro: Francisco Alves, 1988. p. 33-129.
RODRIGUES, M. O Desenvolvimento do Pré-Escolar e o Jogo. São Paulo:
Ícone, 1992.
SANTOS, C. A. Jogos e Atividades Lúdicas na Alfabetização. Rio de Janeiro:
Sprint, 1998.
SHALLOWAY, A.; TROTT, J. Explicando padrões de projeto: uma nova
perspectiva em projeto orientado a objeto. 2004. [s.l.;s.n.]
SILVEIRA, H. M. ;BORGES, M. A. F. Arquitetura pedagógica do sistema Gene
de apoio ao aprendizado de genética. Publicado nos Anais do XIX Simpósio
Brasileiro de Informática na Educação. Universidade Federal do Ceará,
Fortaleza-CE, 2008 A.
SILVEIRA, H. M. ;BORGES, M. A. F. Comunidade interativa do sistema Gene
de apoio ao aprendizado de genética via internet. Publicado nos Anais do V
Seminário Municipal de Informática Educativa. Universidade Federal do Ceará,
Fortaleza-CE, 2008 B.
STHAL, M. M. Ambientes e Ensino-Aprendizagem Computadorizados: da
sala de aula convencional ao mundo da fantasia. Rio de Janeiro: COPPEUFRJ, 1991.
STRUTS.
About
Struts
Apache
2.
Disponível
<http://struts.apache.org/2.0.9/index.html> Acesso em: 15 jan. 2008.
em:
SUN. Core J2EE patterns: data access object. 2007. Disponível em:
<http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
> Acesso em: 15 out. 2008 A.
SUN. Core Javaserver pages technology – white paper. Disponível em: <
http://java.sun.com/products/jsp/whitepaper.html> Acesso em: 29 nov. 2008 B.
UML. Object Management Group - Unified Modeling Language. Disponível
em: <http://www.uml.org>. Acesso em: 15 nov. 2008
VALENTE, J. A. Computadores e Conhecimento: Repensando a Educação.
Campinas. Gráfica Central da Unicamp, 1995.
VALENTE, L. Design patterns: padrões para projetos. 24 f. Dissertação
(Mestrado em Computação) - Universidade Federal Fluminense, Niterói. 2003.
Disponível em: <http://www.ic.uff.br/~lvalente/docs/DesignPatterns_Texto.pdf>
Acesso em: 12 ago. 2008.
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 mar. 2008.
47
Apêndice
Estão listados a seguir os casos de uso de alguns processos mais relevantes
do Projeto Gene. Para ajudar na visualização, cada caso de uso tem associado o
diagrama de sequência do fluxo básico. Os casos mostrados a seguir são: Criar
Conta; Solicitar Relacionamento dos Bichinhos e Avaliar Relacionamento dos
Bichinhos.
Caso de Uso Criar Conta
Documento de Caso de Uso
Criar Conta
Usuário
(from Use Case View)
(from Use Case View)
Figura 24 – Caso de Uso Criar Conta
Realização do Caso de Uso
Caso de Uso: Criar conta
Versão do Documento: 1.0
Descrição: Registro dos dados pessoais do usuário, a fim de criar uma conta de
acesso ao sistema para ele.
Pré Condição: O Usuário deve estar na página inicial do sistema, que é a de Login.
Cenário 1: Usuário realiza processo de criação de sua conta com sucesso.
1. Usuário solicita a criação de uma conta no sistema através do link “Cadastrese Aqui!”.
2. Sistema exibe tela de cadastro de usuários.
3. Usuário preenche corretamente o formulário e o submete para a criação da
conta no botão “Enviar dados”.
4. Sistema valida as informações.
48
5. Sistema grava as informações do usuário na base de dados.
6. Sistema mostra tela de perfil do usuário.
7. Caso de uso encerrado.
Fluxo alternativo 3.1: Usuário não preenche alguma das informações
obrigatórias.
3.1.1
Usuário cancela a criação de conta pressionando o botão Voltar.
3.1.2
Sistema mostra página inicial de Login.
3.1.3
Caso de uso encerrado.
Fluxo alternativo 4.1: Usuário não preenche alguma das informações
obrigatórias.
4.1.1
Sistema valida as informações submetidas e exibe mensagem “Digite
os campos marcados com asterisco(*).”
4.1.2
Volta ao passo 3.
Fluxo alternativo 4.2: Usuário tenta cadastrar um usuário já existente no
sistema.
4.2.1
Sistema valida as informações submetidas e exibe mensagem “Usuário
já existente no sistema”.
4.2.2
Volta ao passo 3.
Fluxo alternativo 4.3: Usuário preenche campo senha e confirmação de senha
diferentes.
4.3.1
Sistema valida as informações submetidas e exibe mensagem
“Campos Senha e Confirmação de Senha devem ter informações
iguais”.
4.3.2
Volta ao passo 3.
49
Diagrama de Sequência do Caso de Uso Criar Conta – Cenário 1:
: Usuário
: PaginaCadastroUsuario : PaginaPerfilUsuario
: CadastrarUsuarioAction
Cenário 1, passo
4. Sistema valida
se o usuário
digitado já existe
na bas e de dados.
1: linkCadastrarUsuario()
2: execute()
Cenário 1, passo 1.
3: isCamposValidos()
Cenário 1, passo 4. Sistema
valida se os campos obrigatórios
estão preenchidos e se o campo
Senha e Confirmação de Senha
estão iguais.
4: isSenhasCorretas()
usuarioServices :
UsuarioServices
dao : DAO
5: cadastrarUsuario(Usuario usuario)
6: procurarLogin(String login)
7: Usuario usuario
8: salvaOuAtualiza(Usuario usuario)
9: load()
Cenário 1, passo 6.
A tela de perfil do
usuário é mostrada.
Cenário 1, passo 5.
Sistema persis te as
informações do usuário
na bas e da dados.
Figura 25 – Diagrama de Sequência UC - Criar Conta
50
Caso de Uso Solicitar Relacionamento dos Bichinhos
Documento de Caso de Uso
Usuário
Solicitar Relacionamento dos
Bichinhos
(from Use Case Vi ew)
(from Use Case Vi ew)
Figura 26 – Caso de Uso Solicitar Relacionamento dos Bichinhos
Realização do Caso de Uso
Caso de Uso: Solicitar Relacionamento dos Bichinhos
Versão do Documento: 1.0
Descrição:
Pré Condição: O Usuário deve possui uma conta no sistema e estar conectado na
tela de Perfil.
Cenário 1: Usuário realiza relacionamento com outro bichinho com sucesso.
1. Usuário clica no link “Comunidade” na tela de perfil.
2. Sistema abre tela, que contém a lista de bichinhos do usuário.
3. Usuário escolhe um de seus bichinhos na tela
4. Usuário clica no link “Prosseguir” para solicitar a lista de bichinhos
relacionáveis.
5. Sistema exibe tela com uma lista de bichinhos relacionáveis.
6. Usuário escolhe um bichinho da lista.
7. Sistema faz confirmação para efetivar a solicitação com a seguinte
mensagem: “Deseja relacionar-se com o bichinho escolhido?”.
8. A opção Sim é escolhida pelo usuário.
9. Sistema envia uma mensagem para o usuário do bichinho escolhido na lista.
51
10. Sistema retorna para a tela de perfil do usuário e exibe a mensagem
“Solicitação de relacionamento enviada.”
11. Caso de uso encerrado.
Fluxo alternativo 2.1: Usuário não possui nenhum bichinho seu apto para o
relacionamento na Comunidade.
2.1.1
Sistema exibe a mensagem “Você não possui nenhum bichinho apto
para o relacionamento na comunidade. Jogue mais!”
2.1.2
Caso de Uso encerrado
Fluxo alternativo 3.1: Usuário cancela a escolha de um dos seus bichinhos.
3.1.1
Usuário aperta botão “Fechar”.
3.1.2
Sistema fecha a tela de escolha de um dos seus bichinhos.
3.1.3
Caso de Uso encerrado.
Fluxo alternativo 5.1: Sistema não encontra nenhum bichinho na comunidade
para o relacionamento.
5.1.1
Sistema não exibe nenhum bichinho para o relacionamento.
5.1.2
Sistema exibe mensagem “Nenhum bichinho disponível para o
relacionamento.”
5.1.3
Caso de Uso encerrado.
Fluxo alternativo 8.1: Usuário escolhe a opção Não.
8.1.1
Na caixa de confirmação do relacionamento o Usuário clica no botão
“Não”
8.1.2
Sistema não efetiva a solicitação de relacionamento.
8.1.3
Caso de Uso encerrado.
52
Diagrama de Sequência do Caso de Uso Solicitar Relacionamento dos
Bichinhos – Cenário 1:
: Usuário
: PaginaPerfilUsuario : PaginaEscolherBichinho : PaginaComunidade : SelecionarBichoAction
1: linkComunidade
:
:
BuscarBichosRelacio... SolicitarRelacionam e...
2: execute()
Cenário 1, passo
1.Início da
funcionalidade.
3: load()
Cenário 1, passo 2. Sistema exibe os bichinhos
do usuário que estão aptos a se relacionar.
4: linkProsseguir
5: execute()
6: getBichosRelacionaveis(Bicho)
Assim que usuário escolheu um de
seus bichinhos, ele clica no link
Prosseguir para dar continuidade ao
processo.
bichoServices :
BichoServices
dao : DAO
7: listarBichos()
8: List bichos
9: load()
Tela da comunidade Gene é
mostrada contendo os
bichinhos que o usuário pode
escolher para solicitar o
relacionamento.
Pelo id do bicho
escolhido é buscado
seu usuário.
10: linkBichinho
11: execute()
12: getDestinatario(String idBicho)
Cenário 1, passo 6. Usuário clica em cima
de um dos bichinhos da lista mostrada na
tela.
mensageServices :
MensagemServices
13: gerarMensagem Relacionamento(Usuario remetente, Usuario destinatario)
14: Mensagem mensagem
usuarioServices :
UsuarioServices
15: salvaOuAtualiza(Usuario destinatario)
Cenário 1, passo 10. Usuário retorna a sua
tela de perfil e a mensagem "A Solicitação
de Relacionamento foi enviada."
16: salvaOuAtualiza(Usuario usuario)
17: load()
Cenário 1, passo 9. Atualiza o usuário destinatário
que agora contém uma mensagem de solicitação
de relacionamento associada a ele.
Figura 27 – Diagrama de Sequência UC - Solicitar Relacionamento dos Bichinhos
53
Caso de Uso Avaliar Relacionamento dos Bichinhos
Documento de Caso de Uso
Usuário
Avaliar Relacionamento dos
Bichinhos
(from Use Case Vi ew)
(from Use Case Vi ew)
Figura 28 – Caso de Uso Avaliar Relacionamento dos Bichinhos
Realização do Caso de Uso
Caso: Avaliar Relacionamento dos Bichinhos
Versão do Documento: 1.0
Descrição:
Pré Condição: O Usuário deve possui uma conta no sistema e ter uma solicitação
de relacionamento pendente.
Cenário 1: Usuário aceita a solicitação de relacionamento.
1. Sistema disponibiliza aviso de nova mensagem na tela de perfil.
2. Usuário clica no botão Correio para visualizar a mensagem.
3. Usuário clica no botão “Aceitar” da mensagem para efetivar o relacionamento.
4. Uma mensagem de aceitação do relacionamento é enviada pelo sistema ao
solicitante do relacionamento.
5. Sistema fecha tela de Correio e atualiza tela do perfil.
6. Sistema mostra disponível ao Usuário um novo bichinho para ser criado.
7. Sistema torna disponível um novo bichinho para jogar também para o
solicitante do relacionamento.
8. Caso de Uso Encerrado
54
Fluxo alternativo 3.1: Usuário clica no botão Recusar da mensagem de
relacionamento recebida.
3.1.1
Usuário clica no botão “Recusar”.
3.1.2
Uma mensagem de relacionamento recusado é enviada pelo sistema
ao solicitante do relacionamento.
3.1.3
Caso de Uso encerrado.
Diagrama de Sequência do Caso de Uso Avaliar Relacionamento dos
Bichinhos – Cenário 1:
: Usuário
: PaginaPerfilUsuario : PaginaCorreio
1: linkCorreio
:
:
LoadCaixaMensagens... AceitarRelacionamen...
2: execute()
Cenário 1,
passo 2.
Usuário entra
na página de
correio onde
estão suas
mens agens.
Sistema carrega as mensagens
relacionadas ao usuário logado.
3: load()
Cenário 1, passo 3. Usuário
aceita o relacionamento,
desencadeando o processo
que habilita um bicho mais
evoluído ao usuários
rem etente e destinatário da
mensagem...
mensagemServices :
MensagemServices
usuarioServices :
UsuarioServices
dao : DAO
4: botão Aceitar
5: execute()
6: salvaOuAtualiza(Usuario destinatario)
7: salvaOuAtualiza(Us uario usuario)
8: gerarMensagemRelacionam entoAceito()
9: salvaOuAtualiza(Usuario remetente)
10: salvaOuAtualiza(Usuario usuario)
Cenário 1, pas so 6.Um novo bichinho m ais
evouído é habilitado para o usuário jogar.
11: load()
Atualização feita nos usuários
é salva na base de dados.
Figura 29 – Diagrama de Sequência UC - Avaliar Relacionamento dos Bichinhos

Documentos relacionados