ciência da computação

Transcrição

ciência da computação
PRÓ-REITORIA DE GRADUAÇÃO
TRABALHO DE CONCLUSÃO DE CURSO
CIÊNCIA DA COMPUTAÇÃO
SISCUBE – SISTEMA TUTOR PARA CUBO MÁGICO
Autores: Bruno Cavalcanti Freitas
Carlos Alberto de Alcântara Júnior
Rodrigo Maciel Galvão
Orientador: Prof. Dsc. Fábio Bianchi Campos
2008
BRUNO CAVALCANTI FREITAS
CARLOS ALBERTO DE ALCÂNTARA JÚNIOR
RODRIGO MACIEL GALVÃO
SISCUBE – SISTEMA TUTOR PARA CUBO MÁGICO
Trabalho apresentado ao curso
de graduação em Bacharelado em
Ciência
da
Universidade
Computação
Católica
de
da
Brasília,
como requisito parcial para obtenção
do Título de Bacharel em Ciência da
Computação.
Orientador: Prof. Dsc. Fábio
Bianchi Campos
Brasília
2008
Trabalho de autoria de Bruno Cavalcanti Freitas, Carlos Alberto de Alcântara
Júnior e Rodrigo Maciel Galvão, intitulado SISCUBE – Sistema Tutor para Cubo
Mágico, requisito parcial para obtenção do grau de Bacharel em Ciência da
Computação, defendido e aprovado em 20/11/2008, pela banca examinadora
constituída por:
______________________________________________
Prof. Dsc. Fábio Bianchi Campos
_____________________________________________
Profª. Dra Maristela Terto de Holanda
Brasília
2008
DEDICATÓRIA
A todos que nos acompanharam, não somente neste projeto, como também
em mais esta etapa de vida, tornando possível a conquista de mais um objetivo.
AGRADECIMENTOS
“Primeiramente, agradeço a DEUS, que me deu força, ânimo, coragem e
condições de concluir esse projeto e pela grande quantidade de conhecimento
adquirido ao longo desses quatro anos. Agradeço à minha mãe, pelas palavras de
incentivo, e sempre confortantes, nas horas de dificuldades, ao meu pai, pelo apoio
e empenho, me auxiliando nessa caminhada, aos meus irmãos por saberem
entender minhas horas de nervosismo e falta de paciência, e à minha namorada, por
suportar com paciência e extrema maturidade, meus momentos de ausência.
Agradeço ao professor Fábio Bianchi Campos, que nos ajudou com paciência
e entusiasmo, sempre acreditando e confiando no nosso trabalho, a finalizar esse
projeto com sucesso e por nos ter passado tamanha quantidade de conhecimento.
Finalmente, mas não menos importante, agradeço aos meus companheiros e
amigos Carlos e Rodrigo, por termos passado esses dois semestres trabalhando
nesse projeto, enfrentando dificuldades e adversidades de forma madura e
consciente, sempre nos lembramos que acima de tudo, somos amigos...”
Bruno Cavalcanti Freitas
“Agradeço ao Orientador Prof. Bianchi pelo incentivo, simpatia e presteza no
auxílio às atividades e discussões sobre o andamento deste projeto final. Aos
colegas de projeto Bruno e Rodrigo pelo comprometimento e dedicação. Aos
colegas de classe pela espontaneidade e alegria na troca de informações e
materiais numa rara demonstração de amizade e solidariedade. A minha família pela
paciência em tolerar a ausência e por todo o auxílio por ela me dado. E, finalmente,
a Deus pela oportunidade e pelo privilégio que me foi dado em compartilhar tamanha
experiência de aprendizado.”
Carlos Alberto de Alcântara Júnior
“Agradeço a todo corpo docente do curso de Ciência da Computação da
Universidade Católica de Brasília pelo conhecimento transmitido ao longo destes
quatro anos e em especial ao Prof. Dr. Fábio Bianchi Campos por ter-nos
direcionado na aplicação deste conhecimento e nos incentivado a saber mais e a
fazer o nosso melhor. Agradeço a todos que conheci durante esta jornada e em
especial aos amigos Bruno e Carlos, por acreditarem em mim e no nosso projeto.
Agradeço aos meus amigos, aos meus irmãos consangüíneos e carinhosamente à
minha namorada pelo apoio e principalmente pelos momentos de união, alegria e
confraternização que foram essenciais para que eu tivesse força para prosseguir.
Agradeço, acima de tudo, aos meus pais, pelo amor, carinho, compreensão,
educação, enfim, por tudo que me deram e ainda me proporcionam. E é claro, a
Deus, por todas as oportunidades a mim dadas. Muito obrigado!”
Rodrigo Maciel Galvão
EPÍGRAFE
“Dar menos que o seu melhor é sacrificar o dom que recebeu.”
Steve Prefontaine
RESUMO
Este projeto apresenta o produto em desenvolvimento do trabalho de
conclusão do curso de Ciência da Computação da UCB, que consiste na criação de
um sistema tutor cuja finalidade é transmitir ao usuário a competência para resolver
o cubo mágico. Inicialmente, na disciplina de Inteligência Artificial, foi desenvolvido
um aplicativo capaz de resolver o cubo mágico a partir de qualquer configuração.
Posteriormente, devido ao interesse das pessoas em aprender sobre sua resolução,
incorporou-se a idéia de integrar um tutorial interativo ao sistema já existente.
Basicamente, o tutorial funciona da seguinte maneira: o usuário seleciona a etapa
que deseja aprender e o sistema retorna o cubo configurado conforme a opção
escolhida. A partir daí, usuário e sistema interagem até que o aprendizado da etapa
seja concluído. Este processo envolve algoritmos consideravelmente complexos,
haja visto o número de possibilidades mapeadas, a análise para a decisão dos
movimentos a serem realizados e as explicações correspondentes a serem
apresentadas.
Palavras-chave: Cubo Mágico. Sistema Tutor.
ABSTRACT
This project presents the product from the conclusion project of the of
Computer Science graduation at the UCB, which is the creation of a mentor system
whose purpose is to teach it’s user to solve the Rubik’s Cube. Initially, at the
discipline of Artificial Intelligence, an application able to solve the Rubik’s Cube from
any configuration was developed. Later, due to the interest of the people to learn
about it solution, the idea of integrating an interactive tutorial to the existing system
was incorporated. Basically, the tutorial works like: The user selects the stage which
is willing to learn and the system returns the cube configured as the preferred option.
From there, users and system interact until the learning stage is completed. This
process involves considerably complex algorithms, concerning the number of
possibilities for mapping, analyzing the decision of the rotation of the cube to be
made and the corresponding explanations.
Keywords: Rubik’s cube. Tutorial.
LISTA DE ILUSTRAÇÕES
Figura 1.1 Projeto de Inteligência Artificial em duas dimensões............................... 18
Figura 4.1 Tipo de Cubo Mágico .............................................................................. 27
Figura 4.2 Centros .................................................................................................... 28
Figura 4.3 Cantos ..................................................................................................... 28
Figura 4.4 Meios ....................................................................................................... 28
Figura 4.5 Estrutura interna do cubo mágico ............................................................ 28
Figura 4.6 Localização e orientação dos cantos....................................................... 29
Figura 4.7 Localização e orientação dos meios........................................................ 30
Figura 4.8 Localização e orientação dos centros ..................................................... 30
Figura 4.9 Aplicativo Rubik’s Cube ........................................................................... 31
Figura 4.10 Matriz tridimensional.............................................................................. 33
Figura 4.11 Rótulos de cada posição da matriz........................................................ 33
Figura 4.12 Resultado da execução do movimento R .............................................. 34
Figura 5.1 Representação do ciclo de vida do PU.................................................... 36
Figura 5.2 Logomarca Java ...................................................................................... 38
Figura 7.1 Modelo de Domínio ................................................................................. 52
Figura 7.2 Diagrama de Casos de Uso .................................................................... 53
Figura 7.3 Modelo de Arquitetura ............................................................................. 54
LISTA DE TELAS DO SISTEMA
Tela 1 Efetuar Login .................................................................................................. 60
Tela 2 Tela Principal do Applet, acessada nos casos de uso AcessarTutorial3D,
TreinarCuboVirtual e JogarCuboVirtual ..................................................................... 63
Tela 3 Tela de Níveis e Etapas, acessada nos casos de uso AcessarTutorial3D e
TreinarCuboVirtual .................................................................................................... 64
Tela 4 Acessar Tutorial 3D ........................................................................................ 64
Tela 5 Treinar Cubo Virtual ....................................................................................... 67
Tela 6 Jogar Cubo Virtual.......................................................................................... 71
Tela 7 Cadastrar Usuário .......................................................................................... 77
Tela 8 Editar Cadastro .............................................................................................. 83
Tela 9 Enviar Mensagem Pessoal............................................................................. 88
LISTA DE TABELAS
Tabela 5.1 Marcos e Pontos de Controle .................................................................. 40
Tabela 5.2 Riscos ..................................................................................................... 43
Tabela 5.3 Impactos ................................................................................................. 43
Tabela 5.4 Documentos do Projeto........................................................................... 43
Tabela 5.5 Recursos Humanos................................................................................. 44
Tabela 5.6 Recursos de Hardware ........................................................................... 44
Tabela 5.7 Recursos de Software ............................................................................. 44
Tabela 5.8 Cronograma ............................................................................................ 47
Tabela 5.9 Glossário ................................................................................................. 48
SUMÁRIO
1
1.1
1.2
1.3
1.4
INTRODUÇÃO .......................................................................................... 17
Motivação ................................................................................................ 17
Breve Histórico ....................................................................................... 17
Problemas Diagnosticados .................................................................... 19
Usuários do Sistema............................................................................... 19
2
2.1
2.2
OBJETIVOS ............................................................................................. 20
Objetivo Geral ......................................................................................... 20
Objetivo Específico ................................................................................. 20
3
3.1
3.2
3.3
3.4
3.4.1
3.4.2
3.4.3
3.4.4
3.4.5
3.5
PROPOSTA DO SISTEMA....................................................................... 21
Descrição do Sistema Proposto ............................................................ 21
Resultados Esperados ........................................................................... 21
Restrições do Sistema Proposto ........................................................... 22
Recursos Necessários para Execução ................................................. 23
Descrição do Hardware Ideal ................................................................. 23
Descrição do Hardware Mínimo............................................................. 23
Descrição do Software ........................................................................... 23
Configuração da Rede ............................................................................ 23
Fontes dos Softwares Necessários ....................................................... 23
Áreas Afetadas pelo Novo Sistema ....................................................... 23
4
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.7.1
4.7.2
CONTEXTUALIZAÇÃO DO TEMA PROPOSTO ..................................... 25
Cubo mágico – Histórico e Informações............................................... 25
Cenário do Speedcubing ........................................................................ 26
Cubos Mágicos mais conhecidos ......................................................... 26
Estrutura Física do Cubo Mágico .......................................................... 27
O Cubo Virtual ......................................................................................... 29
Interface entre Inteligência e Visão ....................................................... 32
Matriz, a parte Inteligente do Cubo ....................................................... 33
Representação ........................................................................................ 33
Execução de Movimentos ...................................................................... 34
5
5.1
5.1.1
5.1.2
5.1.3
5.1.4
5.2
5.2.1
5.2.2
PLANEJAMENTO DO PROJETO ............................................................ 35
Plano do Processo de Desenvolvimento .............................................. 35
Ciclo de Vida do Projeto ......................................................................... 35
Métodos de Desenvolvimento e Ferramentas CASE ........................... 36
Linguagens de Programação ................................................................. 37
Ambiente de Hardware para Desenvolvimento .................................... 38
Plano de Organização............................................................................. 39
Equipe de Gerência ................................................................................ 39
Equipe de Desenvolvimento .................................................................. 39
5.3
5.3.1
5.3.2
5.3.3
5.4
5.4.1
5.5
5.5.1
5.5.2
5.5.3
5.6
5.7
Plano de Acompanhamento ................................................................... 39
Marcos e Pontos de Controle ................................................................ 40
Métodos de Acompanhamento e Controle ........................................... 41
Análise e Gerência de Riscos ................................................................ 41
Plano de Documentação ........................................................................ 43
Documentos do Projeto.......................................................................... 43
Plano de Recursos e Produtos .............................................................. 44
Recursos Humanos ................................................................................ 44
Recursos de Hardware ........................................................................... 44
Recursos de Software ............................................................................ 44
Cronograma............................................................................................. 44
Glossário ................................................................................................. 47
6
6.1
6.2
6.3
6.4
6.5
6.6
ESPECIFICAÇÃO DOS REQUISITOS DO SISTEMA.............................. 49
Descrição do Problema .......................................................................... 49
Identificação dos Interessados .............................................................. 49
Descrição das necessidades dos interessados ................................... 49
Descrição das características do sistema ............................................ 49
Requisitos do software........................................................................... 50
Restrições................................................................................................ 51
7
7.1
7.2
7.3
7.4
DIAGRAMAS UML ................................................................................... 52
Modelo de Domínio ................................................................................. 52
Visão Geral dos Casos de Uso e Atores ............................................... 53
Modelo de Arquitetura ............................................................................ 54
Diagrama de Implantação....................................................................... 55
8
DIFICULDES ENCONTRADAS ................................................................ 56
9
CONCLUSÃO ........................................................................................... 57
10
BIBLIOGRAFIA ........................................................................................ 58
11
11.1
11.1.1
11.1.2
11.1.3
11.1.4
11.1.5
11.1.6
11.1.7
11.1.8
11.1.9
11.2
ANEXOS ................................................................................................... 59
Anexo I – Especificação dos Casos de Uso ......................................... 59
Efetuar Login ........................................................................................... 59
Acessar Tutorial 3D ................................................................................ 61
Treinar Cubo Virtual................................................................................ 65
Jogar Cubo Virtual .................................................................................. 67
Cadastrar Usuário ................................................................................... 71
Editar Cadastro ....................................................................................... 77
Pesquisar Usuário .................................................................................. 84
Enviar Mensagem Pessoal ..................................................................... 86
Entrar Contato Administradores ........................................................... 88
Anexo II – Realização dos Casos de Uso Críticos ............................... 90
11.2.1
11.2.1.1
11.2.1.2
11.2.1.3
11.2.2
11.2.2.1
11.2.2.2
11.2.2.3
11.2.3
11.2.3.1
11.2.3.2
11.2.3.3
11.3
11.4
11.5
Acessar Tutorial 3D ................................................................................ 90
Diagrama de Classes de Análise .............................................................. 90
Diagrama de Seqüência do Sistema ......................................................... 91
Diagrama de Seqüência............................................................................ 92
Treinar Cubo Virtual................................................................................ 93
Diagrama de Classes de Análise .............................................................. 93
Diagrama de Seqüência do Sistema ......................................................... 94
Diagrama de Seqüência............................................................................ 95
Jogar Cubo Virtual .................................................................................. 96
Diagrama de Classes de Análise .............................................................. 96
Diagrama de Seqüência do Sistema ......................................................... 97
Diagrama de Seqüência............................................................................ 98
Anexo III - Notação dos Movimentos..................................................... 99
Anexo IV - Apostila Nível Básico ......................................................... 104
Anexo V - Apostila Nível Intermediário ............................................... 109
17
1
1.1
INTRODUÇÃO
Motivação
Com o decorrer dos últimos meses, o nosso interesse fez com o que o cubo
mágico se tornasse parte do nosso cotidiano e inúmeras vezes nos encontramos
com pessoas que também se interessam em aprender e brincar com o cubo mágico.
Todavia, devido à complexidade em resolvê-lo e ao fato de não existirem fontes tão
didáticas e dinâmicas de aprendizado, muitos aprendizes acabam desistindo do
desafio de concluir os passos necessários para sua resolução.
Devido a estes problemas, o projeto propõe um tutorial dinâmico, onde o
usuário poderá interagir com um cubo mágico virtual1 representado em três
dimensões, manipulando-o da forma que quiser e recebendo dicas e orientações do
sistema quanto às etapas de resolução2.
Acreditamos que com essa ferramenta de aprendizado, mais pessoas se
interessarão em conhecer um pouco mais sobre este quebra-cabeça sensacional e
sobre os benefícios mentais que ele proporciona.
1.2
Breve Histórico
O “passatempo” de resolver o cubo mágico já é praticado pelos integrantes do
grupo há algum tempo, e durante a disciplina de Inteligência Artificial (IA), na
Universidade Católica de Brasília surgiu a seguinte idéia: fazer com que o
computador resolvesse o cubo mágico a partir de qualquer configuração.
Para atingir o objetivo final deste projeto de disciplina uma primeira versão
cujo foco era criar uma estrutura que possibilitasse a resolução e tradução do
algoritmo básico de resolução3 foi desenvolvida. Esta estrutura tinha que resolver
dois problemas: representar o cubo em memória e permitir a execução dos
movimentos. Depois de criada a estrutura, foi obtido um programa que resolvia o
cubo mágico a partir de qualquer configuração e realizava movimentos feitos pelo
usuário, com uma interface em duas dimensões, conforme a figura a seguir:
1
2
3
Representação do cubo mágico em um computador. Normalmente, será referenciado
apenas como cubo virtual.
O método de resolução abordado no projeto é o método de resolução por camadas, que
consiste na resolução de uma camada do cubo mágico por vez. A melhor forma de aprendêlo é dividindo o processo de aprendizado em partes, denominadas etapas de resolução.
Mais detalhes podem ser vistos no Anexo III – Apostila Básica.
É o algoritmo que apresenta os passos mais simples e compreensíveis para resolução do
cubo mágico. Em contrapartida, normalmente são executados mais movimentos.
18
Figura 1.1 Projeto de Inteligência Artificial em duas dimensões
Finalizada a primeira etapa, foi verificado que era difícil ver e compreender o
que acontecia. Com isso, foi decidido migrar a interface existente para uma que
fornecesse ao usuário maior interação e compreensão. Para desenvolvê-la, foi
iniciada uma pesquisa para descobrir como criar interfaces em três dimensões.
Numa dessas pesquisas, foi descoberto o aplicativo Rubik's Cube.
O aplicativo Rubik's Cube foi desenvolvido pelo suíço Werner Randelshofer e
se caracteriza como “software livre”, pois segue a filosofia GNU ou GPL (General
Public License). Com isso, seu código estava disponível e as alterações necessárias
puderam ser feitas. Em contrapartida, o SISCUBE deve obedecer às regras da
licença, se caracterizando também como “software livre”.
Internamente, o aplicativo de Werner possui métodos que possibilitam a
realização de movimentos no cubo virtual. Com isso, restava ao grupo descobrir
como mandar movimentos ao Rubik’s Cube a partir do projeto inicial que resolvia o
cubo mágico.
Depois de finalizada a parte de integração entre inteligência (solução do
grupo) e interface (aplicativo 3D), a proposta para o projeto da disciplina de IA
estava concluída.
19
1.3
Problemas Diagnosticados
Conforme dito no tópico 1.2, o aplicativo obtido na disciplina de IA era
constituído por duas partes: a inteligência e a interface em três dimensões, que se
integravam muito bem e possibilitavam a percepção real dos movimentos que eram
executados no cubo virtual.
No entanto, apesar de possuir uma boa representação visual, a aplicação não
permitia que o usuário aprendesse, efetivamente, a resolver o cubo mágico, pois
seus movimentos eram executados de forma seqüencial, sem intervalos e sem
explicações. Não havia divisão do processo de resolução em “partes”, dificultando o
entendimento de um leigo do que era feito e do por que era feito.
Resumindo, a aplicação apenas possibilitava que um usuário realizasse
movimentos em um cubo virtual e visse que ele está sendo resolvido pelo sistema.
1.4
Usuários do Sistema
Usuários representam as diferentes pessoas que usam o sistema ou produto.
Definindo mais formalmente, são aqueles que se comunicam com o sistema e a ele
são externos (PRESSMAN, 2006).
No SISCUBE, os usuários do sistema são aqueles que possuem acesso à
Internet e ao entrarem no sítio do projeto exploram pelo menos uma de suas
funcionalidades. Dividem-se em usuários identificados e não identificados e
administradores.
Os usuários identificados são aqueles que se cadastraram no sistema e que
através do nome de usuário e senha, definidos durante o cadastro, usufruem de
todas as funcionalidades disponíveis no sítio do projeto.
Já os usuários não identificados são aqueles que ainda não se cadastraram
ou não se identificaram no sítio do projeto. Em conseqüência, não usufruem de
muitas funcionalidades disponíveis.
Por sua vez, os administradores são aqueles que podem, além de executar
todas as funcionalidades de um usuário identificado, gerenciar o sistema (usuários,
agenda de notícias, etc.).
20
2
2.1
OBJETIVOS
Objetivo Geral
Este projeto tem como objetivo principal transmitir ao usuário a competência
para resolver o cubo mágico, dando a possibilidade do mesmo praticar os
conhecimentos recém adquiridos, para que sejam fixados à mente de forma mais
eficiente.
2.2
Objetivo Específico
Para atingir o objetivo geral de maneira eficiente, uma série de objetivos
específicos deve ser alcançada:
• Desenvolver um tutorial dinâmico e interativo sobre a resolução do cubo
mágico, que proporcione facilidades para o entendimento do usuário, como
por exemplo:
o Fazer com que uma peça seja visualmente destacada quando
pertinente.
o Ajustar os movimentos do cubo para que sejam mais bem
compreendidos por um iniciante.
o Adicionar explicações por escrito aos passos executados pelo cubo
virtual.
• Desenvolver um site para disponibilizar mais facilmente aos usuários o
acesso às funcionalidades da aplicação.
• Permitir no site que os usuários interajam entre si para trocar idéias, tirar
dúvidas, etc.
• Permitir ao usuário treinar no cubo virtual os conhecimentos adquiridos.
• Oferecer funcionalidades adicionais como cronometragem para que o
usuário acompanhe seu progresso.
21
3
3.1
PROPOSTA DO SISTEMA
Descrição do Sistema Proposto
O SISCUBE – Sistema Tutor para Cubo Mágico – é um sistema que visa
ensinar passo a passo, de forma interativa e didática como funciona o Método de
Resolução por Camadas do cubo mágico.
Sua característica interativa é justificada por dois fatores: a forma bidirecional
com que a comunicação entre o sistema e seus usuários ocorre e a disposição de
informações de forma não seqüencial, que permite que os usuários estabeleçam o
caminho a ser trilhado, “navegando” em etapas de diferentes níveis4.
Já a característica didática se justifica no próprio significado da palavra: arte
ou técnica de ensinar; elemento transformador da teoria na prática. Didaticamente, o
sistema buscará traduzir fielmente os conhecimentos do especialista no Método de
Resolução por Camadas.
Seguindo-se estes princípios, o usuário irá se deparar com diferentes casos
de resolução, que serão claramente explicados pelo sistema.
Em relação ao projeto desenvolvido na disciplina de IA – Inteligência Artificial
são notáveis os aspectos diferenciadores. Enquanto que no projeto inicial o cubo
mágico simplesmente se resolvia a partir de qualquer estado, no novo sistema será
possível aprender e compreender a resolução do cubo e de cada movimento
executado. O usuário poderá também praticar os ensinamentos adquiridos a partir
da etapa que desejar e medir a melhoria de seu desempenho através da marcação
de tempos.
3.2
Resultados Esperados
Os jogos de raciocínio lógico estão cada vez mais presentes na vida das
pessoas e o motivo é simples: além de diverti-las, são úteis no desenvolvimento de
suas habilidades mentais.
Ao observar o cubo mágico em seu estado embaralhado e sabendo qual o
objetivo de cada etapa, a visão do todo é obtida. E mais, ao observar a disposição
das cores, inicia-se o desenvolvimento do raciocínio lógico, pois é necessário pensar
4
São os níveis de aprendizado disponíveis no sistema. Dividem-se em Iniciante e
Intermediário e variam de acordo com o grau de complexidade dos algoritmos utilizados
na resolução do cubo virtual.
22
em como colocar uma peça em determinado lugar, sem que com isso outras peças
já arrumadas sejam bagunçadas. Com isso, o jogador estabelece metas e à medida
que o jogo se desenvolve ele procura atingi-las.
A partir daí – da visão do todo, do objetivo final e metas – são desenvolvidas
ou melhoradas: a perspicácia, a paciência, a determinação, a competência, o
planejamento e desenvolvimento de estratégias, a concentração e o foco, a visão
espacial, a análise sistemática e matemática e a lógica de raciocínio.
Os benefícios que o cubo mágico e outros jogos de lógica, como sudoku e
xadrez trazem para o ser humano são: estímulo da atividade mental, melhoria da
memória e da clareza mental e a manutenção do cérebro mais jovem, dentre outros.
Através dos benefícios e do desenvolvimento ou melhoria das capacidades
citados, jovens e crianças podem ter seu desempenho escolar melhorados. No
entanto, os benefícios atingem também idades mais avançadas, ajudando, por
exemplo, na prevenção de doenças mentais como o Mal de Alzheimer.
Estudos comprovam que a prática deste tipo de jogo ativa os lóbulos frontais
do cérebro, responsáveis pela capacidade de processamento, em particular a
memória. O jogo pode ainda funcionar como terapia, uma vez que o estresse e
energia acumulados ao longo do dia podem ser nele descarregados.
Jogar com brinquedos ou jogos de raciocínio é ideal para estimular o
pensamento criativo, bem como para melhorar o coeficiente intelectual e emocional,
levando às pessoas uma vida melhor e mais saudável.
3.3
Restrições do Sistema Proposto
Duas restrições foram identificadas no projeto: a dimensão do cubo e o
método de resolução abordados. A primeira é caracterizada pelo foco ao cubo
mágico de dimensão 3x3x3. Já a segunda, pela implementação de um único método
de resolução: o Método de Resolução por Camadas.
Apesar de fazerem parte do escopo do projeto, as demais dimensões e
métodos de resolução não serão implementados no sistema. Detalhes sobre o
assunto são abordados no capítulo 4.
23
3.4
Recursos Necessários para Execução
3.4.1 Descrição do Hardware Ideal
Processador: Pentium D 1.66 GHz
Memória RAM: 1GB
3.4.2 Descrição do Hardware Mínimo
Processador: Pentium 4 1.3 GHz
Memória RAM: 512MB
3.4.3 Descrição do Software
Sistema Operacional: qualquer um que suporte a Máquina Virtual Java, como
Linux, Windows e MacOS.
Máquina Virtual Java 5.0 ou superior.
Browser: Internet Explorer 6 ou superior, Mozilla Firefox 2.0 ou superior.
3.4.4 Configuração da Rede
Placa de Rede Ethernet 10/100 ou superior.
Acesso à Internet.
3.4.5 Fontes dos Softwares Necessários
Máquina Virtual Java: www.java.com/pt_BR/
Internet Explorer: www.microsoft.com/brasil/windows/downloads/ie/getitnow.mspx
Mozilla Firefox: http://pt-br.www.mozilla.com/pt-BR/firefox/
3.5
Áreas Afetadas pelo Novo Sistema
Como visto no tópico 3.2, o cubo mágico traz diversos benefícios mentais
para quem o pratica. A conclusão desse projeto afetará todas as pessoas que têm
interesse em resolver o cubo mágico, seja por curiosidade, por querer exercitar a
mente ou mesmo por tentar concluir um desafio de infância. O projeto poderá ser
utilizado como atividade extracurricular nos colégios, auxiliando no desenvolvimento
24
da capacidade das crianças e adolescentes e servindo também como evidenciação
de alunos com potencial diferenciado.
Além disso, o projeto afetará na área do Speedcubing5, pois ajudará a trazer
novos atletas. A popularização do esporte fará com que os atletas tenham mais
condições de competir e realizar competições, visto que terão mais chances de
conseguir patrocínios para ajudar em viagens e acessórios.
5
Esporte em que os praticantes procuram resolver o cubo mágico no menor tempo possível.
Mais detalhes serão vistos no capítulo 4.
25
4
4.1
CONTEXTUALIZAÇÃO DO TEMA PROPOSTO
Cubo mágico – Histórico e Informações
O cubo de Rubik (ou também chamado o cubo mágico) é um quebra-cabeça
tridimensional, inventado pelo húngaro, Ernő Rubik em 1974 para ilustrar o conceito
de simetria (precursor da Teoria de Grupos da matemática):
Erno Rubik inspirou-se em quebra-cabeças já conhecidos para a criação do
cubo mágico, como o Tangram. No início, a idéia de criar um mecanismo para
sustentar os cubos parecia impossível, devido à grande quantidade de movimentos
existentes, mas Rubik acabou encontrando a solução enquanto observava o curso
do Rio Danubio.
O primeiro cubo montado por Rubik foi feito em madeira e tinha os seis lados
pintados com cores distintas, para que quando suas faces fossem giradas, uma
melhor visualização dos movimentos realizados fosse obtida.
Em 1978 o cubo começava a ser produzido sem incentivos. Mesmo sendo
inicialmente rejeitado, um ano depois, atingira uma publicidade tal que se podia ver
pessoas entretidas com seus cubos nos trens, restaurantes, etc.
Originalmente foi chamado "o cubo mágico" pelo seu inventor, mas o nome foi
alterado pela Ideal Toys para cubo de Rubik em 1980. Neste mesmo ano, ganhou o
prêmio alemão do "Jogo do Ano" (Spiel des Jahres). [WIKIPÉDIA]
Em 1985 os direitos autorais sobre o cubo foram comprados por Seven
Towns, que o relançou no mercado, obtendo muito sucesso. Atualmente Erno Rubik
e Seven Towns trabalham próximos. Rubik está engajado a descobrir novos quebracabeças e continua sendo o principal beneficiado com sua invenção.
O cubo de Rubik é um cubo geralmente fabricado em plástico e possui várias
versões, sendo a versão 3x3x3 a mais comum, composta por seis faces de seis
cores diferentes com um total de 54 peças, com arestas de aproximadamente 5,5
cm. Outras versões menos conhecidas são a 2x2x2, e de 4x4x4 a 7x7x7.
É considerado um dos brinquedos mais populares do mundo, atingindo um
total de 300 milhões de unidades vendidas, bem como suas diferentes imitações.
O desejo de ver as seis faces do cubo organizadas atingia todas as idades e
profissões. Foram lançados mais de 60 livros para ajudar tais pessoas. Nenhum
outro quebra-cabeça teve tantos adeptos, o que o torna um brinquedo genial.
26
O número de combinações possíveis que pode ser obtida com o cubo mágico
é de 43.252.003.274.489.856.000 (43 quintilhões), o que demonstra como um
simples brinquedo colorido pode ser tão complexo de ser resolvido.
4.2
Cenário do Speedcubing
Quando lançado na década de 80, o cubo mágico era considerado um desafio
praticamente impossível de ser concluído. Tinha-se a impressão de que apenas as
mentes mais brilhantes conseguiriam desvendar o grande mistério que frustrou
milhares de pessoas durante décadas. De lá para cá, com ajuda da internet, as
pessoas puderam trocar conhecimentos adquiridos individualmente, que depois de
combinados, discutidos e estudados, formaram as primeiras técnicas de resolução
do brinquedo.
Com o passar do tempo, mais pessoas se interessaram em aprender esses
métodos e aos poucos as técnicas foram melhoradas, bem como novas foram
desenvolvidas.
Hoje em dia é considerado esporte, com várias modalidades: resolver com as
duas mãos, com apenas uma, vendado e até mesmo com os pés. Ganha quem
deixa apenas uma cor em cada lado do cubo em menos tempo.
Aos poucos o cenário do speedcubing (como é conhecido) vem ganhando
espaço na mídia e despertando interesse de patrocinadores. O vencedor do
campeonato mundial de 2007, disputado na Hungria, levou para casa o prêmio de
cinco mil euros.
No Brasil, esse movimento está começando e vem mostrando um grande
potencial de evolução. Já foram realizadas duas competições oficiais e há previsão
de outras para um futuro próximo.
Na televisão brasileira, algumas reportagens sobre o cubo, seus praticantes e
competições têm sido exibidas. Já existem diversos sites em português contendo
tutoriais, dicas e outras utilidades acerca do tema. E tudo isso tende a crescer
exponencialmente.
4.3
Cubos Mágicos mais conhecidos
Este projeto faz abordagem apenas do cubo mágico convencional, que possui
dimensões 3x3x3. Além dele, existem dezenas de outros quebra-cabeças
27
tridimensionais, tanto em formato de cubo como de diversos outros. Os mais
populares são os seguintes:
a) 3x3x3 convencional
b) 2x2x2
e) Megaminx
h) Rubik’s Magic
c) 4x4x4
f) Pyraminx
i) Rubik’s Master Magic
d) 5x5x5
g) Square-1
j) Rubik’s Clock
Figura 4.1 Tipo de Cubo Mágico
4.4
Estrutura Física do Cubo Mágico
Algumas pessoas passam a entender melhor o funcionamento do cubo
quando o desmontam e vêem sua estrutura interna, o que faz quebrar a idéia que
muitos têm de que cada cor se movimenta sozinha, e não três a três como no caso
dos cantos, e duas a duas no caso dos meios. Isso quer dizer que você tem que
fazer cada cor ao redor do respectivo centro.
O cubo mágico possui uma estrutura interna que permite girar qualquer uma
das faces infinitas vezes em qualquer sentido, pois as peças não são presas por
elásticos ou similares.
28
Figura 4.2 Centros
Figura 4.3 Cantos
Figura 4.4 Meios
Fonte: www.cubomagico.110mb.com
Na figura 4.2, as peças coloridas são chamadas de Centros, são seis e são
peças que não se movem entre si, o que se deve ao fato de serem fixas por
parafusos ao núcleo, que é uma peça de borracha em forma de estrela de seis
pontas.
A figura 4.3 representa as quinas do cubo, peças comumente chamadas de
Cantos e que possuem três cores cada. Estas peças são oito, logo podem ocupar
oito posições diferentes e podem estar giradas de três formas em relação a seu
próprio eixo.
Por fim, na figura 4.4 as arestas que estão coloridas são chamadas de Meios
e cada uma possui duas cores diferentes. Estas peças são doze, logo podem ocupar
doze posições diferentes e pode estar giradas de duas formas em relação a seu
próprio eixo.
Os cantos não podem ocupar o lugar dos meios e vice-versa.
Figura 4.5 Estrutura interna do cubo mágico
Fonte: www.9spuzzles.com
29
Como pode ser observado na figura 4.5, as peças possuem encaixes nas
pontas que servem tanto para segurá-las juntas ao cubo, quanto para formar uma
esfera interna que permite o livre giro das camadas.
4.5
O Cubo Virtual
Estudando com maior profundidade o aplicativo Rubik’s Cube, apresentado
no tópico 1.2, alguns pontos importantes foram observados. Segundo Christoph
[BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud
RANDELSHOFER, Werner]:
Localização e orientação dos cantos: inicialmente, cada canto do cubo possui
um identificador “n”, que está presente na matriz “cantoLocalizacao[n]”, onde “n”
varia de 0 à 7, representando as 8 peças de cantos existentes no cubo mágico.
Quanto à orientação dos cantos, o identificador “n” está presente na matriz
“cantoOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial), 1 (canto
girado no sentido anti-horário) e 2 (canto girado no sentido horário). A figura 4.6
representa a ilustração gráfica desta parte do modelo. Nos números em ponto
flutuante, o valor antes do ponto indica a localização dos cantos (os valores da
matriz) “cantoLocalizacao[n]” e os valor depois do ponto indicam a orientação deles
(“cantoOrientacao[n]”).
6.0
4.0
5
6.1
0.2
0.0
0.1
4
7.2
2.0
2.2
2.1
0
1.1
1.2
1.0
4.2
4.1
1
3.1
3.0
3.2
6.2
3
5.1
5.2
7.1
2
7.0
5.0
Figura 4.6 Localização e orientação dos cantos
Localização e orientação dos meios: inicialmente, cada meio do cubo possui
um identificador “n”, que está presente na matriz “meioLocalizacao[n]”, onde o valor
de “n” varia de 0 à 11, representando as 12 peças de meios existentes no cubo
mágico. Quanto a orientação dos meios, o identificador “n” está presente na matriz
“meioOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial) e 1 (meio
30
movido). A figura 4.7 representa a ilustração gráfica desta parte do modelo. Nos
números em ponto flutuante, o valor antes do ponto indica a localização dos meios
(os valores da matriz) “meioLocalizacao[n]” e os valor depois do ponto indica a
orientação deles (“meioOrientacao[n]”).
9.0
10.0
9.1
4
11.1
1.0
1.1
11.0
6.1
5
0.1
0.0
0
2.0
2.1
2
8.1
3.0
4.1
4.0
3.1
1
5.1
7.0
7.1
6.0
3
8.0
10.1
5.0
Figura 4.7 Localização e orientação dos meios
Localização e orientação dos centros: inicialmente, cada centro do cubo
possui um identificador “n” e está presente em uma matriz “centroLocalizacao[n]”,
onde os valores de “n” variam de 0 à 5, representando os 6 centros existentes no
cubo mágico e cada centro é usado como referência para a determinação de uma
face. Quanto a orientação dos centros, o identificador “n” está presente em uma
matriz “centroOrientacao[n]”, onde “n” varia entre os valores 0 (orientação inicial), 1
(face representada pelo centro movida para a esquerda), 2 (face representada pelo
centro movimentada 180°) e 3 (face representada pelo centro movimentada para a
direita). A figura 4.8 representa a ilustração gráfica desta parte do modelo. Nos
números em ponto flutuante, o valor antes do ponto indica a localização dos centros
(os valores da matriz) “centroLocalizacao[n]” e os valores depois do ponto indicam a
orientação deles (“centroOrientacao[n]”).
.0
.0
.1
4
.3
.2
.1
.2
.1
5
.3
.2
0
.0
.3
2
.1
.2
.3
.2
.3
1
.1
.0
.0
Figura 4.8 Localização e orientação dos centros
.3
.0
3
.2
.1
31
As três propriedades do modelo citadas acima descrevem as configurações
básicas sobre posicionamento das peças em relação a si mesmas e em relação às
demais. Foi fundamental entendê-las para dar prosseguimento ao projeto.
Resumindo o modelo, é possível dizer que ele se caracteriza por atribuir um
valor a cada “peça” do cubo virtual e por considerar o posicionamento de cada peça
em relação à posição inicial ocupada por elas.
A partir desse modelo, são criadas outras três estruturas necessárias para a
realização dos movimentos em um cubo, explicadas a seguir:
- Indicação do eixo (X, Y, Z) em que o movimento será realizado. Por se
tratar de um cubo mágico, as três dimensões devem ser consideradas, mesmo com
o código baseado em bibliotecas para desenhos em duas dimensões. Desse modo,
cada eixo possibilita a movimentação de três camadas do cubo, quem têm seu
centro transpassado pelo eixo em questão. Para exemplificar, considere a Figura
4.18 e também que a face frontal é a face na cor azul, a superior na cor amarela e a
direita na cor vermelha. Quando for necessária a realização de um movimento6 na
face azul (F ou F'), esse movimento deve ser sobre o eixo Z, na face amarela (U ou
U') o movimento deve ser no eixo Y e na face vermelha (R ou R') o movimento deve
ser no eixo X.
Figura 4.9 Aplicativo Rubik’s Cube
- Possibilidade de escolher qual combinação de camadas em relação a um
eixo deve ser movimentada. Por exemplo, considerando a Figura 4.9 e tendo como
6
Para melhor entendimento dos movimentos, vide Anexo III Notação dos Movimentos.
32
referência a face azul, podemos fazer desde um simples movimento F (que utiliza
apenas uma camada), até um movimento Z (que utiliza todas as camas paralelas à
face azul).
- Possibilidade de escolher o sentido do movimento entre horário e antihorário.
A partir das informações citadas acima, todas as operações com o cubo
virtual são implementadas e disponibilizadas ao usuário em uma tela, construída
sobre um componente JAVA, com o nome de Canvas, que faz parte do pacote
'java.awt'. Esse componente possibilita a construção de uma área na tela em que é
possível a inserção e a renderização do cubo virtual, além das ações
disponibilizadas ao usuário.
4.6
Interface entre Inteligência e Visão
A integração da parte inteligente do Sistema Tutor com o cubo virtual (parte
de interface) acontece de forma bem simples, sendo necessário conhecer as
combinações de parâmetros necessárias para a realização dos movimentos.
O método chamado para a efetivação do movimento no cubo virtual tem a
seguinte assinatura: public void transform(int axis, int layerMask, int angle). Os
parâmetros têm o seguinte significado:
•
axis: indica sobre qual eixo o movimento será executado (X, Y ou Z).
Pode receber os valores 0(eixo X), 1(eixo Y) e 2(eixo Z).
•
layerMask: indica qual a combinação de camadas será movimentada.
Recebe valores entre 1 e 7.
•
angle: indica o sentido e a quantidade de movimentos. Pode receber os
valores 1 (volta de 90° no sentido horário), -1(volta de 90° no sentido antihorário), 2(volta de 180° no sentido horário) e -2(volta de 180° no antisentido horário).
Através do conhecimento desta estrutura, foi possível a realização de
diversos movimentos no cubo virtual. A classe que contém esse método é criada no
momento da criação da Classe de interface com o jogador, viabilizando seu acesso.
33
4.7
Matriz, a parte Inteligente do Cubo
O cubo mágico utilizado no projeto possui dimensão 3x3x3 e é composto por
seis cores diferentes: azul, vermelho, verde, laranja, amarelo e branco – que
representam as faces do cubo. As faces, por sua vez, são compostas por nove
quadrados, que somados dão um total de 54.
A fim de tornar possível a representação de todas as peças do cubo foi
implementada uma matriz tridimensional. Sua primeira posição representa as faces,
variando de zero a cinco. As outras duas posições representam a localização do
quadrado na face, que é mais facilmente entendida quando feita uma analogia a um
plano cartesiano com pontos (x,y), onde x seria a linha em que o quadrado se
encontra e y a coluna. Com essa matriz foi possível representar os 54 quadrados do
Cubo Mágico.
4.7.1 Representação
A fim de se obter uma melhor visibilidade do que acontece com a matriz, foi
desenvolvida uma interface de duas dimensões que respeita os modelos abaixo:
Figura 4.10 Matriz tridimensional
27
30
33
28
31
34
29
32
35
36
39
42
0
3
6
45
48
51
37
40
43
1
4
7
46
49
52
38
41
44
2
5
8
47
50
53
9
12
15
10
13
16
11
14
17
18
21
24
Figura 4.11 Rótulos de cada posição da matriz
19
22
25
20
23
26
34
4.7.2 Execução de Movimentos
Independente da origem (usuário ou sistema), cada movimento é enviado à
matriz para que ela seja alterada. Supondo que o cubo esteja no estado resolvido,
conforme pode ser observado na Figura 4.11 e que o movimento R, representado no
Anexo Notação dos Movimentos seja executado, as seguintes permutações ocorrem
entre os elementos da matriz:
[0][0][2] ↔ [5][0][2];
[2][2][0] ↔ [4][0][2];
[0][1][2] ↔ [5][1][2];
[2][1][0] ↔ [4][1][2];
[0][2][2] ↔ [5][2][2];
[2][0][0] ↔ [4][2][2];
[5][0][2] ↔ [2][2][0];
[4][0][2] ↔ [0][0][2];
[5][1][2] ↔ [2][1][0];
[4][1][2] ↔ [0][1][2];
[5][2][2] ↔ [2][0][0];
[4][2][2] ↔ [0][2][2];
Resultado visual da matriz após o movimento:
Figura 4.12 Resultado da execução do movimento R
Com isso, sempre que o usuário exigir que o cubo seja resolvido, o Sistema
verificará a matriz e de acordo com os algoritmos de resolução do cubo ordenará
seus elementos.
35
5
5.1
PLANEJAMENTO DO PROJETO
Plano do Processo de Desenvolvimento
5.1.1 Ciclo de Vida do Projeto
O conjunto de fases do projeto é chamado de “ciclo de vida do projeto”. Os
modelos que o descrevem surgiram devido à necessidade de estruturar o
desenvolvimento do software e fornecer um roteiro razoavelmente efetivo para que
as equipes desenvolvedoras atinjam seus objetivos (PRESSMAN, 2006, adaptado).
Para o desenvolvimento de um software, existem modelos já estudados e
definidos, como por exemplo: o cascata, os incrementais (Incremental e RAD), os
evolucionários (Prototipagem, Espiral e de Desenvolvimento Concorrente) e o
processo unificado. No entanto, cada um deve ser adaptado para que seja usado
efetivamente em um projeto de software específico. Para o desenvolvimento do
SISCUBE foi adotado o ciclo de vida descrito no modelo do Processo Unificado, com
algumas adaptações. A seguir, seguem os motivos que levaram o grupo a utilizar
este ciclo de vida:
•
Utiliza a UML – Unified Modeling Language – no preparo dos artefatos do
sistema;
•
Orienta-se por casos de uso, o que permite que o processo de
desenvolvimento siga um fluxo (análise, projeto, implementação e teste)
derivado da descrição dos casos de uso;
•
Tem a arquitetura como elemento central, o que facilita na construção do
projeto, pois a partir dela se obtém a estrutura que guia cada iteração.
•
É iterativo e incremental, o que permite a evolução do projeto com o
decorrer do tempo.
Assim como ocorre no ciclo de vida do PU, o projeto passará pelas seguintes
fases:
•
Concepção: fase em que será dada ênfase à comunicação e ao
planejamento. A comunicação ocorrerá entre os membros do grupo e
entre o grupo e o orientador, com o objetivo de definir as necessidades
daqueles que usarão o sistema e conseqüentemente suas características.
Tratando-se de planejamento, serão desenvolvidos o documento visão e
a especificação dos principais casos de uso, considerados os mais
36
críticos, Acessar Tutorial 3D, Treinar Cubo Virtual e Jogar Cubo Virtual.
Detalhes sobre os casos de uso podem ser consultados no Anexo I –
Especificação dos Casos de Uso.
•
Elaboração: será subdividida em duas subfases: (1) análise, em que será
dada continuidade à comunicação, todavia com o objetivo diferente:
refinar as necessidades e características levantadas na fase de
concepção. Nela serão desenvolvidos os demais casos de uso. (2)
Projeto, cujo objetivo será modelar os casos de uso críticos com foco na
criação de modelos de análise e projeto com ênfase nas definições de
classes e representações arquiteturais.
•
Construção: serão refinados e então traduzidos o modelo de projeto para
componentes de software.
•
Transição: fase em que o sistema será testado e posteriormente colocado
no site (www.cubomagicobrasil.com).
•
Produção: fase que terá como objetivo oferecer o monitoramento e
suporte contínuo ao sistema.
A seguir, na figura 5.1, pode ser observado a relação disciplina x fase
ocorrente em muitos projetos que utilizam o ciclo de vida descrito no modelo do
Processo Unificado:
Figura 5.1 Representação do ciclo de vida do PU
5.1.2 Métodos de Desenvolvimento e Ferramentas CASE
Para o desenvolvimento do projeto foi utilizada a técnica de Descrição do
Documento Visão, técnica de Descrição de Caso de Uso e a Técnica do Larman de
37
Análise e Projeto Orientado a Objetos, com utilização de Design Patterns - DTO,
DAO e Factory. As páginas WEB do projeto foram criadas seguindo o padrão
XHTML de desenvolvimento.
O código do projeto é baseado no padrão de arquitetura MVC (Model-viewcontroller), o que permite a fácil manutenção do código, uma vez que a manipulação
de dados não é afetada com a alteração do layout e vice-versa. Neste modelo para o
projeto são utilizadas seis camadas: visão, action, model, DAO, DTO e ch, que são
explicadas no capítulo 7.
Ferramentas
CASE
(Computer-Aided
Software
Engineering)
são
as
ferramentas baseadas em computadores que auxiliam na engenharia de software,
desde análise de requisitos e modelagem até programação e testes. As utilizadas no
projeto foram:
•
Jude Community – software Jude para desenvolvimento UML. Utilizado na
elaboração do modelo de domínio, diagrama de casos de uso e realização
dos casos de uso (diagramas de seqüência e de classes).
•
MS Project – software da Microsoft para gestão de projetos. Esta
ferramenta foi utilizada no planejamento cronológico das atividades que
compõem o projeto.
5.1.3 Linguagens de Programação
A linguagem utilizada no desenvolvimento do projeto foi Java e se encaixou
perfeitamente nas necessidades existentes. Como o projeto é um incremento de
uma aplicação existente, utilizar a mesma linguagem de programação para continuar
o trabalho foi muito importante para evitar possíveis incompatibilidades, como, por
exemplo, no caso de tentar fazer uma integração com programas de naturezas
diferentes. A experiência acadêmica adquirida nas disciplinas de programação foi
outro fator que contribuiu para a escolha desta linguagem.
Java é uma linguagem de programação orientada a objetos inicialmente
desenvolvida pela Sun Microsystems e lançada em 1995. A linguagem deriva grande
parte da sua sintaxe de C / C + +, mas tem um modelo mais simples e menos
objetos de baixo nível. Aplicações Java são normalmente compiladas para um
38
bytecode7 que pode ser executado em qualquer máquina virtual Java (Java Virtual
Machine), independentemente da arquitetura do computador. A partir de maio de
2007, em conformidade com as especificações do Java Community Process, Sun
passou a disponibilizar a maior parte de suas tecnologias Java como software livre
sob a GNU General Public License (GPL).
Figura 5.2 Logomarca Java
5.1.4 Ambiente de Hardware para Desenvolvimento
O ambiente de hardware para desenvolvimento do projeto se refere à
especificação da topologia de hardware (equipamentos e conexões) que fornece a
plataforma que dá suporte às ferramentas (software) necessárias para produzir os
produtos de trabalho. O ambiente utilizado no desenvolvimento do SISCUBE é
composto pelos seguintes equipamentos:
•
Dois notebooks DELL Core 2 Duo 2.0 GHz, 4 GB de memória RAM, 120
GB de HD, Windows Vista Home Basic;
•
Hum notebook HP Pavilion AMD Sempron 3.400+, 2 GB de memória
RAM, 120 GB de HD, Linux Ubuntu.
7
É o resultado de um processo semelhante ao dos compiladores de código-fonte que não é
imediatamente executável. Em oposição, o bytecode é interpretado numa máquina virtual, que o
executa. Desta forma, o bytecode é um estágio intermédio entre o código-fonte (escrito numa
linguagem de programação específica) e a aplicação final, sendo a sua vantagem principal a
dualidade entre a portabilidade — o bytecode produz o mesmo resultado em qualquer arquitetura — e
a ausência da necessidade do pré-processamento típico dos compiladores — o bytecode é encarado
como um produto final, cuja validação da sintaxe e tipos de dados (entre outras funções dos
compiladores) é necessária.
39
5.2
Plano de Organização
O plano de organização inclui um conjunto de práticas gerenciais e técnicas
que permite à equipe de software (gerência e desenvolvimento) definir um roteiro
enquanto ela se move em direção a sua meta estratégica e seus objetivos táticos. É
nele, também, que se definem os papéis que cada um exerce na equipe.
5.2.1 Equipe de Gerência
A equipe de desenvolvimento é formada por um Gerente de Projeto, que
exerce o papel de líder do grupo. Cabe ao gerente: (1) motivar – encorajar a equipe
de desenvolvimento a produzir no melhor de sua capacidade; (2) organizar – moldar
ou inventar processos que viabilizem a meta estratégica e os objetivos táticos; (3)
definir marcos, pontos de controle, planos e métodos de acompanhamento, além de
verificar e mitigar eventuais riscos. Esta atividade será realizada pelo Bruno.
5.2.2 Equipe de Desenvolvimento
A equipe de desenvolvimento é formada por desenvolvedores Java e
analistas de requisitos. Ambas as funções são desempenhadas pelos três
integrantes da equipe de projeto (Bruno, Carlos e Rodrigo).
As atividades dos desenvolvedores são as seguintes:
•
Bruno: estudo do aplicativo Rubik’s Cube e do desenvolvimento de
applets, bem como a implementação do tutorial com o cubo mágico
virtual.
•
Carlos: estudo dos métodos de resolução do cubo mágico, bem como a
implementação da funcionalidade na qual o usuário joga com o cubo
mágico virtual.
•
Rodrigo: desenvolvimento das páginas web e seus respectivos casos de
uso, bem como a implementação do treinamento com o cubo mágico
virtual.
5.3
Plano de Acompanhamento
Há muitos motivos que causam problemas em projetos de software, tais como
a complexidade do que será desenvolvido e as significativas dificuldades em
40
coordenar membros da equipe. A incerteza é comum, e resulta em uma contínua
corrente de modificações que perturba a equipe de software.
Para lidar efetivamente com os problemas que surgem ao longo do processo
de desenvolvimento de software, é necessário estabelecer métodos específicos para
coordenar aqueles que o desenvolvem. Para tanto, mecanismos para comunicação
formal e informal entre os membros da equipe de software devem ser planejados e
executados – o plano de acompanhamento deve ser feito.
5.3.1 Marcos e Pontos de Controle
O cronograma do projeto, baseado nas fases do ciclo de vida adotado,
fornece o roteiro para a equipe de desenvolvimento. Nele, tarefas e marcos são
definidos e devem ser acompanhados e controlados à medida que o projeto
prossegue.
A tabela a seguir apresenta as fases do ciclo de vida com seus
respectivos marcos:
Fases do Ciclo de Vida
Marco
Concepção
Comunicação
Validação do documento visão
Planejamento
Validação da especificação dos casos de
uso
críticos
AcessarTutorial3D,
TreinarCuboVirtual e JogarCuboVirtual
Elaboração
Análise
Validação da especificação dos demais
casos de uso e do modelo de domínio.
Projeto
Validação do modelo de análise e
arquitetura dos casos de uso críticos
AcessarTutorial3D, TreinarCuboVirtual e
JogarCuboVirtual.
Construção
Validação da implementação do sistema.
Transição
Implantação dos casos de uso críticos
no site www.cubomagicobrasil.com
Tabela 5.1 Marcos e Pontos de Controle
41
5.3.2 Métodos de Acompanhamento e Controle
Para acompanhamento do projeto, serão realizadas reuniões semanais com o
professor orientador, com o intuito de verificar possíveis mudanças de requisitos,
para que os mesmos possam ser corrigidos, para que o software seja desenvolvido
de acordo com o prazo estabelecido e para que seja feito o controle de
conformidade em relação ao planejamento de projeto e ao regimento do projeto final.
Reuniões semanais entre os membros do grupo também ocorrerão e sua
freqüência irá variar de acordo com as necessidades a andamento do projeto.
5.3.3 Análise e Gerência de Riscos
Em um projeto de software, uma grande variedade de riscos pode ocorrer,
uns com menos outros com mais freqüência, variando desde desentendimentos
entre componentes da equipe até o não cumprimento de prazos. Os riscos
identificados para o projeto SISCUBE foram:
1. Não obedecer aos prazos do cronograma: o projeto corre o risco de não
cumprir os prazos do cronograma, pois envolve a utilização de Applet e de um
componente livre (Rubik’s Cube) e a equipe de desenvolvimento deve pesquisar e
entender ambos. Todos os integrantes da equipe desenvolvem outras atividades
(curso e trabalho).
2. Desenvolvimento de uma interface não apropriada: o projeto corre o risco
de não possuir uma interface intuitiva e de fácil entendimento, dificultando sua
utilização.
3. Não conseguir implementar certas funcionalidades pela falta de
conhecimento avançado das tecnologias utilizadas.
4. Incoerência com o planejamento do sistema: com o andamento do projeto e
o desenvolvimento do sistema, algumas características (funcionalidades) podem ser
alteradas, e a não alteração também nos documentos correspondentes (diagramas,
descrições) pode gerar incoerência entre os documentos do projeto.
Risco
Prob. Imp.
Prioridade Mitigação
Contingência
1
50%
Alta
Estabelecer um
Reestruturar o
tempo maior para as
cronograma e
A
42
pesquisas
verificar quais
necessárias e
funcionalidades
reuniões para
podem ser
verificação e
suprimidas para
acompanhamento do
que um projeto
cronograma
funcional possa
ser entregue.
2
30%
A
Média
Verificar com
Verificar com
possíveis usuários a
usuários reais
usabilidade da
quais as
aplicação
dificuldades
encontradas em
manipular a
aplicação e
realizar as
alterações
necessárias
3
50%
R
Baixa
Pesquisar sobre as
Verificar se essa
tecnologias
funcionalidade
necessárias
pode ser
suprimida. Em
caso negativo,
verificar quais
funcionalidades
podem ser
suprimidas para
que haja mais
tempo para
solução do
problema.
4
20%
R
Média
Manter sempre
Corrigir as
atualizados os
incoerências.
documentos e
43
verificá-los nas
reuniões.
Tabela 5.2 Riscos
Custo excede ao planejado
CA (Catastrófico)
para a manutenção em 50% do custo
planejado.
O custo do risco excede ao
CR (Crítico)
planejado no intervalo de 10% a 50%
do total planejado.
Probabilidade menor que 10%.
MA (Marginal)
Tabela 5.3 Impactos
5.4
Plano de Documentação
5.4.1 Documentos do Projeto
Durante as fases técnicas do Processo Unificado foram desenvolvidos
diversos documento. Dentre eles podemos citar:
Concepção
Elaboração
Construção
- Documento Visão
- Modelo de Domínio
- Javadoc
- Especificação dos casos de
- Diagrama de Casos de
uso críticos (AcessarTutorial3D,
Uso
TreinarCuboVirtual e
- Diagrama de Seqüência
JogarCuboVirtual)
do Sistema dos casos de
- Glossário inicial do projeto
uso críticos
- Plano de projeto
- Contratos de Operação
dos casos de uso críticos
- Diagramas de Seqüência
dos casos de uso críticos
- Arquitetura Lógica
- Diagrama de Pacotes
Tabela 5.4 Documentos do Projeto
44
5.5
Plano de Recursos e Produtos
5.5.1 Recursos Humanos
Nome
Função
Gerente de
Projeto, Analista e
Desenvolvedor
Analista e
Desenvolvedor
Analista e
Desenvolvedor
Bruno Cavalcanti
Freitas
Carlos Alberto de
Alcântara Júnior
Rodrigo Maciel
Galvão
Telefone
E-mail
8431-8125
[email protected]
9681-9457
[email protected]
9663-6034
[email protected]
Tabela 5.5 Recursos Humanos
5.5.2 Recursos de Hardware
Discriminação
Notebook DELL Core 2 Duo
2.0GHz, 4GB de RAM, 120GB de
HD, Windows Vista Home Basic
Notebook
HP
Pavilion
AMD
Sempron 3.400+, 2GB de RAM,
120GB de HD, Linux Ubuntu
TOTAL
Quantidade
Valor Unitário
Valor Total
2
R$3.000,00
R$6.000,00
1
R$1.800,00
R$1.800,00
R$7.800,00
Tabela 5.6 Recursos de Hardware
5.5.3 Recursos de Software
Discriminação
Eclipse Europa
Jude Community 5
MySQL Server 5.0
Apache Tomcat 5.0
Pacote JDK 5.0 – Java
Development Kit
Valor Unitário
-
Valor Total
-
-
-
Tabela 5.7 Recursos de Software
5.6
Cronograma
Tarefa
Responsável
Início
Fim
Bruno,
18/02/08
23/02/08
25/02/08
08/03/08
Concepção
Comunicação
Levantar Requisitos
Carlos,
Rodrigo
Definir documento visão
Bruno,
45
Carlos,
Rodrigo
Planejamento
Identificar casos de uso e atores
Bruno,
10/03/08
13/03/08
13/03/08
22/03/08
24/03/08
03/04/08
03/04/08
12/04/08
18/02/08
12/04/08
14/04/08
17/04/08
17/04/08
24/04/08
Carlos,
Rodrigo
Descrever caso de uso crítico Acessar
Bruno,
Tutorial 3D
Carlos,
Rodrigo
Descrever caso de uso crítico Treinar Cubo
Bruno,
Virtual
Carlos,
Rodrigo
Descrever caso de uso crítico Jogar Cubo
Bruno,
Virtual
Carlos,
Rodrigo
Elaborar glossário
Bruno,
Carlos,
Rodrigo
Elaboração
Análise
Refinar requisitos
Bruno,
Carlos,
Rodrigo
Refinar documento visão
Bruno,
Carlos,
Rodrigo
Elaborar modelo de domínio
Bruno
24/04/08
30/04/08
Elaborar diagrama de casos de uso
Bruno,
14/04/08
14/04/08
Bruno
24/04/08
30/04/08
Rodrigo
24/04/08
30/04/08
Carlos,
Rodrigo
Refinar caso de uso crítico Acessar Tutorial
3D
Refinar caso de uso crítico Treinar Cubo
46
Virtual
Refinar caso de uso crítico Jogar Cubo
Carlos
24/04/08
30/04/08
Descrever caso de uso Cadastrar Usuário
Rodrigo
30/04/08
10/05/08
Descrever caso de uso Efetuar Login
Rodrigo
30/04/08
10/05/08
Descrever caso de uso Manter Cadastro
Rodrigo
30/04/08
10/05/08
Descrever caso de uso Pesquisar Usuário
Rodrigo
30/04/08
10/05/08
Carlos
30/04/08
10/05/08
Carlos
30/04/08
10/05/08
Bruno,
14/04/08
10/05/08
Bruno
12/05/08
31/05/08
Rodrigo
12/05/08
31/05/08
Carlos
12/05/08
31/05/08
Bruno
31/05/08
21/06/08
Rodrigo
31/05/08
21/06/08
Carlos
31/05/08
21/06/08
Virtual
Descrever caso de uso Entrar Contato
Administradores
Descrever caso de uso Enviar Mensagem
Pessoal
Refinar glossário
Carlos,
Rodrigo
Projeto
Elaborar o Diagrama de Seqüência do
Sistema(DSS) e o contrato de operações do
caso de uso crítico Acessar Tutorial 3D
Elaborar o Diagrama de Seqüência do
Sistema(DSS) e o contrato de operações do
caso de uso crítico Treinar Cubo Virtual
Elaborar o Diagrama de Seqüência do
Sistema(DSS) e o contrato de operações do
caso de uso crítico Jogar Cubo Virtual
Efetuar a realização (criação dos diagramas
de seqüência e de classes) do caso de uso
crítico Acessar Tutorial 3D
Efetuar a realização (criação dos diagramas
de seqüência e de classes) do caso de uso
crítico Treinar Cubo Virtual
Efetuar a realização (criação dos diagramas
de seqüência e de classes) do caso de uso
crítico Jogar Cubo Virtual
47
Definir arquitetura lógica e diagrama de
Bruno
01/08/08
16/08/08
Bruno,
12/05/08
21/06/08
Bruno
18/08/08
19/11/08
Rodrigo,
18/08/08
19/11/08
pacotes
Refinar glossário
Carlos,
Rodrigo
Construção
Implementar caso de uso Acessar Tutorial
3D
Implementar caso de uso Treinar Cubo
Virtual
Bruno
Implementar caso de uso Jogar Cubo Virtual
Carlos
18/08/08
19/11/08
Definir o layout de site
Rodrigo
15/09/08
27/09/08
Implementar caso de uso Cadastrar Usuário
Rodrigo
29/09/08
11/10/08
Implementar caso de uso Efetuar Login
Rodrigo
13/10/08
18/10/08
Implementar caso de uso Manter Cadastro
Rodrigo
03/11/08
08/11/08
Implementar caso de uso Pesquisar Usuário
Rodrigo
20/10/08
22/10/08
Bruno, Carlos 03/11/08
08/11/08
Bruno, Carlos 03/11/08
08/11/08
Implementar caso de uso Entrar Contato
Administradores
Implementar caso de uso Enviar Mensagem
Pessoal
Tabela 5.8 Cronograma
5.7
Glossário
Termo
Algoritmo
Significado
Básico
de É o algoritmo que apresenta os passos mais
Resolução
simples e compreensíveis para resolução do cubo
mágico.
Em
contrapartida,
normalmente
são
executados mais movimentos.
Algoritmo de Embaralhamento
Seqüência de movimentos aleatórios que é gerada
por um sistema para que o cubo seja embaralhado.
Os movimentos são representados por letra
conforme o Anexo III – Notação dos Movimentos.
Camada
O Cubo Mágico possui três camadas.
48
Cubo Mágico
Brinquedo com o formato de cubo cujas faces
coloridas são giráveis.
Cubo Mágico Virtual
Representação
do
cubo
mágico
em
um
computador.
Embaralhar
Misturar as cores do cubo, tirá-lo de seu estado
original.
Etapa
Seqüência de passos que visam alcançar a
resolução de determinada parte do cubo mágico.
Face
Lado do cubo. O cubo possui 6 faces(lados).
Fase de Inspeção
Momento em que o jogador avalia a condição atual
do cubo para planejar os primeiros movimentos
que fará quando começar a resolvê-lo.
Fridrich
Nome da criadora e do método avançado de
resolução do cubo mais conhecido e utilizado pelos
experts.
Nível
Grau de complexidade da resolução, o nível básico
consiste no mínimo necessário para a resolução do
cubo, já o nível intermediário visa economizar
movimentos considerando mais possibilidades de
combinação do cubo.
Orientação
Diz respeito ao posicionamento da peça em
relação a ela mesma. Orientar uma peça de canto,
por exemplo, significa girar esse canto sem
permutá-lo.
Passo
Movimentação específica, pequenos grupos de
movimentos. Vários passos compõem uma etapa.
Permutação
É a troca de posição que ocorre entra duas peças,
em que uma ocupa o lugar da outra.
Speedcubing
Esporte
relacionado
ao
cubo
mágico,
essencialmente baseado na velocidade usada para
sua resolução.
Tabela 5.9 Glossário
49
6
6.1
ESPECIFICAÇÃO DOS REQUISITOS DO SISTEMA
Descrição do Problema
Com o decorrer dos últimos meses o nosso interesse fez com que o cubo
mágico se tornasse parte do nosso cotidiano e inúmeras vezes nos encontramos
com pessoas que também se interessam em aprender e brincar com o cubo. No
entanto, devido à complexidade em resolvê-lo e à escassez de fontes de
aprendizado didáticas e dinâmicas, essas pessoas desistem do desafio de concluir
os passos necessários para resolução do cubo.
Com base nestes problemas, nosso projeto propõe um tutorial dinâmico, em
que o usuário irá interagir com um cubo mágico virtual representado em três
dimensões, manipulando-o da forma que quiser e recebendo dicas e orientações do
sistema quanto às etapas de resolução.
Acreditamos que com essa ferramenta de aprendizado, mais pessoas se
interessarão em conhecer um pouco mais sobre este quebra-cabeça sensacional e
sobre os benefícios mentais que ele proporciona.
6.2
Identificação dos Interessados
São considerados interessados no SISCUBE todos que têm curiosidade em
aprender a resolver o cubo mágico, pois são eles o público-alvo do projeto.
6.3
Descrição das necessidades dos interessados
Tendo em vista que o Sistema desenvolvido não é voltado para um público-
alvo específico, mas sim para uma gama ampla de usuários, foi constatado que não
há necessidades, mas sim um objetivo bem definido: fazer com que qualquer
usuário possa aprender a resolver o cubo mágico.
6.4
Descrição das características do sistema
São principais características do sistema:
•
Apresentar um tutorial dinâmico e interativo sobre a resolução do cubo
mágico, que proporcione facilidades para o entendimento do usuário,
como por exemplo:
o Destaque visual das peças que serão movimentadas.
50
o Explicações textuais dos passos executados.
•
Permitir ao usuário treinar no cubo virtual os conhecimentos adquiridos.
•
Oferecer funcionalidades adicionais como cronometragem para que o
usuário acompanhe seu progresso.
•
Disponibilizar as funcionalidades do sistema em um site, para facilitar o
acesso dos usuários.
•
Permitir no site que os usuários interajam entre si para trocar idéias, tirar
dúvidas, etc.
•
Apresentar no site histórico, artigos e notícias sobre o cubo mágico, além
de links que levem o usuário a páginas relacionadas, para que ele se
contextualize em relação ao tema proposto.
•
Disponibilizar manuais em PDF com conteúdo explicativo dos métodos de
resolução do cubo.
6.5
Requisitos do software
O sistema deverá ser capaz de atender os seguintes requisitos:
•
Ensinar ao usuário, por etapas e de forma didática e interativa, como
resolver o cubo mágico.
•
Permitir que o usuário treine as etapas aprendidas e obtenha, caso
deseje, dicas para ajudá-lo no treinamento.
•
Permitir que o usuário marque o tempo e quantidade de movimentos
despendidos na tentativa de resolução do cubo.
•
Cadastrar usuários no sistema e permitir que os mesmos editem os dados
informados no cadastro.
•
Permitir que os usuários troquem mensagens entre si.
•
Permitir que os usuários entrem em contato com os administradores
(idealizadores/desenvolvedores do projeto).
•
Informar sobre notícias e eventos, histórico e artigos concernentes com o
tema proposto.
51
6.6
Restrições
O núcleo do sistema, formado pelo ensinamento, treinamento e marcação de
tempos/quantidade de movimentos é baseado na linguagem de programação Java.
Tendo em vista que estas funcionalidades serão disponibilizadas em um site através
de um Applet (programa escrito na linguagem de programação Java que pode ser
incluído em uma página HTML, http://java.sun.com/applets/), será necessário que o
usuário tenha instalado em seu computador a Máquina Virtual Java (JVM – Java
Virtual Machine) para que o programa seja carregado e executado.
52
7
7.1
DIAGRAMAS UML
Modelo de Domínio
Figura 7.1 Modelo de Domínio
53
7.2
Visão Geral dos Casos de Uso e Atores
Figura 7.2 Diagrama de Casos de Uso
A especificação dos casos de uso pode ser vista no Anexo I – Especificação
dos Casos de Uso. A análise e projeto dos casos de uso críticos: Acessar Tutorial
3D, Treinar Cubo Virtual e Jogar Cubo Virtual encontram-se no Anexo II –
Realização dos Casos de Uso críticos.
54
7.3
Modelo de Arquitetura
Figura 7.3 Modelo de Arquitetura
55
Conforme mencionado no tópico 5.1.2, o modelo de arquitetura do projeto é
dividido em seis camadas: visão, action, model, DAO, DTO e ch. Segue, a seguir,
uma explicação sucinta de cada camada:
•
Visão: camada onde se encontram as classes responsáveis pela
apresentação do sistema. Exemplo: as telas de interface com o usuário.
•
Action: camada onde se encontram as classes que respondem às ações
realizadas pelo usuário. Exemplo: “cliques” nos botões.
•
Model: camada onde se encontram todas as regras de negócio
necessárias ao sistema. Exemplo: representação, movimentação e
resolução do cubo mágico.
•
DAO: camada responsável pela persistência dos dados, ou seja, camada
que contém as classes que se comunicam com a base de dados.
•
DTO: camada que contém as classes que podem “navegar” entre as
camadas do software de maneira livre. Exemplo: o Usuário.
•
7.4
Ch: camada que contém a aplicação Rubik’s Cube
Diagrama de Implantação
56
8
DIFICULDES ENCONTRADAS
A primeira dificuldade encontrada foi em relação à compreensão do código
original da interface gráfica do cubo virtual 3D. Muitas das lógicas utilizadas pelo seu
desenvolvedor Werner Randelshofer eram consideravelmente complexas, devido à
dificuldade de representar os componentes do cubo mágico graficamente. Esse fator
dificultou o entendimento das propriedades que estavam sendo consideradas.
Durante o ápice do desenvolvimento do sistema, um dos obstáculos
enfrentados com maior significância foi quanto à utilização de Threads em Java.
Este recurso foi necessário para permitir que ocorressem mais de uma operação do
sistema simultaneamente, como a manipulação do cubo enquanto o tempo de
inspeção ou cronômetro estivesse em execução e quando diferentes peças
precisassem ficar piscando durante o tutorial. A dificuldade enfrentada foi no
tratamento da concorrência entre as Threads, que foi superada com a utilização de
combinadas variáveis Flag para que as tarefas fossem executadas sem intervir nas
outras quando não fosse conveniente.
Outra relevante dificuldade encontrada também se deu em relação ao applet.
Por questões de segurança, ele é executado na máquina do cliente com acesso
muito restrito aos recursos existentes, característica que dificultou muito a inserção
das imagens. Porém, o applet tem acesso total aos arquivos presentes em seu ‘.jar’.
Então a solução era encontrar um modo de inserir as imagens necessárias dentro do
próprio applet, para que as mesmas pudessem ser mostradas ao usuário. Isso se
tornou possível graças ao método ‘getClass().getResource(“caminhoImagem”)’ que
retorna o caminho completo de onde se encontra a classe em questão. A partir
disso, foi possível inserir imagens dentro do arquivo ‘.jar’ referente ao applet, e onde
ele fosse baixado na máquina do cliente seria possível identificar sua localização e
acrescentar as imagens à tela, informando seu endereço em relação à classe em
questão.
57
9
CONCLUSÃO
Os principais objetivos definidos no início do projeto foram alcançados com
satisfação dos interessados, visto que através do produto final gerado pelo projeto é
possível aprender a resolver o cubo mágico e colocar em prática a teoria aprendida
através de uma interface bastante interativa.
Os resultados foram alcançados graças ao estudo das principais dificuldades
que uma pessoa tem quando tenta aprender a resolver o cubo através de um tutorial
tradicional, que peca principalmente pela falta de interatividade com o usuário, que
muitas vezes se vê obrigado a lidar com figuras e explicações estáticas.
Devido à diversidade de estágios de aprendizado em que o usuário pode se
encaixar, o projeto permite a seleção da etapa da resolução desejada, o que
viabiliza o progresso do usuário na aprendizagem da resolução do cubo.
Dentre os objetivos iniciais do projeto, alguns tiveram seu cumprimento
adiado, como: o gerenciamento do usuário e da agenda de notícias e
implementação do nível Intermediário de resolução do cubo. Tal fato se deu devido à
complexidade das funcionalidades implementadas, principalmente no que diz
respeito ao Tutorial interativo, ao Treinamento e ao Jogo. O curto prazo para o
desenvolvimento, aliado às outras atividades (demais disciplinas cursadas e
trabalho) exercidas pelos componentes do grupo também foram obstáculos para a
conclusão do projeto ideal.
A realização do projeto possibilitou o aprendizado e aperfeiçoamento de
várias tecnologias (ex: applet), padrões de desenvolvimento e áreas abrangidas no
curso (ex: programação em Java, Banco de Dados e Engenharia de Software), além
viabilizar uma real simulação de todo o processo pelo qual passa o desenvolvimento
de um software.
58
10
BIBLIOGRAFIA
PRESSMAN, Roger. Engenharia de Software. Trad. Rosângela Delloso Penteado.
McGraw-Hill,6ª Edição, 2006.
LARMAN, Craig. Utilizando UML e Padrões: Uma introdução à análise e ao
projeto orientados a objetos e ao desenvolvimento iterativo. Trad. Luiz A
Meirelles Salgado. Bookman, 3ª Edição, 2007.
DEITEL, Harvey M; DEITEL, Paul J. Java Como Programar. Prentice Hall, 6ª
Edição, 2005.
BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud
RANDELSHOFER, Werner
WIKIPÉDIA,
Wikipédia.
http://pt.wikipedia.org/wiki/Cubo_m%C3%A1gico
Cubo
Mágico.
59
11
ANEXOS
11.1 Anexo I – Especificação dos Casos de Uso
11.1.1 Efetuar Login
Nome do Caso de Uso Efetuar Login
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário cadastrado se identifique no Sistema.
Atores
Usuário
identificado,
Usuário
não
identificado,
Administrador
Pré-condições
Não se aplica.
Fluxo Principal
P1. O caso de uso inicia quando o ator preenche os
campos Usuário e Senha e os submete ao Sistema.
P2. O Sistema valida os campos [RN1] [E1] [E2].
P3. O Sistema apresenta a Foto, Nome, E-mail, Cidade e
Estado do ator identificado, além das opções Editar Perfil e
Sair [E3].
P4. Fim do Fluxo Principal.
Fluxos Alternativos
Não se aplica.
Fluxos de Exceção
E1. Campo obrigatório não preenchido.
E1.1. Conforme RN1, o Sistema destaca o(s) campo(s)
que não foi(ram) preenchido(s) e apresenta a mensagem:
“Campo obrigatório x não foi preenchido”, onde x é o nome
do campo obrigatório que não foi preenchido.
E1.2. O Sistema retorna ao passo anterior.
E2. Campo inválido.
E2.1. Conforme RN1, o Sistema destaca o(s) campo(s)
que não foi(ram) preenchido(s) corretamente e apresenta a
mensagem: “O campo x informado é inválido”, onde x é o
campo que foi preenchido incorretamente.
E2.2. O Sistema retorna ao passo anterior.
E3. Usuário não encontrado.
60
E3.1. Depois de validar o formulário, o Sistema não
encontra na base de dados um registro com os dados
informados e apresenta a mensagem: “Usuário/Senha
inválidos”.
E3.2. O Sistema retorna ao passo anterior.
Regras de Negócio
RN1. Formulário de Login
-
Os
campos
Usuário
e
Senha
deverão
ser
obrigatoriamente preenchidos.
- O campo senha deverá conter no mínimo 6 caracteres e
no máximo 12.
- O campo Usuário, representado pelo e-mail informado
pelo usuário no momento do Cadastro deverá ser válido.
Pós-condição
O Sistema deverá habilitar todas as funcionalidades para o
ator que se identificar com sucesso.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
Tela 1 Efetuar Login
61
11.1.2 Acessar Tutorial 3D
Nome do Caso de Uso Acessar Tutorial 3D
Breve Descrição
Este caso de uso tem como objetivo permitir que o usuário
aprenda a resolver, em etapas, o cubo mágico virtual.
Atores
Usuário identificado, Administrador
Pré-condições
O usuário/administrador deverá ter se identificado no
sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona Acessar
Tutorial 3D no menu principal do Applet.
P2. O Sistema apresenta o nível Iniciante com suas
respectivas etapas [RN1] e as opções Tutorial e Voltar.
P3. O ator seleciona uma etapa de um nível de
aprendizado e em seguida a opção Tutorial [A1].
P4. O Sistema apresenta o cubo virtual pronto para realizar
o aprendizado da etapa selecionada [RN2], além da opção
Iniciar Aprendizado.
P5. O ator seleciona a opção Iniciar Aprendizado.
P6. O Sistema descreve o que será feito no passo e
apresenta as opções Voltar, Executar e Avançar.
P7. O ator seleciona a opção Executar para que os
movimentos descritos no P6 sejam executados [A2] [A3].
P8. O Sistema retorna ao P6 até que todos os passos da
etapa
de
aprendizado
selecionada
tenham
sido
executados.
P9. Ao término do aprendizado da etapa, o Sistema
apresenta a opção Finalizar Tutorial.
P10. O ator seleciona a opção Finalizar Tutorial.
P11. O Sistema retorna ao P2.
Fluxos Alternativos
A1. Voltar ao menu principal do Applet
A1.1. O ator seleciona a opção Voltar.
A1.2. O Sistema retorna ao menu principal do Applet.
A2. Voltar passo
62
A2.1. O ator seleciona a opção Voltar.
A2.2.
O
Sistema
retorna
ao
passo
apresentado
anteriormente, caso exista.
A2.3. O Sistema retorna ao P6.
A3. Avançar passo
A3.1. O ator seleciona a opção Avançar.
A3.2. O Sistema avança para o passo seguinte, caso
exista.
A3.3. O Sistema retorna ao P6.
Fluxos de Exceção
Não se aplica.
Regras de Negócio
RN1. Etapas
O Sistema apresenta as seguintes etapas para o nível
iniciante:
• Cruz Branca;
• 1ª Camada;
• 2ª Camada;
• Cruz Amarela;
• Face Amarela;
• Cantos da 3ª Camada;
• Meios da 3ª Camada.
RN2. Organização do Cubo Virtual
O Cubo Virtual será apresentado com uma configuração
condizente com a etapa selecionada.
• Cruz Branca: o Cubo Virtual estará embaralhado.
• 1ª Camada: Cruz Branca pronta.
• 2ª Camada: 1ª Camada pronta.
• Cruz Amarela: 2ª Camada pronta.
• Face Amarela: Cruz Amarela pronta.
• Cantos da 3ª Camada: Face Amarela pronta.
• Meios da 3ª Camada: Cantos da 3ª Camada
prontos.
63
RN3. Documentos associados aos níveis
• Para o nível Iniciante, as descrições necessárias
para a resolução de cada etapa estão presentes no
Anexo IV – Apostila Nível Básico.
• Para
o
nível
Intermediário,
as
descrições
necessárias para a resolução de cada etapa estão
presentes
no
Anexo
V
–
Apostila
Nível
Intermediário.
Pós-condição
Não se aplica.
Pontos de Extensão
PE1. Treinar Cubo Virtual
O caso de uso estende ao caso de uso Treinar Cubo
Virtual.
Características
Não se aplica.
suplementares
Tela 2 Tela Principal do Applet, acessada nos casos de uso AcessarTutorial3D,
TreinarCuboVirtual e JogarCuboVirtual
64
Tela 3 Tela de Níveis e Etapas, acessada nos casos de uso AcessarTutorial3D e
TreinarCuboVirtual
Tela 4 Acessar Tutorial 3D
65
11.1.3 Treinar Cubo Virtual
Nome do Caso de Uso Treinar Cubo Virtual
Breve Descrição
Este caso de uso tem como objetivo permitir que o usuário
treine a resolução de cada etapa com auxílio do Sistema.
Atores
Usuário identificado, Administrador
Pré-condições
O usuário/administrador deverá ter se identificado no
sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Treinar Cubo Virtual no menu principal do Applet.
P2. O Sistema apresenta o nível Iniciante com suas
respectivas etapas [RN1].
P3. O ator seleciona uma etapa de um nível de
aprendizado.
P4. O Sistema apresenta o cubo virtual pronto para realizar
o treinamento da etapa selecionada [RN2], além da opção
Iniciar Treinamento
P5. O ator seleciona a opção Iniciar Treinamento.
P6. O Sistema apresenta as opções de movimentos,
conforme o Anexo III – Notação dos Movimentos, além das
opções Ajuda e Parar, que permitem ao usuário receber
dicas do Sistema e finalizar o treinamento da etapa
selecionada, respectivamente.
P7. O ator seleciona as opções apresentadas no P6 para
movimentar o cubo virtual [A1] [A2]. O ação ocorre até que
o ator selecione a opção Parar ou até que a etapa
selecionada tenha sido encerrada.
P8. O ator seleciona a opção Parar.
P9.1. O Sistema apresenta a mensagem de conclusão da
etapa treinada e a opção Menu de Etapas [RN3].
P9.2. O Sistema retorna ao P2.
Fluxos Alternativos
A1. Ajudar usuário
A1.1. O ator seleciona a opção Ajuda.
A1.2. O Sistema apresenta uma sugestão de resolução
66
para o passo atual.
A1.3. O Sistema retorna ao P7.
A2. Finalizar Treinamento da Etapa
A2.1. O ator seleciona a opção Parar.
A2.2. O Sistema retorna ao P9.
Fluxos de Exceção
Não se aplica.
Regras de Negócio
O Sistema apresenta as seguintes etapas para o nível
Iniciante:
• Cruz Branca;
• 1ª Camada;
• 2ª Camada;
• Cruz Amarela;
• Face Amarela;
• Cantos da 3ª Camada;
• Meios da 3ª Camada.
RN2. Organização do Cubo Virtual
O Cubo Virtual será apresentado com uma configuração
condizente com a etapa selecionada.
• Cruz Branca: o Cubo Virtual estará embaralhado.
• 1ª Camada: Cruz Branca pronta.
• 2ª Camada: 1ª Camada pronta.
• Cruz Amarela: 2ª Camada pronta.
• Face Amarela: Cruz Amarela pronta.
• Cantos da 3ª Camada: Face Amarela pronta.
• Meios da 3ª Camada: Cantos da 3ª Camada
prontos.
RN3. Mensagem de conclusão da etapa
Ao selecionar a opção Parar, se o usuário tiver concluído a
etapa, uma mensagem de sucesso na conclusão da etapa
será apresentada. Caso contrário, será mostrada uma
67
mensagem de não conclusão da etapa.
Pós-condição
Não se aplica.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
Tela 5 Treinar Cubo Virtual
11.1.4 Jogar Cubo Virtual
Nome do Caso de Uso Jogar Cubo Virtual
Breve Descrição
Este caso de uso tem como objetivo permitir que o usuário
jogue o Cubo Mágico Virtual sem auxílio do Sistema e
marque o tempo e quantidade de movimentos despendidos
na tentativa de resolução.
Atores
Usuário identificado, Administrador
Pré-condições
O usuário/administrador deverá ter se identificado no
sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Jogar Cubo Virtual.
68
P2.1. O Sistema apresenta o cubo mágico virtual em seu
estado resolvido com a opção Embaralhar.
P2.2. O Sistema apresenta os tempos e quantidades de
movimentos correspondentes às suas melhores médias do
presente momento.
P3. O ator seleciona a opção Embaralhar.
P4. O Sistema embaralha o cubo virtual [RN1].
P5.1. O Sistema apresenta e ativa o contador regressivo
de inspeção [RN2].
P5.2. O Sistema apresenta a opção Jogar, além das
opções de movimento X, X’, Y, Y’, Z, Z’ [RN3].
P6. O ator seleciona a opção Jogar [A1].
P7.1. O Sistema apresenta as demais opções de
movimentos, conforme o Anexo III – Notação dos
Movimentos, além da opção Parar, que permitirá ao
usuário finalizar a tentativa de resolução do cubo virtual.
P7.2. O Sistema apresenta e ativa o cronômetro
progressivo e o contador de movimento para que o tempo
e a quantidade de movimentos utilizados na tentativa de
resolução do cubo sejam marcados.
P7.3. O Sistema libera o cubo virtual para manipulação.
P8. O ator seleciona as opções apresentadas no P5.2. e
P7.1. para movimentar o cubo virtual. A ação ocorre até
que o ator selecione a opção Parar.
P9. O ator seleciona a opção Parar.
P10.1. O Sistema pára o cronômetro e o contador de
movimentos.
P10.2. O Sistema verifica se o estado atual do cubo é o
estado dele resolvido.
P11.1 Se o estado atual do cubo for igual ao estado dele
resolvido, o Sistema apresenta ao usuário seu tempo e
número de passos utilizados, atualizando suas respectivas
médias [RN4]. Caso contrário, o Sistema indicará ao
69
usuário que o objetivo não foi alcançado.
P11.2
Sistema
pergunta
se
usuário
deseja
jogar
novamente[A2].
P12. O Sistema retorna ao P2.
Fluxos Alternativos
A1. Esperar contador regressivo
A1.1. O ator espera o contador regressivo chegar ao
tempo 0:00:00.
A1.2. O Sistema retorna ao P7.1.
A2 Usuário não deseja jogar novamente.
A2.1 Sistema finaliza caso de uso.
Fluxos de Exceção
Não se aplica.
Regras de Negócio
RN1. Embaralhamento
O embaralhamento deverá obedecer às seguintes regras:
• A
quantidade
de
movimentos
utilizada
para
embaralhar o cubo deve ser igual a 25.
• O mesmo movimento não pode ser executado três
ou mais vezes seguidas.
• Um movimento não pode ser seguido pelo seu
movimento contrário.
• Os movimentos X,X’, Y, Y’, Z, Z’, M, M’, E, E’, S, S’
não farão parte do embaralhamento (vide Anexo III
– Notação dos Movimentos)
RN2. Tempo de Inspeção
O tempo de inspeção deverá ser de 30 segundos.
RN3. Opções de movimentos apresentadas durante o
tempo de inspeção.
Somente deverá ser permitido que o usuário execute os
movimentos X, X’, Y, Y’, Z e Z’ durante a inspeção do
cubo. Tais movimentos, quando realizados, não alteram a
configuração do cubo, só mudam sua perspectiva de visão.
70
RN4. Cálculo da Média
Tanto para cálculo da média de tempo quanto para a
média de quantidade de movimentos válidos para o
ranking será utilizada a seguinte regra:
• Para ser uma média válida, devem ser medidos,
pelo menos, cinco parâmetros (cinco tempos ou
cinco quantidade de movimentos) consecutivos.
• A partir do sexto parâmetro (tempo ou quantidade
de movimentos) recebido, esses novos parâmetros
irão substituindo os antigos na ordem em que foram
inseridos. Essa substituição é importante porque
para cálculo da média são utilizados somente 5
parâmetros.
• A melhor média de uma sessão não será o conjunto
dos cinco melhores tempos, e sim a melhor média
de cinco parâmetros consecutivos que foram
marcados na sessão.
• A melhor média de determinada sessão do usuário
será testada para verificar se está apta a entrar no
ranking.
Pós-condição
Tempos, números de movimentos e respectivas médias
que estiverem aptos a participar do ranking deverão ser
adicionados ao mesmo.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
71
Tela 6 Jogar Cubo Virtual
11.1.5 Cadastrar Usuário
Nome do Caso de Uso Cadastrar Usuário
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário se cadastre no Sistema.
Atores
Usuário não identificado
Pré-condições
Não se aplica.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Cadastrar-se.
P2. O Sistema apresenta o formulário de cadastro com os
campos: Nome, Estado, Cidade, Data de Nascimento,
Foto, E-mail, Repita o E-mail, Senha e Confirme a Senha.
São apresentadas também as opções Efetuar Cadastro e
Limpar Campos.
P3. O ator preenche os campos e os submete para que o
cadastro seja efetivado [A1].
P4. O Sistema valida as informações fornecidas pelo ator
[RN1] [E1] [E2] [E3] [E4] [E5] [E6].
72
P5. O Sistema grava as informações fornecidas pelo ator.
P6. O Sistema apresenta a mensagem: “Cadastro
efetivado com sucesso”.
P7. O caso de uso é encerrado.
Fluxos Alternativos
A1. Limpar campos
A1.1. O ator seleciona a opção Limpar campos.
A1.2. O Sistema limpa todos os campos do formulário.
A1.3. O Sistema retorna ao P2.
Fluxos de Exceção
E1. Campo obrigatório não preenchido.
E1.1. O Sistema verifica que algum campo obrigatório não
foi preenchido.
E1.2. O Sistema destaca o campo obrigatório que não foi
preenchido
e
apresenta
a
mensagem:
“O
campo
obrigatório X não foi preenchido”, onde X é o nome do
campo obrigatório que não foi preenchido.
E1.3. O Sistema retorna ao P3.
E2. Campo inválido.
E2.1. O Sistema verifica que algum campo foi preenchido
de forma inválida.
E2.2. O Sistema destaca o campo que foi preenchido de
forma inválida e apresenta a mensagem: “O(A) X
informado(a) é inválido(a)”, onde X é o campo informado
de forma inválida.
E2.3. O Sistema retorna ao P3.
E3. Tamanho da foto superior ao limite de 500Kb.
E3.1. O Sistema verifica que o tamanho da foto é superior
ao limite de 500Kb.
E3.2. O Sistema destaca o campo Foto e apresenta a
mensagem: “O tamanho da foto é superior ao limite de
500Kb”.
E3.3. O Sistema retorna ao P3.
73
E4. Foto com extensão inválida.
E4.1. O Sistema verifica que a extensão do arquivo
selecionado para o campo Foto é inválida.
E4.2. O Sistema destaca o campo Foto e apresenta a
mensagem: “O arquivo da foto deve ter a extensão .gif,
.jpg, .jpeg, .png”.
E4.3. O Sistema retorna ao P3.
E5. E-mail e Repita o e-mail diferentes
E5.1. O Sistema verifica que os e-mails informados nos
campos E-mail e Repita o e-mail são diferentes.
E5.2. O Sistema destaca os campos E-mail e Repita o email e apresenta a mensagem: “Os e-mails informados nos
campos E-mail e Repita o e-mail são diferentes”.
E5.3. O Sistema retorna ao P3.
E6. Senha e Confirma a senha diferentes
E6.1. O Sistema verifica que as senhas informadas nos
campos Senha e Confirme a senha são diferentes.
E6.2. O Sistema destaca os campos Senha e Confirme a
senha e apresenta a mensagem: “As senhas informadas
nos campos Senha e Confirme a senha são diferentes”.
E6.3. O Sistema retorna ao P3.
Regras de Negócio
RN1. Formulário de Cadastro
O preenchimento dos campos do formulário de cadastro
deverá obedecer às seguintes regras:
• Nome
o Descrição: nome do usuário que irá se
cadastrar.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
74
Somente serão aceitos caracteres A/a
– Z/z.
O tamanho não deverá ultrapassar 50
caracteres.
• Estado
o Descrição: estado em que reside o usuário
que irá se cadastrar.
o Tipo: caixa de seleção (combobox)
o Obrigatório: não.
o Regras:
A caixa de seleção deverá conter os 27
estados brasileiros mais o Distrito
Federal.
• Cidade
o Descrição: cidade em que reside o usuário
que irá se cadastrar.
o Tipo: texto.
o Obrigatório: não.
o Regras:
O tamanho não deverá ultrapassar 30
caracteres.
• Data de Nascimento
o Descrição: data de nascimento do usuário
que irá se cadastrar.
o Tipo: texto.
o Obrigatório: não.
o Regras:
O formato deverá ser dd/MM/yyyy.
À medida que o usuário digitar as
datas o Sistema deverá incluir as
barras que separam o dia, mês e ano.
Somente deverão ser aceitos números.
O tamanho da data deverá ser igual a
75
10.
A data deverá ser válida.
• Foto
o Descrição: foto do usuário que irá se
cadastrar.
o Tipo: arquivo.
o Obrigatório: não.
o Regras:
O tamanho da foto deverá ser inferior a
500Kb.
Somente serão aceitos arquivos cuja
extensão é .gif, .jpg, .jpeg ou .png.
• E-mail
o Descrição: e-mail do usuário que irá se
cadastrar.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
Somente deverão ser aceitos e-mails
válidos.
O tamanho máximo deverá ser de 50
caracteres.
Deverá fazer parte do login do usuário
para acesso às funcionalidades do
Sistema.
• Repita o e-mail
o Descrição: confirmação do e-mail informado
no campo anterior.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
O conteúdo deverá ser exatamente
igual ao do campo E-mail.
76
• Senha
o Descrição: senha do usuário que irá se
cadastrar.
o Tipo: senha (password).
o Obrigatório: sim.
o Regras:
O tamanho da senha deverá ser de no
mínimo 6 e no máximo 12 caracteres.
Será a senha de acesso do usuário às
funcionalidades
do Sistema.
Junto
com o campo E-mail, deverá formar o
login do usuário.
• Confirme a senha:
o Descrição: confirmação da senha informada
no campo anterior.
o Tipo: senha (password).
o Obrigatório: sim.
o Regras:
O conteúdo deverá ser exatamente
igual ao do campo Senha.
Pós-condição
O Sistema deverá armazenar em seu banco de dados o
cadastro do usuário.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
77
Tela 7 Cadastrar Usuário
11.1.6 Editar Cadastro
Nome do Caso de Uso Editar Cadastro
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário edite seu cadastro no Sistema.
Atores
Usuário identificado, Administrador
Pré-condições
O ator deverá ter se identificado no Sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Editar Perfil.
P2. O Sistema carrega as informações atuais do usuário e
as apresenta no formulário de alteração, que conterá os
campos Nome, Estado, Cidade, Data de Nascimento, Foto,
E-mail, Repita o e-mail, Senha atual, Nova Senha e
Confirme a senha [RN1]. São apresentadas também as
opções Atualizar perfil e Desfazer atualização.
P3. O ator preenche os campos e os submete para que a
alteração seja efetivada [A1].
P4. O Sistema valida as informações fornecidas pelo ator
78
[RN2] [E1] [E2] [E3] [E4] [E5] [E6].
P5. O Sistema grava as novas informações fornecidas pelo
ator.
P6. O Sistema apresenta a mensagem: “Cadastro alterado
com sucesso”.
P7. O caso de uso é encerrado.
Fluxos Alternativos
A1. Desfazer atualização
A1.1. O ator seleciona a opção Desfazer atualização.
A1.2. O Sistema recarrega os dados do formulário de
acordo com as informações salvas na sua base de dados.
A1.3. O Sistema retorna ao P2.
Fluxos de Exceção
E1. Campo obrigatório não preenchido.
E1.1. O Sistema verifica que algum campo obrigatório não
foi preenchido.
E1.2. O Sistema destaca o campo obrigatório que não foi
preenchido
e
apresenta
a
mensagem:
“O
campo
obrigatório X não foi preenchido”, onde X é o nome do
campo obrigatório que não foi preenchido.
E1.3. O Sistema retorna ao P3.
E2. Campo inválido.
E2.1. O Sistema verifica que algum campo foi preenchido
de forma inválida.
E2.2. O Sistema destaca o campo que foi preenchido de
forma inválida e apresenta a mensagem: “O(A) X
informado(a) é inválido(a)”, onde X é o campo informado
de forma inválida.
E2.3. O Sistema retorna ao P3.
E3. Tamanho da foto superior ao limite de 500Kb.
E3.1. O Sistema verifica que o tamanho da foto é superior
ao limite de 500Kb.
E3.2. O Sistema destaca o campo Foto e apresenta a
79
mensagem: “O tamanho da foto é superior ao limite de
500Kb”.
E3.3. O Sistema retorna ao P3.
E4. Foto com extensão inválida.
E4.1. O Sistema verifica que a extensão do arquivo
selecionado para o campo Foto é inválida.
E4.2. O Sistema destaca o campo Foto e apresenta a
mensagem: “O arquivo da foto deve ter a extensão .gif,
.jpg, .jpeg, .png”.
E4.3. O Sistema retorna ao P3.
E5. E-mail e Repita o e-mail diferentes
E5.1. O Sistema verifica que os e-mails informados nos
campos E-mail e Repita o e-mail são diferentes.
E5.2. O Sistema destaca os campos E-mail e Repita o email e apresenta a mensagem: “Os e-mails informados nos
campos E-mail e Repita o e-mail são diferentes”.
E5.3. O Sistema retorna ao P3.
E6. Senha e Confirma a senha diferentes
E6.1. O Sistema verifica que as senhas informadas nos
campos Senha e Confirme a senha são diferentes.
E6.2. O Sistema destaca os campos Senha e Confirme a
senha e apresenta a mensagem: “As senhas informadas
nos campos Senha e Confirme a senha são diferentes”.
E6.3. O Sistema retorna ao P3.
Regras de Negócio
RN1. Carregamento do formulário de alteração
O carregamento do formulário de alteração deverá
obedecer às seguintes regras:
• As informações deverão ser obtidas através da base
de dados do Sistema.
• Os campos Nome, Estado, Cidade, Data de
80
Nascimento e E-mail deverão ser carregados.
• Os campos Foto, Repita o e-mail, Senha atual, Nova
senha e Confirme a senha deverão estar vazios.
RN2. Formulário de Cadastro
O preenchimento dos campos do formulário de cadastro
deverá obedecer às seguintes regras:
• Nome
o Descrição:
nome
do
usuário
que
quer
atualizar seu perfil.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
Somente serão aceitos caracteres A/a
– Z/z.
O tamanho não deverá ultrapassar 50
caracteres.
• Estado
o Descrição: estado em que reside o usuário
que quer atualizar seu perfil.
o Tipo: caixa de seleção (combobox)
o Obrigatório: não.
o Regras:
A caixa de seleção deverá conter os 27
estados brasileiros mais o Distrito
Federal.
• Cidade
o Descrição: cidade em que reside o usuário
que quer atualizar seu perfil
o Tipo: texto.
o Obrigatório: não.
o Regras:
O tamanho não deverá ultrapassar 30
81
caracteres.
• Data de Nascimento
o Descrição: data de nascimento do usuário
que quer atualizar seu perfil.
o Tipo: texto.
o Obrigatório: não.
o Regras:
O formato deverá ser dd/MM/yyyy.
À medida que o usuário digitar as
datas o Sistema deverá incluir as
barras que separam o dia, mês e ano.
Somente deverão ser aceitos números.
O tamanho da data deverá ser igual a
10.
A data deverá ser válida.
• Foto
o Descrição: foto do usuário que quer atualizar
seu perfil.
o Tipo: arquivo.
o Obrigatório: não.
o Regras:
O tamanho da foto deverá ser inferior a
500Kb.
Somente serão aceitos arquivos cuja
extensão é .gif, .jpg, .jpeg ou .png.
• E-mail
o Descrição:
e-mail do
usuário
que
quer
atualizar seu perfil.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
Somente deverão ser aceitos e-mails
válidos.
82
O tamanho máximo deverá ser de 50
caracteres.
Deverá fazer parte do login do usuário
para acesso às funcionalidades do
Sistema.
• Repita o e-mail
o Descrição: confirmação do e-mail informado
no campo anterior.
o Tipo: texto.
o Obrigatório: será obrigatório se o campo Email tiver sido alterado.
o Regras:
O conteúdo deverá ser exatamente
igual ao do campo E-mail.
• Senha atual
o Descrição: senha atual do usuário que quer
atualizar seu perfil.
o Tipo: senha (password).
o Obrigatório: sim.
o Regras:
O conteúdo deverá ser exatamente
igual à senha do usuário registrada na
base de dados.
• Nova senha
o Descrição: nova senha do usuário que quer
atualizar seu perfil.
o Tipo: senha (password).
o Obrigatório: não.
o Regras:
O tamanho da senha deverá ser de no
mínimo 6 e no máximo 12 caracteres.
Será a senha de acesso do usuário às
funcionalidades
do Sistema.
Junto
83
com o campo E-mail, deverá formar o
login do usuário.
• Confirme a senha:
o Descrição: confirmação da senha informada
no campo anterior.
o Tipo: senha (password).
o Obrigatório: será obrigatória se o campo
Nova senha for preenchido.
o Regras:
O conteúdo deverá ser exatamente
igual ao do campo Nova senha.
Pós-condição
Caso o usuário altere alguma informação, o Sistema
deverá armazenar os novos dados em sua base de dados.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
Tela 8 Editar Cadastro
84
11.1.7 Pesquisar Usuário
Nome do Caso de Uso Pesquisar Usuário
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário pesquise por outros no Sistema.
Atores
Usuário identificado/Administrador.
Pré-condições
O ator deverá ter se identificado no Sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Usuários.
P2.1. O Sistema apresenta os usuários cadastrados no
Sistema [RN1].
P2.2. O Sistema apresenta o formulário de pesquisa com
os campos: Nome, Estado e Cidade.
P3. O ator preenche os campos e os submete para que a
pesquisa seja realizada [RN2] [A1].
P4. O Sistema apresenta o resultado da pesquisa [RN3].
P5. O ator seleciona um resultado.
P6. O Sistema exibe o perfil do usuário selecionado [RN4].
P5. O caso de uso é encerrado.
Fluxos Alternativos
A1. Alterar página do resultado
A1.1. O ator seleciona uma página do resultado.
A1.2. O Sistema redireciona o ator para a página desejada,
mostrando a ele os resultados desta página.
A1.3. O Sistema retorna ao P2.1.
Fluxos de Exceção
Não se aplica.
Regras de Negócio
RN1. Apresentação dos usuários cadastrados
A apresentação dos usuários cadastrados deverá seguir as
seguintes regras:
• Ordenação alfabética.
• 20 usuários por página.
• Somente deverão ser mostrados Foto, Nome, Email, Cidade e Estado.
RN2. Formulário de Pesquisa
85
O preenchimento dos campos do formulário de pesquisa
deverá seguir as seguintes regras:
• Nome
o Descrição:
nome
do(s)
usuário(s)
que
será(ão) pesquisado(s).
o Tipo: texto.
o Obrigatório: não.
o Regras:
Somente serão aceitos caracteres A/a
– Z/z.
O tamanho não deverá ultrapassar 50
caracteres.
• Estado
o Descrição:
estado
em
que
reside
o(s)
usuário(s) que será(ão) pesquisado(s).
o Tipo: caixa de seleção (combobox)
o Obrigatório: não.
o Regras:
A caixa de seleção deverá conter os 27
estados brasileiros mais o Distrito
Federal.
• Cidade
o Descrição:
cidade
em
que
reside
o(s)
usuário(s) que será(ão) pesquisado(s).
o Tipo: texto.
o Obrigatório: não.
o Regras:
o O
tamanho
não
deverá
ultrapassar
30
caracteres.
RN3. Validação da pesquisa
A validação da pesquisa deverá seguir as seguintes
regras:
86
• Se nenhum campo for preenchido, o resultado será
a apresentação de todos os usuários cadastrados.
• Se mais de um campo for preenchido, o resultado
levará em consideração a combinação destes
campos.
RN4. Exibição do perfil de um usuário
A exibição do perfil de um usuário selecionado deverá
seguir as seguintes regras:
• Deverão ser mostrados: Foto, Nome, Cidade,
Estado, E-mail, Melhor tempo único, Melhor média
de tempos, Melhor Quantidade de Movimentos e
melhor Média de Quantidade de Movimentos.
• Um link “Deixar Recado” também deverá ser
exibido.
Pós-condição
Não se aplica.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
11.1.8 Enviar Mensagem Pessoal
Nome do Caso de Uso Enviar Mensagem Pessoal
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário envie uma mensagem a outro.
Atores
Usuário identificado/Administrador
Pré-condições
O ator deverá ter se identificado no Sistema.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Enviar recado na página de perfil de um usuário.
P2. O Sistema apresenta o formulário para envio de
recado com o campo: Recado. São também apresentadas
as opções Enviar e Limpar.
P3. O ator preenche e submete o campo [A1].
P4. O Sistema valida o formulário [RN1] [E1].
87
P5. O Sistema grava as informações em sua base de
dados [RN2].
P6. O Sistema apresenta a mensagem: “Recado enviado
com sucesso!”
P7. O caso de uso é encerrado.
Fluxos Alternativos
A1. Limpar recado
A1.1. O ator seleciona a opção Limpar.
A1.2. O Sistema limpa o campo Recado do formulário.
A1.3. O Sistema retorna ao P2.
Fluxos de Exceção
E1. Campo obrigatório Recado não foi preenchido.
E1.1. O Sistema verifica que o campo obrigatório Recado
não foi preenchido.
E1.2. O Sistema apresenta a mensagem: “O campo
Recado não foi preenchido”.
E1.3. O Sistema retorna ao P2.
Regras de Negócio
RN1. Formulário de recado
O campo Recado deverá seguir as seguintes regras:
• Recado
o Descrição: recado que um usuário deixará a
outro.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
Deverá
conter
no
máximo
400
caracteres.
RN2. Informações salvas na base de dados
O Sistema deverá salvar em sua base de dados o nome
dos usuários remetente e destinatário, além da data do
recado.
Pós-condição
O recado, remetente, destinatário e data deverão ser
salvos na base de dados do Sistema.
Pontos de Extensão
Não se aplica.
88
Características
Não se aplica.
suplementares
Tela 9 Enviar Mensagem Pessoal
11.1.9 Entrar Contato Administradores
Nome do Caso de Uso Entrar Contato Administradores
Breve Descrição
Este caso de uso tem como objetivo permitir que um
usuário envie uma mensagem aos Administradores do
Sistema.
Atores
Usuário
identificado
/
Usuário
não
identificado
/
Administrador
Pré-condições
Não se aplica.
Fluxo Principal
P1. O caso de uso inicia quando o ator seleciona a opção
Contato.
P2. O Sistema apresenta um formulário com o campo
Mensagem. São apresentadas também as opções Enviar e
Limpar.
P3. O ator preenche o formulário e o submete [A1].
89
P4. O Sistema valida o formulário [RN1] [E1].
P5. O Sistema envia a mensagem ao e-mail dos
administradores.
P6. O Sistema apresenta a mensagem: “Mensagem
enviada com sucesso!”.
P7. O caso de uso é encerrado.
Fluxos Alternativos
A1. Limpar mensagem
A1.1. O ator seleciona a opção Limpar.
A1.2. O Sistema limpa o campo Mensagem.
A1.3. O Sistema retorna ao P2.
Fluxos de Exceção
E1. Campo obrigatório Mensagem não preenchido
E1.1. O Sistema verifica que o campo obrigatório
Mensagem não foi preenchido.
E1.2. O Sistema apresenta a mensagem: “O campo
obrigatório Mensagem não foi preenchido”.
E1.3. O Sistema retorna ao P2.
Regras de Negócio
RN1. Formulário de mensagem
O formulário de mensagem deverá seguir as seguintes
regras:
• Mensagem
o Descrição: mensagem que será enviada aos
administradores do Sistema.
o Tipo: texto.
o Obrigatório: sim.
o Regras:
Deverá
conter
no
máximo
400
caracteres.
Pós-condição
A
mensagem
administradores.
Pontos de Extensão
Não se aplica.
Características
Não se aplica.
suplementares
deverá
ser
enviada
ao
e-mail
dos
90
11.2 Anexo II – Realização dos Casos de Uso Críticos
11.2.1 Acessar Tutorial 3D
11.2.1.1
Diagrama de Classes de Análise
91
11.2.1.2
Diagrama de Seqüência do Sistema
92
11.2.1.3
Diagrama de Seqüência
93
11.2.2 Treinar Cubo Virtual
11.2.2.1
Diagrama de Classes de Análise
94
11.2.2.2
Diagrama de Seqüência do Sistema
95
11.2.2.3
Diagrama de Seqüência
96
11.2.3 Jogar Cubo Virtual
11.2.3.1
Diagrama de Classes de Análise
97
11.2.3.2
Diagrama de Seqüência do Sistema
98
11.2.3.3
Diagrama de Seqüência
99
11.3 Anexo III - Notação dos Movimentos
Configuração inicial do Cubo Mágico:
As figuras a seguir ilustram as formas de manipulação do cubo que poderão
ser utilizadas. A figura correspondente a cada movimento representa a configuração
final do Cubo Mágico após a realização do movimento a partir da configuração inicial
representada acima.
Movimento R: Giro da camada da direita no sentindo horário
Movimento R’: Giro da camada da direita no sentindo anti-horário
Movimento L: Giro da camada da esquerda no sentindo horário
Movimento L’: Giro da camada da esquerda no sentindo anti-horário
100
Movimento F: Giro da camada da frente no sentindo horário
Movimento F’: Giro da camada da frente no sentindo anti-horário
Movimento B: Giro da camada de trás no sentindo horário
Movimento B’: Giro da camada de trás no sentindo horário
Movimento U: Giro da camada superior no sentindo horário
101
Movimento U’: Giro da camada superior no sentindo anti-horário
Movimento D: Giro da camada inferior no sentindo horário
Movimento D’: Giro da camada inferior no sentindo horário
Movimento X: Giro do cubo inteiro no mesmo sentido do movimento R
Movimento X’: Giro do cubo inteiro no mesmo sentido do movimento R’
102
Movimento Y: Giro do cubo inteiro no mesmo sentido do movimento U
Movimento Y’: Giro do cubo inteiro no mesmo sentido do movimento U’
Movimento Z: Giro do cubo inteiro no mesmo sentido do movimento F
Movimento Z’: Giro do cubo inteiro no mesmo sentido do movimento F’
Movimento M: Giro da camada que fica entre as camadas direita e esquerda
no sentido do movimento L
103
Movimento M’: Giro da camada que fica entre as camadas direita e esquerda
no sentido do movimento L’
Movimento E: Giro da camada compreendida entre as camadas superior e
inferior no sentido do movimento D
Movimento E’: Giro da camada compreendida entre as camadas superior e
inferior no sentido do movimento D’
Movimento S: Giro da camada compreendida entre as camadas da frente e de
trás no sentido do movimento F
Movimento S’: Giro da camada compreendida entre as camadas da frente e
de trás no sentido do movimento F’
104
11.4 Anexo IV - Apostila Nível Básico
Por Carlos Alberto de Alcântara Júnior
Introdução
Esta apostila contém uma explicação sucinta sobre o método de resolução do
cubo mágico por camadas e seus algoritmos (seqüências de movimentos). Os
desenhos a seguir são baseados na cor que escolhi para a cruz inicial, o branco,
mas pode ser feito em qualquer cor, para isso basta fazer o mesmo processo para
as cores equivalentes à que você escolheu. Estes são os nomes das peças:
Centros (6):
Cantos (8):
Meios (12):
Dicas gerais:
• A cor escolhida (no caso o branco) para a base, sempre deverá ficar virada
para baixo, então a resolução do cubo vai evoluindo como se constrói um
prédio, ou seja, de baixo para cima, camada por camada.
• As peças dos centros são a base da estrutura do cubo, então elas são fixas
em relação às outras peças centrais, ou seja, um cubo resolvido é quando as
peças de determinada cor se encontram organizadas em volta de seu centro
correspondente.
• Para posicionar seu cubo de acordo com as figuras, considere como face da
frente a face que se encontra mais voltada para frente no desenho.
Esta é a legenda dos movimentos que vamos usar:
Obs.: Os movimentos que estiverem seguidos por “2”, representam o giro
duplo da face correspondente. Exemplo: U2 quer dizer dois movimentos U seguidos.
Dica: Os movimentos seguidos por apóstrofo indicam o giro da face
correspondente no sentido anti-horário.
___________________________________________________________________
Primeira etapa: Resolvendo a cruz branca:
Este passo é bem intuitivo, não existem movimentos decorados a serem
feitos, basta entender o objetivo e tentar.
105
Para auxiliar, pode-se fazer uma cruz branca em volta do centro amarelo:
e em seguida deve-se alinhar algum meio branco da cruz feita com seu
centro correspondente e “jogar” a peça alinhada da vez para o centro branco (que é
o oposto do amarelo), realizando este mesmo processo para os 4 meios, concluindo
assim o primeiro passo que é obter a cruz branca com os lados adjacentes
corretamente alinhados.
Segunda etapa: Resolvendo a primeira camada:
Essa etapa também é bem tranqüila, e consiste em posicionar corretamente
os 4 cantos (um por vez) da camada de baixo. Podem acontecer os seguintes casos:
R U R’
F’ U’ F
R U2 R’ (que leva a um dos 2 casos anteriores)
Dica: Caso o canto esteja no lugar certo (na primeira camada), mas virado
para o lado errado em relação a si mesmo, aplicar R U R’ na peça que levará a
algum dos 3 casos.
Terceira etapa: Resolvendo a segunda camada:
Completando o passo anterior, vão ficar faltando apenas 4 peças (ou menos,
caso alguma já saia certa) para completar a segunda camada. Primeiramente devese procurar por um meio que não tenha amarelo (pois por enquanto estamos
interessados nas peças da segunda camada, e nenhuma delas tem adesivo
amarelo) e alinhá-lo com o centro da mesma cor, ficando como nas figuras a seguir.
Podem acontecer os seguintes casos:
U R U R’-> U’ F’ U’ F
U' F' U’ F -> U R U R'
Dica: Caso algum meio esteja no lugar certo, mas com as cores trocadas
entre si ou algum meio da segunda camada esteja no lugar de outro meio da mesma
106
camada, deve-se aplicar um destes dois movimentos, e algum dos 2 casos acima
será obtido. Repita este processo para os 4 meios, um por vez, e a segunda camada
será concluída.
Quarta etapa: Resolvendo a cruz da camada de cima:
Obs.: Caso a cruz já aparecer feita, pular para a próxima etapa.
Esta etapa é bem simples, o que tem a ser feito é apenas repetir um algoritmo
algumas vezes seguindo algumas regrinhas de posicionamento que a cruz amarela
estará pronta. Ignorando por enquanto os cantos e observando apenas os meios,
seu cubo pode estar de 3 formas:
Caso “p”
Caso “t”
Caso “o”
Caso “p”: F U R U’ R’ F’
Caso “t”: Fazendo o algoritmo do caso “p”, o próprio caso “p” será obtido,
bastando apenas repetir (F U R U’ R’ F’) mais uma vez.
Caso “o”: Fazendo o mesmo algoritmo (F U R U’ R’ F’), o caso “t” será obtido.
Dica: Atente-se para posicionar a camada de cima exatamente como mostram
as figuras (realizando o movimento U quantas vezes for necessário) para que o
algoritmo funcione.
Quinta etapa: Resolvendo a face de cima:
O movimento característico dessa etapa se chama “Sune” (R U R’ U R U2 R’)
e é bem fácil de memorizar, apesar de ser o maior apresentado até então. Nesta
etapa, uma atenção maior deve ser dada ao posicionamento da camada de cima
antes de realizar o movimento. Podem aparecer os seguintes casos genéricos
(observe o número de cantos que estão com o adesivo amarelo voltado para cima):
107
1 Canto: Aplicar “Sune”
2 cantos
0 cantos
1 canto: Neste caso, a face amarela está próxima de ser concluída. Quando o
movimento “Sune” for aplicado, ou a face amarela fica completa, ou este mesmo
caso será obtido, necessitando então que se posicione a camada de cima
corretamente e se faça o “Sune” mais uma vez.
2 cantos: Os dois cantos com amarelo para cima não necessariamente
estarão da forma do desenho, mas o número de cantos certos sendo 2, o que deve
ser observado é um adesivo amarelo da face da frente. Gire a camada de cima até
que algum fique como na figura (independente de onde estejam os outros adesivos
amarelos da frente), aplica-se o “Sune” e o primeiro caso será obtido.
0 cantos: Posicione a camada de cima de forma que algum adesivo
(novamente não importando o posicionamento dos restantes) fique como no
desenho, ou seja, na face da esquerda e aplique o “Sune”. Então será obtido o
primeiro caso.
Dica: Com o explicado no passo, o “Sune” será aplicado no máximo 3 vezes
para que a face amarela seja concluída. Se forem feitas 3 vezes e não terminar,
você posicionou a camada de cima de forma incorreta antes do movimento em pelo
menos uma das vezes.
Sexta etapa: Resolvendo os cantos da camada de cima:
Apesar do algoritmo desta etapa ser mais “chato”, o entendimento do que tem
a ser feito é bem simples. O objetivo é deixar todos os 4 cantos da camada de cima
nos respectivos lugares. Para isso, devem ser observados os dois casos possíveis:
Um lado certo
Nenhum lado certo
108
Um lado certo: Quer dizer que um dos 4 lados está com seu par de cantos da
mesma cor, como é o caso dos dois vermelhos da figura. Neste caso, esse par que
está certo deve ser virado para trás (com o movimento U2) e o seguinte algoritmo
deve ser feito: R’ F R’ B2 R F’ R’ B2 R2. Os cantos de todas as faces deverão ficar
alinhados.
Nenhum lado certo: Neste caso, faça o movimento do caso anterior (R’ F R’
B2 R F’ R’ B2 R2) em qualquer uma das 4 faces laterais, que o caso “um lado certo”
será obtido.
Sétima etapa: Resolvendo os meios da camada de cima:
Esta é a etapa final onde os meios serão permutados entre si para irem para
seus respectivos lugares. Dois casos são observados, o que os meios devem girar
no sentido anti-horário e o que eles devem girar no sentido horário.
-->
-->
(Vista de cima)
(Vista de cima)
Sentido anti-horário
Sentido horário
Anti-horário: Aplicar o algoritmo F2 U’ L R' F2 L' R U' F2.
Horário: Aplicar o algoritmo F2 U L R' F2 L' R U F2.
Dicas: Em ambos os casos, o lado que está com seu meio certo deve ficar
virado para trás. Observe que o movimento U dos dois casos (em destaque) é no
sentido em que o ciclo dos 3 meios vai girar, sendo esta a única diferença entre os
dois algoritmos. Algumas vezes vai acontecer de ter 4 meios por permutar, neste
caso, basta fazer um dos dois algoritmos que um meio irá para o lugar certo e um
dos dois casos será obtido.
Missão cumprida!
109
Agora é só praticar bastante para memorizar os algoritmos!
Para tirar dúvidas ou fazer comentários ou sugestões, mande e-mail para
[email protected]. Peça-me a apostila de nível intermediário para que você
possa aprimorar seu método, e, conseqüentemente, diminuir seus tempos.
Conheça também o fórum brasileiro de cubo mágico. Participe do ranking
nacional de velocidade e troque idéia com os melhores cubistas do país:
http://www.cubomagicobrasil.com/forum
Por Carlos Alberto de Alcântara Júnior
11.5 Anexo V - Apostila Nível Intermediário
Por Carlos Alberto de Alcântara Júnior
Agora que já dominamos o método básico, está na hora de começar a poupar
algumas repetições de movimentos conhecendo alguns casos mais específicos (de
nível intermediário). A ordem dos algoritmos dessa apostila foi escolhida de acordo
com a ordem que acredito que seja melhor para aprender, tanto pelo grau de
dificuldade quanto pelo fato de que os algoritmos que estão primeiro poupam mais
movimentos na resolução e/ou compensam mais serem aprendidos antes.
Esses a seguir são dois tipos de movimentos que vamos utilizar e que ainda
não tinham sido apresentados na primeira apostila:
110
Comecemos então pela orientação dos meios, da quarta etapa. Na apostila
básica foram apresentados os seguintes casos:
Caso “p”: F U R U’ R’ F’
Caso “i”
Caso “o”
Para todos eles, aprendemos a utilizar o algoritmo do caso “p” até que a cruz
ficasse pronta. Vamos melhorar isso. Quando obtivermos o caso “i”, faremos um
algoritmo parecido com o do caso “p”, mas que faz a cruz de uma vez: F R U R’ U’
F’. Quanto ao caso “o”, o algoritmo é o seguinte: M’ U M’ U M’ U M’ U M U M U M U
M U, que pode ser escrito como (M’ U)x4 (M U)x4 para simplificar.
Vamos agora à permutação dos meios, da última etapa. Vimos na apostila
básica que quando tivermos 4 meios errados, devemos fazer o movimento da última
etapa duas vezes, mas podemos fazer de uma vez só (se soubermos os algoritmos
específicos de cada caso). São duas combinações possíveis:
Caso “H”
M2’ U M2’ U2 M2’ U M2’
Caso “Z”
M2’ U M2’ U M’ U2 M2’ U2 M’ U2
Obs.: Os movimentos duplos (giros de 180°), na verdade tanto faz se
realizados no sentido horário ou anti-horário, mas os sentidos costumam ser
especificados com o objetivo de mostrar a maneira mais rápida de executar o
algoritmo de acordo com as posições que os dedos vão assumindo no cubo.
111
Outra parte da solução que podemos melhorar um pouco é a parte de
permutação dos cantos (sexta etapa da apostila básica). Lá vimos que o cubo
pode estar com um lado certo ou com nenhum como mostram as figuras:
Um lado certo
Nenhum lado certo
Quando ocorria o segundo caso, deveríamos repetir duas vezes o algoritmo
da etapa. Agora vamos aprender como terminar a etapa fazendo apenas uma vez.
Se cair o caso em que nenhum lado está certo, com qualquer um dos lados para
frente, devemos aplicar o seguinte algoritmo: (F R U’ R’ U’ R U R’ F’)(R U R’ U’ R’ F
R F’).
Obs.: O algoritmo está separado em duas partes (as entre parênteses) para
possamos dividi-lo e poder decorar um pedaço de cada vez, mas veja bem, isso é só
para facilitar um pouco. Para o resultado esperado ser atingido, a seqüência
completa deve ser executada.
Dica: Este algoritmo tem mais de uma utilidade. Com o cubo pronto,
experimente fazer antes a segunda parte e depois a primeira, ou até mesmo apenas
alguma das duas e reflita sobre os resultados.
Agora que já melhoramos a permutação de ambos os tipos de peça, é hora
de dar uma boa evoluída na orientação dos cantos. Depois que a cruz de cima já
está feita, são 7 combinações diferentes que podem aparecer. Vamos aprender o
algoritmo específico de cada caso. O primeiro, que já conhecemos, é o Sune. O
segundo é conhecido como anti-Sune, que é simplesmente o Sune feito no lado
esquerdo (como se fosse ao espelho). Os outros são novidades mesmo. Vamos aos
sete:
112
R U R’ U R U2 R’
L’ U’ L U’ L’ U2 L
R U2 R2 U’ R2 U’ R2 U2 R
R U R’ U R U’ R’ U R U2 R’
R2 D R’ U2 R D’ R’ U2 R’
R’ F’ L F R F’ L’ F
R’ F R B’ R’ F’ R B
Bom, ainda não falamos sobre melhoras nem da cruz, nem das duas
primeiras camadas. Quanto à cruz, na apostila passada aprendemos a fazer uma
cruz em volta do centro oposto e depois voltar para o centro certo. Obviamente fazer
a cruz diretamente em sua cor é mais rápido, não é? Comece a treinar isso. Mas
lembre-se, não basta fazer a cruz, preocupe-se também com o fato de que todos os
meios que a compõem devem corresponder às cores dos centros adjacentes.
Certo
Errado
Falemos agora sobre as duas primeiras camadas. Essa parte pode ser mais
complicada para alguns e mais divertida para outros. Por quê? Porque a maneira
que vamos aprender é uma maneira mais intuitiva, não sendo como as outras
etapas nas quais só se decoram movimentos e pronto.
Em vez de fazer antes a primeira camada e depois ir para a segunda, vamos
aprender a colocar as duas peças de uma vez no lugar (conhecido como F2L – First
2 Layers), o que ajuda poupar bastante tempo depois que estivermos com prática.
Basicamente temos esses 4 casos genéricos com resolução bem simples:
U’ F’ U F
U R U’ R’
R U R’
F’ U’ F
113
O que temos que fazer é procurar duas peças que formam um par de F2L
(por exemplo, a peça azul-vermelho com a peça azul-vermelho-branco) e colocá-las
na camada de cima sem que as duas estejam coladas uma na outra e sem que o
canto esteja com o branco virado para cima (vide exemplos abaixo). Quando
conseguirmos isso, intuitivamente devemos manipular as peças para encontrar
algum dos casos básicos acima.
Dica: Para manipular as peças que formam o par, gire o lado, gire em cima,
mas não se esqueça de devolver o movimento que fez girando o lado, para que a
cruz já feita não seja perdida.
Exemplos:
R’ U2 R
R’ U R
F' U F U2
R U2 R’ U’
R U2 R’
Essas 5 são algumas situações das diversas possíveis que podemos
encontrar. O algoritmo que temos para cada figura não é para resolver o par de F2L,
mas para levar a um dos 4 casos genéricos vistos acima. No começo provavelmente
vamos usar mais movimentos do que os descritos nos exemplos para encontrar um
caso genérico, mas o número de movimentos para isso tende a diminuir aos poucos
com a prática.
Observe que nos dois últimos exemplos temos o lado branco da peça virado
para cima. Esses dois casos são exemplos de como podemos ajeitar o lado branco
da peça (deixando-o virado para o lado) já conseguindo ao mesmo tempo obter
algum dos 4 casos básicos, com isso já começamos a ver como é possível
economizar movimentos se visualizarmos bem como os movimentos influenciam as
peças.
Dica: Antes de realizar um movimento buscando um caso genérico, verifique
se o movimento que vai fazer não vai tirar algum par que já está certo em seu lugar.
Caso seja constatado que isso ocorrerá, simplesmente gire as duas camadas de
baixo simultaneamente até que o lado que será mexido não contenha mais um par já
resolvido.
114
No começo, fazer por F2L vai ser um pouco mais lento do que fazer camada
por camada, como ensina a primeira apostila. Não desanime e continue treinando,
pois com um pouco de experiência, F2L provavelmente vai ajudar a diminuir, e
muito, seus tempos.
Quando estiver com o conteúdo dessa apostila todo já na ponta dos dedos,
muito facilmente você estará conseguindo resolver o cubo em menos de um minuto.
Bons treinos!
Qualquer dúvida sobre o conteúdo dessa apostila ou sobre speedcubing em
geral, envie por e-mail para [email protected] que ajudarei como puder.
Caso ainda não conheça o fórum brasileiro de cubo mágico, acesse:
www.cubomagicobrasil.com/forum. Participe do ranking nacional de velocidade e
troque idéia com os melhores cubistas do país.
Por Carlos Alberto de Alcântara Júnior