INSTITUTO FEDERAL DO PARANÁ EDUARDO SANT’ANA CURY GENIUS – O JOGO DE TREINO CEREBRAL PARANAGUÁ 2012 1 EDUARDO SANT’ANA CURY GENIUS – O JOGO DE TREINO CEREBRAL Trabalho de Conclusão de Curso apresentado ao Curso Técnico em Informática do Instituto Federal do Paraná, como requisito parcial de avaliação. Orientador: Emílio Rudolfo Fey Neto PARANAGUÁ 2012 2 Dedico esse trabalho ao meu pai, que me ensinou que o futuro é feito a partir da dedicação do presente. Sei que esteve ao meu lado durante toda a minha formação, me apoiando nos momentos mais difíceis, e sei que vai continuar sempre ao meu lado, durante toda minha vida. 3 AGRADECIMENTOS Primeiramente, à aquele, que me permitiu tudo isso, e que garantirá minhas vitórias durante toda a vida, Deus. Aos meus amigos, pelo companheirismo, pela paciência, e pelo apoio dado durante a formação acadêmica. Ao orientador do trabalho, Professor Emílio Rudolfo Fey Neto, pelo comprometimento, compreensão e disponibilidade, que fizeram esse trabalho possível. À minha família, pela compreensão de que minha ausência foi necessária para aprofundar meus conhecimentos. 4 “A persistência é o menor caminho do êxito.” Charles Chaplin “A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.” Confúcio “Construí amigos, enfrentei derrotas, venci obstáculos, bati na porta de vida e disse-lhe: Não tenho medo de vive-la.” Augusto Cury 5 RESUMO A necessidade de desenvolver o raciocínio lógico nas fases primordiais da vida, infância e adolescência, reascendeu nos educadores, devido ao rápido avanço tecnológico que o mundo vem sofrendo. Nos dias atuais, as crianças e o jovens que têm acesso à internet, através de computadores, celulares, ou outros equipamentos eletrônicos, dão preferência à pratica de jogos online, chamados de games, e também ao acesso à redes sociais, como Facebook e Twitter. Tendo em vista que o desenvolvimento do raciocínio lógico é muito importante para a percepção e resolução de vários problemas, surgiu a ideia de criar o Genius. Esse trabalho consiste em um projeto acadêmico que tem como objetivo principal, apresentar o desenvolvimento de um software que auxilie no treino do raciocínio lógico mental através de atividades rápidas e dinâmicas. Para a elucidação do trabalho, objetivou compreender a atual situação do problema e levantar, através de um questionário, os requisitos desejados pelo público alvo do projeto, as crianças. Assim, verificou-se que as exigências se dizem respeito à interface e interação do programa. Com isso, foi feito um jogo que, ao mesmo tempo que treina o raciocínio lógico, também atua como um ambiente de entretenimento e aprendizagem. Palavras-Chave: Raciocínio Lógico. Cérebro. Treino Mental. Jogo. 6 ABSTRACT The need to develop logical reasoning in key stages of life, childhood and teenage years, reignited in the educators, due to the fast technological advances that the world has been suffering. Nowadays, children and teenagers who have internet access through computers, mobile phones or other electronic equipment, give preference to the practice of playing online, games, and also, access social networks like Facebook and Twitter. Considering that the development of logical reasoning is very important for perception and resolution of many problems, raised the idea to create Genius. This work consists of an academic project that has as main objective, to present the development of software that assists in the training of logical mental reasoning through fast and dynamic activities. It aims for understanding the current problem's situation and for gathering, through a questionnaire, the requirements desired by the target users of the project, the children. Thus, it was found that the requirement pertains to the interface and interaction of the program. Then, the game was created for that, while trains logical reasoning, also acts as an ambient for entertainment and learning. Key-Words: Logical Reasoning. Brain. Mental Training. Game. 7 LISTA DE FIGURAS Figura 1 - Exemplo de Diagrama de Caso de Uso.................................................... 21 Figura 2 - Exemplo de Diagrama de Classes............................................................ 22 Figura 3 - Exemplo de Diagrama de Sequência ....................................................... 22 Figura 4 - Exemplo de Diagrama Entidade – Relacionamento ................................. 24 Figura 5 - Exemplo de Diagrama Relacional............................................................. 25 Figura 6 - GENIUS: Diagrama de Caso de Uso ........................................................ 33 Figura 7 - GENIUS: Diagrama de Classes ................................................................ 35 Figura 8 - GENIUS: Diagrama de Sequência - Incluir Jogador ................................. 37 Figura 9 - GENIUS: Diagrama de Sequência - Alterar Jogador ................................ 39 Figura 10 - GENIUS: Diagrama de Sequência - Excluir Jogador.............................. 41 Figura 11 - GENIUS: Diagrama de Sequência - Login.............................................. 43 Figura 12 - GENIUS: Diagrama de Sequência - Memória Rápida ............................ 45 Figura 13 - GENIUS: Diagrama de Sequência - Encontre o Par .............................. 47 Figura 14 - GENIUS: Modelo Entidade - Relacionamento ........................................ 49 Figura 15 - GENIUS: Modelo Relacional................................................................... 50 Figura 16 - GENIUS: Tela de Login .......................................................................... 52 Figura 17 - GENIUS: Tela Novo Jogador .................................................................. 53 Figura 18 - GENIUS: Tela Apresentação .................................................................. 54 Figura 19 - GENIUS: Tela Menu de Jogos................................................................ 55 Figura 20 - GENIUS: Tela Menu Memória Rápida .................................................... 56 Figura 21 - GENIUS: Tela Regras Memória Rápida ................................................. 57 Figura 22 - GENIUS: Tela Contagem Regressiva do Jogo ....................................... 58 Figura 23 - GENIUS: Tela Memorize Número........................................................... 59 Figura 24 - GENIUS: Tela Resposta Jogador ........................................................... 60 8 Figura 25 - GENIUS: Tela Resposta Correta ............................................................ 61 Figura 26 - GENIUS: Tela Resposta Errada ............................................................. 62 Figure 27 - GENIUS: Tela Jogo Encontre o Par ....................................................... 63 Figure 28 - GENIUS: Tela Resultados ...................................................................... 64 Figure 29 - GENIUS: Tela Ranking ........................................................................... 65 9 LISTA DE SIGLAS SGBD – Sistema Gerenciador de Banco de Dados SQL – Structured Query Language UML – Unified Modeling Language 10 APÊNDICE APENDICE A – Questionário de Funcionalidades .................................................... 69 11 SUMÁRIO 1. INTRODUÇÃO.................................................................................................... 13 1.1. Contextualização.......................................................................................... 13 1.2. Justificativa................................................................................................... 14 1.3. Objetivo Geral .............................................................................................. 15 1.4. Objetivos Específicos ................................................................................... 15 2. FUNDAMENTAÇÃO TEÓRICA .......................................................................... 16 2.1. O Estudo da Lógica...................................................................................... 16 2.2. O mundo dos Jogos ..................................................................................... 17 2.2.1. Jogos Virtuais ........................................................................................ 17 2.2.2. Jogos de Raciocínio Lógico................................................................... 18 2.3. O Mercado dos Jogos Virtuais voltados ao Raciocínio Lógico .................... 18 2.4. O que dizem os especialistas? .................................................................... 19 2.5. Desenvolvimento do Projeto ........................................................................ 19 2.5.1. Modelagem do Sistema ......................................................................... 20 2.5.1.1. UML (Unified Modeling Language) ................................................. 20 2.5.1.2. Diagrama de Caso de Uso.............................................................. 21 2.5.1.3. Diagrama de Classes...................................................................... 21 2.5.1.4. Diagrama de Sequência ................................................................. 22 2.5.2. Modelagem do Banco de Dados ........................................................... 23 2.5.2.1. SQL (Structured Query Language) ................................................. 23 2.5.2.2. Modelo de Entidade – Relacionamento .......................................... 24 2.5.2.3. Modelo Relacional .......................................................................... 25 3. METODOLOGIA ................................................................................................. 26 3.1. Levantamento de Requisitos........................................................................ 26 3.1.1. Público Alvo ........................................................................................... 27 3.1.2. Questionário .......................................................................................... 27 3.2. Análise de Requisitos................................................................................... 28 3.2.1. Requisitos Não-Funcionais.................................................................... 28 3.2.1.1. Segurança....................................................................................... 28 3.2.1.2. Usabilidade ..................................................................................... 28 3.2.1.3. Portabilidade ................................................................................... 29 12 3.2.2. Requisitos Funcionais ........................................................................... 29 3.2.2.1. Manter Jogadores ........................................................................... 29 3.2.2.2. Login ............................................................................................... 30 3.2.2.3. Escolher Jogo ................................................................................. 30 3.2.2.4. Jogar “Encontre o Par”.................................................................... 30 3.2.2.5. Jogar “Memória Rápida” ................................................................. 31 3.2.2.6. Armazenar Pontuação .................................................................... 31 3.3. Diagrama de Caso de Uso ........................................................................... 31 3.4. Diagrama de Classes ................................................................................... 33 3.5. Diagrama de Sequência............................................................................... 36 3.5.1. Incluir Jogador ....................................................................................... 36 3.5.2. Alterar Jogador ...................................................................................... 38 3.5.3. Excluir Jogador ...................................................................................... 40 3.5.4. Fazer Login............................................................................................ 42 3.5.5. Jogar “Memória Rápida” ........................................................................ 44 3.5.6. Jogar “Encontre o Par” .......................................................................... 46 3.6. Modelo Entidade – Relacionamento ............................................................ 48 3.7. Modelo Relacional........................................................................................ 50 3.8. Ferramentas Utilizadas ................................................................................ 51 3.8.1. Astah ..................................................................................................... 51 3.8.2. BrModelo ............................................................................................... 51 3.8.3. DBDesigner ........................................................................................... 51 4. DEMONSTRAÇÃO DO SISTEMA ...................................................................... 52 5. CONSIDERAÇÕES FINAIS................................................................................ 66 6. REFERÊNCIAS .................................................................................................. 67 13 1. INTRODUÇÃO 1.1. Contextualização O computador pessoal, criado no início dos anos 70, representou um grande avanço tecnológico. Ele deixou de ser uma máquina enorme, armazenada em salas refrigeradas e utilizada apenas por grandes empresas para realizar alguns processos internos, e se tornou um equipamento de menor porte, com maiores funcionalidades e menores custos. Isso possibilitou torná-lo mais acessível. Com o passar do tempo e com a evolução cada vez mais rápida de sua tecnologia, o computador ganhou e passou a exercer diversas funcionalidades. Dentre elas, a que se destacou e que atraiu a atenção dos pais, educadores e coordenadores de ensino, foi o grande potencial de aplicação na área educacional. Esse fato pode ser constatado pois, segundo Moraes (1993), a informática educativa no Brasil tem suas raízes históricas plantadas desde a década de setenta, quando, pela primeira vez, em 1971, se discutiu o uso de computadores no ensino da Física. Desde então, as tentativas de inserção do ensino auxiliado por computador nas escolas, foram inúmeras. Observa-se também, que o desenvolvimento do raciocínio lógico deve ser tratado nas primeiras fases da aprendizagem. Onde, segundo Bernardi (2010), o cérebro humano começa a se posicionar sobre os acontecimentos ao seu redor, possibilitando tornar as pessoas mais aptas para a resolução de alguns problemas. Segundo Rauber (2003), existem três habilidades fundamentais a serem adquiridas pelo aluno durante o processo de alfabetização: ler, escrever e ter a capacidade de resolver problemas matemáticos. Porém essas habilidades deveriam ir além, fazendo com que seja adquirida a capacidade de ler bem, escrever bem, e resolver problemas matemáticos bem. Para o autor, essas habilidades poderiam ser facilmente alcançadas através do treino do raciocínio lógico. Sendo assim, alguns educadores passaram a ver o computador com um importante objeto de auxílio à aprendizagem, que pode ser aplicado na área educacional com a finalidade de proporcionar uma forma de praticar e exercitar o desenvolvimento lógico do raciocínio durante as fases primordiais da vida. 14 Em paralelo a isso, constatava-se que o avanço cada vez mais rápido da tecnologia proporcionou a expansão dos meios de comunicação e fez com que a internet se tornasse extremamente acessível às pessoas que utilizam computadores, celulares ou outro equipamento eletrônico. De acordo com uma pesquisa Ibope/Nielsen (2012), o número de pessoas com acesso à internet no Brasil chegou a 83,4 milhões no primeiro trimestre de 2012. E grande parte dos usuários optam por jogar os denominados games ou acessar redes sociais como Facebook e Twitter, tendo em vista que de acordo com a mesma fonte, a rede social Facebook tem uma quantidade de 37 milhões de usuários ativos no Brasil. Outra pesquisa Ibope (2012), mostra que crianças com mais de 11 anos passam quase 18 horas por mês na internet, e esse grupo já soma mais de 5 milhões do usuários. Sendo assim, fica claro que as atividades que tem como finalidade desenvolver e estimular e raciocínio lógico, aplicadas nos computadores, vem perdendo, cada vez mais, o espaço na preferência das crianças e adolescentes, para outras atividades de entretenimento. 1.2. Justificativa De acordo com o questionário presente no Apêndice A feito à uma criança, verificou-se que o contínuo desinteresse pela prática das atividades que tem o objetivo de treinar e desenvolver o raciocínio lógico se deve ao fato de que alguns jogos disponíveis são pouco interativos e não atraem as crianças à sua pratica. O desenvolvimento do raciocínio lógico nas primeiras fases da vida é uma necessidade para que o ser humano consiga, futuramente, pensar de maneira crítica acerca dos diferentes problemas que irão surgir no decorrer de sua vida social e profissional. Tendo isso em vista, surgiu a ideia de aplicar uma atividade que tenha esse objetivo, porém, atendendo as exigências requisitadas. Pensando nisso, o software Genius foi uma alternativa de aplicativo para ser aplicado na área educacional, pois auxiliaria os usuários a praticar atividades que desenvolvessem o raciocínio, ao mesmo tempo que fosse um jogo interativo e divertido. 15 1.3. Objetivo Geral Pretendeu-se criar um software que atendesse as necessidades encontradas na descrição do problema, e as exigências dos entrevistados, ou seja, atuasse na área da educação e auxiliasse no desenvolvimento e no treino do raciocínio lógico. O software foi composto de dois jogos de raciocínio lógico e deve satisfazer o problema encontrado em outros jogos de raciocínio disponíveis no mercado, ou seja, deve ser uma solução interativa e divertida, que desperte o interesse do usuário. 1.4. Objetivos Específicos • O software conta com um cadastro de jogadores. Antes de iniciar o jogo, é obrigatória a realização de um login, para que os dados sejam salvos de acordo com cada jogador. • O jogo, como tem o propósito de ser interativo e é voltado para crianças, contém instruções durante todo o período em que o jogador está logado. As instruções são fundamentais para que o jogador compreenda o que deve ser feito e o que ele estará exercitando ao realizar determinadas atividades. • O jogo disponibiliza 2 atividades diversas (Encontre o Par e Memória Rápida), pra que o jogador possa escolher a que mais lhe agrada, e jogar qual desejar. • As atividades devem ser executadas durante o período de tempo de 60 segundos. • No jogo Encontre o Par, o objetivo é encontrar duas figuras iguais dentre as figuras sorteadas do Banco de Dados e distribuídas na tela. • No jogo Memória Rápida, o objetivo é memorizar o número mostrado na tela e em seguida, digita-lo. • O software faz uma contagem da pontuação do jogador durante a realização da atividade e ao final, essa pontuação é guardada no Banco de Dados. • O jogador pode visualizer o Ranking das atividades, onde conta com os 3 melhores jogadores colocados. 16 2. FUNDAMENTAÇÃO TEÓRICA 2.1. O Estudo da Lógica Segundo Bernardi (2010), o estudo da logica faz com que o pensamento proceda corretamente a fim de chegar a conhecimentos verdadeiros. O raciocínio provém de forma mais organizada, o alcance às razões concretas. De acordo com Copi (1978), o estudo da lógica é o estudo dos métodos e princípios usados para distinguir o raciocínio correto do incorreto. Podemos afirmar que a lógica é um sistema que define como pensar de forma mais crítica no que diz respeito a opiniões e argumentos. Para Abar (2006), o aprendizado da lógica auxilia os estudantes no raciocínio, na compreensão de conceitos básicos, na verificação formal de programas e melhor os prepara para o entendimento do conteúdo de tópicos mais avançados. Segundo Piaget (1983), o conhecimento evolui progressivamente, por meio de estruturas de raciocínio que substituem umas às outras, através de estágios. Isto significa que o raciocínio lógico de uma criança é completamente diferente do raciocínio lógico de um adulto. No livro “Gênese das estruturas lógicas elementares“ (1983), Jean Piaget identifica os estágios de desenvolvimento da criança, sendo que o autor afirma em sua teoria, que é no estágio operatório formal que a criança começa a desenvolver seu pensamento como o de um adulto, assim podendo desenvolver idéias abstratas. Por isto, o incentivo ao desenvolvimento do raciocínio lógico é muito importante neste estágio, desenvolvido entre os 7 e 10 anos de idade. A informática, através de jogos educacionais, pode contribuir de forma motivadora. Sendo que, para Weis (2001), existem crianças com baixo rendimento escolar que, diante do computador, mostram-se mais participativas e interessadas. Isso revela que encontrar alternativas que utilizem o computador para auxiliar no ensino da lógica pode trazer resultados satisfatórios. Portanto, é de vital importância a inserção de jogos que estimulem o raciocínio lógico no meio educacional. 17 2.2. O mundo dos Jogos De acordo com Silva (2007), os jogos devem ser elaborados de acordo com a faixa etária do público a qual se destinam. Propiciando o desenvolvimento do raciocínio lógico de uma forma lúdica, ou seja, divertindo o praticante, sendo um excelente vínculo de difusão e treinamento de habilidades como coordenação motora, memorização, motivação, entusiasmo, concentração, destreza entre outros. Rizzo (1990), afirma que os jogos constituem um poderoso recurso de estimulação do desenvolvimento integral das pessoas. Eles desenvolvem a atenção, disciplina, autocontrole, respeito as regras e habilidades perceptivas e motoras relativas a cada tipo de jogo oferecido. Os jogos podem ser trabalhados de forma individual ou coletiva. Não há momentos próprios para desenvolver a inteligência, sempre é possível progredir e aperfeiçoar-se. 2.2.1. Jogos Virtuais O Jogo Virtual é um programa de entretenimento onde existe a atividade do jogador interagindo com uma interface e utilizando como plataforma, um computador pessoal. Acredita-se que os primeiros jogos virtuais foram criados precisamente durante a guerra fria. Por esta altura, a tecnologia da informática começava a dar os primeiros passos e apesar de o principal objetivo tecnológico na altura estar apontado à comunicação militar, era também importante criar formas de descontração ao nível virtual. Os primeiros jogos criados para computador eram bastante simples, se comparados com os da atualidade. Evoluíram de simples sistemas de jogos baseados em textos, interfaces gráficas precárias e jogabilidades limitada, para uma vasta gama de títulos visualmente mais avançados e de jogabilidade mais complexa. Com o objetivo de atingir o maior número de jogadores e sabendo que um jogo não irá agradar a todos, as empresas de desenvolvimento de jogos criaram diversos tipos de jogos de computador, cada um com suas características e jogabilidades diferenciadas por categorias. 18 As categorias se dividem em: Ação, Aventura, Cartas, Estratégia, Luta, Tabuleiro e Dados, Peças, Corrida e Simulação. São jogos eletrônicos que desafiam a velocidade, reflexo, e raciocínio rápido do jogador, geralmente incluem conflitos estratégicos, desafios de exploração e necessidade de solucionar quebra-cabeças, através de uma interface complexa e gráficos avançados. Existem também, dentre essas várias categorias, os jogos de Raciocínio Lógico, que se popularizaram através de tecnologias Flash e Java. 2.2.2. Jogos de Raciocínio Lógico Com base na premissa de Moraes (1993), que tecnologias interativas, como multimídia, possuem potencial para serem aplicados na área educacional oportunizando mudanças em relação a situações de aprendizagem, começaram a ser desenvolvidos jogos que tem como principal objetivo, o desenvolvimento do raciocínio lógico. Desde então, essa categoria de jogos vem disputando espaço com outros jogos no gosto das pessoas. 2.3. O Mercado dos Jogos Virtuais voltados ao Raciocínio Lógico Diante a infinidade de jogos que estão espalhados na Web, são poucos os que têm o objetivo principal de treinar o cérebro, fazer com que o usuário aprenda jogando e lhe traga benefícios em longo prazo. De acordo com Super Interessante (2011), a maioria dos jogos estimula a agressividade, a luta, o comportamento grosseiro, induzindo as crianças, os jovens e até mesmo os adultos a violência. Porém, algumas empresas desenvolvem jogos que possuem o mesmo objetivo do software Genius: incentivar pessoas a jogarem para estimular suas capacidades cerebrais. Um exemplo é o jogo GBrainy, disponível gratuitamente no Sistema Operacional Ubuntu. Possui testes de lógica, matemática, memória e analogias verbais. Outro exemplo é o aplicativo para celular Brain Challenge que possui testes de lógica, matemática, memória e analogias verbais. 19 O objetivo do GBrainy e do Brain Challenge, assim como do Genius, é treinar, estimular e exercitar o cérebro. 2.4. O que dizem os especialistas? O estudo do raciocínio lógico-matemático para o desenvolvimento de jogos virtuais tem uma longa tradição em psicologia. A análise psicológica é fundamental para que se entendam as dificuldades encontradas no problema, sacie as necessidades e atinjam os objetivos ao criar um jogo virtual voltado ao exercício lógico e treino cerebral. Segundo o psicólogo e psicanalista Flávio Pereira (2009), “A melhor maneira de ter bom desempenho na escola ou no trabalho é ter uma boa memória e raciocínio e isto você consegue treinando o cérebro regularmente”. Falando sobre os jogos virtuais, Flávio diz, “Baseando-se em pesquisas de neurociências são criados jogos e exercícios destinados a promover ganhos de memória, concentração e agilidade mental.”. O jogo consiste em exercícios práticos, que enfocam diversas funções cerebrais, as quais influenciam a saúde e o desempenho do cérebro. Para tanto, é de fundamental importância da inserção da informática no cotidiano das pessoas, sendo que o computador pode influenciar no aprendizado de crianças e jovens. Constata-se que o desenvolvimento de atividades informatizadas, como os jogos virtuais e testes de memória, para a aprendizagem de lógica podem auxiliar os jovens em seu raciocínio lógico. As consequências do desenvolvimento não eficaz desta capacidade refletem-se futuramente, quando os adultos passam a se deparar com níveis cada vez mais elevados de situações em que precisam agir de forma lógica e organizada. 2.5. Desenvolvimento do Projeto Para a construção do Software Genius, serão necessárias algumas ferramentas para a modelagem e implementação do Sistema. Sendo que, para fazer bons sistemas, deve-se utilizar uma linguagem de modelagem que seja dotada de diagramas que permitam a representação de 20 sistemas simples ou complexos sob as diferentes visões, pois isso facilita o entendimento e padroniza a comunicação e a organização do problema. 2.5.1. Modelagem do Sistema “Um modelo é uma simplificação da realidade”, Camarini (2007). Os modelos podem realizar planos detalhados, assim como planos mais gerais com uma visão panorâmica do sistema. Um bom modelo deve incluir detalhes e componentes de grande importância e omite os componentes menores que não necessitam de representação em determinado nível de abstração. Na modelagem, pode-se delimitar o problema estudado, dividindo-o em vários problemas menores, restringindo a atenção a um único aspecto por vez até chegar à solução. Através destes modelos, o desenvolvimento da Modelagem de Sistemas auxilia na organização das informações, estabelece uma base para a criação do software, faz um levantamento e análise de requisitos que podem ser validados quando o software for construído, define também a proporção do sistema. 2.5.1.1. UML (Unified Modeling Language) Segundo Ribeiro (2012), a UML é uma linguagem padrão, empregada para a visualização, a especificação, a construção e a documentação de artefatos que façam uso de sistemas complexos de software. Abrange todas as visões necessárias ao desenvolvimento e implantação de sistemas, desde sistemas de informação corporativos a serem distribuídos a aplicações baseadas em Web até sistemas complexos embutidos de tempo real. As linguagens de modelagem são formadas por um conjunto de palavras e regras para a combinação destas palavras com o objetivo de comunicar algo. Assim a UML é uma linguagem de modelagem cujo vocabulário e regras têm seu foco voltado para a representação conceitual e física de um sistema. A UML foi desenvolvida com o foco na padronização da documentação dos diversos sistemas de software. 21 Um dos principais objetivos da linguagem UML é dar suporte às especificações de projeto independente da linguagem de programação e do processo de desenvolvimento. A grande aceitação pela comunidade de desenvolvedores e pela indústria de software tornou fundamental que qualquer projeto de software orientado a objetos seja representado pela UML. 2.5.1.2. Diagrama de Caso de Uso O Diagrama de Caso de Uso representa, graficamente, as funcionalidades do sistema junto com os elementos externos que com ele interagem. Os Casos de Uso descrevem as interações entre os usuários de um sistema com o próprio software. O diagrama também é bastante útil por possibilitar a associação de outros artefatos que representam a interação entre os atores e o sistema. A figura 1 apresenta um exemplo de diagrama de caso de uso onde, a elipse representa o caso de uso, o boneco representa o ator, e o retângulo representa a fronteira do sistema. Figura 1 - Exemplo de Diagrama de Caso de Uso 2.5.1.3. Diagrama de Classes O diagrama de classes oferece uma visão estática da estrutura do sistema. A figura 2 apresenta um exemplo de diagrama de classes com as classes A e B, onde cada uma possui seus atributos e métodos, apresenta ainda o relacionamento existente entre ambas. 22 Figura 2 - Exemplo de Diagrama de Classes 2.5.1.4. Diagrama de Sequência O Diagrama de Sequência mostra como será a execução do sistema em um espaço de tempo. Representa o comportamento das classes, dos métodos, dos objetos, juntamente com os atores (pessoas que utilizarão o sistema). Mostra a sequência de troca de mensagens entre os componentes do sistema e os usuários. A figura 3 apresenta um exemplo de diagrama de sequência com seus elementos, o ator (Funcionário) que se comunica com a aplicação (Interface) que por sua vez se comunica com o controle do sistema. Cada um desses elementos com sua linha de tempo representada por linhas verticais, na qual os eventos ocorrem. As linhas horizontais representam o fluxo de informação. Figura 3 - Exemplo de Diagrama de Sequência 23 2.5.2. Modelagem do Banco de Dados Bancos de dados são conjuntos de dados com uma estrutura regular que organizam informações. Um banco de dados normalmente agrupa informações utilizadas para um mesmo fim, ou seja, é uma coleção de dados relacionados. Um banco de dados é usualmente mantido e acessado por meio de um software conhecido como Sistema Gerenciador de Banco de Dados (SGBD), que permite com que se faça o acesso, a alteração ou a exclusão de algum dado do banco. De acordo com o princípio de informação, toda informação tem de ser representada como dados; qualquer tipo de atributo representa relações entre conjuntos de dados. Nos bancos de dados, os relacionamentos entre as tabelas não são codificados explicitamente na sua definição. Em vez disso, se fazem implicitamente pela presença de atributos chave. As bases de dados relacionais permitem aos utilizadores escreverem consultas, reorganizando e utilizando os dados de forma flexível e não necessariamente antecipada pelos projetistas originais. Portanto, para encontrar a melhor disposição de armazenamento de informações no banco de dados e para evitar futuros erros, perdas e transtornos com as informações, será feita uma modelagem do Banco de Dados através de análises conceituais e lógicas dos modelos de dados. Assim, posteriormente representados em diagramas. Os principais diagramas que serão utilizados para a modelagem do Banco de Dados do sistema Genius serão: o Diagrama de Entidade Relacionamento e o Diagrama Relacional, descritos na sessão 3.6 e 3.7. 2.5.2.1. SQL (Structured Query Language) SQL é uma linguagem de consulta estruturada, especialmente voltada para atuar no mercado da programação de banco de dados. A linguagem SQL foi criada para atender a todos os bancos de dados relacionais e permitir que usuários possam acessar qualquer banco usando a mesma base de conhecimento. 24 Com a utilização dos comandos básicos – insert, delete, select e update – podese resolver a maior parte dos problemas relacionados à manutenção e extração de dados no banco de dados. Com o SQL é possível criar as estruturas básicas de armazenamento, como tabelas e índices. Também há comandos específicos da linguagem para o controle e segurança relacionado a um banco de dados. Sendo assim, a SQL será escolhida como a linguagem para se fazer a criação e manutenção do Banco de Dados do sistema. 2.5.2.2. Modelo de Entidade – Relacionamento O Modelo de Entidade – Relacionamento é um modelo conceitual de alto nível de abstração e está o mais próximo possível da realidade do usuário, pois é baseado na percepção do mundo real. Sua representação gráfica da origem ao Diagrama de Entidade Relacionamento, cujo objetivo é facilitar o projeto de banco de dados, possibilitando a especificação da estrutura lógica geral do banco e a estruturação dos dados armazenados. Os componentes do Diagrama são: • Retângulos: representam conjuntos-entidade; • Elipses: representam atributos; • Losangos: representam conjuntos-relacionamento; • Linhas: ligam atributos a conjuntos-entidade e conjuntos-entidade a conjuntos-relacionamento. A figura 4 representa graficamente um exemplo de Diagrama de Entidade – Relacionamento. Figura 4 - Exemplo de Diagrama Entidade – Relacionamento 25 2.5.2.3. Modelo Relacional O modelo relacional é uma teoria matemática desenvolvida para descrever como as bases de dados devem funcionar. Um dos pontos fortes do modelo relacional de banco de dados é a possibilidade de definição de um conjunto de restrições de integridade. Estas definem os conjuntos de estados e mudanças de estado consistentes do banco de dados, determinando os valores que podem e os que não podem ser armazenados. O Modelo Relacional é um modelo lógico que representa as informações no Banco de Dados como uma coleção de tabelas. Sua representação gráfica da origem ao Diagrama Relacional. A figura 5 corresponde a um exemplo de Diagrama Relacional. Figura 5 - Exemplo de Diagrama Relacional 26 3. METODOLOGIA A engenharia de software é o processo de construir um sistema da melhor maneira possível. Segundo Bauer (1969), cientista da computação, "Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe em máquinas reais". Durante o processo de fundamentação e concretização do sistema, é necessário que seja seguido algumas etapas. Entre as etapas de desenvolvimento, está a metodologia. A metodologia pode ser definida como o estudo dos métodos, ou seja, as etapas a serem seguidas no processo de criação do software. Caracterizando-se por ser a explicação detalhada, rigorosa e exata de toda ação desenvolvida no método do trabalho, a metodologia tem como objetivo captar e analisar as características dos vários métodos indispensáveis, avaliar suas capacidades, potencialidades, limitações e criticar as implicações de sua utilização. A metodologia pode ser dividida em vários métodos até chegar num determinado objetivo. Os métodos utilizados no desenvolvimento do software Genius foram: Levantamento de Requisitos, Análise de Requisitos, e a criação dos diagramas. 3.1. Levantamento de Requisitos Segundo algumas definições, requisito nada mais é do que uma condição ou capacidade que deve ser alcançada. Na abordagem clássica de engenharia, os requisitos são tipicamente utilizados como informações fundamentais para a fase de projeto de um produto ou serviço. Eles especificam as propriedades e funções necessárias a serem consideradas no desenvolvimento do projeto. Simplificando, é algo que um sistema ou componente deve possuir para satisfazer um contrato, padrão ou especificação. Na etapa de levantamento de requisitos, a equipe de desenvolvimento se prende em entender a questão que o sistema vai automatizar, esse levantamento compreende explorar as necessidades dos usuários. 27 Segundo Balbé (2011), “Quando o assunto é requisito, é deve-se responder de maneira clara a questão: O que o usuário necessita do sistema? Os requisitos definem o problema a ser resolvido pelo sistema que será desenvolvido. Compreender as necessidades do cliente se torna essencial no desenvolvimento de soluções.”. 3.1.1. Público Alvo Através de uma interface atrativa e interativa, Genius terá o objetivo de fazer com que os jovens se divirtam, aprendam e treinem seu cérebro. Após constatar que é no estágio operatório formal do crescimento infantil, que a criança começa a desenvolver seu pensamento como o de um adulto, o software Genius pretende atingir a faixa etária correspondente ao determinado estágio, porém será usado por crianças que já estejam alfabeitzadas, que se encontra entre 7 e 10 anos de idade. Assim, o software atuará como um ambiente de aprendizagem. 3.1.2. Questionário Durante a etapa do levantamento dos requisitos, surgiu a necessidade de saber quais são as exigências do público alvo do programa. Para isso, foi feito um questionário com 5 perguntas, em anexo no APÊNDICE A. A entrevista foi feita com Y.L, de 9 anos, já alfabetizada. A jovem informou quais características gostaria de encontrar no jogo. Foram apontadas as necessidades de fazer um programa interativo, para isso, seria necessário a presença de um personagem que interagisse com o jogador durante todo o tempo, para auxiliar e dar algumas instruções. Cada jogo contaria com algumas regras, que o jogador poderia ler antes de iniciar o jogo. Foi exigido também, o sistema de login, para que o jogador tenha sua própria conta no jogo. A preferência dos tipos de jogos que o programa iria conter ficou por conta dos jogos rápidos. A jovem informou que gostaria de verificar o seu desempenho ao final da atividade, e que também, gostaria de ver uma lista com os primeiros colocados. Para isso, surgiu a necessidade de fazer um ranking. 28 Após o questionário, foi feita a análise dos requisitos exigidos no questionário. 3.2. Análise de Requisitos Ao realizar o levantamento de requisitos, obtém-se como resultado, uma relação de requisitos que o sistema irá contemplar. Nessa relação, estão presentes requisitos definidos como Funcionais e Não-Funcionais. 3.2.1. Requisitos Não-Funcionais Os requisitos não-funcionais abordam as características da qualidade do sistema que estão relacionadas às suas funcionalidades, ou seja, relata como o sistema é. Esse tipo de requisito se divide nas seguintes partes: 3.2.1.1. Segurança A principal preocupação que se deve ter na criação de sistemas que envolvem o manuseio de dados pessoais importantes é a segurança. Neste requisito são descritas as particularidades sobre acessos ao sistema, segurança extra em login, possibilitando restringir acesso de algumas pessoas à modificação e exclusão de dados, entre outros. O software Genius conta com a possibilidade de realizar um cadastro de jogadores, contendo nome de usuário e senha, que deverão ser informados antes de iniciar as atividades. Com isso, os jogadores podem se cadastrar no jogo ao inicializá-lo, mas apenas após realizar o login, poderão modificar suas senhas ou excluir seus perfis. 3.2.1.2. Usabilidade Na descrição da usabilidade do sistema, devem se levar em conta os tópicos relacionados à facilidade de uso e sobre a necessidade de treinamento para os usuários. 29 O software Genius tem uma interface atrativa, de simples entendimento e utilização. Para isso, conta com instruções durante o período do jogo, botões e letras grandes, e uma aparência colorida, para também, atrair o usuário. Por ter o objetivo de ser aplicado em áreas de educação, poderá ter a sua execução de atividades sendo assistida por coordenadores de ensino, no meio escolar, acompanhando o desempenho do usuário. 3.2.1.3. Portabilidade Ao discutir sobre a portabilidade do sistema, tratamos da facilidade de migrar o sistema para outras plataformas de sistema operacional, ou seja, Windows, Linux e Mac OS. Deve ser dada uma atenção, para que o sistema rode em qualquer lugar. Como o Genius é um software que pode ter sua aplicação tanto em um ambiente escolar, como em um ambiente domiciliar, a portabilidade do sistema deve-se ser levada em conta, uma vez em que o funcionamento do jogo esteja disponível em ambos os locais. 3.2.2. Requisitos Funcionais Diferentemente dos Requisitos Não-Funcionais (que relatam o que o sistema é), os Requisitos Funcionais relatam, em si, o que o sistema deve fazer e o que compõe a sua estrutura de software. O software Genius é composto dos seguintes procedimentos: manter jogadores, realizar login, escolher e jogar um jogo, e armazenar a pontuação. 3.2.2.1. Manter Jogadores Dentro da função “Manter Jogadores”, é possível Cadastrar, Alterar ou Excluir um jogador do sistema. Ao cadastrar, o usuário informa o nome que deseja utilizar no jogo e uma senha. Essas informações serão salvas no Banco de Dados. 30 Caso o jogador escolha a opção Alterar, suas respectivas informações, bem como Nome e Senha, serão recuperados e apresentados a ele. Assim, o jogador terá a possibilidade de alterar o seu nome de usuário ou a sua senha. Para excluir, basta que o jogador escolha a opção Excluir, que o sistema automaticamente verificará com qual usuário está logado, e o apagará do banco. Assim, o jogador voltará para a janela inicial do sistema, uma vez que, não haverá a possibilidade de estar logado com uma conta que foi excluída. 3.2.2.2. Login Ao fazer o login, é requisitado ao usuário, o Nome e a Senha criados no momento do cadastro. Após informar os dados, o sistema fará uma busca no banco de dados, e analisará as informações. Para que o login seja efetuado com sucesso, os valores devem corresponder com os informados na hora do cadastro. Caso contrário, a entrada do usuário no jogo não poderá ser efetuada. 3.2.2.3. Escolher Jogo Após realizar o login e entrar no sistema, o usuário encontrará 2 (duas) opções de atividades que poderá realizar, sendo elas: Encontre o Par e Memória Rápida. 3.2.2.4. Jogar “Encontre o Par” O jogo Encontre o Par consiste em encontrar, no meio de várias imagens, duas que sejam respectivamente iguais. Para isso, é necessário que as imagens utilizadas na atividade sejam armazenadas no banco de dados. Ao iniciar o jogo, o sistema irá dispor as imagens na tela em forma de matriz de 9 (nove) posições. A partir de então, o jogador deverá encontrar as imagens iguais dentre as disponíveis na tela. A cada acerto ou erro, as imagens mudam, e o jogador deverá continuar a procura das figuras iguais, até que seu tempo chegue ao fim. 31 3.2.2.5. Jogar “Memória Rápida” Será mostrado ao jogador, um número com a quantidade de 5 algarismos e o jogador deverá memorizá-los durante um curto período de tempo. Os números irão desaparecer da tela, e então, será solicitado para o jogador que ele informe os números mostrados anteriormente. O sistema comparará as duas sequências de números, contabilizando acerto ou erro do jogador. 3.2.2.6. Armazenar Pontuação Para cada jogo, foi estipulado um tempo padrão de 1 (um) minuto para a resolução dos exercícios. Após o término do tempo, o sistema contabiliza a pontuação de acordo com os acertos e erros do jogador. A pontuação do jogador será exibida na tela, para a verificação do desempenho e será armazenada no ranking do jogo. O ranking contará com as seguintes informações: • Nome do Jogador; • Codigo do Jogo; • Pontuação Obtida; Para a concretização dos requisitos levantados, foi necessária a criação de modelos e diagramas que auxiliam no maior entendimento e abstração das características e necessidades do sistema. 3.3. Diagrama de Caso de Uso De acordo com a seção 2.6.1.2, um diagrama de caso de uso descreve as funcionalidades de um sistema em interação com os elementos externos. O diagrama de caso de uso do software Genius é constituído de 7 casos de uso, sendo eles: Manter Jogador, Login, Acessar Menu, Ranking, Jogar, Finalizar Jogo e Exibir Pontuação, que representam as principais funções do sistema; e 2 atores: Jogador e SGBD, que representam os usuários do sistema. 32 O ator Jogador poderá executar diretamente as funções Manter Jogador e Login. O caso de uso Manter Jogador tem a finalidade de incluir, alterar ou excluir um jogador do Banco de Dados e o caso de uso Login permite o acesso do jogador no menu do jogo. Após realizar o login, o sistema permite que o jogador escolha se deseja visualizar o ranking do jogo através de seu relacionamento com o caso de uso Ranking, ou se deseja escolher o jogo, através do caso de uso Escolher Jogo. Ao finalizar o jogo, será exibida a pontuação do Jogador cuja representação no diagrama de caso de uso se dá pelas funções, Finalizar Jogo e Exibir Pontuação, relacionadas. De acordo com o relacionamento entre os casos de uso Ranking e Finalizar Jogo é possível observar que com o término do jogo será exibido, também, o Ranking. O ator SGBD se relaciona diretamente com os casos de uso Manter Jogador, Login, Escolher Jogo e Finalizar Jogo, pois através de seus relacionamentos serão feitos os armazenamentos, as alterações e as buscas de informações no Banco de Dados. Na figura 6, pode-se observar o diagrama de caso de uso do software Genius. 33 Figura 6 - GENIUS: Diagrama de Caso de Uso 3.4. Diagrama de Classes Segundo a seção 2.6.1.3, um diagrama de classes representa, graficamente, o conjunto de as classes do sistema, com seus atributos, métodos, objetos e o relacionamento entre eles. O diagrama de classes do software Genius possui 4 classes, 3 respectivos controles de cada classe e 4 interfaces. As classes são: Jogador, Ranking, Encontre 34 o Par e Memória Rápida; os controles são: Controle_Jogador, Controle_Ranking e Controle_Jogo; e as interfaces são: Main, Inserir, Jogar e Manter. A classe Jogador tem 3 atributos privados, sendo eles: Código, Nome e Senha. A classe Ranking também possui 3 atributos privados, sendo eles: Código_Jogador, Código_Jogo e Pontuação. A classe Encontre o Par corresponde a um dos jogos do sistema e contém 3 atributos privados, sendo eles: Código, Imagem e Selecionada. A classe Memória Rápida também corresponde a um dos jogos do sistema e contém 2 atributos privados, sendo eles: Número Sort. e Número Digit. A interface Main permite acesso ás demais interfaces gráficas, Inserir, Jogar e Manter. A Main é a página inicial do software Genius. A interface Manter representa as telas onde o jogador efetuará o login, onde realizará o cadastro, a alteração e a exclusão de jogadores. A interface Jogar representa as telas dos jogos. A interface Inserir representa a inserção das pontuações no ranking. Os atributos da classe Ranking só terão sentido lógico se os atributos das classes Jogador e Encontre o Par existirem, por isso estão relacionados por uma ligação de composição. Caso os atributos das classes Jogador e Encontre o Par deixem de existir, os mesmos atributos contidos na classe Ranking também deixará de existir. Na figura 7, pode-se observar o Diagrama de Classes do software Genius. 35 Figura 7 - GENIUS: Diagrama de Classes 36 3.5. Diagrama de Sequência Segundo a seção 2.6.1.4, um diagrama de sequência tem a finalidade de representar como será a execução de um software ao longo do tempo, mostrando a sequência de troca de mensagens entre os componentes do sistema e os usuários. O software Genius possui 7 diagramas de sequência representando suas principais funcionalidades. Os diagramas são: Incluir Jogador, Alterar Jogador, Excluir Jogador, Fazer Login, Jogar Memória Rápida e Jogar Encontre o Par. 3.5.1. Incluir Jogador Incluir_Jogador mostra como será feita a inclusão (cadastro) de um jogador no banco de dados. O diagrama possui um ator Jogador, uma Interface para o Jogador, um Controle de Jogadores e um SGBD. O Jogador irá solicitar um cadastro à Interface_Jogador, onde apresentará ao Jogador a tela para inserção de dados representada pela mensagem Requisita Dados(). O Jogador, através do método Informa Dados(), estará fornecendo suas informações para serem incluídas no banco. O Controle_Jogador irá recolher as informações da interface, pelo método ObtémDados(), para enviá-las ao SGBD, através do método Inclui Jogador(). Após inclusão no banco, o SGBD irá retornar para o Controle_Jogador, onde por sua vez irá validar o cadastro pelo método Valida Cadastro() e retornará uma mensagem ao Jogador confirmando seu cadastro. Na figura 8, pode-se observar o Diagrama de Sequência “Incluir_Jogador” do software Genius. 37 Figura 8 - GENIUS: Diagrama de Sequência - Incluir Jogador 38 3.5.2. Alterar Jogador Alterar_Jogador mostra como será feita a alteração de um jogador no banco de dados. O diagrama possui um ator Jogador, uma Interface para o Jogador, um Controle de Jogadores e um SGBD. O Jogador irá solicitar à Interface_Jogador a alteração de suas informações, onde ela passará o comando de obter as informações do jogador, através do método Obter Informações(), para o Controle_Jogador. Com o método Busca Dados do Jogador(), o Controle_Jogador irá buscar as informações do Jogador no SGBD, que em seguida irá retornar as informações para o Controle_Jogador. A Interface_Jogador será informada com os dados do Jogador e, de acordo com o método Exibe Informações do Jogador(), irá mostrar na tela as informações a serem alteradas. A Interface_Jogador requisitará ao Jogador os novos dados e, através da mensagem Envia Novos Dados(), o jogador enviará os dados alterados para a Interface_Jogador. O Controle_Jogador irá recolher as informações da interface, pelo método Obtém Informações(), para enviá-las ao SGBD, através do método Altera Jogador(). Após inclusão dos dados alterados no banco, o SGBD irá retornar para o Controle_Jogador, onde por sua vez irá validar a alteração pelo método Valida Alteração() e retornará uma mensagem ao Jogador confirmando a alteração de seus dados. Na figura 9, pode-se observar o Diagrama de Sequência “Alterar_Jogador” do software Genius. 39 Figura 9 - GENIUS: Diagrama de Sequência - Alterar Jogador 40 3.5.3. Excluir Jogador Excluir_Jogador mostra como será feita a exclusão de um jogador no banco de dados. O diagrama possui um ator Jogador, uma Interface para o Jogador, um Controle de Jogadores e um SGBD. O Jogador irá solicitar à Interface_Jogador a exclusão de suas informações, onde a interface passará o comando de obter as informações do jogador, através do método Obter Informações(), para o Controle_Jogador. Com o método Busca Dados do Jogador(), o Controle_Jogador irá buscar as informações do Jogador no SGBD, que em seguida irá retornar as informações para o Controle_Jogador. A Interface_Jogador será informada com os dados do Jogador e, de acordo com o método Exibe Informações do Jogador(), irá mostrar na tela as informações a serem excluídas. A Interface_Jogador informa para o Controle_Jogador que a exclusão será executada, assim o Controle_Jogador exclui do SGBD os dados referente ao jogador logado. Após a exclusão dos dados no banco, o SGBD irá retornar para o Controle_Jogador, onde por sua vez irá validar a exclusão pelo método Valida Exclusão() e retornará para a página inicial. Na figura 10, pode-se observar o Diagrama de Sequência “Excluir_Jogador” do software Genius. 41 Figura 10 - GENIUS: Diagrama de Sequência - Excluir Jogador 42 3.5.4. Fazer Login Fazer_Login representa como será feito o acesso de um jogador no jogo. O diagrama possui um ator Jogador, uma Interface para o Jogador, um Controle de Jogadores e um SGBD. De acordo com a mensagem Informa usuário e senha(), o Jogador irá informar seus dados para a Interface_Jogador. O Controle_Jogador irá receber os dados do jogador pela Interface_Jogador com o método Recebe Dados(), e em seguida irá verificar esses dados no SGBD, através do método Verifica_Dados(). Em seguida o SGBD retorna a validação do login para o Controle_Jogador. Caso o login esteja correto, o Controle_Jogador enviará para a Interface_Jogador a confirmação do login, que para finalizar irá mostrar o menu ao Jogador. Na figura 11, pode-se observar o Diagrama de Sequência “Fazer_Login” do software Genius. 43 Figura 11 - GENIUS: Diagrama de Sequência - Login 44 O software Genius é composto de dois jogos: Memória Rápida e Encontre o Par. Abaixo, estão o diagrama de sequência dessas atividades. 3.5.5. Jogar “Memória Rápida” O diagrama de sequência Memória Rápida mostra como será o comportamento de um dos jogos que compõem o software. O diagrama possui um ator Jogador, uma Interface, um Controle, o Jogo em si, e um SGBD. Inicialmente o Jogador acessa o jogo com o método Acessa o Jogo(). A Interface constata ao Controle, através do método Inicia Jogo(), que o jogo iniciou. Sendo assim, inicia-se um loop, onde a atividade vai ser executada durante o período de tempo de 60 segundos. O Controle faz o sorteio do número no Jogo, que é retornado para o Controle, e exibido na Interfce. Após a exibição, a Interface solicita ao Jogador uma resposta que corresponda ao valor mostrado anteriormente, e o Jogador responde através da mensagem Digita Resposta(). O Controle irá receber as respostas do jogador pela Interface, através do método Recebe Resposta(). O Controle irá conferir o número no Jogo e verificar na Interface. Caso a resposta do Jogador estiver correta, será mostrada à ele uma confirmação, através do método Exibe Resultado(), e sua pontuação será incrementada. Caso a reposta estiver errada, a mensagem será mostrada, porém, a pontuação não será contabilizada. Após o término do Jogo, o Controle irá obter a pontuação final do Jogador, armazená-la no Banco de Dados, através do método Armazena Pontuação(), e irá montar o desempenho do Jogador, que por final, será mostrado através do método Exibe Desempenho(). Na figura 12, pode-se observar o Diagrama de Sequência “Memória Rápida” do software Genius. 45 Figura 12 - GENIUS: Diagrama de Sequência - Memória Rápida 46 3.5.6. Jogar “Encontre o Par” O diagrama de sequência Encontre o Par mostra como será o comportamento de um dos jogos que compõem o software. O diagrama possui um ator Jogador, uma Interface, um Controle, o Jogo e um SGBD. O Jogador acessa o jogo com o método Acessa Jogo(). A Interface constata ao Controle, através do método Inicia Jogo(), que o jogo iniciou. Sendo assim, inicia-se um loop, onde a atividade vai ser executada durante o preíodo de tempo de 60 segundos. A seguir, o Controle sorteia diversas imagens do SGBD para formar a matriz de imagens que o jogador irá jogar . O SGBD retorna o conjunto de imagens ao Controle, que as organiza em forma de matriz. Após a organização, a Interface exibe as imagens ao jogador e solicita que o jogador selecione a primeira figura. O Jogador responde através do método Seleciona Imagem(). O Controle irá receber o índice da imagem que o jogador selecionou pela Interface, através do método Recebe Indice(). Feito isso, o Controle fará a busca de uma outra imagem correspondente a escolhida pelo jogador, que representa que ela está selecionada, através dos métodos Busca Imagem(), Altera Imagem() e Exibe Nova Matriz(); O sistema irá solicitar novamente que o Jogador selecione mais uma imagem, a qual seria correspondente a imagem anterior, para isso, é usado o método Solicita 2a Imagem(). Novamente, o Controle irá receber o índice, e verificar as duas imagens no Jogo através do método Verifica Resposta(). Caso a resposta do Jogador estiver correta, será mostrada à ele uma confirmação, através do método Exibe Resultado(), e sua pontuação será incrementada. Caso a reposta estiver errada, a mensagem será mostrada, porém, a pontuação não será contabilizada. Após o término do Jogo, o Controle irá obter a pontuação final do Jogador, armazená-la no Banco de Dados, através do método Armazena Pontuação(), e irá montar o desempenho do Jogador, que por final, será mostrado através do método Exibe Desempenho(). Na figura 13, pode-se observar o Diagrama de Sequência “Encontre o Par” do software Genius. 47 Figura 13 - GENIUS: Diagrama de Sequência - Encontre o Par 48 3.6. Modelo Entidade – Relacionamento De acordo com a seção 2.6.2.2, o diagrama do Modelo de Entidade Relacionamento é a representação de um modelo conceitual de alto nível de abstração que está o mais próximo possível da realidade do usuário. O software Genius tem o intuito de desenvolver o raciocínio lógico através de jogos como: encontrar o par de imagens iguais dentre diversas imagens e memorização de sequencias numéricas. Através desta problemática, foi permitido extrair as entidades que farão parte do diagrama do Modelo de Entidade Relacionamento. Cujas entidades são: Jogo, Jogador e Ranking. O Jogador se relaciona com Jogo, pois o jogador pode jogar um ou vários jogos. O Jogador relaciona-se também com Ranking, pois o jogador pode visualizar o Ranking. O Ranking é atualizado pelo final de cada Jogo. Na figura 14, pode-se observar o Diagrama do Modelo Entidade Relacionamento do software Genius. 49 Figura 14 - GENIUS: Modelo Entidade - Relacionamento 50 3.7. Modelo Relacional Segundo a seção 2.6.2.3, o diagrama do Modelo Relacional é a descrição de um modelo lógico que representa as informações no Banco de Dados como uma coleção de tabelas. O diagrama do Modelo Relacional origina-se a partir do diagrama do Modelo de Entidade Relacionamento, onde as entidades tornam-se tabelas e as ligações de cardinalidade n:n geram novas tabelas. A tabela Ranking, através de seus relacionamentos com as tebelas Jogo e Jogador, recebeu as chaves estrangeiras Código_Jogo e Código_Jogador. Na figura 15, pode-se observar o Diagrama do Modelo Relacional do software Genius. Figura 15 - GENIUS: Modelo Relacional 51 3.8. Ferramentas Utilizadas 3.8.1. Astah O Astah é uma ferramenta CASE de criação de diagramas UML, além de outros diagramas, tais como diagrama de fluxo de dados e outras funcionalidades úteis à fase de especificação e projeto de um sistema. A ferramenta auxilia na criação dos diagramas requisitados para o desenvolvimento do sistema, sendo eles, Diagrama de Caso de Uso, Diagrama de Sequência e Diagrama de Classe. O Astah pode ser encontrado para download no site: <http://astah.net/download> 3.8.2. BrModelo O BrModelo é uma ferramenta criada para facilitar a criação de modelos de um banco de dados. Apresenta uma interface simples e extremamente funcional. Com a ferramenta, é possível desenvolver Modelos Entidade-Relacionamento, que auxiliam na modelagem do banco de dados. A ferramenta utilizada em diversas áreas de banco de dados, está disponível para download no site: <http://www.baixaki.com.br/download/brmodelo.html> 3.8.3. DBDesigner O DBDesigner é uma ferramenta muito importante para programadores, analistas e em especial, profissionais que lidam com banco de dados. A sua interface simples e descomplicada, permite que se faça uma modelagem muito mais detalhada e sem precisar de muito aprofundamento no manuseio da ferramenta. O DBDesigner está disponível para http://www.fabforce.net/dbdesigner4/downloads.php> download no site: < 52 4. DEMONSTRAÇÃO DO SISTEMA A tela de Login é a tela inicial do sistema, onde o usuário poderá entrar com a sua conta, ou caso não possua, criar uma nova. O software Genius tem o objetivo de ser interativo e divertido, para isso, conta com uma interface colorida, botões grandes e um personagem, que estará com o jogador durante todo o período em que o jogador esteja usando o software. Na figura 16, observamos a tela de Login do jogo. Figura 16 - GENIUS: Tela de Login 53 Caso o jogador nao seja cadastrado no Jogo, ele poderá criar sua conta clicando no botão “Novo”, que o redirecionará para a tela Novo Jogador. Na figura 17, podemos observar a tela Novo Jogador. Figura 17 - GENIUS: Tela Novo Jogador Caso o nome de usuário que o jogador esteja tentando cadastrar já exista, ou se algum campo estiver em branco, o personagem irá avisar o jogador através do balão de fala. Feito isso, o jogador já poderá fazer o Login no jogo. 54 Ao fazer o Login no jogo, o jogador irá se deparar com a tela de Apresentação, onde o personagem irá conversar com o jogador, apresentando o programa e dando algumas dicas. Na figura 18, podemos observar a tela Apresentação. Figura 18 - GENIUS: Tela Apresentação O jogador poderá escolher a opção Sair, onde será direcionado novamente para a tela de Login, ou Pular, que será mostrado a ele o Menu de Jogos. 55 O software Genius conta com uma quantidade de 2 atividades para o jogador praticar. Na tela de Menu de Jogos, o jogador encontra o ícone dos Jogos, e poderá escolher qual deseja jogar. A figura 19 mostra a tela Menu de Jogos. Figura 19 - GENIUS: Tela Menu de Jogos Ao selecionar um jogo, o jogador será direcionado ao Menu do respectivo jogo. Caso escolha Voltar, será direcionado à Tela de Apresentação. 56 Caso o jogador escolha pela opção Memória Rápida, no Menu do Jogos, aparecerá a tela de Menu do jogo Memória Rápida. A tela de Menu do Jogo contém opções para visualizar o Ranking, visualizar as Regras, e iniciar o jogo. Na figura 20, podemos observar a tela de Menu Memória Rápida. Figura 20 - GENIUS: Tela Menu Memória Rápida 57 Ao selecionar a opção Regras, o Jogador será direcionado a tela Regras do jogo Memória Rápida, onde encontrará informações sobre o que consiste o jogo, e instruções de como jogar. Na figura 21, observamos a tela Regras Memória Rápida. Figura 21 - GENIUS: Tela Regras Memória Rápida 58 Após analisar as regras e as instruções do jogo, o jogador está pronto para jogar, para isso, ele deve escolher a opção Jogar, no Menu do Jogo. Ao entrar no Jogo, iniciará uma contagem regressiva de 3 segundos, para que o jogador se prepare, mostrando que o jogo irá começar. Na figura 22, podemos observar a contagem regressiva antes do início do Jogo. Figura 22 - GENIUS: Tela Contagem Regressiva do Jogo 59 Após o termino da contagem regressiva, o programa irá sortear o número e mostrar ao jogador durante um curto período de tempo, para que ele memorize. Na figura 23, podemos observar a tela de Jogo Memória Rápida, onde o número é mostrado ao jogador. Na tela também aparece a Pontuação do Jogador, que inicia em 0, e o tempo restante para o fim do jogo. Figura 23 - GENIUS: Tela Memorize Número 60 O numero mostrado na tela irá desaparecer após alguns segundos e dará o lugar aos dígitos, onde o jogador deverá entrar com o número que memorizou. Na figura 24, podemos observar a Tela Resposta Jogador, onde ele deverá digita o numero. Figura 24 - GENIUS: Tela Resposta Jogador 61 Após o jogador entrar com o número, o sistema fará a verificação para saber se a resposta do jogador estava certa ou errada. A figura 25 mostra a confirmação do sistema, caso a resposta do jogador estiver correta. Nesse caso, a pontuação foi contabilizada. Figura 25 - GENIUS: Tela Resposta Correta 62 A figura 26 representa a mensagem do sistema caso a resposta do jogador estiver errada. Nesse caso, a pontuação não é contabilizada. Figura 26 - GENIUS: Tela Resposta Errada 63 A figura 27 representa o Jogo Encontre o Par, onde as figuras estão dispostas na tela, e o jogador deverá escolher, entre elas, as que se repetem Figure 27 - GENIUS: Tela Jogo Encontre o Par 64 A figura 28 representa a tela de Resultados, que é mostrada após finalizar as atividades. Contém informações como, quantidade de respostas certas e erradas, e a pontuação final do Jogador. Figure 28 - GENIUS: Tela Resultados 65 A figura 29 mostra a tela do Ranking do jogo, onde são informados os 3 melhores jogadores colocados na atividade escolhida. Figure 29 - GENIUS: Tela Ranking 66 5. CONSIDERAÇÕES FINAIS A necessidade de estimular o raciocínio lógico infantil está recebendo ênfase, uma vez que é notável o desinteresse das crianças em praticar uma atividade com tal finalidade. Por meio de um questionário, verificou-se um exemplo do que seria o motivo para esse desinteresse e chegou a conclusão de que algumas crianças acham os jogos de raciocínio logico chatos e com pouca interação com o jogador. Para isso, surgiu o software Genius, que foi criado para satisfazer algumas necessidades encontradas quando se fala de adaptação de um jogo no mercado. Com uma interface colorida, divertida e com personagens que interagem com o jogador, o software Genius foi exposto à algumas crianças e mostrou um alto desempenho. Planejado seguindo a UML e desenvolvido na plataforma Java, o Genius atendeu a todos os objetivos traçados no início do projeto. Tanto o objetivo geral, de criar um software que atendesse as necessidades dos usuários, quanto as funcionalidades dos objetivos específicos. O trabalho contribuiu para o aprofundamento dos conhecimentos técnicos do autor, que tiveram que ser explorados. E espera-se que o trabalho sirva de incentivo à futuras pesquisas ou extensões. 67 6. REFERÊNCIAS ABAR, Celina. Noções de Lógica Matemática. <http://pucsp.br/~logica/>. Acesso em 26 de maio de 2012. Disponível em: BALBÉ, Marília. Levantamento de Requisitos: Voce sabe o que é?. Disponível em: <http://www.profissionaisti.com.br/2011/06/levantamento-de-requisitos-vocesabe-o-que-e/>. Acesso em 28 de maio de 2012. BAUER, Friedrich Ludwig. Engenharia de Software. NATO Scientific Affairs Division, 1969, p.231. BERNARDI, Giliane. O Desenvolvimento do Raciocínio Lógico através de objetos de Aprendizagem. Disponível em: <http://www.cinted.ufrgs.br/ciclo10/ artigos/4eGiliane.pdf>. Aceso em 26 de maio de 2012. CAMARINI, Evandro. A importância do Modelagem de Objetos no Desenvolvimento de Sistemas. Disponível em: <http://www.linhadecodigo.com.br/artigo/1293/a-importancia-do-modelagem-deobjetos-no-desenvolvimento-de-sistemas.aspx>. Acesso em 11 de junho de 2012. COPI, Irving. Introdução à Lógica. 2ª ed. São Paulo. Editora Mestre Jou. 1978. IBOPE. Acesso à internet em domicílios continua a crescer no Brasil. Disponível em: <http://www.ibope.com.br/pt-br/noticias/Paginas/Acesso-a-internetem-domicilios-continua-a-crescer-no-Brasil.aspx>. Acesso em 2 de novembro de 2012. IBOPE. Pesquisa mostra como se comportam os internautas brasileiros. Disponível em: <http://www.ibope.com.br/pt-br/noticias/Paginas/Pesquisa-mostracomo-se-comportam-os-internautas-brasileiros.aspx >. Acesso em 2 de novembro de 2012. MORAES, Maria Cândida. Informática Educativa no Brasil: Um pouco de História. Em Aberto, Brasília, ano 12, n.57, jan./mar. 1993. Disponível em: < http://www.emaberto.inep.gov.br/index.php/emaberto/article/viewFile/843/755>. Acesso em 4 de junho de 2012. PEREIRA, Flávio. Treinar o Cérebro. Disponível em: http://www.blogflaviopereira.com.br/leitura-dinamica-e-memorizacao/treinar-ocerebro/>. Acesso em 26 de maio de 2012. < 68 PIAGET, Jean. Gênese das Estruturas Lógicas Elementares. 3ª Ed. Rio de Janeiro. Editora Zahar. 1983. RAUBER, Jaime José. Que tal um pouco de lógica?!. Passo Fundo: Ed. Clio Livros, 2003. RIBEIRO, Leandro. O que é UML e Diagramas de Caso de Uso: Introdução Prática à UML. Disponível em: < http://www.devmedia.com.br/o-que-e-uml-ediagramas-de-caso-de-uso-introducao-pratica-a-uml/23408>. Acesso em 4 de junho de 2012. RIZZO, Gilda. Fundamentos e Metodologia da Alfabetização – Método Natural. 6ª Ed. Rio de Janeiro. Editora Francisco Alves. 1990. SILVA, Alessandro Antunes. A Fazenda – Software Educativo para a Educação ambiental. 2007. Disponível em: < http://www.cinted.ufrgs.br/ ciclo10/artigos/1aAlessandro.pdf>. Acesso em 11 de junho de 2012. SUPER INTERESSANTE. Videogames violentos alteram a atividade cerebral e deixam as pessoas mais insensíveis. Disponível em: <http://super.abril.com.br/blogs/como-pessoas-funcionam/videogames-violentosalteram-a-atividade-cerebral-e-deixam-as-pessoas-mais-insensiveis/>. Acesso em 11 de junho de 2012. WEIS, Alba Maria. A informática e os problemas escolares de aprendizagem. Rio de Janeiro. Editora DP&A. 2001. 69 APENDICE A – Questionário de Funcionalidades Nome: Y.L Estudante, 9 anos. • Voce acha que o jogador necessita ter uma conta e fazer o login no jogo? ( X ) Sim ( • ) Não Quais os tipos de atividade você pretende encontrar no jogo? ( X ) Atividades rápidas ( • ) Atividades demoradas (quebra cabeças) Você gostaria de ter um personagem que te acompanhasse durante o jogo? ( X ) Sim ( • ) Não Você gostaria de ver o ranking de classificação dos jogos? ( X ) Sim ( • ) Não Quais caracteristicas voce gostaria de ver no jogo? ( X ) Cores ( X ) Botões Grandes ( ) Músicas ( ) Animações