UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UTFPR CAMPUS CORNÉLIO PROCÓPIO
DIRETORIA DE GRADUAÇÃO E EDUCAÇÃO PROFISSIONAL
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E
DESENVOLVIMENTO DE SISTEMAS
DIOGO HIDEKI MATSUMOTO
VÍDERE 2: UMA PLATAFORMA DE JOGOS PARA ESTIMULAÇÃO
VISUAL
CORNÉLIO PROCÓPIO
OUTUBRO - 2012
DIOGO HIDEKI MATSUMOTO
VÍDERE 2: UMA PLATAFORMA DE JOGOS
PARA ESTIMULAÇÃO VISUAL
Trabalho de Diplomação apresentado como requisito parcial a obtenção do grau de Tecnólogo em Análise e Desenvolvimento de Sistemas pela Universidade Tecnológica Federal
do Paraná - Câmpus Cornélio Procópio
Orientador:
Fabrício Martins Lopes
CORNÉLIO PROCÓPIO
OUTUBRO - 2012
Agradecimentos
A meus pais Wanderley e Vera pela oportunidade na formação acadêmica que obtive.
A meus irmãos Hugo e Douglas pelas ideias e forças para concluir o trabalho.
Ao meu orientador Fabrício pela confiaça, sugestões e esforço depositado neste trabalho.
Aos professores da Universidade Tecnológica Federal do Paraná pelo ensino que obtive
durante o curso.
Aos membros da empresa Calibre Games pelo conhecimento compartilhado e iniciativa
deste trabalho.
Aos demais amigos e colegas de curso pelo respeito e pela ajuda durante o curso.
Aos que não foram citados, porém contribuíram para a conclusão deste trabalho.
Resumo
A deficiência visual é caracterizada por uma alteração ou diminuição da eficiência visual.
Esse resíduo visual pode ser estimulado de forma que as pessoas aprendam a usá-lo e recuperem
parcialmente sua acuidade visual. Nesse contexto, esse trabalho apresenta uma plataforma contendo doze jogos destinados ao estímulo visual de pessoas com visão subnormal. Entre os
estímulos disponibilizados aos usuários estão a visão para detalhes em cores, percepção de contrastes, estímulos luminosos, interpretação de imagens e cenas, entre outros. Além dos jogos,
é disponibilizado na plataforma a integração a um sistema de acompanhamento da evolução
dos usuários, tal como escores e estatísticas que permitem identificar o comportamento individual ou coletivo dos usuários, quantidade de vezes que o usuário jogou o mesmo jogo, seus
acertos e erros, entre outros, de forma gráfica e intuitiva. O desenvolvimento da plataforma foi
realizado com a tecnologia Java, de forma que os jogos possam ser executados independentes
do sistema operacional utilizado pelo usuário. Os resultados ilustrativos dos jogos aplicados a
um usuário demonstram o potencial dessa plataforma de jogos, os quais apontam a adequação
dessa proposta aos objetivos propostos. O Vídere é livremente disponibilizado a partir da url
http://code.google.com/p/viderejogos/.
Abstract
The visual impairment is characterized by a change or reduction of visual efficiency. This
residual vision can be stimulated so that people learn to use it and partially recover their eyesight. This paper presents a platform containing twelve games for visual stimulus of people
with low vision. Among the visual stimulus available to users, there are games to detect color
details, contrast perception, light stimuli, interpretation of images and scenes, among others.
In addition to games, it is also available on the platform a system for monitoring the evolution of its users, such as scores and statistics that identify their individual or collective behavior, number of times played by user and the respective game, their successes and errors.
This monitoring is presented by using graphics in an intuitive way. The software was developed with the Java technology, so it can be run independent of the operational system. The
results of the games applied to a user demonstrate the potential of this game platform, which
indicates its suitability to the purposes of this work. The Videre is freely available from the
http://code.google.com/p/viderejogos/.
Lista de Figuras
3.1
Detalhe do Jogo Só Soprando. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
3.2
Interface do mini-jogo Matriz de Formas Geométricas. . . . . . . . . . . . . . . . . . . . . . . . p. 22
3.3
Tela de Parabenização ao concluir todas as fases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
5.1
Diagrama de Classes - Jogos Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 31
5.2
Diagrama de Classes - Jogos 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 32
5.3
Diagrama de Classes - Jogos 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 33
5.4
Diagrama de Classes - Jogos 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 34
5.5
Diagrama de Classes - Jogos 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 35
5.6
A Classe FaseSombra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37
5.7
Área de clique das imagens, antes e atual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 39
5.8
Menu Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 40
5.9
Diagrama de Casos de Uso - Gerenciar Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 42
5.10 Diagrama de Casos de Uso - Gerar Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 45
5.11 Diagrama de Atividades - Criar Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 48
5.12 Diagrama de Atividades - Exibir Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 49
5.13 Diagrama de Atividades - Gerenciamento de Jogadas . . . . . . . . . . . . . . . . . . . . . . . . p. 50
5.14 Diagrama de Sequência - Gerar Gráficos sem filtros adicionais . . . . . . . . . . . . . . . p. 51
5.15 Diagrama de Sequência - Gerar Gráficos com filtros adicionais . . . . . . . . . . . . . . . p. 51
5.16 Diagrama de Classes - Módulo Estatístico (simples). . . . . . . . . . . . . . . . . . . . . . . . . . p. 53
5.17 Diagrama de Classes - Módulo Estatístico (detalhado). . . . . . . . . . . . . . . . . . . . . . . . p. 53
5.18 Arquivo de Configuração de Builds do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
5.19 Menu de Seleção de Gráficos a Gerar. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55
5.20 Exemplo de Gráfico Gerado - Linha de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . p. 56
5.21 Tela de Seleção de Filtros Adicionais para Linha de Aprendizado . . . . . . . . . . . . p. 56
5.22 Tela de Seleção de Filtros Adicionais para Desempenho em Jogos . . . . . . . . . . . . p. 57
5.23 Exemplo de Gráfico Gerado - Desempenho em Jogos . . . . . . . . . . . . . . . . . . . . . . . . p. 58
5.24 Tela de Seleção de Filtros Adicionais para Uso de Jogo . . . . . . . . . . . . . . . . . . . . . . p. 59
5.25 Exemplo de Gráfico Gerado - Uso de Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 59
5.26 Exemplo de Gráfico Gerado - Desempenho Coletivo . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
5.27 Exemplo de Gráfico Gerado - Boxplot de Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 61
5.28 Exemplo de Gráfico Gerado - Boxplot de Datas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62
5.29 Exemplo de Gráfico Gerado - Boxplot de Jogadores . . . . . . . . . . . . . . . . . . . . . . . . . p. 63
5.30 Diagrama de Atividades - Execução de Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 65
5.31 Diagrama de Classes - Novos Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 66
5.32 Tela do Jogo Identifique as Formas! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 68
5.33 Tela do Jogo de Contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 70
5.34 Tela do Jogo de Movimento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 72
6.1
Cronograma planejado sobre a execução do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . p. 73
6.2
Cronograma executado do trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 73
6.3
Descrição dos ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 74
Lista de Tabelas
3.1
Classificação da Perda de Visão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
5.1
Alteração dos nomes de imagens no mini-jogo Números . . . . . . . . . . . . . . . . . . . . . p. 37
5.2
Alteração dos nomes de imagens no mini-jogo Matriz de Formas Geométricas p. 38
5.3
Alteração dos nomes de imagens no mini-jogo Matriz de Figuras . . . . . . . . . . . . . p. 39
5.4
Alteração dos nomes de imagens no mini-jogo Ache as Figuras . . . . . . . . . . . . . . . p. 39
5.5
Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.6
Requisitos Não-Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.7
Caso de Uso Criar Usuário. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 43
5.8
Caso de Uso Alterar Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 43
5.9
Caso de Uso Listar Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 44
5.10 Caso de Uso Escolher Usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 44
5.11 Caso de Uso Buscar Usuários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 46
5.12 Caso de Uso Buscar Jogadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 46
5.13 Caso de Uso Gerar Gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 47
5.14 Caso de Uso Exibir Gráfico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 47
5.15 Atributos da Classe GameData . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 52
5.16 Gráfico de Linha de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 55
5.17 Gráfico de Desempenho em Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 57
5.18 Gráfico de Uso de Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58
5.19 Gráfico de Desempenhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
5.20 Gráfico de Boxplot de Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 61
5.21 Gráfico de Boxplot de Datas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 62
5.22 Gráfico de Boxplot de Jogadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 63
5.23 Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.24 Requisitos Não-Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.25 Tabela de Pontuação do Jogo de Formas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 67
5.26 Formas Geométricas do Jogo de Formas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 67
5.27 Tabela de Pontuação do Jogo de Contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 69
5.28 Tabela de Pontuação do Jogo de Movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 71
5.29 Tragetórias do Jogo de Movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 71
Sumário
1
2
3
Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
1.1
Apresentação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
1.2
Organização do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13
Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.1
Reorganização da estrutura do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15
2.2
Acompanhamento da evolução do usuário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
2.3
Implementação de novos jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16
Revisão Bibliográfica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
3.1
Deficiência Visual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 17
3.2
Trabalhos Relacionados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
3.2.1
EACH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
3.2.2
Só Soprando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
3.2.3
LookTel Recognizer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
3.2.4
DOSVOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 19
3.2.5
JogaVOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.2.6
CityVOX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.2.7
AudioGames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.2.8
Smart Audio City . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 20
3.2.9
Boxplot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21
3.3
Jogo Vídere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21
3.4
Tecnologias Utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
3.4.1
API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
3.4.1.1
JSE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23
3.4.1.2
JFreeChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
3.4.2
3.4.2.1
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
Sistema Operacional Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24
4
3.4.2.2
Netbeans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
3.4.2.3
Tortoise Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
3.4.2.4
Kile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
3.4.2.5
Astah UML e Argo UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 25
Modelo Espiral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
4.1
Estudo das tecnologias usadas no projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 26
4.2
Desenvolvimento de novos módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
4.2.1
Concepção do Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
4.2.2
Análise de Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
4.2.3
Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27
4.2.4
Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
4.3
5
Redação do Trabalho de Diplomação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 28
Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
5.1
Reestruturação do Código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
5.1.1
Fragmentação de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
5.1.1.1
Lógica de Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
5.1.1.2
Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29
5.1.1.3
Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
5.1.1.4
Fases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
5.1.2
Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
5.1.3
Mudanças Gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
5.1.3.1
Fluxo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
5.1.3.2
Fases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
5.1.4
Mudanças Específicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
5.1.4.1
Sombras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 36
5.1.4.2
Números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 37
5.1.4.3
Matriz de Formas Geométricas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
5.1.4.4
Matriz de Figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 38
5.1.4.5
Ache as Figuras! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 39
5.2
5.2.1
Módulo Estatístico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 40
Definição de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.2.1.1
Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.2.1.2
Requisitos Não-Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.2.2
Casos de Uso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 41
5.2.3
Diagrama de Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 47
5.2.4
Diagrama de Sequência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 51
5.2.5
Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 52
5.2.6
Inclusão do JFreeChart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
5.2.7
Gráficos Desenvolvidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
5.2.7.1
Linha de Aprendizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 54
5.2.7.2
Desempenho em Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 57
5.2.7.3
Uso de Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 58
5.2.7.4
Desempenhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 60
5.2.7.5
Boxplots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 61
5.3
Novos Jogos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.3.1
Definição de Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.3.1.1
Requisitos Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.3.1.2
Requisitos Não-Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 64
5.3.2
Diagrama de Atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 65
5.3.3
Diagrama de Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 66
5.3.4
Jogos desenvolvidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 67
5.3.4.1
Identifique a Forma! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 67
5.3.4.2
Jogo de Contraste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 69
5.3.4.3
Jogo do Movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 71
6
Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 73
7
Recursos necessários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75
8
7.1
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75
7.2
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 75
Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76
8.1
Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76
8.2
Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 76
Referências Bibliográficas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 78
Apêndice A -- Proposta do Trabalho de Diplomação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 80
13
1
Introdução
O uso da tecnologia no dia a dia tornou-se uma atividade indispensável. Há vários recursos
oferecidos aos usuários realizados com o apoio da informática utilizando-se um software para
atender as necessidades de uma pessoa.
Dentre as diversas áreas de aplicações, a área educacional foca o estímulo ao desenvolvimento de uma determinada habilidade humana, a qual é chamada de software educacional que
oferece ao usuário, muitas vezes, recursos da multimídia para tornar o aprendizado mais interativo e eficiente.
Com ênfase na área de desenvolvimento de software educacional é proposta a continuação
de um projeto com as mesmas características de uma aplicação educacional focada na área de
estímulo à visão para portadores de deficiência visual.
1.1
Apresentação
Esta monografia apresenta o Trabalho de Diplomação do Curso Superior de Tecnologia
em Análise e Desenvolvimento de Sistemas da Universidade Tecnológica Federal do Paraná Câmpus Cornélio Procópio.
Neste trabalho é descrita a aplicação de uma metodologia comumente utilizada em desenvolvimento de jogos, relatando todos os procedimentos utilizados durante o desenvolvimento
do aplicativo.
Trata-se de um jogo educacional focado no estímulo à visão de crianças e que também gera
estatísticas de aprendizado e uso tanto individual quanto coletivo.
1.2
Organização do Trabalho
A organização do Trabalho de Diplomação apresentado está divido da seguinte forma:
No Capítulo 2 são apresentados os objetivos deste trabalho.
1.2 Organização do Trabalho
No Capítulo 3 são abordados as pesquisas efetuadas durante o trabalho.
No Capítulo 4 é apresentado o modelo de desenvolvimento utilizado.
No Capítulo 5 é descrito como foi o processo de desenvolvimento do trabalho.
No Capítulo 6 são apresentados os cronogramas de desenvolvimento.
No Capítulo 7 são descritos os recursos utilizados.
No Capítulo 8 são apresentadas as considerações finais deste trabalho.
14
15
2
Objetivos
Uma abordagem inicial para o estímulo visual de crianças com baixo índice de visão ou
visão subnormal, desenvolvido por Graziela Cristina do Vale Pascoal Rodrigues em seu Trabalho de Diplomação do Curso de Tecnologia em Informática da UTFPR Câmpus Cornélio
Procópio foi considerado no desenvolvimento deste trabalho com objetivo de expandir o software.
Esse software possui nove diferentes mini-jogos que “abordam meios de estimulação visual
tais como, visão para detalhes em cores, visão de detalhes em imagens, percepção de contrastes,
estímulos luminosos, interpretação de imagens e cenas, visualização de contornos e melhoria
da memória visual.” (RODRIGUES, 2005).
A nova versão do projeto foi dividida em três etapas:
1. Reorganização da estrutura do sistema;
2. Acompanhamento da evolução do usuário;
3. Implementação de novos mini-jogos.
2.1
Reorganização da estrutura do sistema
A reorganização da estrutura do sistema foi feita com o objetivo de garantir a estabilidade
do sistema. Muitos sistemas sofrem contínuas mudanças. Uma pequena mudança em uma parte
do sistema pode durar mais do que se esperava ou até mudar o comportamento de outra parte.
Para reduzir a frequência com que esses riscos ocorram, manter um código limpo e organizado
é uma opção para o desenvolvedor (MARTIN, 2008).
Com a reorganização do sistema, utilizando recursos do paradigma de orientação a objetos,
novas funcionalidades foram adicionadas ao sistema sem afetar a rotina de um jogo, e a inclusão
de novos mini-jogos foi feita de forma mais direta, sem ter que se preocupar como o sistema
funciona como um todo, apenas sabendo o básico que uma classe deve implementar.
Nesse módulo, parte do tempo foi dedicado a revisão de aspectos gerais do jogo, como
2.2 Acompanhamento da evolução do usuário
16
desempenho, que trata o tempo de carregamento e processamento da aplicação em memória, e
documentação do código.
2.2
Acompanhamento da evolução do usuário
Foi implementado um módulo para acompanhamento da evolução do usuário baseado em
um histórico de dados de cada jogo que são coletados durante sua execução. Os dados são
coletados de forma transparente ao usuário: a cada novo jogo que é praticado, informações
sobre acertos, erros, pontuações e data são salvos automaticamente.
Está presente neste módulo oito diferentes gráficos divididos em duas partes: estatísticas
individuais e estatísticas coletivas. Em estatísticas individuais, são gerados gráficos relacionados apenas a um usuário. Um dos resultados indicados por esses gráficos é a possibilidade de
acompanhar, indivualmente, qual o desempenho e evolução na aprendizagem de cada jogo. Em
estatísticas coletivas, são gerados gráficos relacionados a todos os usuários. É possível notar,
nesses gráficos, qual o comportamento coletivo diante a algumas variantes como: data jogada,
tipo de jogo, pontuações obtidas e frequência de jogo.
Para se fazer a coleta de dados de forma coletiva, foi necessário desenvolver um gerenciador
de jogadores para que se possa diferenciar mais de um perfil de jogador. Tal diferença é feita
através do nome do usuário.
2.3
Implementação de novos jogos
A implementação de novos jogos ao pacote atual oferece mais alternativas de jogos. O
foco está em deficientes com um nível de visão um pouco menor do que o requerido nos jogos
encontrados no pacote atual.
Esses novos jogos envolvem trabalhar: a área de reconhecimento de formas geométricas
baseado em um nivel de detalhamento de uma imagem redimensionada; o nível de percepção
de uma forma geométrica baseado em níveis de contraste entre o fundo e a imagem; o reconhecimento de sentido de movimento de um objeto baseado na velocidade em que o objeto se
encontra.
17
3
Revisão Bibliográfica
3.1
Deficiência Visual
A deficiência visual é caracterizada por uma alteração ou diminuição da eficiência visual.
As causas mais comuns para que essa alteração ocorra incluem a forma inata na qual a pessoa
já nasce com a deficiência, podendo até perder a visão totalmente com o tempo e de forma
adquirida, quando a mesma ocorre por sofrer acidentes que comprometam a visão (BRAGA;
SEI, 1997).
A deficiência visual pode ser dividida em dois grupos: cegueira e visão subnormal. A
pessoa considerada cega pode possuir apenas a percepção da luz ou não ter nenhuma visão. A
maior parte do conhecimento adquirido por essas pessoas ocorre por meio de outros sentidos,
sendo que os mais utilizados são o tato e a audição, que acontecem, por exemplo, através da
grafia braille e leitores de telas. Por outro lado, uma pessoa com visão subnormal consegue
utilizar a visão para o aprendizado de alguma atividade até o limite que apresenta seja atingido.
A perda de visão possui alguns graus de acordo com a escala optométrica de Snellen, que
mensura a acuidade visual para longe. Para obter a escala de Snellen é necessário fazer a relação
entre a qualidade da visão subnormal a certa distância (em metros ou pés) comparado à qualidade da visão normal. De acordo com essa escala, o primeiro grau é considerado visão normal,
os graus 1 e 2 são considerados visão subnormal, enquanto os demais graus são considerados
como cegueira (OMS, 2003).
A Tabela 3.1 exibe a classificação da perda de visão de acordo com dados retirados de uma
pesquisa feita pela Organização Mundial de Saúde - OMS que apresenta o grau da perda de
visão e a respectiva acuidade visual máxima para o grau.
Existem várias soluções propostas para ajudar o cotidiano de um deficiente visual. Para
a leitura, pode ser utilizando tanto o sistema de leitura através do tato, o Braille, ou através
da audição, por meio de livros falados ou sintetizadores de voz. Na escrita, existem sistemas
que escrevem em Braille e também impressoras Braille. Na locomoção, pessoas com cegueira
podem usar bengalas ou cães-guia.
Para algumas alterações visuais, como miopia, hipermetropia, astigmatismo, entre outras,
3.2 Trabalhos Relacionados
18
Tabela 3.1: Classificação da Perda de Visão
Grau de Perda de Visão
Acuidade Máxima (Snellen)
0
1,0
1
0,3
2
0,1
3
0,05
4
0,02
5
0
Fonte: adaptado de OMS.
pode ser feito o uso de lentes (óculos ou lentes de contato) ou cirurgias oculares.
3.2
Trabalhos Relacionados
Existe uma série de condições que podem limitar uma pessoa a utilizar um jogo eletrônico
da forma para a qual ele foi projetado. Tratam-se das deficiências, que podem ser visuais,
auditivas, motoras e relacionadas à cognição ou ao aprendizado (FAVA, 2010).
Porém, de outro lado, existem várias formas de estimular a visão e vários projetos concluídos relacionados ao desenvolvimento de alguma deficiência humana ou diminuição da barreira
de limites, utilizando a tecnologia como meio de interação com o usuário. A seguir são resumidamente descritos alguns deles.
3.2.1
EACH
A Escola de Artes, Ciências e Humanidades (EACH) da Universidade de São Paulo (USP)
realizou uma pesquisa para analisar o desempenho de pessoas com deficiência ao jogar jogos
eletrônicos que exigem movimentação física do jogador.
Um dos jogos utilizados na pesquisa foi o de boliche, para o console Nintendo Wii, que recebe as orientações do jogador a partir de movimentos com o controle e pressionando um botão
ao mesmo tempo. Em um grupo de doze pessoas, sendo cinco crianças com paralisia cerebral
e sete jovens com síndrome de Down, observou-se “que após 20 tentativas os deficientes se
adaptam bem à tarefa, com bom desempenho nos escores do jogo virtual” (FERREIRA, 2011).
3.2.2
Só Soprando
Só Soprando é um jogo cuja interação com usuário é feita apenas por meio de um microfone. Não há botões no jogo, portanto o uso de teclado e/ou mouse são desprezíveis, visto que
3.2 Trabalhos Relacionados
19
toda ação no jogo é feita apenas por um sopro. Esse jogo foi desenvolvido por um grupo composto de um designer, um programador e um artista gráfico. A ferramenta utilizada foi o Adobe
Flash.
O jogo possui um mecanismo bem simples: enquanto o jogador estiver assoprando o microfone, o balão irá subir, caso constrário, tende a descer. O objetivo é chegar até o final da fase
sem que o balão encoste em algum obstáculo como montanhas, árvores, casas, aves e avião.
“O jogo é um símbolo de luta contra o próprio homem. Acredita-se que ao impulsionar o
balão com o sopro, como o vento, o usuário transporta suas limitações para o jogo, mostrando
que está vivo e que é capaz de vencer frente às suas dificuldades” (FAVA, 2010).
Figura 3.1: Detalhe do Jogo Só Soprando.
Fonte: (FAVA, 2010)
3.2.3
LookTel Recognizer
O LookTel Recognizer é um aplicativo que utiliza a câmera digital de um celular para reconhecer objetos reais e descrevê-los na tela ou pronunciá-los em forma de áudio. O programa
possui uma biblioteca pré-definida de objetos reais e descrição, porém, é possível adicionar novas entradas pelo próprio usuário ou por alguma pessoa de preferência. Além disso, atualmente,
está em desenvolvimento uma versão que reconhece vários textos, usado por exemplo, para ler
jornais, revistas, livros. (LOOKTEL, 2009).
LookTel é uma empresa americana que desenvolve aplicações que visam melhorar a qualidade de vida de cegos ou pesoas com visão subnormal. Atualmente, o foco está no desenvolvimento para smartphones.
3.2.4
DOSVOX
DOSVOX é um sistema operacional desenvolvido especificamente para deficientes visuais,
que utiliza a síntese de voz como principal meio de interação com o usuário. Nele vem in-
3.2 Trabalhos Relacionados
20
cluso: aplicativos de manipulação de textos, impressores e formatadores para braile, programas
didáticos para auxílio a deficientes visuais, programas para acesso à internet (BORGES, 2002).
3.2.5
JogaVOX
JogaVOX é uma ferramenta feita para professores poderem criar novos jogos para deficientes visuais com estrutura de vérices e caminhos a serem percorridos. Em cada vértice,
o “usuário pode explorar seu conteúdo, obtendo informações, recolhendo ou deixando alguns
objetos.” (CUNHA, 2007). Ela é estruturada permitindo que o professor desenvolva jogos em
ambiente Windows e que sejam executáveis no DOSVOX. Um exemplo aplicado utilizando essa
ferramenta foi desenvolvido pelo próprio autor do trabalho: o exemplo permite que o usuário
viaje pelos Estados do Brasil adquirindo informações sobre os locais.
3.2.6
CityVOX
CityVOX é um jogo didático para deficientes visuais que auxilia na aprendizagem de matemática geométrica. Sobre o mecanismo: na tela principal de jogo há um tabuleiro com várias
casas para andar e o jogador precisa responder às perguntas para andar para a próxima casa.
Caso acerte a pergunta, irá avançar uma ou mais casas, dependendo do grau de dificuldade da
questão. Caso erre, irá voltar uma casa. O objetivo é prender um suposto bandido que aterroriza
a cidade de CityVOX. Quando chegar ao final do tabuleiro receberá um som comemorativo,
exibindo, também, um relatório de acertos e comentário dos erros em formato de texto (SILVA,
2009).
3.2.7
AudioGames
AudioGames é um site que reune vários outros jogos acessíveis a não somente cegos, mas
também para pessoas com deficiência motora. Nesse site, apenas jogos que utilizam o áudio
como único meio de informação ao usuário são hospedados. Esses jogos não possuem interface gráfica altamente produzida como a maioria dos jogos atuais. No máximo, elas possuem,
quando têm, uma simples tela que mostram apenas textos (AUDIOGAMES, 2009).
3.2.8
Smart Audio City
Aplicativo desenvolvido para celulares que ajuda o usuário a se locomover dentro de cidades.
Quando o deficiente visual aproximar-se de um local, ele poderá receber informações específicas do local por áudio. Essas informações são compartilhadas entre os usuários, possibilitando
3.3 Jogo Vídere
21
um crescimento contínuo de informações. Atualmente, há suporte apenas para celulares Windows Phone (SOARES, 2012).
3.2.9
Boxplot
Uma forma eficiente de exibir cinco importantes dados de um conjunto de valores: maior
valor, menor valor, mediana, quartil superior e quartil inferior. O maior e menor valor do
conjunto ficam, respectivamente, no topo e na base da representação gráfica. Os valores do
quartis superior e inferior, que separam o conjunto em um quarto de valores maiores e inferiores
a eles, formam as bordas de uma caixa. A mediana, que é o valor do conjunto que separa o grupo
em quantidades iguais de numeros menores e maiores a ele, é a linha que se encontra no meio
da caixa.
3.3
Jogo Vídere
O Vídere é um jogo que atua no estímulo à visão de crianças com visão subnormal entre
quatro a oito anos de idade. Esse jogo é composto por nove diferentes mini-jogos que utilizam
cores básicas, como azul, amarelo, verde, vermelho, branco e preto, para estimular, de forma
interativa e atraente ao jogador sem sobrecarregar funções a um jogo, crianças que possuam
alguma das seguintes patologias: albinismo, anirídia, atrofia óptica, catarata, coriorrentinite
macular, glaucoma, retinopatia da prematuridade, retinose pigmentar e sublação do cristalino.
A interação do usuário com o software é realizada basicamente pela entrada de cliques do
mouse. Todo mini-jogo possui uma interface de usuário parecida. No canto superior direito
há um texto que indica a quantidade de vidas que o jogador ainda possui. Quando essas vidas
chegarem a zero, irá abrir um menu de fim de jogo mostrando a pontuação total. No canto superior esquerdo é mostrado a pontuação total atual. Toda jogada de acerto ou erro irá modificar
essa pontuação, sendo que acertos incrementam positivamente e erros decrementam a pontuação. Na parte inferior estão localizados três botões: Ajuda, Tela Inicial e Sair. Ao clicar em
Ajuda, uma nova janela será aberta explicando as instruções e regras do mini-jogo atual. Ao
clicar em Tela Inicial, irá fechar o mini-jogo atual voltar ao menu inicial. Ao clicar em Sair, o
processo do jogo será encerrado. A Figura 3.2 mostra um exemplo de interface do mini-jogo
Matriz de Formas Geométricas.
Todo mini-jogo possui uma certa quantidade de fases pré-definidas que será trocada quando
o jogador concluir a fase atual. Quando a última fase for concluída um novo menu de parabenização será aberta, mostrando a pontuação atual e com três opções: Jogar Novamente, que
reiniciará o mini-jogo atual com a pontuação zerada e a quantidade de vidas inicial; Tela Inicial, que irá fechar o mini-jogo atual voltar ao menu inicial e, Sair, que irá encerrar o processo
3.3 Jogo Vídere
22
Figura 3.2: Interface do mini-jogo Matriz de Formas Geométricas.
do jogo. A figura 3.3 mostra a tela de parabenização que é mostrada ao concluir todas as fases
de um mini-jogo.
O trabalho Vídere foi publicado em dois principais eventos. Foi aceito no no Workshop
de Jogos Digitais na Educação, evento integrante ao Simpósio Brasileiro de Informática na
Educação - SBIE - do ano de 2005, que ocorreu no estado de Minas Gerais na cidade de Juiz
de Fora. E foi selecionado a ser apesentado no 1o Seminário Nacional de Educação, Tecnologia
e Profissionalização para Pessoas com Necessidades Educacionais Especiais, promovido pelo
Ministério da Educação que ocorreu em Brasília.
Foi desenvolvido utilizando o modelo de ciclo de vida Espiral adaptado para o desenvolvimento de jogos e dividido em quatro fases: Concepção do Jogo, Análise do Projeto, Desenvolvimento e Teste. O programa foi inteiramente escrito utilizando a linguagem de programação
Java.
3.4 Tecnologias Utilizadas
23
Figura 3.3: Tela de Parabenização ao concluir todas as fases.
3.4
3.4.1
Tecnologias Utilizadas
API
Esse trabalho foi desenvolvido utilizando a linguagem de programação Java. Java é uma
linguagem de programação orientada a objetos que é mantida pela Oracle, possuindo sintaxe
semelhante a C++. Uma das grandes vantagens em se usar Java é pelo fato de não precisar
recompilar o código para que seja executado em outra plataforma que possua a Java Virtual
Machine (JVM) instalada. Possui vários recursos compilados e prontos a serem usados pelo
programador, porém, muitas veses, ainda será necessário a importação de outros recursos adicionais, conhecidos também como Application Programming Interface (APIs) para agilizar o
processo de desenvolvimento de um software (DEITEL, 2010) .
APIs utilizadas nesse trabalho:
3.4.1.1
JSE
Java Standard Edition é a API de desenvolvimento, distribuída pela Oracle gratuitamente,
para criar e executar aplicações Java. Nela está incluso: a JVM, para que se possa ler e exe-
3.4 Tecnologias Utilizadas
24
cutar bytecodes, que são códigos de máquina não-legíveis a humanos; compilador, para gerar
o bytecodes recebendo como entrada o código da linguagem java; e ferramentas utilitárias para
agilizar o desenvolvimento e ganhar em performance tanto em aplicações desktop quanto em
aplicações servidoras (ORACLE, 2012).
3.4.1.2
JFreeChart
JFreeChart é uma biblioteca open source escrita em Java que facilita o desenvolvedor a
montar e exibir gráficos durante a execução de um aplicativo. Foi fundada em fevereiro do ano
de 2000, por David Gilbert, e é mantida pela empresa Object Refinery Limited que vende documentação e guias para programação sobre o JFreeChart. Atualmente, David Gilbert ainda é
o gerenciador do projeto, com vários outros contribuidores da comunidade de desenvolvedores.
Essa API possui diversas variações de formação de gráficos, dentre elas, as usadas nesse trabalho: gráficos de retas, gráficos de barras, gráfico de pontos, gráficos de Boxplot (VIKLUND,
2012).
Não é necessário conhecimento aprofundado em matemática estatística para utilizar a API,
pois a montagem dos gráficos é baseado apenas na passagem de parâmetros essenciais à construção de um gráfico. Por exemplo, para montar um gráfico de retas é necessário, basicamente,
o valor de um ponto X no eixo das abcissas e seu respectivo valor no eixo das ordenadas. O
desenho formado entre a ligação dos pontos das coordenadas e a escala do gráfico são tarefas
delegadas ao JFreeChart.
3.4.2
Software
Dentro do escopo de desenvolvimento do projeto, foi necessário a utilização de alguns
programas indispensáveis e outros que aumentam a produtividade no desenvolvimento geral do
projeto.
3.4.2.1
Sistema Operacional Linux
O Linux é sistema operacional livre e de código aberto. Possui recursos úteis tanto para
usuários leigos quanto para usuários avançados. Dentre as diversas distribuições, foi utilizada o
Ubuntu versão 10.10. Alguns dos motivos para a escolha foi a familiaridade pessoal do uso do
sistema operacional, pela rapidez na execução de processos e por fornecer utilidades do kernel
Linux, como o Terminal, que agilizou algumas das tarefas desse trabalho.
3.4 Tecnologias Utilizadas
3.4.2.2
25
Netbeans
Ambiente de desenvolvimento livre e de código aberto, para ajudar a escrever códigos em
Java, oferecendo: compilação de códigos em Java, suporte a plugins, edição inteligente de
código. Esse software foi escolhido pela familiaridade adquirida antes do início do projeto, em
atividades acadêmicas.
3.4.2.3
Tortoise Subversion
Sistema de controle de versão de arquivos. Apesar de atualmente ter suporte apenas ao
sistema operacional Windows, é possível utilizá-lo, como cliente, pelo Netbeans que possui suporte para operações básicas como update e commit. O servidor foi providenciado pelo serviço
do GoogleCode, disponível no endereço: http://code.google.com/p/viderejogos/.
3.4.2.4
Kile
Editor e compilador de textos em latex. Utilizado comumente na criação de artigos, monografias, entre outros. Apesar de ser trabalhoso em aprender a utilizá-lo, a grande vantagem
está na facilidade de organização de documentos textuais extensos sem se preocupar com a
formatação do documento final.
3.4.2.5
Astah UML e Argo UML
Editores de diagramas da Unified Modeling Language, com interface gráfica simples. Facilita a organização geral de componentes do sistema. Possuem suporte a importação de código
fonte para gerar relação entre classes. Apesar de serem dois softwares com funcionalidades
concorrentes, o primeiro foi o mais utilizado, sendo que o segundo foi utilizado apenas para
agilizar o processo de modelagem de diagrama de classes simples.
26
4
Modelo Espiral
Este Trabalho de Diplomação foi desenvolvido realizando as seguintes atividades:
1. Estudo das tecnologias usadas no projeto;
2. Desenvolvimento de novos módulos;
3. Redação do Trabalho de Diplomação.
4.1
Estudo das tecnologias usadas no projeto
Essa atividade foi realizada durante grande parte do Trabalho de Diplomação, em paralelo
com a atividade de desenvolvimento. A aquisição de conhecimento sobre assuntos relacionados
ao entendimento do projeto desenvolvido e também à implementação dos novos módulos foram
realizadas nessa atividade.
O aplicativo da ex-aluna foi desenvolvido utilizando a linguagem de programação orientada a objetos Java e compilado no ambiente de desenvolvimento Netbeans. Para alcançar os
objetivos do projeto (citados na seção 2), foi necessário a aquisição do código fonte, produzido
pela ex-aluna, que foi providenciado por Fabrício Lopes. Em seguida o código foi estudado
a fim de entender as relações entre as classes e objetos para que fosse possível a remodelação
do sistema sem haver modificações no fluxo atual do jogo e sem alterar a saída de dados nas
interfaces gráficas.
Os princípios de orientação a objetos SOLID introduzidos por Robert Martin foram as referências para a remodelação do sistema. Os cinco princípios, sendo eles: Single Responsability,
Open/Closed, Liskov substitution, Interface segregation e Dependency inversion, visam uma
melhor organização e maior limpeza de código, tornado-o fácil de ser entendido e ser mantido
não apenas pelo autor, mas também por outros colaboradores (MARTIN, 2008).
Com isso, o módulo de acompanhamento da evolução do usuário foi introduzido no sistema
e implementado para cada mini-jogo. Esse módulo serve para que o aluno e o professor possam
ter estatísticas de resultados baseado em dados coletados durante cada mini-jogo, sendo eles:
4.2 Desenvolvimento de novos módulos
27
identificador do mini-jogo, pontuação de acertos, pontuação de erros, data jogada e estado final
do mini-jogo. Os dados são gravados no computador local e é possível criar mais de um perfil
de usuário, usando como atributo diferencial o nome do aluno. A exibição das estatísticas é
realizado através de gráficos que são gerados e exibidos pelo próprio aplicativo.
4.2
Desenvolvimento de novos módulos
O desenvolvimento dos novos módulos foi realizado baseando-se no modelo de processo
de ciclo de vida espiral. A escolha do modelo espiral se deu principalmente por ser um modelo
que,
atualmente, é o mais utilizado para o desenvolvimento de jogos, pois cada iteração é considerada como uma melhoria do jogo como um todo ou parcialmente. Diferente de outros
sistemas, um jogo precisa ser, além de funcional e de fácil usagem para o usuário, atrativo sem
que haja um sinal de frustação por parte do jogador. Por isso, quanto mais iterações forem realizadas, acredita-se que a qualidade do produto irá aumentar gradativamente (SCHELL, 2008)
.
As fases seguidas no modelo foram: Concepção do Jogo, Análise de Projeto, Desenvolvimento e Testes.
4.2.1
Concepção do Jogo
A fase de concepção do jogo é o ponto inicial da criação de um jogo. É feito um brainstorm
(chuva de ideias) para decidir como será o jogo, incluindo planejamento de regras de jogo, de
jogabilidade e de abstração interfaces gráficas.
4.2.2
Análise de Projeto
Nessa fase, a ideia abstrata da fase anterior é mais concretizada, gerando documentos para
descrever o problema e como este será resolvido. A pesquisa por jogos que se assemelhem à
ideia também pode ser feita, a fim de encontrar melhores soluções para o jogo.
4.2.3
Desenvolvimento
Com o documento gerado na fase anterior, é dado início ao desenvolvimento do jogo. O
principal foco nessa fase é a produção do jogo, incluindo a programação das interfaces e regras.
O código produzido nessa fase não deve ser final, deve ser feito pensando que haverá possíveis
reajustes na fase seguinte.
4.3 Redação do Trabalho de Diplomação
4.2.4
28
Testes
O módulo gerado na fase anterior é revisado para verificar se os principais pontos do documento gerado na análise foram cumpridos. Não se limitando apenas à revisão, é realizado um
teste a fim de encontrar possíveis defeitos nas rotinas do jogo para corrigi-los para a versão
final; avaliar a qualidade, no que se refere à atmosfera do jogo (sensação de estar jogando e
identificar-se no ambiente), feedbacks (exercer uma ação e receber um sinal que identifique que
a ação realmente foi executada) e jogabilidade (usuário exercer uma ação sem ser atrapalhado
pelo próprio jogo).
Quando detectada uma nova ideia que possa melhorar o jogo ela é avaliada e um novo ciclo
é iniciado, começando da Concepção.
4.3
Redação do Trabalho de Diplomação
A redação do Trabalho de Diplomação foi realizada com maior ênfase no final do cronograma planejado, estendendo-se até a um mês após a apresentação do trabalho. Foi considerado
na escrita da redação as bibliografias estudadas durante o desenvolvimento do projeto e conversas com o orientador.
29
5
Desenvolvimento
5.1
Reestruturação do Código
A reestruturação do código foi realizado na primeira iteração do projeto. A seguir, na seção
5.1.1 é explicado como foi feito a divisão das classes; na seção 5.1.2 é mostrada o diagrama de
classes da nova organização geral das classes relacionadas aos mini-jogos e da mesma organização mais detalhada, dividida em três imagens; e nas próximas seções será descrito as mudanças
específicas realizadas em cada mini-jogo.
5.1.1
Fragmentação de Classes
Todos os nove mini-jogos necessitaram serem reestruturados para que a implementação
dos próximos módulos fosse feita de forma transparente e direta. A reestruturação do código
foi realizada tendo em mente a melhor maneira de escrever um código simples e dividido em
vários pequenos módulos que são responsáveis por uma função bastante específica no jogo.
As partes do código que definem a lógica de um mini-jogo, recursos a serem carregados,
dados de interface de usuário, e configuração de fases foram separadas, dando origem à novas
classes que realizam os papéis citados.
5.1.1.1
Lógica de Jogo
A lógica de jogo básica foi transferida para a classe abstrata FaseControladorBase. Todos
os mini-jogos atuais extendem essa nova classe que é responsável por controlar: inicialização
do mini-jogo; eventos de acerto ou erro do jogador; carregar dados de pontuação, vida, e fase
atual; controlar dados de jogadas realizadas pelo jogador; e finalização do mini-jogo.
5.1.1.2
Recursos
Os recursos a serem carregados durante os mini-jogos foi delegado à classe Recursos que
é um Singleton, ou seja, existe apenas uma única instância no programa todo. Os recursos de
5.1 Reestruturação do Código
30
multimídia, como imagens e sons, podem ser obtidos a partir dessa classe.
5.1.1.3
Interface
Os dados de interface de usuário permaneceu na mesma classe que representava um minijogo como um todo, removendo-se os códigos de lógica de jogo, recursos e configuração de
fases.
5.1.1.4
Fases
A configuração de fases foi transferida para a classe abstrata Fase. Ela apenas guarda
informações variáveis de uma fase de um mini-jogo, bem como um identificador único, que é
o nome. Apesar de não estar sempre ativa, é útil para separar as váriáveis de configurações de
cada fase.
Uma mesma classe de configuração de fases pôde ser usada em mais de um tipo diferente
de mini-jogo, como acontece no caso dos mini-jogos Esconder Letras e Esconder Números,
que utilizam a classe FaseEsconder para criar as fases (Figura 5.2), já que possuem a mesma
estrutura de configuração de fases. O mesmo acontece nos mini-jogos Matriz de Figuras e
Matriz de Geométrica, que reutilizam a classe FaseMatriz (Figura 5.4).
5.1.2
Diagrama de Classes
Na Figura 5.1 é apresentada a relação geral das classes de mini-jogo. Na Figura 5.2 é
apresentada, com detalhes, a relação de classes para os mini-jogos: Cores, Esconder Letras e
Esconder Números. Em seguida, na Figura 5.3, os mini-jogos: Esconder Figuras e Luzes. Em
seguida, na Figura 5.4, os mini-jogos: Números, Matriz de Figuras e Matriz de Geométrica. Em
fim, na Figura 5.5, o mini-jogo Sombras.
5.1 Reestruturação do Código
Figura 5.1: Diagrama de Classes - Jogos Geral
.
31
5.1 Reestruturação do Código
Figura 5.2: Diagrama de Classes - Jogos 1
32
5.1 Reestruturação do Código
Figura 5.3: Diagrama de Classes - Jogos 2
33
5.1 Reestruturação do Código
Figura 5.4: Diagrama de Classes - Jogos 3
34
5.1 Reestruturação do Código
Figura 5.5: Diagrama de Classes - Jogos 4
35
5.1 Reestruturação do Código
5.1.3
Mudanças Gerais
5.1.3.1
Fluxo
36
O fluxo de jogo foi modificado levemente. Nessa nova versão, ao entrar na tela de ajuda e
voltar ao mini-jogo, os dados não serão reiniciados. Isso foi modificado para melhorar a experiência de usuário, pois dessa forma o jogador poderá ler a ajuda de um mini-jogo e continuar
de onde tinha parado, sem perder dados de jogadas.
5.1.3.2
Fases
As fases não possuem um grau de dificuldade notável, pois são apenas variações de objetivos. Por isso, todas as fases são carregadas de forma aleatória não-repetida. Sempre que se
iniciar um jogo, as fases estarão embaralhadas. Dessa forma o usuário não ficará preso apenas a uma sequência pré-definida de fases, o que poderia tornar cansativo caso jogue o mesmo
mini-jogo várias vezes.
5.1.4
Mudanças Específicas
Serão descritas, nas seguintes subseções, as mudanças realizadas específicamente em um
determinado mini-jogo.
5.1.4.1
Sombras
Foi realizado uma padronização no formato das imagens utilizadas no jogo, de forma com
que todas imagens relacionadas à sombras mantivessem o formato .gif e os desenhos a se procurar mantivessem o formato .jpg. Tal padronização foi feita para facilitar o acesso aos recursos
de imagens sem que haja repetição excessiva de parâmetros para localizar uma imagem. Por
exemplo, na fase com identificador “macaco”, a figura central da tela será carregada pelo arquivo “macaco.jpg”, e a opção correta será “macaco.gif”.
No código a seguir (Figura 5.6) é mostrado como foi reescrito a nova forma de acesso às
imagens, destacanto-se as linhas referentes a esse acesso.
5.1 Reestruturação do Código
37
Figura 5.6: A Classe FaseSombra
5.1.4.2
Números
Foi realizada a renomeação geral de imagens relacionadas ao mini-jogo. O principal motivo
foi para facilitar a identificação das imagens e também para acesso mais fácil via programação.
Os arquivos foram renomeados utilizando comandos específicos providenciados pelo próprio
sistema operacional Linux, sendo ele o comando rename que fornece uma maneira fácil de
renomear arquivos em conjunto, utilizando expressão regular.
A Tabela 5.1 mostra o novo formato do nome das imagens, baseando-se como exemplo
todas as figuras relacionadas à imagem de identificador 1.
Tabela 5.1: Alteração dos nomes de imagens no mini-jogo Números
Nome Original
1gd.jpg
1gf.jpg
1d.jpg
1f.jpg
1g.jpg
Nome Modificado
1_desenho_grande.jpg
1_figura_grande.jpg
1_desenho.jpg
1_figura.jpg
1_numero.jpg
5.1 Reestruturação do Código
5.1.4.3
38
Matriz de Formas Geométricas
Foi implementado uma nova funcionalidade que permite ao jogador refazer as jogadas,
assim será possível corrigir uma opção caso estivesse errada. Para isso, basta clicar em alguma
das imagens já selecionadas e, então, a última jogada realizada será desfeita. Não há limites
para refazer uma ação e também não há penalidades. Só é possível refazer a ação caso esteja na
primeira ou na segunda ou na terceira peça escolhida.
A nomenclatura das imagens estava despadronizadas dificultando o acesso direto via programação, portanto houve a necessidade de renomeá-las para que imagens com nomes do tipo
“estrela vermelha” coincidissem o tipo de cor vermelho com outras imagens to tipo “hexágono
vermelho”. Para tal finalidade, foi feito uma simples tradução para o inglês, visto que não possui
diferenciação de cores pelo gênero de um substantivo.
A Tabela 5.2 lista os novos sufixos e prefixos das imagens.
Tabela 5.2: Alteração dos nomes de imagens no mini-jogo Matriz de Formas Geométricas
Nome Original
amarelo, amarela
azul
verde
vermelho, vermelha
elipse
triângulo
quadrado
estrela
hexágono
5.1.4.4
Nome Modificado
yellow
blue
green
red
ellipse
triangle
square
star
hexagon
Matriz de Figuras
Assim como no mini-jogo anterior, Matriz de Formas Geométricas, a funcionalidade de
refazer uma ação foi implementada nesse mini-jogo também. As condições para refazer a ação
são as mesmas, ou seja, só é possível refazer caso tenha pelo menos uma imagem escolhida.
Penalidades e limites de execução também não foram consideradas.
A nomenclatura das imagens estava com um identificador fora de ordem. Isso dificultaria
o acesso direto e transparente via programção. Além disso, a formatação das imagens estavam
distribuídas entre .gif e .jpg. Dentre os arquivos de imagens renomeados, pode-se citar um
exemplo: imagens do grupo “sapo”. A Tabela 5.3 lista como eram os nomes e como foram
renomeados.
5.1 Reestruturação do Código
39
Tabela 5.3: Alteração dos nomes de imagens no mini-jogo Matriz de Figuras
Nome Original
sapo.gif
sapo.jpg
sapo1
sapo3
5.1.4.5
Nome Modificado
sapo1.jpg
sapo2.jpg
sapo3.jpg
sapo4.jpg
Ache as Figuras!
Devido à área de clique de cada uma das imagens serem relativamente pequenas comparadas à imagem que aparece na tela, as chances de realizar um clique errado eram altas. Por esse
motivo, foi aumentado a área de clique de todas as imagens em uma escala que pode-se considerar mais que o dobro da antiga área (Figura 5.7). A aresta da novo quadrado que representa a
área de clique foi aumentado de 50 pixels para 80 pixels.
Figura 5.7: Área de clique das imagens, antes e atual
Foi realizado, também, uma renomeação dos nomes para ficar de mais fácil leitura, separando objetos de fundos. Além disso, foi padronizado a formatação de imagens, sendo: gif para
objetos e jpg para fundos. Na Tabela 5.4 é listado o nome antigo e o novo nome do “fundo
boneca” e do “objeto boneca”, que são apenas um exemplo de vários que foram modificados.
Tabela 5.4: Alteração dos nomes de imagens no mini-jogo Ache as Figuras
Nome Original
fboneca.gif
boneca.gif
Nome Modificado
background_boneca.jpg
object_boneca.gif
5.2 Módulo Estatístico
5.2
40
Módulo Estatístico
O módulo estatístico foi realizado na segunda iteração do projeto, conforme citado nos
objetivos (Seção 2). Esse módulo foi responsável por incluir, no projeto atual, um sistema
de gerenciamento de usuários e exibição de gráficos estatísticos que foram elaborados para
usuários adultos que possuam uma visão normal.
Com esse novo sistema, houve a necessidade de uma alteração no layout no menu inicial,
bem como a adição de novas interfaces gráficas. A Figura 5.8 mostra o novo layout do menu
inicial, destacando-se as mudanças: novo botão “trocar” para trocar o usuário atual e; novo
botão “Sistema” que abre a tela contendo, além de gerenciamento de usuários, opções para
exibir gráficos.
Figura 5.8: Menu Inicial
5.2 Módulo Estatístico
41
5.2.1
Definição de Requisitos
5.2.1.1
Requisitos Funcionais
Tabela 5.5: Requisitos Funcionais
ID
RF1
RF2
RF3
RF4
5.2.1.2
Requisito Funcional
Gerenciar jogadores
Gravar dados de jogadas
Gerar gráficos estatísticos
Suporte a filtros estatísticos
Ator
Jogador
Módulo Estatístico
Módulo Estatístico
Módulo Estatístico
Requisitos Não-Funcionais
Tabela 5.6: Requisitos Não-Funcionais
ID
Requisito Não Funcional
RNF1 O sistema deverá funcionar em multiplataforma.
RNF2 Serializar dados na máquina local, sem a necessidade
de camadas cliente-servidor.
RNF3 O aplicativo deve ser acessível a usuários meigos.
RNF4 O módulo estatístico deve se adaptar ao jogador atual.
5.2.2
Categoria
Portabilidade
Usabilidade
Usabilidade
Usabilidade
Casos de Uso
Os casos de uso mostram como o sistema funciona, identificando atores e ações, com um
alto nível de abstração. Foi identificado dois atores nesse módulo: Jogador (ou Usuário) e
Módulo Estatístico.
5.2 Módulo Estatístico
Figura 5.9: Diagrama de Casos de Uso - Gerenciar Usuário
42
5.2 Módulo Estatístico
43
Tabela 5.7: Caso de Uso Criar Usuário
Caso de Uso
Criar Usuário
Finalidade
Adicionar um novo usuário jogador ao sistema
Atores
Jogador
Pré-Condição
Pós-Condição
Sequência de Execução
1. O jogador entra no menu para a criação de um
usuário.
2. O jogador informa o nome.
3. Caso o nome for válido, o novo usuário será adicionado.
4. Caso contrário, será solicitado um outro nome.
Tabela 5.8: Caso de Uso Alterar Usuário
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Alterar Usuário
Trocar de perfil de usuário
Jogador
Existir pelo menos um jogador cadastrado
Atualizar lista de usuários
1. O jogador entra no menu para a alterar um usuário.
2. O jogador seleciona um dos usuários listados.
3. O jogador confirma a seleção.
5.2 Módulo Estatístico
44
Tabela 5.9: Caso de Uso Listar Usuário
Caso de Uso
Listar Usuário
Finalidade
Exibir todos os usuários existentes na máquina local
Atores
Módulo Estatístico
Pré-Condição
Pós-Condição
Sequência de Execução
1. O sistema irá ler um arquivo contendo o nome de todos os jogadores.
2. O sistema verifica qual desses jogadores são válidos.
3. O sistema exibe a lista de usuários final.
Tabela 5.10: Caso de Uso Escolher Usuário
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Escolher Usuário
Exibir todos os usuários existentes na máquina local
Jogador, Módulo Estatístico
Existir pelo menos um jogador cadastrado
Confirmar a alteração de um usuário
1. O jogador escolhe um outro jogador dentro de uma
lista.
2. O sistema irá buscar o usuário solicitado.
3. Caso encontre o usuário, esse usuário será o atual.
4. Caso contrário, será solicitado ao jogador uma nova
escolha.
5.2 Módulo Estatístico
Figura 5.10: Diagrama de Casos de Uso - Gerar Gráficos
45
5.2 Módulo Estatístico
46
Tabela 5.11: Caso de Uso Buscar Usuários
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Buscar Usuários
Buscar dados de um ou mais jogadores na máquina local
Módulo Estatístico
Existir pelo menos um jogador cadastrado
1. O sistema solicita o caminho dos arquivos a serem
lidos no sistema de arquivos.
2. O sistema armazena esses dados de jogadores.
3. O sistema verifica quais desses jogadores são válidos.
4. Caso exista algum jogador inválido, o mesmo será removido.
Tabela 5.12: Caso de Uso Buscar Jogadas
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Buscar Jogadas
Filtrar dados a serem utilizados antes de gerar um gráfico
Módulo Estatístico
Existir pelo menos um jogador cadastrado; Buscar dados de
Usuários; Especificar filtros
Gerar um gráfico
1. O sistema busca todos os usuários.
2. O sistema filtra os dados de todas as jogadas de todos
os usuários.
3. Repassa os dados ao gerador de gráficos.
5.2 Módulo Estatístico
47
Tabela 5.13: Caso de Uso Gerar Gráfico
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Gerar Gráfico
Preparar dados gerados para a exibição
Módulo Estatístico
Selecionar um tipo de gráfico a ser gerado
Exibir um gráfico gerado
1. O sistema coleta todas as jogadas relativas ao tipo de
gráfico.
2. O sistema gera e exibe o gráfico.
Tabela 5.14: Caso de Uso Exibir Gráfico
Caso de Uso
Finalidade
Atores
Pré-Condição
Pós-Condição
Sequência de Execução
Exibir Gráfico
Exibir na tela do usuário um gráfico estatístico
Jogador, Módulo Estatístico
Selecionar um tipo de gráfico a ser gerado
1. O Jogador seleciona qual tipo de gráfico quer gerar.
2. Caso o gráfico selecionado necessite de filtros adicionais, o Jogador deverá selecionar esses filtros.
3. O Sistema valida os parâmetros passados pelo Jogador.
4. Caso os parâmetros estejam corretos, o gráfico é gerado e, em seguida, exibido.
5. Caso contrário, não irá gerar gráfico.
5.2.3
Diagrama de Atividades
Os diagramas de atividades mostram como é o fluxo das atividades realizadas em alguns
casos de uso com um nível de abstração menor, descrevendo as etapas com mais detalhes.
5.2 Módulo Estatístico
Figura 5.11: Diagrama de Atividades - Criar Usuário
.
48
5.2 Módulo Estatístico
Figura 5.12: Diagrama de Atividades - Exibir Gráficos
49
5.2 Módulo Estatístico
Figura 5.13: Diagrama de Atividades - Gerenciamento de Jogadas
50
5.2 Módulo Estatístico
5.2.4
51
Diagrama de Sequência
Os diagramas de sequências mostram as mensagens trocadas entre objetos do sistema,
dando prioridade na ordem temporal em que as mensagens são realizadas. O nível de abstração
nesses diagramas é inferior ao de Casos de Uso.
Figura 5.14: Diagrama de Sequência - Gerar Gráficos sem filtros adicionais
Figura 5.15: Diagrama de Sequência - Gerar Gráficos com filtros adicionais
5.2 Módulo Estatístico
5.2.5
52
Diagrama de Classes
O gerenciamento de usuários é realizado pela classe PlayerManager que implementa o
padrão de Singleton. Sempre que for necessário carregar ou salvar dados de um jogador essas
ações devem ser delegadas à classe anterior.
Os jogadores são representados pela classe PlayerData, que possui vários dados de jogadas
realizadas, que são as instâncias da classe GameData. A classe GameData é responsável por
armazenar dados de todas as jogadas de um jogador. A Tabela 5.15 explica com detalhes qual
o tipo de cada atributo e a função do atributo.
Tabela 5.15: Atributos da Classe GameData
Nome
Tipo
Tipo
Class<?>
Descrição
Identificador de mini-jogo. Esse valor é populado pelo
método getClass() de um FaseControladorBase.
Score
Inteiro
Pontuação final atingida pelo jogador.
Acertos Inteiro
Quantidade de acertos conquistados pelo jogador. Começa
em zero e aumenta em um a cada vez que passar de fase.
Erros
Inteiro
Quantidade de erros do jogador. Começa em zero e incrementa em um caso erre em uma fase.
Estado Enumerador Estado final do jogo, podendo ser: Não Terminado, Completado (passou todas as fases) ou Fim de Jogo (perdeu todas as vidas).
Data
java.util.Date Data em que a instância foi criada.
Todos os dados serialializados estarão localizados em uma pasta chamada “videre_dados”
que será criada no mesmo local em que for executado o programa. Por exemplo, caso o executável do Vídere esteja em “/home/Videre.jar” a pasta será criada em “/home/videre_dados”.
Dentro dessa pasta, será criado dois arquivos de textos sendo eles: “latest.txt” que guarda
o nome do último jogador, esse jogador será carregado automaticamente quando abrir o jogo,
e; “players.txt” que guarda apenas os nomes de todos de jogadores, em cada linha do arquivo
estará escrito o nome de um jogador.
Além dos arquivos em texto, os dados reais dos jogadores estarão em uma subpasta chamada
“players” onde estará todos arquivos binários contendo os dados de todas as jogadas de um jogador. Cada jogador terá apenas um arquivo binário com nome coincidente ao próprio nome do
jogador. Esses arquivos, por usa vez, não podem ser modificados fora do jogo.
A classe abstrata PlayerStatisticsBase implementa o básico necessário para gerar dados
de gráficos, ação que é delegada às demais classes filhas apresentadas no diagrama de classes
(Figuras 5.16 e 5.17)
5.2 Módulo Estatístico
Figura 5.16: Diagrama de Classes - Módulo Estatístico (simples)
Figura 5.17: Diagrama de Classes - Módulo Estatístico (detalhado)
53
5.2 Módulo Estatístico
5.2.6
54
Inclusão do JFreeChart
A API JFreeChart utilizada está em formato .jar, que funciona como uma biblioteca précompilada dentro do escopo do trabalho. Por padrão, o compilador do Netbeans não inclui as
bibliotecas adicionais na versão final, que é o executável em formato .jar.
Para incluí-las, foi necessário adicionar um trecho de código no arquivo “build-impl.xml”
que é um arquivo de configuração de builds (gerar versão executável). No código da Figura
5.18, basicamente está escrito que após o build normal (sem bibliotecas inclusas) seja gerado
um outro executável de nome “Videre2.jar” incluindo as bibliotecas “jcommon-1.0.12.jar” e
“jfreechart-1.0.9.jar”.
Figura 5.18: Arquivo de Configuração de Builds do Projeto
5.2.7
Gráficos Desenvolvidos
Os gráficos foram desenvolvidos com a ajuda da API JFreeChart que facilita na criação e
exibição de gráficos. Para gerar um dos gráficos das subsessões a seguir, o usuário deverá clicar
no menu “Sistema” e em seguida clicar em “Estatísticas” no novo menu. Em seguida, um novo
menu irá aparecer, mostrando as opções correspondentes aos tipos de gráficos possíveis.
5.2.7.1
Linha de Aprendizado
A seguir, a Tabela 5.16 descreve o principal objetivo do gráfico de Linha de Aprendizado e
o funcionamento do mesmo. A Figura 5.20 ilustra um exemplo de um gráfico gerado. A Figura
5.21 ilustra a tela de seleção de filtro que é solicitado antes de gerar o gráfico.
5.2 Módulo Estatístico
55
Figura 5.19: Menu de Seleção de Gráficos a Gerar
Tabela 5.16: Gráfico de Linha de Aprendizado
Gráfico
Objetivo
Linha de Aprendizado
Identificar como é a curva de aprendizagem em um determinado
jogo. O resultado esperado é que a pontuação tenda a aumentar
quanto mais vezes um determinado mini-jogo for jogado.
Tipo de gráfico
Gráfico de Retas
Valores do eixo das Número de vezes jogado
abcissas (X)
Valores do eixo das Pontuação
ordenadas (Y)
Filtros adicionais
Selecionar quais mini-jogos mostrar. Apenas os mini-jogos praticados serão mostrados na lista de opções.
5.2 Módulo Estatístico
Figura 5.20: Exemplo de Gráfico Gerado - Linha de Aprendizado
Figura 5.21: Tela de Seleção de Filtros Adicionais para Linha de Aprendizado
56
5.2 Módulo Estatístico
5.2.7.2
57
Desempenho em Jogos
A seguir, a Tabela 5.17 descreve o principal objetivo do gráfico de Desempenho em Jogos
e o funcionamento do mesmo. A Figura 5.22 ilustra a tela de seleção de filtro que é solicitado
antes de gerar o gráfico. A Figura 5.23 ilustra um exemplo de um gráfico gerado.
Tabela 5.17: Gráfico de Desempenho em Jogos
Gráfico
Objetivo
Desempenho em Jogos
Identificar qual é o desempenho médio do jogador em um determinado jogo, baseando-se nas pontuações obtidas pelo mesmo jogador
e divindo-as em cinco intervalos.
Tipo de gráfico
Gráfico de Barras
Valores do eixo das Intervalos de Pontuação
abcissas (X)
Valores do eixo das Frequência de Pontuação
ordenadas (Y)
Filtros adicionais
Selecionar quais mini-jogos mostrar. Apenas os mini-jogos praticados serão mostrados na lista de opções.
Figura 5.22: Tela de Seleção de Filtros Adicionais para Desempenho em Jogos
5.2 Módulo Estatístico
58
Figura 5.23: Exemplo de Gráfico Gerado - Desempenho em Jogos
5.2.7.3
Uso de Jogo
A seguir, a Tabela 5.18 descreve o principal objetivo do gráfico de Uso de Jogo e o funcionamento do mesmo. A Figura 5.24 ilustra a tela de seleção de filtro que é solicitado antes de
gerar o gráfico. A Figura 5.25 ilustra um exemplo de um gráfico gerado.
Tabela 5.18: Gráfico de Uso de Jogo
Gráfico
Objetivo
Tipo de gráfico
Valores do eixo das
abcissas (X)
Valores do eixo das
ordenadas (Y)
Filtros adicionais
Uso de Jogo
Identificar qual é jogo mais jogado pelo jogador atual.
Gráfico de Barras
Nome dos Jogos
Frequência de Uso
Selecionar intervalo de data em dias. Por exemplo: exibir apenas os
jogos mais jogados nos últimos 14 dias.
5.2 Módulo Estatístico
Figura 5.24: Tela de Seleção de Filtros Adicionais para Uso de Jogo
Figura 5.25: Exemplo de Gráfico Gerado - Uso de Jogo
59
5.2 Módulo Estatístico
5.2.7.4
60
Desempenhos
Foi desenvolvido dois tipos de gráficos: desempenho individual e desempenho coletivo. No
individual, a pontuação registrada no eixo Y do gráfico é dado apenas pelo valor obtido pelo
jogador em uma jogada. Já no coletivo, é feito a média da pontuação de todos os jogadores em
um jogo e em certa quantidade de jogadas. A seguir, a Tabela 5.19 descreve os detalhes dos
gráficos de desempenho. Em seguida um exemplo de gráfico gerado é ilustrado na Figura 5.26.
Tabela 5.19: Gráfico de Desempenhos
Gráfico
Objetivo
Tipo de gráfico
Valores do eixo das
abcissas (X)
Valores do eixo das
ordenadas (Y)
Filtros adicionais
Desempenhos
Identificar qual é a tendência de aprendizagem nos jogos.
Gráfico de Pontos
Pontuação
Quantidade de jogadas por tipo de jogo
Nenhum.
Figura 5.26: Exemplo de Gráfico Gerado - Desempenho Coletivo
5.2 Módulo Estatístico
5.2.7.5
61
Boxplots
A seguir, é apresentado uma tabela e uma figura para cada tipo de boxplot, sendo Tabela
5.20 e Figura 5.27 referentes ao tipo de jogos, Tabela 5.21 e Figura 5.28 referentes ao tipo de
data, e Tabela 5.22 e Figura 5.29 referentes ao tipo de jogadores,
Tabela 5.20: Gráfico de Boxplot de Jogos
Gráfico
Objetivo
Boxplot de Jogos
Identificar qual jogo está com um grau de dificuldade maior,
baseando-se na observação da pontuação de cada jogador
Tipo de gráfico
Gráfico de Boxplot
Valores do eixo das Jogadores por Mini-Jogo
abcissas (X)
Valores do eixo das Pontuação
ordenadas (Y)
Filtros adicionais
Nenhum.
Figura 5.27: Exemplo de Gráfico Gerado - Boxplot de Jogos
5.2 Módulo Estatístico
62
Tabela 5.21: Gráfico de Boxplot de Datas
Gráfico
Objetivo
Boxplot de Datas
Identificar se, dependendo do dia, a pontuação dos jogadores podem
sofrer uma significante alteração.
Tipo de gráfico
Gráfico de Boxplot
Valores do eixo das Mini-Jogo por Data
abcissas (X)
Valores do eixo das Pontuação
ordenadas (Y)
Filtros adicionais
Nenhum.
Figura 5.28: Exemplo de Gráfico Gerado - Boxplot de Datas
5.2 Módulo Estatístico
63
Tabela 5.22: Gráfico de Boxplot de Jogadores
Gráfico
Objetivo
Boxplot de Jogadores
Identificar em quais jogos um jogador consegue atingir mais pontos,
verificando se o tipo de jogo afeta o desempenho do jogador.
Tipo de gráfico
Gráfico de Boxplot
Valores do eixo das Mini-Jogo por Jogadores
abcissas (X)
Valores do eixo das Pontuação
ordenadas (Y)
Filtros adicionais
Nenhum.
Figura 5.29: Exemplo de Gráfico Gerado - Boxplot de Jogadores
5.3 Novos Jogos
5.3
64
Novos Jogos
O desenvolvimento de novos jogos foi realizada na terceira iteração do projeto. Porém, a
ideia dos novos jogos foi pesquisada antes da primeira iteração com a visita ao oftalmologista
William Procópio. A reunião tratou-se de orientações técnicas de como estimular a visão de
uma criança e também surgiram várias ideias que serão possíveis a longo prazo.
5.3.1
Definição de Requisitos
5.3.1.1
Requisitos Funcionais
Tabela 5.23: Requisitos Funcionais
ID
RF5
RF6
RF7
5.3.1.2
Requisito Funcional
Treinar a percepção de tamanho
Avaliar o nível de contraste mínimo do jogador
Reconhecer a captação de movimento do jogador
Ator
Jogador
Jogador
Jogador
Requisitos Não-Funcionais
Tabela 5.24: Requisitos Não-Funcionais
ID
RNF5
RNF6
Requisito Não Funcional
Categoria
O botões precisam ser de fácil identificação com a res- Usabilidade
posta que o jogador quer escolher.
Utilizar cores e formatos de objetos simples, man- Usabilidade
tendo o padrão atual
5.3 Novos Jogos
5.3.2
65
Diagrama de Atividades
Figura 5.30: Diagrama de Atividades - Execução de Jogo
5.3 Novos Jogos
5.3.3
66
Diagrama de Classes
Figura 5.31: Diagrama de Classes - Novos Jogos
A classe FaseMutanteBase é responsável pela lógica básica dos novos mini-jogos que foram
desenvolvidos. Ela é responsável por montar a estrutura básica de elementos de interface gráfica
dentro de uma instância de TelaJogo e atribui à essas instâncias chamadas de métodos que serão
delegados à classes filhas.
5.3 Novos Jogos
67
5.3.4
Jogos desenvolvidos
5.3.4.1
Identifique a Forma!
O objetivo da criança nesse mini-jogo é identificar qual é a forma do desenho no centro da
tela. O desenho começa com um tamanho muito inferior ao tamanho original e, a cada clique
que for dado na tela, o tamanho da figura aumentará.
Quando a forma for identificada, o jogador deverá clicar em uma das figuras situadas no
canto direito da tela. Caso acerte, irá passar de fase. Caso contrário irá perder pontos. Quanto
mais cedo a forma do objeto for identificada, maior será a pontuação obtida na fase. A Tabela
5.25 exibe quais níveis de redimensão de imagem é possível, com a quantia de pontuação obtida
em cada nível.
Tabela 5.25: Tabela de Pontuação do Jogo de Formas
Redimensão
Pontos obtidos
6.25%
1000
900
12.5%
25%
800
50%
700
75%
600
100% (Tamanho Original)
500
200%
400
300
300%
400%
200
500%
100
Foi designado um total de doze fases, com dificuldades variadas. Existe um total de sete
formas de figuras a serem identificadas, utilizando formas geométricas básicas como quadrados,
triângulos, círculos. A cor preta foi utilizada para permitir um contraste maior entre o fundo e a
figura. A Tabela 5.26 lista todas as formas.
Tabela 5.26: Formas Geométricas do Jogo de Formas
Nome da Forma
Imagem
Círculo
Triângulo
Triângulo Invertido
Quadrado
Hexágono
Cruz
Estrela
5.3 Novos Jogos
68
Figura 5.32: Tela do Jogo Identifique as Formas!
5.3 Novos Jogos
5.3.4.2
69
Jogo de Contraste
O objetivo desse jogo é identificar em qual nível de contraste a criança consegue identificar
a forma da figura no centro da tela. Para simular o contraste no jogo foi necessário utilizar um
fundo branco e uma sombra que se situa em frente à figura a ser identificada. Inicialmente, essa
sombra possui um baixo nível de transparência, o que cria um menor contraste. Ao clicar na
tela, esse contraste aumenta à medida em que a transparência da sombra diminui.
Quando o jogador identificar a figura central, ele deverá clicar em uma das quatro opções
ao lado direito da tela. A pontuação é inversamente proporcional ao nível de contraste em que
a figura foi identificada. A Tabela 5.27 mostra a pontuação que é obtida baseado no nível de
contraste da sombra, um valor proposto de 0 a 100, sendo o menor valor o maior contraste obtido
entre o fundo e a figura. Foi elaborado oito diferentes fases utilizando formatos geométricos
básicos, como o citado na Tabela 5.26, no jogo anterior.
Tabela 5.27: Tabela de Pontuação do Jogo de Contraste
Contraste Pontos obtidos
99%
1275
97%
1245
95%
1205
1158
93%
91%
1107
85%
1052
80%
993
75%
931
866
70%
797
65%
725
60%
55%
649
570
50%
40%
486
30%
398
20%
303
05%
200
01%
83
5.3 Novos Jogos
70
Figura 5.33: Tela do Jogo de Contraste
5.3 Novos Jogos
5.3.4.3
71
Jogo do Movimento
Esse jogo tem como objetivo reconhecer a captação de movimento do jogador. Em todas as
fases aparece uma pequena bola que percorre uma tragetória e o jogador deve identificar qual
é a forma dessa tragetória. Uma tragetória possui ao mínimo dois pontos a serem percorridos.
Inicialmente, a figura possui uma velocidade alta. Ao clicar na tela, essa velocidade é diminuida.
Ao identificar a forma, o jogador poderá clicar nas opções no canto direito da tela. A pontuação obtida em uma fase depende da velocidade da bola em que a tragetória foi identificada.
Foi elaborado um total de oito fases, sendo uma fase para cada tipo tragetória (ver Tabela 5.29).
A Tabela 5.28 mostra as possíveis pontuações que podem ser obtidas.
Tabela 5.28: Tabela de Pontuação do Jogo de Movimento
Velocidade Pontos obtidos
1000
1100
500
1000
900
250
800
167
700
125
600
100
67
500
50
400
300
33
25
200
20
100
Tabela 5.29: Tragetórias do Jogo de Movimento
Tragetória
Imagem
Horizontal
Vertical
Diagonal A
Diagonal B
Quadrado
Letra ’V’
Letra ’V’ Invertida
Triângulo
5.3 Novos Jogos
72
Figura 5.34: Tela do Jogo de Movimento
73
6
Cronograma
O trabalho foi concluído em seis meses, começando em Janeiro de 2012 e terminando em
Junho de 2012. A maior parte do tempo teve foco na reorganização do projeto (módulo 1).
É apresentado abaixo uma figura com o cronograma planejado sobre a execução do trabalho, o cronograma executado e, e em seguida a descrição para as atividades em ciclo, definindo
as cores e os módulos respectivos;
Figura 6.1: Cronograma planejado sobre a execução do trabalho
Figura 6.2: Cronograma executado do trabalho
6 Cronograma
74
Figura 6.3: Descrição dos ciclos
O cronograma foi dividido em dois tipos de tarefas: tarefas sequenciais, que foram realizadas em paralelo às tarefas do tipo em ciclos; tarefas em ciclos, que foram realizadas em várias
iterações, seguindo o ciclo de vida espiral.
O cronograma executado difere do planejdo por haver a necessidade de focar o trabalho no
desenvolvimento para apenas após essa etapa começar a redação do trabalho.
75
7
Recursos necessários
7.1
Software
• Sistema Operacional Linux;
• Netbeans IDE;
• JDK 7;
• Kile;
• Okular;
• Astah UML;
• Argo UML;
7.2
Hardware
• Notebook Dell Inspiron 1520, Core 2 Duo 1.8GHz, 2GB de memória RAM, 130GB de
disco rígido;
76
8
8.1
Considerações Finais
Conclusão
Este trabalho apresenta uma nova plataforma para o estímulo visual de pessoas com visão
subnormal denominada Vídere 2. São apresentados 12 mini jogos que tratam de contraste,
identificação de formas, percepção de movimento, identificação de cores e contornos, análise
de cenário de imagens. Além disso, o Vídere 2 oferece estatísticas e gráficos de forma integrada
ao aplicativo que disponibiliza que seja feito o acompanhamento de seus usuários, sua evolução
no treinamento visual em cada jogo. Além disso, esse acompanhamento pode ocorrer de forma
individual ou coletiva.
O Vídere foi desenvolvido utilizando ferramentas livres e independentes de sistema operacional, de forma que pode ser usado em qualquer sistema operacional, bastando a instalação do Java na máquina do cliente. O Vídere é livremente disponibilizado a partir da url
http://code.google.com/p/viderejogos/.
Os resultados apresentados ilustram o potencial dessa plataforma de jogos, os quais exibem
de forma clara a adequação dessa proposta os objetivos propostos, mostrando-se uma ferramenta
útil para os deficientes visuais e profissionais de saúde que podem acompanhar a evolução dos
usuários de forma integrada e transparente ao usuário.
O desenvolvimento deste trabalho contribuiu altamente na aquisição de experiência profissional como analista e desenvolvedor de sistemas. O conhecimento adquirido e dificuldades
solucionadas na prática durante todo o trabalho esclareceram diversas dúvidas que em momentos teóricos não foram identificados. É inmensurável o valor pessoal da conclusão deste
trabalho.
8.2
Trabalhos Futuros
Durante o desenvolvimento do trabalho várias ideias foram surgindo para a melhoria do
aplicativo:
8.2 Trabalhos Futuros
77
• Possibilitar a opção de executar o aplicativo em forma de Java Web Start, onde o usuários
de todo o mundo poderiam contribuir com a experiência de jogo e também analisar estatísticas tanto locais quanto globais.
• Estender o aplicativo de forma com que o jogador possa interagir com mini-jogos através
de hardware específico para o jogo, por exemplo: um grande tambor que substitui o clique
do mouse em um botão. Assim, profissionais de outras áreas poderiam ser integrados ao
projeto e seu desenvolvimento.
• A inclusão de outros mini-jogos que se assemelhem com jogos utilizados na vida real
para gerar mais alternativas de mini-jogos, não limitando-se apenas ao treinamento do
sentido visual, mas também ao treinamento de outros sentidos humanos como o auditivo
e o tato, pois muitas vezes uma deficiência em um sentido humano não está isolada de
outros sentidos (GIL, 2001).
78
Referências Bibliográficas
AUDIOGAMES. AudioGames Frequently Asked Questions. 2009. Acesso em: 30 Abr. 2012.
Disponível em: <http://audiogames.net/page.php?pagefile=faq>.
BORGES, A. Projeto DOSVOX. 2002. Acesso em: 29 Abr. 2012. Disponível em:
<http://intervox.nce.ufrj.br/dosvox/intro.htm>.
BRAGA, A. P.; SEI, M. Perfil da Deficiência em Crianças e Adolescentes. 1997. Acesso em:
07 Out. 2011. Disponível em: <http://www.icevi.org/publications/icevix/wshops/0348.html>.
CUNHA, E. E. JogaVOX: Ferramenta e Estratégias para Construc̃ão de Jogos Educacionais para Deficientes Visuais. 2007. Acesso em: 30 Abr. 2012. Disponível em:
<http://intervox.nce.ufrj.br/jogavox/textos/EricaEstevesCunha.pdf>.
DEITEL, P. Java Como Programar. [S.l.]: Pearson, 2010.
FAVA, F. Jogando com o ar: o sopro como instrumento de acessibilidade
nos jogos eletrônicos. 2010. Acesso em: 27 Abr. 2012. Disponível em:
<http://www.sbgames.org/papers/sbgames08/gameandculture/full/gc15_08.pdf>.
FERREIRA, V. F. Livro estuda benefícios de jogos virtuais para deficientes. 2011. Acesso em:
27 Abr. 2012. Disponível em: <http://www.usp.br/agen/?p=84952>.
GIL, M. Deficiência Visual. 2001. Acesso em: 16 Maio 2012. Disponível em:
<http://deficienciavisual.com.sapo.pt/txt-deficienciavisual-MartaGil.htm>.
LOOKTEL. LookTel - Instant Recognition Apps for Persons with Low Vision or Blindness.
2009. Acesso em: 29 Abr. 2012. Disponível em: <http://www.looktel.com/>.
MARTIN, R. C. Clean Code - A Handbook of Agile Software Craftsmanship. [S.l.]: Prentice
Hall, 2008.
OMS. Consultation on Development of Standards for Characterization of Vision
Loss and Visual Functioning. 2003. Acesso em: 07 Out. 2011. Disponível em:
<http://whqlibdoc.who.int/hq/2003/WHO_PBL_03.91.pdf>.
ORACLE. Java SE Overview - 6 Key Features. 2012. Acesso em: 25 Abr. 2012. Disponível
em: <http://www.oracle.com/technetwork/java/javase/overview/features-jsp-140508.html>.
RODRIGUES, G. C. d. V. P. Vídere - jogos para estimulação visual. 2005. Acesso em: 22 Ago.
2011. Disponível em: <http://pessoal.utfpr.edu.br/fabricio/ensino/orientacoes/monografiagrazielapascoal.pdf>.
SCHELL, J. The Art of Game Design: A Book of Lenses. [S.l.]: Morgan Kaufman Publishers,
2008. ISBN 978-0-12-369496-6.
Referências Bibliográficas
79
SILVA, L. F. da. Geometria e cegos - Um jogo computacional no processo de
aprendizagem de trigonometria. 2009. Acesso em: 29 Abr. 2012. Disponível em:
<http://intervox.nce.ufrj.br/dosvox/textos/monografia_lidiane.pdf>.
SOARES, N. Alunos do IME criam aplicativo para deficientes visuais. 2012. Acesso em: 06
Junho 2012. Disponível em: <http://www.usp.br/agen/?p=100556>.
VIKLUND, A. JFreeChart. 2012. Acesso em: 25 Abr. 2012. Disponível em:
<http://www.jfree.org/jfreechart/>.
80
APÊNDICE A -- Proposta do Trabalho de
Diplomação
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UTFPR CAMPUS CORNÉLIO PROCÓPIO
DIRETORIA DE GRADUAÇÃO E EDUCAÇÃO PROFISSIONAL
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E
DESENVOLVIMENTO DE SISTEMAS
DIOGO HIDEKI MATSUMOTO
DESENVOLVIMENTO DE JOGOS PARA A ESTIMULAÇÃO VISUAL
CORNÉLIO PROCÓPIO
NOVEMBRO - 2011
DIOGO HIDEKI MATSUMOTO
DESENVOLVIMENTO DE JOGOS PARA A
ESTIMULAÇÃO VISUAL
Proposta de trabalho de conclusão de curso
apresentada como requisito parcial a obtenção
do grau de Tecnólogo em Desenvolvimento de
Sistemas de Informação pela Universidade Tecnológica Federal do Paraná - Campus Cornélio
Procópio
Orientador:
Fabrício Martins Lopes
CORNÉLIO PROCÓPIO
NOVEMBRO - 2011
Resumo
Este trabalho propõe o desenvolvimento de uma nova versão do projeto Vídere. Os objetivos são a reestruturação do código, adição de módulo para acompanhamento evolutivo do
usuário e inclusão de novos jogos ao pacote atual.
O projeto seguirá o ciclo de vida do modelo espiral. Utilizará a diagramação da Unified
Modeling Language - UML para a modelagem do sistema. O desenvolvimento será feito com a
tecnologia Java para a programação do software e estima-se a conclusão do aplicativo em seis
meses.
Sumário
Lista de Figuras
Lista de Tabelas
1 Introdução
p. 7
2 Objetivos
p. 8
2.1
Reorganização da estrutura do sistema . . . . . . . . . . . . . . . . . . . . .
p. 8
2.2
Acompanhamento evolutivo do usuário . . . . . . . . . . . . . . . . . . . .
p. 9
2.3
Implementação de novos jogos . . . . . . . . . . . . . . . . . . . . . . . . .
p. 9
3 Justificativa
p. 10
4 Revisão Bibliográfica
p. 12
4.1
Conceitos sobre Deficiência Visual . . . . . . . . . . . . . . . . . . . . . . .
p. 12
4.2
Definições para Deficiência Visual . . . . . . . . . . . . . . . . . . . . . . .
p. 12
4.3
Soluções para a Deficientes Visuais . . . . . . . . . . . . . . . . . . . . . .
p. 13
5 Metodologia
p. 14
5.1
Estudo das tecnologias usadas no projeto . . . . . . . . . . . . . . . . . . . .
p. 14
5.2
Desenvolvimento de novos módulos . . . . . . . . . . . . . . . . . . . . . .
p. 15
5.2.1
Concepção do Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
5.2.2
Análise de Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
5.2.3
Desenvolvimento . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 15
5.2.4
Testes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 16
5.3
Redação do Trabalho de Diplomação . . . . . . . . . . . . . . . . . . . . . .
p. 16
6 Cronograma
p. 17
7 Recursos necessários
p. 18
7.1
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
7.2
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 18
Referências Bibliográficas
p. 19
Lista de Figuras
6.1
Cronograma planejado sobre a execução do trabalho . . . . . . . . . . . . .
p. 17
6.2
Descrição dos ciclos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
p. 17
Lista de Tabelas
3.1
Índice de população deficiente no Brasil . . . . . . . . . . . . . . . . . . . .
p. 11
4.1
Classificação da Perda de Visão . . . . . . . . . . . . . . . . . . . . . . . .
p. 13
7
1
Introdução
O uso da tecnologia no dia a dia tornou-se uma atividade indispensável. Há vários recursos
oferecidos aos usuários realizado com o apoio da informática utilizando-se um software para
atender as necessidades de uma pessoa.
Dentre as diversas áreas de aplicações, a área educacional foca o estímulo ao desenvolvimento de uma determinada habilidade humana, estes são chamados de softwares educacionais
que oferecem ao usuário, muitas vezes, recursos da multimídia para tornar o aprendizado mais
interativo e eficiente.
Com ênfase na área de desenvolvimento de softwares educacionais será proposto a continuação de um projeto com as mesmas características de uma aplicação educacional focada na
área de estímulo à visão para portadores de deficiência visual.
8
2
Objetivos
Uma abordagem inicial para o estímulo visual para crianças com baixo índice de visão ou
visão subnormal, desenvolvido por Graziela Cristina do Vale Pascoal Rodrigues em seu Trabalho de Diplomação do Curso de Tecnologia em Informática na UTFPR Campus Cornélio
Procópio será considerada no desenvolvimento deste trabalho com objetivo de expandir o software.
Esse software já possui nove diferentes jogos que “abordam meios de estimulação visual
tais como, visão para detalhes em cores, visão de detalhes em imagens, percepção de contrastes,
estímulos luminosos, interpretação de imagens e cenas, visualização de contornos e melhoria
da memória visual.” (RODRIGUES, 2005).
A nova versão do projeto irá possuir três módulos:
1. Reorganização da estrutura do sistema;
2. Acompanhamento evolutivo do usuário;
3. Implementação de novos jogos.
2.1
Reorganização da estrutura do sistema
A reorganização da estrutura do sistema será feita para que possa garantir a estabilidade do
sistema. Muitos sistemas sofrem contínuas mudanças. Uma pequena mudança em uma parte
do sistema pode durar mais do que se esperava ou até mudar o comportamento de outra parte.
Para reduzir a frequência com que esses riscos ocorram, manter um código limpo e organizado
é uma opção para o desenvolvedor (MARTIN, 2008).
Com a reorganização do sistema, utilizando recursos do paradigma orientado a objetos, novas funcionalidades serão adicionadas ao sistema sem afetar a rotina de um jogo, e a inclusão de
novos jogos será feita de forma mais direta, sem ter que se preocupar como o sistema funciona
como um todo, apenas sabendo o básico que uma classe para jogo deve implementar.
2.2 Acompanhamento evolutivo do usuário
9
Nesse módulo, parte do tempo será dedicado a revisão de aspectos gerais do jogo, como
desempenho, que se trata de tempo de carregamento e processamento da aplicação em memória,
e documentação do código.
2.2
Acompanhamento evolutivo do usuário
Será implementado um módulo para acompanhamento evolutivo do usuário baseado em
um histórico de dados de cada jogo que serão coletados durante o andamento do jogo. Os
dados coletados podem variar de acordo com o jogo, e para cada jogo poderá ser produzido um
relatório com índices de acertos e de erros.
Em se tratando de softwares educacionais, é extremamente necessário que se obtenha resultados com o uso desse software. Esse módulo ficará responsável por exibir esses resultados
que poderão ser trabalhados como o usuário desejar.
2.3
Implementação de novos jogos
No trabalho de referência foram propostas novas ideias para o desenvolvimento de mais
alguns jogos no pacote atual. Essa tarefa será realizada depois de completado as duas atividades
anteriores.
10
3
Justificativa
A deficiência muitas vezes é confundida como sendo o contrário de eficiente, porém à
medida que se convive com uma pessoa com deficiência, nota-se que ela não é incapaz. Este tipo
de indivíduo pode enfrentar dificuldades para realizar atividades consideradas “do cotidiano”,
porém, em geral, possui grande habilidade em exercer outras funções, assim como todo ser
humano (GIL, 2000).
O conceito de deficiência visual abrange uma vasta área de possibilidades: desde a cegueira
total até a visão subnormal, que pode ser chamado também de baixa visão. Enxergar não é uma
habilidade humana inata, é necessário aprender a ver. Portanto, assim que aprendemos a ver
desenvolvemos muitas habilidades baseadas na visão, uma delas é para orientar-se no espaço,
que se baseia na habilidade de distinguir objetos visíveis.
A perda parcial ou total da visão adquirida na infância pode trazer alguns prejuízos à criança, como dificuldades no relacionamento social, expressão emocional, desenvolvimento educacional, que caso não for solicitada ajuda para um tratamento adequado, pode se repercutir
durante toda a vida (GIL, 2000).
Por isso, observou-se a necessidade de desenvolver um software que servirá como ferramenta de auxílio para o tratamento do deficiente visual. Os recursos tecnológicos e de multimídia, encontrados em um computador, são ferramentas importantes para aprendizagem de forma
mais segura e eficaz (NANES; SIMÕES, 2010).
Utilizando-se o computador, pode ser criado um ambiente de aprendizado controlado, sem
riscos de bloqueios cognitivos causados por problemas de relacionamento.
A partir da análise do censo demográfico de 2000 realizado pelo IBGE, foi possível observar
que dentro da população brasileira que possui algum tipo de deficiência, quase metade possui
deficiência visual. A tabela a seguir mostra a quantidade, em milhões, de brasileiros com uma
deficiência e a frequência relativa entre essa quantidade e o número total de pessoas com algum
tipo de deficiência.
3 Justificativa
11
Tabela 3.1: Índice de população deficiente no Brasil
Deficiência
Visual
Motora
Auditiva
Mental
Física
Quantidade (em milhões)
Porcentagem
16,5
48,1
7,9
22,9
5,7
16,7
2,8
8,3
1,4
4,1
Fonte: adaptado de IBGE (IBGE, 2000)
O software produzido servirá como um recurso a mais para auxiliar o processo de aprendizagem. É necessário que se tenha em mente que o produto não irá resolver os problemas de
convivência entre um aluno e professor. Será necessário, também, o acompanhamento por parte
dos pais e professores no incentivo à aprendizagem e desenvolvimento da criança.
12
4
Revisão Bibliográfica
4.1
Conceitos sobre Deficiência Visual
É uma alteração ou diminuição da eficiência visual. As causas mais comuns para que essa
alteração ocorra são: de forma inata, a pessoa já nasce com a deficiência, podendo até perder a
visão totalmente com o tempo; e de forma adquirida, por sofrer acidentes que comprometam a
visão (BRAGA; SEI, 1997).
A deficiência visual pode estar dividida em dois grupos: cegueira e visão subnormal. A
pessoa cega possui apenas a percepção da luz ou não tem nenhuma visão. Maior parte do
conhecimento adquirido por essas pessoas é através de outros sentidos humanos, sendo mais
utilizados o de tato e o de audição. A pessoa com visão subnormal consegue utilizar a visão
sem que limite o próprio desempenho em exercer alguma atividade.
4.2
Definições para Deficiência Visual
A perda de visão possui alguns graus de acordo com a escala optométrica de Snellen, que
mensura a acuidade visual para longe.
Para obter a escala de Snellen é necessário fazer a relação entre a qualidade da visão subnormal a certa distância (em metros ou pés) comparado à qualidade da visão normal. De acordo
com essa escala, o primeiro grau é considerado visão normal, os graus 1 e 2 são considerados
visão subnormal, enquanto os demais graus são considerados como cegueira (OMS, 2003).
A tabela a seguir mostra a classificação da perda de visão de acordo com dados retirados de
uma pesquisa feita pela Organização Mundial de Saúde - OMS que mostra o grau da perda de
visão e a acuidade máxima para o grau.
4.3 Soluções para a Deficientes Visuais
13
Tabela 4.1: Classificação da Perda de Visão
Grau de Perda de Visão
Acuidade Máxima (Snellen)
0
1,0
1
0,3
2
0,1
3
0,05
4
0,02
5
0
Fonte: adaptado de OMS.
4.3
Soluções para a Deficientes Visuais
Para a leitura, pode ser utilizando tanto o sistema de leitura através do tato, o Braille, ou
através da audição, por meio de livros falados ou sintetizadores de voz. Na escrita, existe
sistemas que escrevem em Braille e também impressoras Braille. Na locomoção, pessoas com
cegueira podem usar bengalas ou cães-guia.
Para algumas alterações visuais, como miopia, hipermetropia, astigmatismo, entre outras,
pode ser feito o uso de lentes (óculos ou lentes de contato) ou cirurgias oculares.
14
5
Metodologia
Este trabalho de diplomação será desenvolvido realizando as seguintes atividades:
1. Estudo das tecnologias usadas no projeto;
2. Desenvolvimento de novos módulos;
3. Redação do Trabalho de Diplomação.
5.1
Estudo das tecnologias usadas no projeto
Essa atividade será realizada durante grande parte do trabalho de diplomação, em paralelo
com a atividade de desenvolvimento. A aquisição de conhecimento sobre assuntos relacionados
ao entendimento do projeto desenvolvido e também à implementação dos novos módulos serão
realizados nessa atividade.
O aplicativo de Graziela foi desenvolvido utilizando a linguagem de programação orientada a objetos Java e compilado no ambiente de desenvolvimento Netbeans. Para alcançar os
objetivos do projeto (citados na seção 2), será necessária a aquisição do código fonte, produzido por Graziela Rodrigues, que será providenciado por Fabrício Lopes. Em seguida o código
será estudado a fim de entender as relações entre as classes e objetos para que seja possível a
remodelação do sistema sem haver modificações no fluxo atual do jogo e sem alterar a saída de
dados nas interfaces gráficas.
Os princípios de orientação a objetos SOLID introduzidos por Robert Martin são as referências para iniciar a remodelação do sistema. Os cinco princípios, sendo eles: Single Responsability, Open/Closed, Liskov substitution, Interface segregation e Dependency inversion,
visam uma melhor organização e maior limpeza de código, tornado-o fácil de ser entendido e
ser mantido não apenas pelo autor, mas também por outros colaboradores (MARTIN, 2008).
Com isso, o módulo de acompanhamento evolutivo será introduzido no sistema e implementado para cada jogo. Esse módulo servirá para que o aluno e o professor possam ter es-
5.2 Desenvolvimento de novos módulos
15
tatísticas de resultados baseado em dados coletados durante o jogo, sendo eles: pontuações de
acertos e pontuações de erros. Os dados serão gravados na máquina local e será possível criar
mais de um perfil de usuário, usando como atributo diferencial o nome do aluno. A exibição
das estatísticas será feito através de gráficos de linha que serão gerados e exibidos pelo próprio
aplicativo.
5.2
Desenvolvimento de novos módulos
O desenvolvimento dos novos módulos será realizado baseando-se no modelo de processo
de ciclo de vida espiral. A escolha do modelo espiral se deu principalmente por ser um modelo
que ajuda a estimar prazos de forma mais realista conforme for dado o andamento do projeto,
podendo, assim, focar a execução de uma atividade sem prejudicar outra.
As fases que serão seguidas no modelo serão: Concepção do Jogo, Análise de Projeto,
Desenvolvimento e Testes.
5.2.1
Concepção do Jogo
A fase de concepção do jogo é o ponto inicial da criação de um jogo. É feito um brain storm
(chuva de ideias) para decidir como será o jogo, incluindo planejamento de regras de jogo, de
jogabilidade e de abstração interfaces gráficas.
5.2.2
Análise de Projeto
Nessa fase, a ideia abstrata da fase anterior é mais concretizada, gerando documentos para
descrever o problema e como este será resolvido. A pesquisa por jogos que se assemelhem à
ideia também pode ser feita, a fim de encontrar melhores soluções para o jogo.
5.2.3
Desenvolvimento
Com o documento gerado na fase anterior, será dado início ao desenvolvimento do jogo.
O principal foco nessa fase será a produção do jogo, incluindo a programação das interfaces e
regras. O código produzido nessa fase não deve ser final, deve ser feito pensando que haverá
possíveis reajustes na fase seguinte.
5.3 Redação do Trabalho de Diplomação
5.2.4
16
Testes
O módulo gerado na fase anterior será revisado para verificar se os principais pontos do documento gerado na análise foram cumpridos. Não se limitando apenas à revisão, será realizado
um teste a fim de encontrar possíveis defeitos nas rotinas do jogo para corrigi-los para a versão
final; avaliar a qualidade, no que se refere à atmosfera do jogo (sensação de estar jogando e
identificar-se no ambiente), feedbacks (exercer uma ação e receber um sinal que identifique que
a ação realmente foi executada) e jogabilidade (usuário exercer uma ação sem ser atrapalhado
pelo próprio jogo).
Caso for detectada uma nova ideia que possa melhorar o jogo ela será avaliada e um novo
ciclo poderá ser iniciado, começando da Concepção.
5.3
Redação do Trabalho de Diplomação
A redação do trabalho de diplomação será feita com maior ênfase no final do cronograma
planejado, estendendo até a um mês após a apresentação do trabalho. Será considerado na
escrita da redação, bibliografias estudadas durante o desenvolvimento do projeto e conversas
com o orientador.
17
6
Cronograma
O trabalho será feito em seis meses, començando em Janeiro e terminando em Junho de
2012. Maior parte do tempo será focado na reorganização do projeto (módulo 1).
É apresentado abaixo uma figura mostrando o cronograma planejado sobre a execução do
trabalho e em seguida a descrição para as atividades em ciclo, definindo as cores e os módulos
respectivos;
Figura 6.1: Cronograma planejado sobre a execução do trabalho
Figura 6.2: Descrição dos ciclos
O cronograma foi dividido em dois tipos de tarefas: tarefas sequencias, que irá ser realizada
em paralelo às tarefas do tipo em ciclos; tarefas em ciclos, que será feita em várias iterações,
seguindo o ciclo de vida espiral.
18
7
Recursos necessários
7.1
Software
• Sistema Operacional Linux;
• Netbeans IDE;
• JDK 7;
• Kile;
• Okular;
7.2
Hardware
• Notebook Dell Inspiron 1520, Core 2 Duo 1.8GHz, 2GB de memória RAM, 130GB de
disco rígido;
19
Referências Bibliográficas
BRAGA, A. P.; SEI, M. Perfil da Deficiência em Crianças e Adolescentes. 1997. Acesso em:
07 Out. 2011. Disponível em: <http://www.icevi.org/publications/icevix/wshops/0348.html>.
GIL, M. Deficiência visual. 2000. Acesso em: 27 Ago. 2011. Disponível em:
<www.dominiopublico.gov.br/download/texto/me000344.pdf>.
IBGE. Censo Demográfico 2000. 2000. Acesso em: 18 Set. 2011. Disponível em:
<http://www.ibge.gov.br/home/presidencia/noticias/27062003censo.shtm>.
MARTIN, R. C. Clean Code - A Handbook of Agile Software Craftsmanship. [S.l.]: Prentice
Hall, 2008.
NANES, M. T. R. T.; SIMÕES, N. R. do P. Acesso à Mídia Com Deficiência Visual E
Com Deficiência Auditiva: Quem Se Preocupa Com Nós? 2010. Acesso em: 07 Out. 2011.
Disponível em: <http://tinyurl.com/acesso-a-midia-com-deficiencia>.
OMS. Consultation on Development of Standards for Characterization of Vision
Loss and Visual Functioning. 2003. Acesso em: 07 Out. 2011. Disponível em:
<http://whqlibdoc.who.int/hq/2003/WHO_PBL_03.91.pdf>.
RODRIGUES, G. C. d. V. P. Vídere - jogos para estimulação visual. 2005. Acesso em: 22 Ago.
2011. Disponível em: <http://pessoal.utfpr.edu.br/fabricio/ensino/orientacoes/monografiagrazielapascoal.pdf>.
Download

monografia - pessoal.utfpr.edu.br