You are on page 1of 114

PR-REITORIA DE GRADUAO TRABALHO DE CONCLUSO DE CURSO

CINCIA DA COMPUTAO
SISCUBE SISTEMA TUTOR PARA CUBO MGICO

Autores: Bruno Cavalcanti Freitas Carlos Alberto de Alcntara Jnior Rodrigo Maciel Galvo Orientador: Prof. Dsc. Fbio Bianchi Campos

2008

BRUNO CAVALCANTI FREITAS CARLOS ALBERTO DE ALCNTARA JNIOR RODRIGO MACIEL GALVO

SISCUBE SISTEMA TUTOR PARA CUBO MGICO

Trabalho apresentado ao curso de graduao em Bacharelado em Cincia da Computao Catlica de da Universidade Braslia,

como requisito parcial para obteno do Ttulo de Bacharel em Cincia da Computao. Orientador: Prof. Dsc. Fbio Bianchi Campos Braslia 2008

Trabalho de autoria de Bruno Cavalcanti Freitas, Carlos Alberto de Alcntara Jnior e Rodrigo Maciel Galvo, intitulado SISCUBE Sistema Tutor para Cubo Mgico, requisito parcial para obteno do grau de Bacharel em Cincia da Computao, defendido e aprovado em 20/11/2008, pela banca examinadora constituda por:

______________________________________________ Prof. Dsc. Fbio Bianchi Campos

_____________________________________________ Prof. Dra Maristela Terto de Holanda

Braslia 2008

DEDICATRIA

A todos que nos acompanharam, no somente neste projeto, como tambm em mais esta etapa de vida, tornando possvel a conquista de mais um objetivo.

AGRADECIMENTOS

Primeiramente, agradeo a DEUS, que me deu fora, nimo, coragem e condies de concluir esse projeto e pela grande quantidade de conhecimento adquirido ao longo desses quatro anos. Agradeo minha me, pelas palavras de incentivo, e sempre confortantes, nas horas de dificuldades, ao meu pai, pelo apoio e empenho, me auxiliando nessa caminhada, aos meus irmos por saberem entender minhas horas de nervosismo e falta de pacincia, e minha namorada, por suportar com pacincia e extrema maturidade, meus momentos de ausncia. Agradeo ao professor Fbio Bianchi Campos, que nos ajudou com pacincia 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 no menos importante, agradeo 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

Agradeo ao Orientador Prof. Bianchi pelo incentivo, simpatia e presteza no auxlio s atividades e discusses sobre o andamento deste projeto final. Aos colegas de projeto Bruno e Rodrigo pelo comprometimento e dedicao. Aos colegas de classe pela espontaneidade e alegria na troca de informaes e materiais numa rara demonstrao de amizade e solidariedade. A minha famlia pela pacincia em tolerar a ausncia e por todo o auxlio por ela me dado. E, finalmente, a Deus pela oportunidade e pelo privilgio que me foi dado em compartilhar tamanha experincia de aprendizado. Carlos Alberto de Alcntara Jnior

Agradeo a todo corpo docente do curso de Cincia da Computao da Universidade Catlica de Braslia pelo conhecimento transmitido ao longo destes quatro anos e em especial ao Prof. Dr. Fbio Bianchi Campos por ter-nos direcionado na aplicao deste conhecimento e nos incentivado a saber mais e a fazer o nosso melhor. Agradeo a todos que conheci durante esta jornada e em especial aos amigos Bruno e Carlos, por acreditarem em mim e no nosso projeto. Agradeo aos meus amigos, aos meus irmos consangneos e carinhosamente minha namorada pelo apoio e principalmente pelos momentos de unio, alegria e confraternizao que foram essenciais para que eu tivesse fora para prosseguir. Agradeo, acima de tudo, aos meus pais, pelo amor, carinho, compreenso, educao, 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 Galvo

EPGRAFE

Dar menos que o seu melhor sacrificar o dom que recebeu. Steve Prefontaine

RESUMO

Este projeto apresenta o produto em desenvolvimento do trabalho de concluso do curso de Cincia da Computao da UCB, que consiste na criao de um sistema tutor cuja finalidade transmitir ao usurio a competncia para resolver o cubo mgico. Inicialmente, na disciplina de Inteligncia Artificial, foi desenvolvido um aplicativo capaz de resolver o cubo mgico a partir de qualquer configurao. Posteriormente, devido ao interesse das pessoas em aprender sobre sua resoluo, incorporou-se a idia de integrar um tutorial interativo ao sistema j existente. Basicamente, o tutorial funciona da seguinte maneira: o usurio seleciona a etapa que deseja aprender e o sistema retorna o cubo configurado conforme a opo escolhida. A partir da, usurio e sistema interagem at que o aprendizado da etapa seja concludo. Este processo envolve algoritmos consideravelmente complexos, haja visto o nmero de possibilidades mapeadas, a anlise para a deciso dos movimentos a serem realizados e as explicaes correspondentes a serem apresentadas.

Palavras-chave: Cubo Mgico. 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 its user to solve the Rubiks Cube. Initially, at the discipline of Artificial Intelligence, an application able to solve the Rubiks 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: Rubiks cube. Tutorial.

LISTA DE ILUSTRAES Figura 1.1 Projeto de Inteligncia Artificial em duas dimenses............................... 18 Figura 4.1 Tipo de Cubo Mgico .............................................................................. 27 Figura 4.2 Centros .................................................................................................... 28 Figura 4.3 Cantos ..................................................................................................... 28 Figura 4.4 Meios ....................................................................................................... 28 Figura 4.5 Estrutura interna do cubo mgico ............................................................ 28 Figura 4.6 Localizao e orientao dos cantos....................................................... 29 Figura 4.7 Localizao e orientao dos meios........................................................ 30 Figura 4.8 Localizao e orientao dos centros ..................................................... 30 Figura 4.9 Aplicativo Rubiks Cube ........................................................................... 31 Figura 4.10 Matriz tridimensional.............................................................................. 33 Figura 4.11 Rtulos de cada posio da matriz........................................................ 33 Figura 4.12 Resultado da execuo do movimento R .............................................. 34 Figura 5.1 Representao do ciclo de vida do PU.................................................... 36 Figura 5.2 Logomarca Java ...................................................................................... 38 Figura 7.1 Modelo de Domnio ................................................................................. 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 Nveis 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 Usurio .......................................................................................... 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 Glossrio ................................................................................................. 48

SUMRIO 1 1.1 1.2 1.3 1.4 2 2.1 2.2 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 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.7.1 4.7.2 5 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.2 5.2.1 5.2.2 INTRODUO .......................................................................................... 17 Motivao ................................................................................................ 17 Breve Histrico ....................................................................................... 17 Problemas Diagnosticados .................................................................... 19 Usurios do Sistema............................................................................... 19 OBJETIVOS ............................................................................................. 20 Objetivo Geral ......................................................................................... 20 Objetivo Especfico ................................................................................. 20 PROPOSTA DO SISTEMA....................................................................... 21 Descrio do Sistema Proposto ............................................................ 21 Resultados Esperados ........................................................................... 21 Restries do Sistema Proposto ........................................................... 22 Recursos Necessrios para Execuo ................................................. 23 Descrio do Hardware Ideal ................................................................. 23 Descrio do Hardware Mnimo............................................................. 23 Descrio do Software ........................................................................... 23 Configurao da Rede ............................................................................ 23 Fontes dos Softwares Necessrios ....................................................... 23 reas Afetadas pelo Novo Sistema ....................................................... 23 CONTEXTUALIZAO DO TEMA PROPOSTO ..................................... 25 Cubo mgico Histrico e Informaes............................................... 25 Cenrio do Speedcubing ........................................................................ 26 Cubos Mgicos mais conhecidos ......................................................... 26 Estrutura Fsica do Cubo Mgico .......................................................... 27 O Cubo Virtual ......................................................................................... 29 Interface entre Inteligncia e Viso ....................................................... 32 Matriz, a parte Inteligente do Cubo ....................................................... 33 Representao ........................................................................................ 33 Execuo de Movimentos ...................................................................... 34 PLANEJAMENTO DO PROJETO ............................................................ 35 Plano do Processo de Desenvolvimento .............................................. 35 Ciclo de Vida do Projeto ......................................................................... 35 Mtodos de Desenvolvimento e Ferramentas CASE ........................... 36 Linguagens de Programao ................................................................. 37 Ambiente de Hardware para Desenvolvimento .................................... 38 Plano de Organizao............................................................................. 39 Equipe de Gerncia ................................................................................ 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 6 6.1 6.2 6.3 6.4 6.5 6.6 7 7.1 7.2 7.3 7.4 8 9 10 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

Plano de Acompanhamento ................................................................... 39 Marcos e Pontos de Controle ................................................................ 40 Mtodos de Acompanhamento e Controle ........................................... 41 Anlise e Gerncia de Riscos ................................................................ 41 Plano de Documentao ........................................................................ 43 Documentos do Projeto.......................................................................... 43 Plano de Recursos e Produtos .............................................................. 44 Recursos Humanos ................................................................................ 44 Recursos de Hardware ........................................................................... 44 Recursos de Software ............................................................................ 44 Cronograma............................................................................................. 44 Glossrio ................................................................................................. 47 ESPECIFICAO DOS REQUISITOS DO SISTEMA.............................. 49 Descrio do Problema .......................................................................... 49 Identificao dos Interessados .............................................................. 49 Descrio das necessidades dos interessados ................................... 49 Descrio das caractersticas do sistema ............................................ 49 Requisitos do software........................................................................... 50 Restries................................................................................................ 51 DIAGRAMAS UML ................................................................................... 52 Modelo de Domnio ................................................................................. 52 Viso Geral dos Casos de Uso e Atores ............................................... 53 Modelo de Arquitetura ............................................................................ 54 Diagrama de Implantao....................................................................... 55 DIFICULDES ENCONTRADAS ................................................................ 56 CONCLUSO ........................................................................................... 57 BIBLIOGRAFIA ........................................................................................ 58 ANEXOS ................................................................................................... 59 Anexo I Especificao dos Casos de Uso ......................................... 59 Efetuar Login ........................................................................................... 59 Acessar Tutorial 3D ................................................................................ 61 Treinar Cubo Virtual................................................................................ 65 Jogar Cubo Virtual .................................................................................. 67 Cadastrar Usurio ................................................................................... 71 Editar Cadastro ....................................................................................... 77 Pesquisar Usurio .................................................................................. 84 Enviar Mensagem Pessoal ..................................................................... 86 Entrar Contato Administradores ........................................................... 88 Anexo II Realizao dos Casos de Uso Crticos ............................... 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 Anlise .............................................................. 90 Diagrama de Seqncia do Sistema ......................................................... 91 Diagrama de Seqncia............................................................................ 92 Treinar Cubo Virtual................................................................................ 93 Diagrama de Classes de Anlise .............................................................. 93 Diagrama de Seqncia do Sistema ......................................................... 94 Diagrama de Seqncia............................................................................ 95 Jogar Cubo Virtual .................................................................................. 96 Diagrama de Classes de Anlise .............................................................. 96 Diagrama de Seqncia do Sistema ......................................................... 97 Diagrama de Seqncia............................................................................ 98 Anexo III - Notao dos Movimentos..................................................... 99 Anexo IV - Apostila Nvel Bsico ......................................................... 104 Anexo V - Apostila Nvel Intermedirio ............................................... 109

17

1 1.1

INTRODUO Motivao Com o decorrer dos ltimos meses, o nosso interesse fez com o que o cubo

mgico se tornasse parte do nosso cotidiano e inmeras vezes nos encontramos com pessoas que tambm se interessam em aprender e brincar com o cubo mgico. Todavia, devido complexidade em resolv-lo e ao fato de no existirem fontes to didticas e dinmicas de aprendizado, muitos aprendizes acabam desistindo do desafio de concluir os passos necessrios para sua resoluo. Devido a estes problemas, o projeto prope um tutorial dinmico, onde o usurio poder interagir com um cubo mgico virtual1 representado em trs dimenses, manipulando-o da forma que quiser e recebendo dicas e orientaes do sistema quanto s etapas de resoluo2. Acreditamos que com essa ferramenta de aprendizado, mais pessoas se interessaro em conhecer um pouco mais sobre este quebra-cabea sensacional e sobre os benefcios mentais que ele proporciona. 1.2 Breve Histrico O passatempo de resolver o cubo mgico j praticado pelos integrantes do grupo h algum tempo, e durante a disciplina de Inteligncia Artificial (IA), na Universidade Catlica de Braslia surgiu a seguinte idia: fazer com que o computador resolvesse o cubo mgico a partir de qualquer configurao. Para atingir o objetivo final deste projeto de disciplina uma primeira verso cujo foco era criar uma estrutura que possibilitasse a resoluo e traduo do algoritmo bsico de resoluo3 foi desenvolvida. Esta estrutura tinha que resolver dois problemas: representar o cubo em memria e permitir a execuo dos movimentos. Depois de criada a estrutura, foi obtido um programa que resolvia o cubo mgico a partir de qualquer configurao e realizava movimentos feitos pelo usurio, com uma interface em duas dimenses, conforme a figura a seguir:
1 2

Representao do cubo mgico em um computador. Normalmente, ser referenciado apenas como cubo virtual. O mtodo de resoluo abordado no projeto o mtodo de resoluo por camadas, que consiste na resoluo de uma camada do cubo mgico por vez. A melhor forma de aprendlo dividindo o processo de aprendizado em partes, denominadas etapas de resoluo. Mais detalhes podem ser vistos no Anexo III Apostila Bsica. o algoritmo que apresenta os passos mais simples e compreensveis para resoluo do cubo mgico. Em contrapartida, normalmente so executados mais movimentos.

18

Figura 1.1 Projeto de Inteligncia Artificial em duas dimenses

Finalizada a primeira etapa, foi verificado que era difcil ver e compreender o que acontecia. Com isso, foi decidido migrar a interface existente para uma que fornecesse ao usurio maior interao e compreenso. Para desenvolv-la, foi iniciada uma pesquisa para descobrir como criar interfaces em trs dimenses. Numa dessas pesquisas, foi descoberto o aplicativo Rubik's Cube. O aplicativo Rubik's Cube foi desenvolvido pelo suo Werner Randelshofer e se caracteriza como software livre, pois segue a filosofia GNU ou GPL (General Public License). Com isso, seu cdigo estava disponvel e as alteraes necessrias puderam ser feitas. Em contrapartida, o SISCUBE deve obedecer s regras da licena, se caracterizando tambm como software livre. Internamente, o aplicativo de Werner possui mtodos que possibilitam a realizao de movimentos no cubo virtual. Com isso, restava ao grupo descobrir como mandar movimentos ao Rubiks Cube a partir do projeto inicial que resolvia o cubo mgico. Depois de finalizada a parte de integrao entre inteligncia (soluo do grupo) e interface (aplicativo 3D), a proposta para o projeto da disciplina de IA estava concluda.

19

1.3

Problemas Diagnosticados Conforme dito no tpico 1.2, o aplicativo obtido na disciplina de IA era

constitudo por duas partes: a inteligncia e a interface em trs dimenses, que se integravam muito bem e possibilitavam a percepo real dos movimentos que eram executados no cubo virtual. No entanto, apesar de possuir uma boa representao visual, a aplicao no permitia que o usurio aprendesse, efetivamente, a resolver o cubo mgico, pois seus movimentos eram executados de forma seqencial, sem intervalos e sem explicaes. No havia diviso do processo de resoluo em partes, dificultando o entendimento de um leigo do que era feito e do por que era feito. Resumindo, a aplicao apenas possibilitava que um usurio realizasse movimentos em um cubo virtual e visse que ele est sendo resolvido pelo sistema. 1.4 Usurios do Sistema Usurios representam as diferentes pessoas que usam o sistema ou produto. Definindo mais formalmente, so aqueles que se comunicam com o sistema e a ele so externos (PRESSMAN, 2006). No SISCUBE, os usurios do sistema so aqueles que possuem acesso Internet e ao entrarem no stio do projeto exploram pelo menos uma de suas funcionalidades. Dividem-se em usurios identificados e no identificados e administradores. Os usurios identificados so aqueles que se cadastraram no sistema e que atravs do nome de usurio e senha, definidos durante o cadastro, usufruem de todas as funcionalidades disponveis no stio do projeto. J os usurios no identificados so aqueles que ainda no se cadastraram ou no se identificaram no stio do projeto. Em conseqncia, no usufruem de muitas funcionalidades disponveis. Por sua vez, os administradores so aqueles que podem, alm de executar todas as funcionalidades de um usurio identificado, gerenciar o sistema (usurios, agenda de notcias, etc.).

20

2 2.1

OBJETIVOS Objetivo Geral Este projeto tem como objetivo principal transmitir ao usurio a competncia

para resolver o cubo mgico, dando a possibilidade do mesmo praticar os conhecimentos recm adquiridos, para que sejam fixados mente de forma mais eficiente. 2.2 Objetivo Especfico Para atingir o objetivo geral de maneira eficiente, uma srie de objetivos especficos deve ser alcanada: Desenvolver um tutorial dinmico e interativo sobre a resoluo do cubo mgico, que proporcione facilidades para o entendimento do usurio, como por exemplo: o Fazer com que uma pea seja visualmente destacada quando pertinente. o Ajustar os movimentos do cubo para que sejam mais bem compreendidos por um iniciante. o Adicionar explicaes por escrito aos passos executados pelo cubo virtual. Desenvolver um site para disponibilizar mais facilmente aos usurios o acesso s funcionalidades da aplicao. Permitir no site que os usurios interajam entre si para trocar idias, tirar dvidas, etc. Permitir ao usurio treinar no cubo virtual os conhecimentos adquiridos. Oferecer funcionalidades adicionais como cronometragem para que o usurio acompanhe seu progresso.

21

3 3.1

PROPOSTA DO SISTEMA Descrio do Sistema Proposto O SISCUBE Sistema Tutor para Cubo Mgico um sistema que visa

ensinar passo a passo, de forma interativa e didtica como funciona o Mtodo de Resoluo por Camadas do cubo mgico. Sua caracterstica interativa justificada por dois fatores: a forma bidirecional com que a comunicao entre o sistema e seus usurios ocorre e a disposio de informaes de forma no seqencial, que permite que os usurios estabeleam o caminho a ser trilhado, navegando em etapas de diferentes nveis4. J a caracterstica didtica se justifica no prprio significado da palavra: arte ou tcnica de ensinar; elemento transformador da teoria na prtica. Didaticamente, o sistema buscar traduzir fielmente os conhecimentos do especialista no Mtodo de Resoluo por Camadas. Seguindo-se estes princpios, o usurio ir se deparar com diferentes casos de resoluo, que sero claramente explicados pelo sistema. Em relao ao projeto desenvolvido na disciplina de IA Inteligncia Artificial so notveis os aspectos diferenciadores. Enquanto que no projeto inicial o cubo mgico simplesmente se resolvia a partir de qualquer estado, no novo sistema ser possvel aprender e compreender a resoluo do cubo e de cada movimento executado. O usurio poder tambm praticar os ensinamentos adquiridos a partir da etapa que desejar e medir a melhoria de seu desempenho atravs da marcao de tempos. 3.2 Resultados Esperados Os jogos de raciocnio lgico esto cada vez mais presentes na vida das pessoas e o motivo simples: alm de diverti-las, so teis no desenvolvimento de suas habilidades mentais. Ao observar o cubo mgico em seu estado embaralhado e sabendo qual o objetivo de cada etapa, a viso do todo obtida. E mais, ao observar a disposio das cores, inicia-se o desenvolvimento do raciocnio lgico, pois necessrio pensar
4

So os nveis de aprendizado disponveis no sistema. Dividem-se em Iniciante e Intermedirio e variam de acordo com o grau de complexidade dos algoritmos utilizados na resoluo do cubo virtual.

22

em como colocar uma pea em determinado lugar, sem que com isso outras peas j arrumadas sejam bagunadas. Com isso, o jogador estabelece metas e medida que o jogo se desenvolve ele procura atingi-las. A partir da da viso do todo, do objetivo final e metas so desenvolvidas ou melhoradas: a perspiccia, a pacincia, a determinao, a competncia, o planejamento e desenvolvimento de estratgias, a concentrao e o foco, a viso espacial, a anlise sistemtica e matemtica e a lgica de raciocnio. Os benefcios que o cubo mgico e outros jogos de lgica, como sudoku e xadrez trazem para o ser humano so: estmulo da atividade mental, melhoria da memria e da clareza mental e a manuteno do crebro mais jovem, dentre outros. Atravs dos benefcios e do desenvolvimento ou melhoria das capacidades citados, jovens e crianas podem ter seu desempenho escolar melhorados. No entanto, os benefcios atingem tambm idades mais avanadas, ajudando, por exemplo, na preveno de doenas mentais como o Mal de Alzheimer. Estudos comprovam que a prtica deste tipo de jogo ativa os lbulos frontais do crebro, responsveis pela capacidade de processamento, em particular a memria. 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 raciocnio ideal para estimular o pensamento criativo, bem como para melhorar o coeficiente intelectual e emocional, levando s pessoas uma vida melhor e mais saudvel. 3.3 Restries do Sistema Proposto Duas restries foram identificadas no projeto: a dimenso do cubo e o mtodo de resoluo abordados. A primeira caracterizada pelo foco ao cubo mgico de dimenso 3x3x3. J a segunda, pela implementao de um nico mtodo de resoluo: o Mtodo de Resoluo por Camadas. Apesar de fazerem parte do escopo do projeto, as demais dimenses e mtodos de resoluo no sero implementados no sistema. Detalhes sobre o assunto so abordados no captulo 4.

23

3.4

Recursos Necessrios para Execuo

3.4.1 Descrio do Hardware Ideal Processador: Pentium D 1.66 GHz Memria RAM: 1GB 3.4.2 Descrio do Hardware Mnimo Processador: Pentium 4 1.3 GHz Memria RAM: 512MB 3.4.3 Descrio do Software Sistema Operacional: qualquer um que suporte a Mquina Virtual Java, como Linux, Windows e MacOS. Mquina Virtual Java 5.0 ou superior. Browser: Internet Explorer 6 ou superior, Mozilla Firefox 2.0 ou superior. 3.4.4 Configurao da Rede Placa de Rede Ethernet 10/100 ou superior. Acesso Internet. 3.4.5 Fontes dos Softwares Necessrios Mquina 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 tpico 3.2, o cubo mgico traz diversos benefcios mentais para quem o pratica. A concluso desse projeto afetar todas as pessoas que tm interesse em resolver o cubo mgico, seja por curiosidade, por querer exercitar a mente ou mesmo por tentar concluir um desafio de infncia. O projeto poder ser utilizado como atividade extracurricular nos colgios, auxiliando no desenvolvimento

24

da capacidade das crianas e adolescentes e servindo tambm como evidenciao de alunos com potencial diferenciado. Alm disso, o projeto afetar na rea do Speedcubing5, pois ajudar a trazer novos atletas. A popularizao do esporte far com que os atletas tenham mais condies de competir e realizar competies, visto que tero mais chances de conseguir patrocnios para ajudar em viagens e acessrios.

Esporte em que os praticantes procuram resolver o cubo mgico no menor tempo possvel. Mais detalhes sero vistos no captulo 4.

25

4 4.1

CONTEXTUALIZAO DO TEMA PROPOSTO Cubo mgico Histrico e Informaes O cubo de Rubik (ou tambm chamado o cubo mgico) um quebra-cabea

tridimensional, inventado pelo hngaro, Ern Rubik em 1974 para ilustrar o conceito de simetria (precursor da Teoria de Grupos da matemtica): Erno Rubik inspirou-se em quebra-cabeas j conhecidos para a criao do cubo mgico, como o Tangram. No incio, a idia de criar um mecanismo para sustentar os cubos parecia impossvel, devido grande quantidade de movimentos existentes, mas Rubik acabou encontrando a soluo 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 visualizao dos movimentos realizados fosse obtida. Em 1978 o cubo comeava 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 mgico" pelo seu inventor, mas o nome foi alterado pela Ideal Toys para cubo de Rubik em 1980. Neste mesmo ano, ganhou o prmio alemo do "Jogo do Ano" (Spiel des Jahres). [WIKIPDIA] Em 1985 os direitos autorais sobre o cubo foram comprados por Seven Towns, que o relanou no mercado, obtendo muito sucesso. Atualmente Erno Rubik e Seven Towns trabalham prximos. Rubik est engajado a descobrir novos quebracabeas e continua sendo o principal beneficiado com sua inveno. O cubo de Rubik um cubo geralmente fabricado em plstico e possui vrias verses, sendo a verso 3x3x3 a mais comum, composta por seis faces de seis cores diferentes com um total de 54 peas, com arestas de aproximadamente 5,5 cm. Outras verses menos conhecidas so a 2x2x2, e de 4x4x4 a 7x7x7. considerado um dos brinquedos mais populares do mundo, atingindo um total de 300 milhes de unidades vendidas, bem como suas diferentes imitaes. O desejo de ver as seis faces do cubo organizadas atingia todas as idades e profisses. Foram lanados mais de 60 livros para ajudar tais pessoas. Nenhum outro quebra-cabea teve tantos adeptos, o que o torna um brinquedo genial.

26

O nmero de combinaes possveis que pode ser obtida com o cubo mgico de 43.252.003.274.489.856.000 (43 quintilhes), o que demonstra como um simples brinquedo colorido pode ser to complexo de ser resolvido. 4.2 Cenrio do Speedcubing Quando lanado na dcada de 80, o cubo mgico era considerado um desafio praticamente impossvel de ser concludo. Tinha-se a impresso de que apenas as mentes mais brilhantes conseguiriam desvendar o grande mistrio que frustrou milhares de pessoas durante dcadas. 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 tcnicas de resoluo do brinquedo. Com o passar do tempo, mais pessoas se interessaram em aprender esses mtodos e aos poucos as tcnicas foram melhoradas, bem como novas foram desenvolvidas. Hoje em dia considerado esporte, com vrias modalidades: resolver com as duas mos, com apenas uma, vendado e at mesmo com os ps. Ganha quem deixa apenas uma cor em cada lado do cubo em menos tempo. Aos poucos o cenrio do speedcubing (como conhecido) vem ganhando espao na mdia e despertando interesse de patrocinadores. O vencedor do campeonato mundial de 2007, disputado na Hungria, levou para casa o prmio de cinco mil euros. No Brasil, esse movimento est comeando e vem mostrando um grande potencial de evoluo. J foram realizadas duas competies oficiais e h previso de outras para um futuro prximo. Na televiso brasileira, algumas reportagens sobre o cubo, seus praticantes e competies tm sido exibidas. J existem diversos sites em portugus contendo tutoriais, dicas e outras utilidades acerca do tema. E tudo isso tende a crescer exponencialmente. 4.3 Cubos Mgicos mais conhecidos Este projeto faz abordagem apenas do cubo mgico convencional, que possui dimenses 3x3x3. Alm dele, existem dezenas de outros quebra-cabeas

27

tridimensionais, tanto em formato de cubo como de diversos outros. Os mais populares so os seguintes:

a) 3x3x3 convencional

b) 2x2x2

c) 4x4x4

d) 5x5x5

e) Megaminx

f) Pyraminx

g) Square-1

h) Rubiks Magic

i) Rubiks Master Magic Figura 4.1 Tipo de Cubo Mgico

j) Rubiks Clock

4.4

Estrutura Fsica do Cubo Mgico Algumas pessoas passam a entender melhor o funcionamento do cubo

quando o desmontam e vem sua estrutura interna, o que faz quebrar a idia que muitos tm de que cada cor se movimenta sozinha, e no trs a trs 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 mgico possui uma estrutura interna que permite girar qualquer uma das faces infinitas vezes em qualquer sentido, pois as peas no so presas por elsticos 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 peas coloridas so chamadas de Centros, so seis e so peas que no se movem entre si, o que se deve ao fato de serem fixas por parafusos ao ncleo, que uma pea de borracha em forma de estrela de seis pontas. A figura 4.3 representa as quinas do cubo, peas comumente chamadas de Cantos e que possuem trs cores cada. Estas peas so oito, logo podem ocupar oito posies diferentes e podem estar giradas de trs formas em relao a seu prprio eixo. Por fim, na figura 4.4 as arestas que esto coloridas so chamadas de Meios e cada uma possui duas cores diferentes. Estas peas so doze, logo podem ocupar doze posies diferentes e pode estar giradas de duas formas em relao a seu prprio eixo. Os cantos no podem ocupar o lugar dos meios e vice-versa.

Figura 4.5 Estrutura interna do cubo mgico Fonte: www.9spuzzles.com

29

Como pode ser observado na figura 4.5, as peas 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 Rubiks Cube, apresentado no tpico 1.2, alguns pontos importantes foram observados. Segundo Christoph [BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud RANDELSHOFER, Werner]: Localizao e orientao 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 peas de cantos existentes no cubo mgico. Quanto orientao dos cantos, o identificador n est presente na matriz cantoOrientacao[n], onde n varia entre os valores 0 (orientao inicial), 1 (canto girado no sentido anti-horrio) e 2 (canto girado no sentido horrio). A figura 4.6 representa a ilustrao grfica desta parte do modelo. Nos nmeros em ponto flutuante, o valor antes do ponto indica a localizao dos cantos (os valores da matriz) cantoLocalizacao[n] e os valor depois do ponto indicam a orientao deles (cantoOrientacao[n]). 6.0 5 6.1 4 7.2 1.1 1.2 1.0 2 7.0 5.0
Figura 4.6 Localizao e orientao dos cantos

4.0 2.0 2.2 0 3.1 3.0 3.2 2.1 1 5.1 5.2 4.2 4.1 3 7.1 6.2

0.2

0.0 0.1

Localizao e orientao 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 peas de meios existentes no cubo mgico. Quanto a orientao dos meios, o identificador n est presente na matriz meioOrientacao[n], onde n varia entre os valores 0 (orientao inicial) e 1 (meio

30

movido). A figura 4.7 representa a ilustrao grfica desta parte do modelo. Nos nmeros em ponto flutuante, o valor antes do ponto indica a localizao dos meios (os valores da matriz) meioLocalizacao[n] e os valor depois do ponto indica a orientao deles (meioOrientacao[n]). 6.1 5 0.1 0.0 0 2.0 2.1 2 8.1

9.0 10.0 9.1 4 11.1 1.0 1.1 11.0

3.0 4.1 5.0 4.0 3.1 1 5.1 7.0 7.1 6.0 3 8.0 10.1

Figura 4.7 Localizao e orientao dos meios

Localizao e orientao 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 mgico e cada centro usado como referncia para a determinao de uma face. Quanto a orientao dos centros, o identificador n est presente em uma matriz centroOrientacao[n], onde n varia entre os valores 0 (orientao 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 ilustrao grfica desta parte do modelo. Nos nmeros em ponto flutuante, o valor antes do ponto indica a localizao dos centros (os valores da matriz) centroLocalizacao[n] e os valores depois do ponto indicam a orientao deles (centroOrientacao[n]). .1 5 .3 .2 0 .0 .3 2 .1

.0 .0 .1 4 .3 .2 .1 .2

.2 .3 .0 .2 .3 1 .1 .0 .3 .0 3 .2 .1

Figura 4.8 Localizao e orientao dos centros

31

As trs propriedades do modelo citadas acima descrevem as configuraes bsicas sobre posicionamento das peas em relao a si mesmas e em relao s demais. Foi fundamental entend-las para dar prosseguimento ao projeto. Resumindo o modelo, possvel dizer que ele se caracteriza por atribuir um valor a cada pea do cubo virtual e por considerar o posicionamento de cada pea em relao posio inicial ocupada por elas. A partir desse modelo, so criadas outras trs estruturas necessrias para a realizao dos movimentos em um cubo, explicadas a seguir: - Indicao do eixo (X, Y, Z) em que o movimento ser realizado. Por se tratar de um cubo mgico, as trs dimenses devem ser consideradas, mesmo com o cdigo baseado em bibliotecas para desenhos em duas dimenses. Desse modo, cada eixo possibilita a movimentao de trs camadas do cubo, quem tm seu centro transpassado pelo eixo em questo. Para exemplificar, considere a Figura 4.18 e tambm que a face frontal a face na cor azul, a superior na cor amarela e a direita na cor vermelha. Quando for necessria a realizao 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 Rubiks Cube

- Possibilidade de escolher qual combinao de camadas em relao 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 Notao dos Movimentos.

32

referncia 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 horrio e antihorrio. A partir das informaes citadas acima, todas as operaes com o cubo virtual so implementadas e disponibilizadas ao usurio em uma tela, construda sobre um componente JAVA, com o nome de Canvas, que faz parte do pacote 'java.awt'. Esse componente possibilita a construo de uma rea na tela em que possvel a insero e a renderizao do cubo virtual, alm das aes disponibilizadas ao usurio. 4.6 Interface entre Inteligncia e Viso A integrao da parte inteligente do Sistema Tutor com o cubo virtual (parte de interface) acontece de forma bem simples, sendo necessrio conhecer as combinaes de parmetros necessrias para a realizao dos movimentos. O mtodo chamado para a efetivao do movimento no cubo virtual tem a seguinte assinatura: public void transform(int axis, int layerMask, int angle). Os parmetros tm 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 combinao 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 horrio), -1(volta de 90 no sentido antihorrio), 2(volta de 180 no sentido horrio) e -2(volta de 180 no antisentido horrio). Atravs do conhecimento desta estrutura, foi possvel a realizao de diversos movimentos no cubo virtual. A classe que contm esse mtodo criada no momento da criao da Classe de interface com o jogador, viabilizando seu acesso.

33

4.7

Matriz, a parte Inteligente do Cubo O cubo mgico utilizado no projeto possui dimenso 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, so compostas por nove quadrados, que somados do um total de 54. A fim de tornar possvel a representao de todas as peas do cubo foi implementada uma matriz tridimensional. Sua primeira posio representa as faces, variando de zero a cinco. As outras duas posies representam a localizao 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 possvel representar os 54 quadrados do Cubo Mgico. 4.7.1 Representao A fim de se obter uma melhor visibilidade do que acontece com a matriz, foi desenvolvida uma interface de duas dimenses 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

19 22 25

20 23 26

Figura 4.11 Rtulos de cada posio da matriz

34

4.7.2 Execuo de Movimentos Independente da origem (usurio 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 Notao dos Movimentos seja executado, as seguintes permutaes ocorrem entre os elementos da matriz: [0][0][2] [5][0][2]; [0][1][2] [5][1][2]; [0][2][2] [5][2][2]; [5][0][2] [2][2][0]; [5][1][2] [2][1][0]; [5][2][2] [2][0][0]; [2][2][0] [4][0][2]; [2][1][0] [4][1][2]; [2][0][0] [4][2][2]; [4][0][2] [0][0][2]; [4][1][2] [0][1][2]; [4][2][2] [0][2][2];

Resultado visual da matriz aps o movimento:

Figura 4.12 Resultado da execuo do movimento R

Com isso, sempre que o usurio exigir que o cubo seja resolvido, o Sistema verificar a matriz e de acordo com os algoritmos de resoluo 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 evolucionrios (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 especfico. Para o desenvolvimento do SISCUBE foi adotado o ciclo de vida descrito no modelo do Processo Unificado, com algumas adaptaes. 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 (anlise, projeto, implementao e teste) derivado da descrio dos casos de uso; Tem a arquitetura como elemento central, o que facilita na construo do projeto, pois a partir dela se obtm a estrutura que guia cada iterao. iterativo e incremental, o que permite a evoluo do projeto com o decorrer do tempo. Assim como ocorre no ciclo de vida do PU, o projeto passar pelas seguintes fases: Concepo: fase em que ser dada nfase comunicao e ao planejamento. A comunicao ocorrer entre os membros do grupo e entre o grupo e o orientador, com o objetivo de definir as necessidades daqueles que usaro o sistema e conseqentemente suas caractersticas. Tratando-se de planejamento, sero desenvolvidos o documento viso e a especificao dos principais casos de uso, considerados os mais

36

crticos, Acessar Tutorial 3D, Treinar Cubo Virtual e Jogar Cubo Virtual. Detalhes sobre os casos de uso podem ser consultados no Anexo I Especificao dos Casos de Uso. Elaborao: ser subdividida em duas subfases: (1) anlise, em que ser dada continuidade comunicao, todavia com o objetivo diferente: refinar as necessidades e caractersticas levantadas na fase de concepo. Nela sero desenvolvidos os demais casos de uso. (2) Projeto, cujo objetivo ser modelar os casos de uso crticos com foco na criao de modelos de anlise e projeto com nfase nas definies de classes e representaes arquiteturais. Construo: sero refinados e ento traduzidos o modelo de projeto para componentes de software. Transio: fase em que o sistema ser testado e posteriormente colocado no site (www.cubomagicobrasil.com). Produo: fase que ter como objetivo oferecer o monitoramento e suporte contnuo ao sistema. A seguir, na figura 5.1, pode ser observado a relao disciplina x fase ocorrente em muitos projetos que utilizam o ciclo de vida descrito no modelo do Processo Unificado:

Figura 5.1 Representao do ciclo de vida do PU

5.1.2 Mtodos de Desenvolvimento e Ferramentas CASE Para o desenvolvimento do projeto foi utilizada a tcnica de Descrio do Documento Viso, tcnica de Descrio de Caso de Uso e a Tcnica do Larman de

37

Anlise e Projeto Orientado a Objetos, com utilizao de Design Patterns - DTO, DAO e Factory. As pginas WEB do projeto foram criadas seguindo o padro XHTML de desenvolvimento. O cdigo do projeto baseado no padro de arquitetura MVC (Model-viewcontroller), o que permite a fcil manuteno do cdigo, uma vez que a manipulao de dados no afetada com a alterao do layout e vice-versa. Neste modelo para o projeto so utilizadas seis camadas: viso, action, model, DAO, DTO e ch, que so explicadas no captulo 7. Ferramentas CASE (Computer-Aided Software Engineering) so as ferramentas baseadas em computadores que auxiliam na engenharia de software, desde anlise de requisitos e modelagem at programao e testes. As utilizadas no projeto foram: Jude Community software Jude para desenvolvimento UML. Utilizado na elaborao do modelo de domnio, diagrama de casos de uso e realizao dos casos de uso (diagramas de seqncia e de classes). MS Project software da Microsoft para gesto de projetos. Esta ferramenta foi utilizada no planejamento cronolgico das atividades que compem o projeto. 5.1.3 Linguagens de Programao A linguagem utilizada no desenvolvimento do projeto foi Java e se encaixou perfeitamente nas necessidades existentes. Como o projeto um incremento de uma aplicao existente, utilizar a mesma linguagem de programao para continuar o trabalho foi muito importante para evitar possveis incompatibilidades, como, por exemplo, no caso de tentar fazer uma integrao com programas de naturezas diferentes. A experincia acadmica adquirida nas disciplinas de programao foi outro fator que contribuiu para a escolha desta linguagem. Java uma linguagem de programao orientada a objetos inicialmente desenvolvida pela Sun Microsystems e lanada em 1995. A linguagem deriva grande parte da sua sintaxe de C / C + +, mas tem um modelo mais simples e menos objetos de baixo nvel. Aplicaes Java so normalmente compiladas para um

38

bytecode7 que pode ser executado em qualquer mquina virtual Java (Java Virtual Machine), independentemente da arquitetura do computador. A partir de maio de 2007, em conformidade com as especificaes 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 especificao da topologia de hardware (equipamentos e conexes) que fornece a plataforma que d suporte s ferramentas (software) necessrias 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 memria RAM, 120 GB de HD, Windows Vista Home Basic; Hum notebook HP Pavilion AMD Sempron 3.400+, 2 GB de memria RAM, 120 GB de HD, Linux Ubuntu.

o resultado de um processo semelhante ao dos compiladores de cdigo-fonte que no

imediatamente executvel. Em oposio, o bytecode interpretado numa mquina virtual, que o executa. Desta forma, o bytecode um estgio intermdio entre o cdigo-fonte (escrito numa linguagem de programao especfica) e a aplicao final, sendo a sua vantagem principal a dualidade entre a portabilidade o bytecode produz o mesmo resultado em qualquer arquitetura e a ausncia da necessidade do pr-processamento tpico dos compiladores o bytecode encarado como um produto final, cuja validao da sintaxe e tipos de dados (entre outras funes dos compiladores) necessria.

39

5.2

Plano de Organizao O plano de organizao inclui um conjunto de prticas gerenciais e tcnicas

que permite equipe de software (gerncia e desenvolvimento) definir um roteiro enquanto ela se move em direo a sua meta estratgica e seus objetivos tticos. nele, tambm, que se definem os papis que cada um exerce na equipe. 5.2.1 Equipe de Gerncia A equipe de desenvolvimento formada por um Gerente de Projeto, que exerce o papel de lder 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 estratgica e os objetivos tticos; (3) definir marcos, pontos de controle, planos e mtodos de acompanhamento, alm 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 funes so desempenhadas pelos trs integrantes da equipe de projeto (Bruno, Carlos e Rodrigo). As atividades dos desenvolvedores so as seguintes: Bruno: estudo do aplicativo Rubiks Cube e do desenvolvimento de applets, bem como a implementao do tutorial com o cubo mgico virtual. Carlos: estudo dos mtodos de resoluo do cubo mgico, bem como a implementao da funcionalidade na qual o usurio joga com o cubo mgico virtual. Rodrigo: desenvolvimento das pginas web e seus respectivos casos de uso, bem como a implementao do treinamento com o cubo mgico 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 contnua corrente de modificaes que perturba a equipe de software. Para lidar efetivamente com os problemas que surgem ao longo do processo de desenvolvimento de software, necessrio estabelecer mtodos especficos para coordenar aqueles que o desenvolvem. Para tanto, mecanismos para comunicao 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 so 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 Concepo Comunicao Planejamento Validao do documento viso Validao da especificao dos casos de uso Elaborao Anlise Projeto Validao da especificao dos demais casos de uso e do modelo de domnio. Validao do modelo de anlise e arquitetura dos casos de uso crticos AcessarTutorial3D, TreinarCuboVirtual e JogarCuboVirtual. Construo Transio Validao da implementao do sistema. Implantao dos casos de uso crticos no site www.cubomagicobrasil.com
Tabela 5.1 Marcos e Pontos de Controle

Marco

crticos

AcessarTutorial3D,

TreinarCuboVirtual e JogarCuboVirtual

41

5.3.2 Mtodos de Acompanhamento e Controle Para acompanhamento do projeto, sero realizadas reunies semanais com o professor orientador, com o intuito de verificar possveis mudanas 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 relao ao planejamento de projeto e ao regimento do projeto final. Reunies semanais entre os membros do grupo tambm ocorrero e sua freqncia ir variar de acordo com as necessidades a andamento do projeto. 5.3.3 Anlise e Gerncia de Riscos Em um projeto de software, uma grande variedade de riscos pode ocorrer, uns com menos outros com mais freqncia, variando desde desentendimentos entre componentes da equipe at o no cumprimento de prazos. Os riscos identificados para o projeto SISCUBE foram: 1. No obedecer aos prazos do cronograma: o projeto corre o risco de no cumprir os prazos do cronograma, pois envolve a utilizao de Applet e de um componente livre (Rubiks 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 no apropriada: o projeto corre o risco de no possuir uma interface intuitiva e de fcil entendimento, dificultando sua utilizao. 3. No conseguir implementar certas funcionalidades pela falta de conhecimento avanado das tecnologias utilizadas. 4. Incoerncia com o planejamento do sistema: com o andamento do projeto e o desenvolvimento do sistema, algumas caractersticas (funcionalidades) podem ser alteradas, e a no alterao tambm nos documentos correspondentes (diagramas, descries) pode gerar incoerncia entre os documentos do projeto. Risco 1 Prob. Imp. 50% A Prioridade Mitigao Alta Estabelecer um tempo maior para as Contingncia Reestruturar o cronograma e

42

pesquisas necessrias e reunies para verificao e acompanhamento do cronograma 2 30% A Mdia Verificar com possveis usurios a usabilidade da aplicao

verificar quais funcionalidades podem ser suprimidas para que um projeto funcional possa ser entregue. Verificar com usurios reais quais as dificuldades encontradas em manipular a aplicao e realizar as alteraes necessrias

50%

Baixa

Pesquisar sobre as tecnologias necessrias

Verificar se essa funcionalidade pode ser suprimida. Em caso negativo, verificar quais funcionalidades podem ser suprimidas para que haja mais tempo para soluo do problema.

20%

Mdia

Manter sempre atualizados os documentos e

Corrigir as incoerncias.

43

verific-los nas reunies.


Tabela 5.2 Riscos

CA (Catastrfico)

Custo excede ao planejado para a manuteno em 50% do custo planejado.

CR (Crtico)

O custo do risco excede ao planejado no intervalo de 10% a 50% do total planejado.

MA (Marginal)

Probabilidade menor que 10%.


Tabela 5.3 Impactos

5.4

Plano de Documentao

5.4.1 Documentos do Projeto Durante as fases tcnicas do Processo Unificado foram desenvolvidos diversos documento. Dentre eles podemos citar: Concepo
- Documento Viso - Especificao dos casos de uso crticos (AcessarTutorial3D, TreinarCuboVirtual e JogarCuboVirtual) - Glossrio inicial do projeto - Plano de projeto

Elaborao
- Modelo de Domnio - Diagrama de Casos de Uso - Diagrama de Seqncia do Sistema dos casos de uso crticos - Contratos de Operao dos casos de uso crticos - Diagramas de Seqncia dos casos de uso crticos - Arquitetura Lgica - Diagrama de Pacotes

Construo
- Javadoc

Tabela 5.4 Documentos do Projeto

44

5.5

Plano de Recursos e Produtos

5.5.1 Recursos Humanos


Nome Funo Telefone E-mail

Bruno Cavalcanti Freitas Carlos Alberto de Alcntara Jnior Rodrigo Maciel Galvo

Gerente de Projeto, Analista e Desenvolvedor Analista e Desenvolvedor Analista e Desenvolvedor

8431-8125 9681-9457 9663-6034

cartuchoking@gmail.com sorlacrox@gmail.com rodrigo1187@gmail.com

Tabela 5.5 Recursos Humanos

5.5.2 Recursos de Hardware


Discriminao Quantidade Valor Unitrio Valor Total

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 5.5.3 Recursos de Software
Discriminao Eclipse Europa Jude Community 5 MySQL Server 5.0 Apache Tomcat 5.0 Pacote JDK 5.0 Java Development Kit

2 1

R$3.000,00 R$1.800,00

R$6.000,00 R$1.800,00 R$7.800,00

Tabela 5.6 Recursos de Hardware

Valor Unitrio -

Valor Total -

Tabela 5.7 Recursos de Software

5.6

Cronograma Tarefa Responsvel Incio Fim

Concepo Comunicao Levantar Requisitos Bruno, Carlos, Rodrigo Definir documento viso Bruno, 25/02/08 08/03/08 18/02/08 23/02/08

45

Carlos, Rodrigo Planejamento Identificar casos de uso e atores Bruno, Carlos, Rodrigo Descrever caso de uso crtico Acessar Tutorial 3D Descrever caso de uso crtico Treinar Cubo Virtual Descrever caso de uso crtico Jogar Cubo Virtual Elaborar glossrio Bruno, Carlos, Rodrigo Bruno, Carlos, Rodrigo Bruno, Carlos, Rodrigo Bruno, Carlos, Rodrigo Elaborao Anlise Refinar requisitos Bruno, Carlos, Rodrigo Refinar documento viso Bruno, Carlos, Rodrigo Elaborar modelo de domnio Elaborar diagrama de casos de uso Bruno Bruno, Carlos, Rodrigo Refinar caso de uso crtico Acessar Tutorial 3D Refinar caso de uso crtico Treinar Cubo Rodrigo 24/04/08 30/04/08 Bruno 24/04/08 30/04/08 24/04/08 14/04/08 30/04/08 14/04/08 17/04/08 24/04/08 14/04/08 17/04/08 18/02/08 12/04/08 03/04/08 12/04/08 24/03/08 03/04/08 13/03/08 22/03/08 10/03/08 13/03/08

46

Virtual Refinar caso de uso crtico Jogar Cubo Virtual Descrever caso de uso Cadastrar Usurio Descrever caso de uso Efetuar Login Descrever caso de uso Manter Cadastro Descrever caso de uso Pesquisar Usurio Descrever caso de uso Entrar Contato Administradores Descrever caso de uso Enviar Mensagem Pessoal Refinar glossrio Bruno, Carlos, Rodrigo Projeto Elaborar o Diagrama de Seqncia do Sistema(DSS) e o contrato de operaes do caso de uso crtico Acessar Tutorial 3D Elaborar o Diagrama de Seqncia do Sistema(DSS) e o contrato de operaes do caso de uso crtico Treinar Cubo Virtual Elaborar o Diagrama de Seqncia do Sistema(DSS) e o contrato de operaes do caso de uso crtico Jogar Cubo Virtual Efetuar a realizao (criao dos diagramas de seqncia e de classes) do caso de uso crtico Acessar Tutorial 3D Efetuar a realizao (criao dos diagramas de seqncia e de classes) do caso de uso crtico Treinar Cubo Virtual Efetuar a realizao (criao dos diagramas de seqncia e de classes) do caso de uso crtico Jogar Cubo Virtual Carlos 31/05/08 21/06/08 Rodrigo 31/05/08 21/06/08 Bruno 31/05/08 21/06/08 Carlos 12/05/08 31/05/08 Rodrigo 12/05/08 31/05/08 Bruno 12/05/08 31/05/08 14/04/08 10/05/08 Carlos 30/04/08 10/05/08 Rodrigo Rodrigo Rodrigo Rodrigo Carlos 30/04/08 30/04/08 30/04/08 30/04/08 30/04/08 10/05/08 10/05/08 10/05/08 10/05/08 10/05/08 Carlos 24/04/08 30/04/08

47

Definir arquitetura lgica e diagrama de pacotes Refinar glossrio

Bruno Bruno, Carlos, Rodrigo

01/08/08 12/05/08

16/08/08 21/06/08

Construo Implementar caso de uso Acessar Tutorial 3D Implementar caso de uso Treinar Cubo Virtual Implementar caso de uso Jogar Cubo Virtual Definir o layout de site Implementar caso de uso Cadastrar Usurio Implementar caso de uso Efetuar Login Implementar caso de uso Manter Cadastro Implementar caso de uso Pesquisar Usurio Implementar caso de uso Entrar Contato Administradores Implementar caso de uso Enviar Mensagem Pessoal
Tabela 5.8 Cronograma

Bruno Rodrigo, Bruno Carlos Rodrigo Rodrigo Rodrigo Rodrigo Rodrigo

18/08/08 18/08/08 18/08/08 15/09/08 29/09/08 13/10/08 03/11/08 20/10/08

19/11/08 19/11/08 19/11/08 27/09/08 11/10/08 18/10/08 08/11/08 22/10/08 08/11/08 08/11/08

Bruno, Carlos 03/11/08 Bruno, Carlos 03/11/08

5.7

Glossrio Significado Bsico de o algoritmo que apresenta os passos mais simples e compreensveis para resoluo do cubo mgico. Em contrapartida, normalmente so executados mais movimentos.

Termo Algoritmo Resoluo

Algoritmo de Embaralhamento

Seqncia de movimentos aleatrios que gerada por um sistema para que o cubo seja embaralhado. Os movimentos so representados por letra conforme o Anexo III Notao dos Movimentos.

Camada

O Cubo Mgico possui trs camadas.

48

Cubo Mgico Cubo Mgico Virtual Embaralhar Etapa Face Fase de Inspeo

Brinquedo com o formato de cubo cujas faces coloridas so girveis. Representao computador. Misturar as cores do cubo, tir-lo de seu estado original. Seqncia de passos que visam alcanar a resoluo de determinada parte do cubo mgico. Lado do cubo. O cubo possui 6 faces(lados). Momento em que o jogador avalia a condio atual do cubo para planejar os primeiros movimentos que far quando comear a resolv-lo. do cubo mgico em um

Fridrich

Nome da criadora e do mtodo avanado de resoluo do cubo mais conhecido e utilizado pelos experts.

Nvel

Grau de complexidade da resoluo, o nvel bsico consiste no mnimo necessrio para a resoluo do cubo, j o nvel intermedirio visa economizar movimentos considerando mais possibilidades de combinao do cubo.

Orientao

Diz respeito ao posicionamento da pea em relao a ela mesma. Orientar uma pea de canto, por exemplo, significa girar esse canto sem permut-lo.

Passo Permutao Speedcubing

Movimentao especfica, pequenos grupos de movimentos. Vrios passos compem uma etapa. a troca de posio que ocorre entra duas peas, em que uma ocupa o lugar da outra. Esporte relacionado ao cubo mgico, essencialmente baseado na velocidade usada para sua resoluo.
Tabela 5.9 Glossrio

49

6 6.1

ESPECIFICAO DOS REQUISITOS DO SISTEMA Descrio do Problema Com o decorrer dos ltimos meses o nosso interesse fez com que o cubo

mgico se tornasse parte do nosso cotidiano e inmeras vezes nos encontramos com pessoas que tambm se interessam em aprender e brincar com o cubo. No entanto, devido complexidade em resolv-lo e escassez de fontes de aprendizado didticas e dinmicas, essas pessoas desistem do desafio de concluir os passos necessrios para resoluo do cubo. Com base nestes problemas, nosso projeto prope um tutorial dinmico, em que o usurio ir interagir com um cubo mgico virtual representado em trs dimenses, manipulando-o da forma que quiser e recebendo dicas e orientaes do sistema quanto s etapas de resoluo. Acreditamos que com essa ferramenta de aprendizado, mais pessoas se interessaro em conhecer um pouco mais sobre este quebra-cabea sensacional e sobre os benefcios mentais que ele proporciona. 6.2 Identificao dos Interessados So considerados interessados no SISCUBE todos que tm curiosidade em aprender a resolver o cubo mgico, pois so eles o pblico-alvo do projeto. 6.3 Descrio das necessidades dos interessados Tendo em vista que o Sistema desenvolvido no voltado para um pblicoalvo especfico, mas sim para uma gama ampla de usurios, foi constatado que no h necessidades, mas sim um objetivo bem definido: fazer com que qualquer usurio possa aprender a resolver o cubo mgico. 6.4 Descrio das caractersticas do sistema So principais caractersticas do sistema: Apresentar um tutorial dinmico e interativo sobre a resoluo do cubo mgico, que proporcione facilidades para o entendimento do usurio, como por exemplo: o Destaque visual das peas que sero movimentadas.

50

o Explicaes textuais dos passos executados. Permitir ao usurio treinar no cubo virtual os conhecimentos adquiridos. Oferecer funcionalidades adicionais como cronometragem para que o usurio acompanhe seu progresso. Disponibilizar as funcionalidades do sistema em um site, para facilitar o acesso dos usurios. Permitir no site que os usurios interajam entre si para trocar idias, tirar dvidas, etc. Apresentar no site histrico, artigos e notcias sobre o cubo mgico, alm de links que levem o usurio a pginas relacionadas, para que ele se contextualize em relao ao tema proposto. Disponibilizar manuais em PDF com contedo explicativo dos mtodos de resoluo do cubo. 6.5 Requisitos do software O sistema dever ser capaz de atender os seguintes requisitos: Ensinar ao usurio, por etapas e de forma didtica e interativa, como resolver o cubo mgico. Permitir que o usurio treine as etapas aprendidas e obtenha, caso deseje, dicas para ajud-lo no treinamento. Permitir que o usurio marque o tempo e quantidade de movimentos despendidos na tentativa de resoluo do cubo. Cadastrar usurios no sistema e permitir que os mesmos editem os dados informados no cadastro. Permitir que os usurios troquem mensagens entre si. Permitir que os usurios entrem em contato com os administradores (idealizadores/desenvolvedores do projeto). Informar sobre notcias e eventos, histrico e artigos concernentes com o tema proposto.

51

6.6

Restries O ncleo do sistema, formado pelo ensinamento, treinamento e marcao de

tempos/quantidade de movimentos baseado na linguagem de programao Java. Tendo em vista que estas funcionalidades sero disponibilizadas em um site atravs de um Applet (programa escrito na linguagem de programao Java que pode ser includo em uma pgina HTML, http://java.sun.com/applets/), ser necessrio que o usurio tenha instalado em seu computador a Mquina Virtual Java (JVM Java Virtual Machine) para que o programa seja carregado e executado.

52

7 7.1

DIAGRAMAS UML Modelo de Domnio

Figura 7.1 Modelo de Domnio

53

7.2

Viso Geral dos Casos de Uso e Atores

Figura 7.2 Diagrama de Casos de Uso

A especificao dos casos de uso pode ser vista no Anexo I Especificao dos Casos de Uso. A anlise e projeto dos casos de uso crticos: Acessar Tutorial 3D, Treinar Cubo Virtual e Jogar Cubo Virtual encontram-se no Anexo II Realizao dos Casos de Uso crticos.

54

7.3

Modelo de Arquitetura

Figura 7.3 Modelo de Arquitetura

55

Conforme mencionado no tpico 5.1.2, o modelo de arquitetura do projeto dividido em seis camadas: viso, action, model, DAO, DTO e ch. Segue, a seguir, uma explicao sucinta de cada camada: Viso: camada onde se encontram as classes responsveis pela apresentao do sistema. Exemplo: as telas de interface com o usurio. Action: camada onde se encontram as classes que respondem s aes realizadas pelo usurio. Exemplo: cliques nos botes. Model: camada onde se encontram todas as regras de negcio necessrias ao sistema. Exemplo: representao, movimentao e resoluo do cubo mgico. DAO: camada responsvel pela persistncia dos dados, ou seja, camada que contm as classes que se comunicam com a base de dados. DTO: camada que contm as classes que podem navegar entre as camadas do software de maneira livre. Exemplo: o Usurio. 7.4 Ch: camada que contm a aplicao Rubiks Cube

Diagrama de Implantao

56

DIFICULDES ENCONTRADAS A primeira dificuldade encontrada foi em relao compreenso do cdigo

original da interface grfica do cubo virtual 3D. Muitas das lgicas utilizadas pelo seu desenvolvedor Werner Randelshofer eram consideravelmente complexas, devido dificuldade de representar os componentes do cubo mgico graficamente. Esse fator dificultou o entendimento das propriedades que estavam sendo consideradas. Durante o pice do desenvolvimento do sistema, um dos obstculos enfrentados com maior significncia foi quanto utilizao de Threads em Java. Este recurso foi necessrio para permitir que ocorressem mais de uma operao do sistema simultaneamente, como a manipulao do cubo enquanto o tempo de inspeo ou cronmetro estivesse em execuo e quando diferentes peas precisassem ficar piscando durante o tutorial. A dificuldade enfrentada foi no tratamento da concorrncia entre as Threads, que foi superada com a utilizao de combinadas variveis Flag para que as tarefas fossem executadas sem intervir nas outras quando no fosse conveniente. Outra relevante dificuldade encontrada tambm se deu em relao ao applet. Por questes de segurana, ele executado na mquina do cliente com acesso muito restrito aos recursos existentes, caracterstica que dificultou muito a insero das imagens. Porm, o applet tem acesso total aos arquivos presentes em seu .jar. Ento a soluo era encontrar um modo de inserir as imagens necessrias dentro do prprio applet, para que as mesmas pudessem ser mostradas ao usurio. Isso se tornou possvel graas ao mtodo getClass().getResource(caminhoImagem) que retorna o caminho completo de onde se encontra a classe em questo. A partir disso, foi possvel inserir imagens dentro do arquivo .jar referente ao applet, e onde ele fosse baixado na mquina do cliente seria possvel identificar sua localizao e acrescentar as imagens tela, informando seu endereo em relao classe em questo.

57

CONCLUSO Os principais objetivos definidos no incio do projeto foram alcanados com

satisfao dos interessados, visto que atravs do produto final gerado pelo projeto possvel aprender a resolver o cubo mgico e colocar em prtica a teoria aprendida atravs de uma interface bastante interativa. Os resultados foram alcanados graas ao estudo das principais dificuldades que uma pessoa tem quando tenta aprender a resolver o cubo atravs de um tutorial tradicional, que peca principalmente pela falta de interatividade com o usurio, que muitas vezes se v obrigado a lidar com figuras e explicaes estticas. Devido diversidade de estgios de aprendizado em que o usurio pode se encaixar, o projeto permite a seleo da etapa da resoluo desejada, o que viabiliza o progresso do usurio na aprendizagem da resoluo do cubo. Dentre os objetivos iniciais do projeto, alguns tiveram seu cumprimento adiado, como: o gerenciamento do usurio e da agenda de notcias e implementao do nvel Intermedirio de resoluo 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 tambm foram obstculos para a concluso do projeto ideal. A realizao do projeto possibilitou o aprendizado e aperfeioamento de vrias tecnologias (ex: applet), padres de desenvolvimento e reas abrangidas no curso (ex: programao em Java, Banco de Dados e Engenharia de Software), alm viabilizar uma real simulao de todo o processo pelo qual passa o desenvolvimento de um software.

58

10

BIBLIOGRAFIA

PRESSMAN, Roger. Engenharia de Software. Trad. Rosngela Delloso Penteado. McGraw-Hill,6 Edio, 2006. LARMAN, Craig. Utilizando UML e Padres: Uma introduo anlise e ao projeto orientados a objetos e ao desenvolvimento iterativo. Trad. Luiz A Meirelles Salgado. Bookman, 3 Edio, 2007. DEITEL, Harvey M; DEITEL, Paul J. Java Como Programar. Prentice Hall, 6 Edio, 2005. BANDELOW, Christoph. Einfuehrung in die Cubologie, Vieweg, 1981 apud RANDELSHOFER, Werner WIKIPDIA, Wikipdia. http://pt.wikipedia.org/wiki/Cubo_m%C3%A1gico Cubo Mgico.

59

11

ANEXOS

11.1 Anexo I Especificao dos Casos de Uso 11.1.1 Efetuar Login Nome do Caso de Uso Efetuar Login Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que um usurio cadastrado se identifique no Sistema. Usurio identificado, Usurio no identificado, Administrador No se aplica. P1. O caso de uso inicia quando o ator preenche os campos Usurio 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, alm das opes Editar Perfil e Sair [E3]. P4. Fim do Fluxo Principal. Fluxos Alternativos Fluxos de Exceo No se aplica. E1. Campo obrigatrio no preenchido. E1.1. Conforme RN1, o Sistema destaca o(s) campo(s) que no foi(ram) preenchido(s) e apresenta a mensagem: Campo obrigatrio x no foi preenchido, onde x o nome do campo obrigatrio que no foi preenchido. E1.2. O Sistema retorna ao passo anterior. E2. Campo invlido. E2.1. Conforme RN1, o Sistema destaca o(s) campo(s) que no foi(ram) preenchido(s) corretamente e apresenta a mensagem: O campo x informado invlido, onde x o campo que foi preenchido incorretamente. E2.2. O Sistema retorna ao passo anterior. E3. Usurio no encontrado.

60

E3.1. Depois de validar o formulrio, o Sistema no encontra na base de dados um registro com os dados informados e apresenta a mensagem: Usurio/Senha invlidos. E3.2. O Sistema retorna ao passo anterior. Regras de Negcio RN1. Formulrio de Login Os campos Usurio e Senha devero ser obrigatoriamente preenchidos. - O campo senha dever conter no mnimo 6 caracteres e no mximo 12. - O campo Usurio, representado pelo e-mail informado pelo usurio no momento do Cadastro dever ser vlido. Ps-condio Pontos de Extenso Caractersticas suplementares O Sistema dever habilitar todas as funcionalidades para o ator que se identificar com sucesso. No se aplica. No se aplica.

Tela 1 Efetuar Login

61

11.1.2 Acessar Tutorial 3D Nome do Caso de Uso Acessar Tutorial 3D Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que o usurio aprenda a resolver, em etapas, o cubo mgico virtual. Usurio identificado, Administrador O usurio/administrador dever ter se identificado no sistema. P1. O caso de uso inicia quando o ator seleciona Acessar Tutorial 3D no menu principal do Applet. P2. O Sistema apresenta o nvel Iniciante com suas respectivas etapas [RN1] e as opes Tutorial e Voltar. P3. O ator seleciona uma etapa de um nvel de aprendizado e em seguida a opo Tutorial [A1]. P4. O Sistema apresenta o cubo virtual pronto para realizar o aprendizado da etapa selecionada [RN2], alm da opo Iniciar Aprendizado. P5. O ator seleciona a opo Iniciar Aprendizado. P6. O Sistema descreve o que ser feito no passo e apresenta as opes Voltar, Executar e Avanar. P7. O ator seleciona a opo 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 trmino do aprendizado da etapa, o Sistema apresenta a opo Finalizar Tutorial. P10. O ator seleciona a opo Finalizar Tutorial. P11. O Sistema retorna ao P2. Fluxos Alternativos A1. Voltar ao menu principal do Applet A1.1. O ator seleciona a opo Voltar. A1.2. O Sistema retorna ao menu principal do Applet. A2. Voltar passo

62

A2.1. O ator seleciona a opo Voltar. A2.2. O Sistema retorna ao passo apresentado anteriormente, caso exista. A2.3. O Sistema retorna ao P6. A3. Avanar passo A3.1. O ator seleciona a opo Avanar. A3.2. O Sistema avana para o passo seguinte, caso exista. A3.3. O Sistema retorna ao P6. Fluxos de Exceo Regras de Negcio No se aplica. RN1. Etapas O Sistema apresenta as seguintes etapas para o nvel iniciante: Cruz Branca; 1 Camada; 2 Camada; Cruz Amarela; Face Amarela; Cantos da 3 Camada; Meios da 3 Camada. RN2. Organizao do Cubo Virtual O Cubo Virtual ser apresentado com uma configurao 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 nveis Para o nvel Iniciante, as descries necessrias para a resoluo de cada etapa esto presentes no Anexo IV Apostila Nvel Bsico. Para o nvel no Intermedirio, Anexo V as descries Nvel necessrias para a resoluo de cada etapa esto presentes Ps-condio Pontos de Extenso No se aplica. PE1. Treinar Cubo Virtual O caso de uso estende ao caso de uso Treinar Cubo Virtual. Caractersticas suplementares No se aplica. Apostila Intermedirio.

Tela 2 Tela Principal do Applet, acessada nos casos de uso AcessarTutorial3D, TreinarCuboVirtual e JogarCuboVirtual

64

Tela 3 Tela de Nveis 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 Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que o usurio treine a resoluo de cada etapa com auxlio do Sistema. Usurio identificado, Administrador O usurio/administrador dever ter se identificado no sistema. P1. O caso de uso inicia quando o ator seleciona a opo Treinar Cubo Virtual no menu principal do Applet. P2. O Sistema apresenta o nvel Iniciante com suas respectivas etapas [RN1]. P3. O ator seleciona uma etapa de um nvel de aprendizado. P4. O Sistema apresenta o cubo virtual pronto para realizar o treinamento da etapa selecionada [RN2], alm da opo Iniciar Treinamento P5. O ator seleciona a opo Iniciar Treinamento. P6. O Sistema apresenta as opes de movimentos, conforme o Anexo III Notao dos Movimentos, alm das opes Ajuda e Parar, que permitem ao usurio receber dicas do Sistema e finalizar o treinamento da etapa selecionada, respectivamente. P7. O ator seleciona as opes apresentadas no P6 para movimentar o cubo virtual [A1] [A2]. O ao ocorre at que o ator selecione a opo Parar ou at que a etapa selecionada tenha sido encerrada. P8. O ator seleciona a opo Parar. P9.1. O Sistema apresenta a mensagem de concluso da etapa treinada e a opo Menu de Etapas [RN3]. P9.2. O Sistema retorna ao P2. Fluxos Alternativos A1. Ajudar usurio A1.1. O ator seleciona a opo Ajuda. A1.2. O Sistema apresenta uma sugesto de resoluo

66

para o passo atual. A1.3. O Sistema retorna ao P7. A2. Finalizar Treinamento da Etapa A2.1. O ator seleciona a opo Parar. A2.2. O Sistema retorna ao P9. Fluxos de Exceo Regras de Negcio No se aplica. O Sistema apresenta as seguintes etapas para o nvel Iniciante: Cruz Branca; 1 Camada; 2 Camada; Cruz Amarela; Face Amarela; Cantos da 3 Camada; Meios da 3 Camada. RN2. Organizao do Cubo Virtual O Cubo Virtual ser apresentado com uma configurao 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 concluso da etapa Ao selecionar a opo Parar, se o usurio tiver concludo a etapa, uma mensagem de sucesso na concluso da etapa ser apresentada. Caso contrrio, ser mostrada uma

67

mensagem de no concluso da etapa. Ps-condio Pontos de Extenso Caractersticas suplementares No se aplica. No se aplica. No se aplica.

Tela 5 Treinar Cubo Virtual

11.1.4 Jogar Cubo Virtual Nome do Caso de Uso Jogar Cubo Virtual Breve Descrio Este caso de uso tem como objetivo permitir que o usurio jogue o Cubo Mgico Virtual sem auxlio do Sistema e marque o tempo e quantidade de movimentos despendidos na tentativa de resoluo. Atores Pr-condies Fluxo Principal Usurio identificado, Administrador O usurio/administrador dever ter se identificado no sistema. P1. O caso de uso inicia quando o ator seleciona a opo Jogar Cubo Virtual.

68

P2.1. O Sistema apresenta o cubo mgico virtual em seu estado resolvido com a opo Embaralhar. P2.2. O Sistema apresenta os tempos e quantidades de movimentos correspondentes s suas melhores mdias do presente momento. P3. O ator seleciona a opo Embaralhar. P4. O Sistema embaralha o cubo virtual [RN1]. P5.1. O Sistema apresenta e ativa o contador regressivo de inspeo [RN2]. P5.2. O Sistema apresenta a opo Jogar, alm das opes de movimento X, X, Y, Y, Z, Z [RN3]. P6. O ator seleciona a opo Jogar [A1]. P7.1. O Sistema apresenta as demais opes de movimentos, conforme o Anexo III Notao dos Movimentos, alm da opo Parar, que permitir ao usurio finalizar a tentativa de resoluo do cubo virtual. P7.2. O Sistema apresenta e ativa o cronmetro progressivo e o contador de movimento para que o tempo e a quantidade de movimentos utilizados na tentativa de resoluo do cubo sejam marcados. P7.3. O Sistema libera o cubo virtual para manipulao. P8. O ator seleciona as opes apresentadas no P5.2. e P7.1. para movimentar o cubo virtual. A ao ocorre at que o ator selecione a opo Parar. P9. O ator seleciona a opo Parar. P10.1. O Sistema pra o cronmetro 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 usurio seu tempo e nmero de passos utilizados, atualizando suas respectivas mdias [RN4]. Caso contrrio, o Sistema indicar ao

69

usurio que o objetivo no foi alcanado. P11.2 Sistema pergunta se usurio 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 Usurio no deseja jogar novamente. A2.1 Sistema finaliza caso de uso. Fluxos de Exceo Regras de Negcio No se aplica. 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 no pode ser executado trs ou mais vezes seguidas. Um movimento no pode ser seguido pelo seu movimento contrrio. Os movimentos X,X, Y, Y, Z, Z, M, M, E, E, S, S no faro parte do embaralhamento (vide Anexo III Notao dos Movimentos) RN2. Tempo de Inspeo O tempo de inspeo dever ser de 30 segundos. RN3. Opes de movimentos apresentadas durante o tempo de inspeo. Somente dever ser permitido que o usurio execute os movimentos X, X, Y, Y, Z e Z durante a inspeo do cubo. Tais movimentos, quando realizados, no alteram a configurao do cubo, s mudam sua perspectiva de viso.

70

RN4. Clculo da Mdia Tanto para clculo da mdia de tempo quanto para a mdia de quantidade de movimentos vlidos para o ranking ser utilizada a seguinte regra: Para ser uma mdia vlida, devem ser medidos, pelo menos, cinco parmetros (cinco tempos ou cinco quantidade de movimentos) consecutivos. A partir do sexto parmetro (tempo ou quantidade de movimentos) recebido, esses novos parmetros iro substituindo os antigos na ordem em que foram inseridos. Essa substituio importante porque para clculo da mdia so utilizados somente 5 parmetros. A melhor mdia de uma sesso no ser o conjunto dos cinco melhores tempos, e sim a melhor mdia de cinco parmetros consecutivos que foram marcados na sesso. A melhor mdia de determinada sesso do usurio ser testada para verificar se est apta a entrar no ranking. Ps-condio Tempos, nmeros de movimentos e respectivas mdias que estiverem aptos a participar do ranking devero ser adicionados ao mesmo. Pontos de Extenso Caractersticas suplementares No se aplica. No se aplica.

71

Tela 6 Jogar Cubo Virtual

11.1.5 Cadastrar Usurio Nome do Caso de Uso Cadastrar Usurio Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que um usurio se cadastre no Sistema. Usurio no identificado No se aplica. P1. O caso de uso inicia quando o ator seleciona a opo Cadastrar-se. P2. O Sistema apresenta o formulrio de cadastro com os campos: Nome, Estado, Cidade, Data de Nascimento, Foto, E-mail, Repita o E-mail, Senha e Confirme a Senha. So apresentadas tambm as opes 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 informaes fornecidas pelo ator [RN1] [E1] [E2] [E3] [E4] [E5] [E6].

72

P5. O Sistema grava as informaes 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 opo Limpar campos. A1.2. O Sistema limpa todos os campos do formulrio. A1.3. O Sistema retorna ao P2. Fluxos de Exceo E1. Campo obrigatrio no preenchido. E1.1. O Sistema verifica que algum campo obrigatrio no foi preenchido. E1.2. O Sistema destaca o campo obrigatrio que no foi preenchido e apresenta a mensagem: O campo obrigatrio X no foi preenchido, onde X o nome do campo obrigatrio que no foi preenchido. E1.3. O Sistema retorna ao P3. E2. Campo invlido. E2.1. O Sistema verifica que algum campo foi preenchido de forma invlida. E2.2. O Sistema destaca o campo que foi preenchido de forma invlida e apresenta a mensagem: O(A) X informado(a) invlido(a), onde X o campo informado de forma invlida. 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 extenso invlida. E4.1. O Sistema verifica que a extenso do arquivo selecionado para o campo Foto invlida. E4.2. O Sistema destaca o campo Foto e apresenta a mensagem: O arquivo da foto deve ter a extenso .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 so 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 so 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 so 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 so diferentes. E6.3. O Sistema retorna ao P3. Regras de Negcio RN1. Formulrio de Cadastro O preenchimento dos campos do formulrio de cadastro dever obedecer s seguintes regras: Nome o Descrio: nome do usurio que ir se cadastrar. o Tipo: texto. o Obrigatrio: sim. o Regras:

74

Somente sero aceitos caracteres A/a Z/z. O tamanho no dever ultrapassar 50 caracteres. Estado o Descrio: estado em que reside o usurio que ir se cadastrar. o Tipo: caixa de seleo (combobox) o Obrigatrio: no. o Regras: A caixa de seleo dever conter os 27 estados brasileiros mais o Distrito Federal. Cidade o Descrio: cidade em que reside o usurio que ir se cadastrar. o Tipo: texto. o Obrigatrio: no. o Regras: O tamanho no dever ultrapassar 30 caracteres. Data de Nascimento o Descrio: data de nascimento do usurio que ir se cadastrar. o Tipo: texto. o Obrigatrio: no. o Regras: O formato dever ser dd/MM/yyyy. medida que o usurio digitar as datas o Sistema dever incluir as barras que separam o dia, ms e ano. Somente devero ser aceitos nmeros. O tamanho da data dever ser igual a

75

10. A data dever ser vlida. Foto o Descrio: foto do usurio que ir se cadastrar. o Tipo: arquivo. o Obrigatrio: no. o Regras: O tamanho da foto dever ser inferior a 500Kb. Somente sero aceitos arquivos cuja extenso .gif, .jpg, .jpeg ou .png. E-mail o Descrio: e-mail do usurio que ir se cadastrar. o Tipo: texto. o Obrigatrio: sim. o Regras: Somente devero ser aceitos e-mails vlidos. O tamanho mximo dever ser de 50 caracteres. Dever fazer parte do login do usurio para acesso s funcionalidades do Sistema. Repita o e-mail o Descrio: confirmao do e-mail informado no campo anterior. o Tipo: texto. o Obrigatrio: sim. o Regras: O contedo dever ser exatamente igual ao do campo E-mail.

76

Senha o Descrio: senha do usurio que ir se cadastrar. o Tipo: senha (password). o Obrigatrio: sim. o Regras: O tamanho da senha dever ser de no mnimo 6 e no mximo 12 caracteres. Ser a senha de acesso do usurio s funcionalidades login do usurio. Confirme a senha: o Descrio: confirmao da senha informada no campo anterior. o Tipo: senha (password). o Obrigatrio: sim. o Regras: O contedo dever ser exatamente igual ao do campo Senha. Ps-condio Pontos de Extenso Caractersticas suplementares O Sistema dever armazenar em seu banco de dados o cadastro do usurio. No se aplica. No se aplica. do Sistema. Junto com o campo E-mail, dever formar o

77

Tela 7 Cadastrar Usurio

11.1.6 Editar Cadastro Nome do Caso de Uso Editar Cadastro Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que um usurio edite seu cadastro no Sistema. Usurio identificado, Administrador O ator dever ter se identificado no Sistema. P1. O caso de uso inicia quando o ator seleciona a opo Editar Perfil. P2. O Sistema carrega as informaes atuais do usurio e as apresenta no formulrio de alterao, 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]. So apresentadas tambm as opes Atualizar perfil e Desfazer atualizao. P3. O ator preenche os campos e os submete para que a alterao seja efetivada [A1]. P4. O Sistema valida as informaes fornecidas pelo ator

78

[RN2] [E1] [E2] [E3] [E4] [E5] [E6]. P5. O Sistema grava as novas informaes fornecidas pelo ator. P6. O Sistema apresenta a mensagem: Cadastro alterado com sucesso. P7. O caso de uso encerrado. Fluxos Alternativos A1. Desfazer atualizao A1.1. O ator seleciona a opo Desfazer atualizao. A1.2. O Sistema recarrega os dados do formulrio de acordo com as informaes salvas na sua base de dados. A1.3. O Sistema retorna ao P2. Fluxos de Exceo E1. Campo obrigatrio no preenchido. E1.1. O Sistema verifica que algum campo obrigatrio no foi preenchido. E1.2. O Sistema destaca o campo obrigatrio que no foi preenchido e apresenta a mensagem: O campo obrigatrio X no foi preenchido, onde X o nome do campo obrigatrio que no foi preenchido. E1.3. O Sistema retorna ao P3. E2. Campo invlido. E2.1. O Sistema verifica que algum campo foi preenchido de forma invlida. E2.2. O Sistema destaca o campo que foi preenchido de forma invlida e apresenta a mensagem: O(A) X informado(a) invlido(a), onde X o campo informado de forma invlida. 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 extenso invlida. E4.1. O Sistema verifica que a extenso do arquivo selecionado para o campo Foto invlida. E4.2. O Sistema destaca o campo Foto e apresenta a mensagem: O arquivo da foto deve ter a extenso .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 so 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 so 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 so 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 so diferentes. E6.3. O Sistema retorna ao P3. Regras de Negcio RN1. Carregamento do formulrio de alterao O carregamento do formulrio de alterao dever obedecer s seguintes regras: As informaes devero ser obtidas atravs da base de dados do Sistema. Os campos Nome, Estado, Cidade, Data de

80

Nascimento e E-mail devero ser carregados. Os campos Foto, Repita o e-mail, Senha atual, Nova senha e Confirme a senha devero estar vazios. RN2. Formulrio de Cadastro O preenchimento dos campos do formulrio de cadastro dever obedecer s seguintes regras: Nome o Descrio: o Tipo: texto. o Obrigatrio: sim. o Regras: Somente sero aceitos caracteres A/a Z/z. O tamanho no dever ultrapassar 50 caracteres. Estado o Descrio: estado em que reside o usurio que quer atualizar seu perfil. o Tipo: caixa de seleo (combobox) o Obrigatrio: no. o Regras: A caixa de seleo dever conter os 27 estados brasileiros mais o Distrito Federal. Cidade o Descrio: cidade em que reside o usurio que quer atualizar seu perfil o Tipo: texto. o Obrigatrio: no. o Regras: O tamanho no dever ultrapassar 30 nome do usurio que quer atualizar seu perfil.

81

caracteres. Data de Nascimento o Descrio: data de nascimento do usurio que quer atualizar seu perfil. o Tipo: texto. o Obrigatrio: no. o Regras: O formato dever ser dd/MM/yyyy. medida que o usurio digitar as datas o Sistema dever incluir as barras que separam o dia, ms e ano. Somente devero ser aceitos nmeros. O tamanho da data dever ser igual a 10. A data dever ser vlida. Foto o Descrio: foto do usurio que quer atualizar seu perfil. o Tipo: arquivo. o Obrigatrio: no. o Regras: O tamanho da foto dever ser inferior a 500Kb. Somente sero aceitos arquivos cuja extenso .gif, .jpg, .jpeg ou .png. E-mail o Descrio: o Tipo: texto. o Obrigatrio: sim. o Regras: Somente devero ser aceitos e-mails vlidos. e-mail do usurio que quer atualizar seu perfil.

82

O tamanho mximo dever ser de 50 caracteres. Dever fazer parte do login do usurio para acesso s funcionalidades do Sistema. Repita o e-mail o Descrio: confirmao do e-mail informado no campo anterior. o Tipo: texto. o Obrigatrio: ser obrigatrio se o campo Email tiver sido alterado. o Regras: O contedo dever ser exatamente igual ao do campo E-mail. Senha atual o Descrio: senha atual do usurio que quer atualizar seu perfil. o Tipo: senha (password). o Obrigatrio: sim. o Regras: O contedo dever ser exatamente igual senha do usurio registrada na base de dados. Nova senha o Descrio: nova senha do usurio que quer atualizar seu perfil. o Tipo: senha (password). o Obrigatrio: no. o Regras: O tamanho da senha dever ser de no mnimo 6 e no mximo 12 caracteres. Ser a senha de acesso do usurio s funcionalidades do Sistema. Junto

83

com o campo E-mail, dever formar o login do usurio. Confirme a senha: o Descrio: confirmao da senha informada no campo anterior. o Tipo: senha (password). o Obrigatrio: ser obrigatria se o campo Nova senha for preenchido. o Regras: O contedo dever ser exatamente igual ao do campo Nova senha. Ps-condio Pontos de Extenso Caractersticas suplementares Caso o usurio altere alguma informao, o Sistema dever armazenar os novos dados em sua base de dados. No se aplica. No se aplica.

Tela 8 Editar Cadastro

84

11.1.7 Pesquisar Usurio Nome do Caso de Uso Pesquisar Usurio Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que um usurio pesquise por outros no Sistema. Usurio identificado/Administrador. O ator dever ter se identificado no Sistema. P1. O caso de uso inicia quando o ator seleciona a opo Usurios. P2.1. O Sistema apresenta os usurios cadastrados no Sistema [RN1]. P2.2. O Sistema apresenta o formulrio 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 usurio selecionado [RN4]. P5. O caso de uso encerrado. Fluxos Alternativos A1. Alterar pgina do resultado A1.1. O ator seleciona uma pgina do resultado. A1.2. O Sistema redireciona o ator para a pgina desejada, mostrando a ele os resultados desta pgina. A1.3. O Sistema retorna ao P2.1. Fluxos de Exceo Regras de Negcio No se aplica. RN1. Apresentao dos usurios cadastrados A apresentao dos usurios cadastrados dever seguir as seguintes regras: Ordenao alfabtica. 20 usurios por pgina. Somente devero ser mostrados Foto, Nome, Email, Cidade e Estado. RN2. Formulrio de Pesquisa

85

O preenchimento dos campos do formulrio de pesquisa dever seguir as seguintes regras: Nome o Descrio: o Tipo: texto. o Obrigatrio: no. o Regras: Somente sero aceitos caracteres A/a Z/z. O tamanho no dever ultrapassar 50 caracteres. Estado o Descrio: estado em que reside o(s) usurio(s) que ser(o) pesquisado(s). o Tipo: caixa de seleo (combobox) o Obrigatrio: no. o Regras: A caixa de seleo dever conter os 27 estados brasileiros mais o Distrito Federal. Cidade o Descrio: o Tipo: texto. o Obrigatrio: no. o Regras: o O tamanho no dever ultrapassar 30 caracteres. RN3. Validao da pesquisa A validao da pesquisa dever seguir as seguintes regras: cidade em que reside o(s) usurio(s) que ser(o) pesquisado(s). nome do(s) usurio(s) que ser(o) pesquisado(s).

86

Se nenhum campo for preenchido, o resultado ser a apresentao de todos os usurios cadastrados. Se mais de um campo for preenchido, o resultado levar em considerao a combinao destes campos. RN4. Exibio do perfil de um usurio A exibio do perfil de um usurio selecionado dever seguir as seguintes regras: Devero ser mostrados: Foto, Nome, Cidade, Estado, E-mail, Melhor tempo nico, Melhor mdia de tempos, Melhor Quantidade de Movimentos e melhor Mdia de Quantidade de Movimentos. Um link Deixar Recado tambm dever ser exibido. Ps-condio Pontos de Extenso Caractersticas suplementares No se aplica. No se aplica. No se aplica.

11.1.8 Enviar Mensagem Pessoal Nome do Caso de Uso Enviar Mensagem Pessoal Breve Descrio Atores Pr-condies Fluxo Principal Este caso de uso tem como objetivo permitir que um usurio envie uma mensagem a outro. Usurio identificado/Administrador O ator dever ter se identificado no Sistema. P1. O caso de uso inicia quando o ator seleciona a opo Enviar recado na pgina de perfil de um usurio. P2. O Sistema apresenta o formulrio para envio de recado com o campo: Recado. So tambm apresentadas as opes Enviar e Limpar. P3. O ator preenche e submete o campo [A1]. P4. O Sistema valida o formulrio [RN1] [E1].

87

P5. O Sistema grava as informaes 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 opo Limpar. A1.2. O Sistema limpa o campo Recado do formulrio. A1.3. O Sistema retorna ao P2. Fluxos de Exceo E1. Campo obrigatrio Recado no foi preenchido. E1.1. O Sistema verifica que o campo obrigatrio Recado no foi preenchido. E1.2. O Sistema apresenta a mensagem: O campo Recado no foi preenchido. E1.3. O Sistema retorna ao P2. Regras de Negcio RN1. Formulrio de recado O campo Recado dever seguir as seguintes regras: Recado o Descrio: recado que um usurio deixar a outro. o Tipo: texto. o Obrigatrio: sim. o Regras: Dever conter no mximo 400 caracteres. RN2. Informaes salvas na base de dados O Sistema dever salvar em sua base de dados o nome dos usurios remetente e destinatrio, alm da data do recado. Ps-condio Pontos de Extenso O recado, remetente, destinatrio e data devero ser salvos na base de dados do Sistema. No se aplica.

88

Caractersticas suplementares

No se aplica.

Tela 9 Enviar Mensagem Pessoal

11.1.9 Entrar Contato Administradores Nome do Caso de Uso Entrar Contato Administradores Breve Descrio Este caso de uso tem como objetivo permitir que um usurio envie uma mensagem aos Administradores do Sistema. Atores Pr-condies Fluxo Principal Usurio identificado / Usurio no identificado / Administrador No se aplica. P1. O caso de uso inicia quando o ator seleciona a opo Contato. P2. O Sistema apresenta um formulrio com o campo Mensagem. So apresentadas tambm as opes Enviar e Limpar. P3. O ator preenche o formulrio e o submete [A1].

89

P4. O Sistema valida o formulrio [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 opo Limpar. A1.2. O Sistema limpa o campo Mensagem. A1.3. O Sistema retorna ao P2. Fluxos de Exceo E1. Campo obrigatrio Mensagem no preenchido E1.1. O Sistema verifica que o campo obrigatrio Mensagem no foi preenchido. E1.2. O Sistema apresenta a mensagem: O campo obrigatrio Mensagem no foi preenchido. E1.3. O Sistema retorna ao P2. Regras de Negcio RN1. Formulrio de mensagem O formulrio de mensagem dever seguir as seguintes regras: Mensagem o Descrio: mensagem que ser enviada aos administradores do Sistema. o Tipo: texto. o Obrigatrio: sim. o Regras: Dever Ps-condio Pontos de Extenso Caractersticas suplementares A mensagem dever ser conter no mximo ao e-mail 400 dos caracteres. enviada administradores. No se aplica. No se aplica.

90

11.2 Anexo II Realizao dos Casos de Uso Crticos 11.2.1 Acessar Tutorial 3D 11.2.1.1 Diagrama de Classes de Anlise

91

11.2.1.2

Diagrama de Seqncia do Sistema

92

11.2.1.3

Diagrama de Seqncia

93

11.2.2 Treinar Cubo Virtual 11.2.2.1 Diagrama de Classes de Anlise

94

11.2.2.2

Diagrama de Seqncia do Sistema

95

11.2.2.3

Diagrama de Seqncia

96

11.2.3 Jogar Cubo Virtual 11.2.3.1 Diagrama de Classes de Anlise

97

11.2.3.2

Diagrama de Seqncia do Sistema

98

11.2.3.3

Diagrama de Seqncia

99

11.3 Anexo III - Notao dos Movimentos Configurao inicial do Cubo Mgico:

As figuras a seguir ilustram as formas de manipulao do cubo que podero ser utilizadas. A figura correspondente a cada movimento representa a configurao final do Cubo Mgico aps a realizao do movimento a partir da configurao inicial representada acima. Movimento R: Giro da camada da direita no sentindo horrio

Movimento R: Giro da camada da direita no sentindo anti-horrio

Movimento L: Giro da camada da esquerda no sentindo horrio

Movimento L: Giro da camada da esquerda no sentindo anti-horrio

100

Movimento F: Giro da camada da frente no sentindo horrio

Movimento F: Giro da camada da frente no sentindo anti-horrio

Movimento B: Giro da camada de trs no sentindo horrio

Movimento B: Giro da camada de trs no sentindo horrio

Movimento U: Giro da camada superior no sentindo horrio

101

Movimento U: Giro da camada superior no sentindo anti-horrio

Movimento D: Giro da camada inferior no sentindo horrio

Movimento D: Giro da camada inferior no sentindo horrio

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 trs no sentido do movimento F

Movimento S: Giro da camada compreendida entre as camadas da frente e de trs no sentido do movimento F

104

11.4 Anexo IV - Apostila Nvel Bsico


Por Carlos Alberto de Alcntara Jnior

Introduo Esta apostila contm uma explicao sucinta sobre o mtodo de resoluo do cubo mgico por camadas e seus algoritmos (seqncias de movimentos). Os desenhos a seguir so 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 so os nomes das peas:

Centros (6): Dicas gerais:

Cantos (8):

Meios (12):

A cor escolhida (no caso o branco) para a base, sempre dever ficar virada para baixo, ento a resoluo do cubo vai evoluindo como se constri um prdio, ou seja, de baixo para cima, camada por camada. As peas dos centros so a base da estrutura do cubo, ento elas so fixas em relao s outras peas centrais, ou seja, um cubo resolvido quando as peas 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 apstrofo indicam o giro da face correspondente no sentido anti-horrio. ___________________________________________________________________

Primeira etapa: Resolvendo a cruz branca: Este passo bem intuitivo, no 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 pea 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 tambm bem tranqila, 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 relao a si mesmo, aplicar R U R na pea que levar a algum dos 3 casos.

Terceira etapa: Resolvendo a segunda camada: Completando o passo anterior, vo ficar faltando apenas 4 peas (ou menos, caso alguma j saia certa) para completar a segunda camada. Primeiramente devese procurar por um meio que no tenha amarelo (pois por enquanto estamos interessados nas peas 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 concluda.

Quarta etapa: Resolvendo a cruz da camada de cima: Obs.: Caso a cruz j aparecer feita, pular para a prxima 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 p: F U R U R F

Caso t

Caso o

Caso t: Fazendo o algoritmo do caso p, o prprio 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 necessrio) para que o algoritmo funcione.

Quinta etapa: Resolvendo a face de cima: O movimento caracterstico dessa etapa se chama Sune (R U R U R U2 R) e bem fcil de memorizar, apesar de ser o maior apresentado at ento. Nesta etapa, uma ateno maior deve ser dada ao posicionamento da camada de cima antes de realizar o movimento. Podem aparecer os seguintes casos genricos (observe o nmero de cantos que esto com o adesivo amarelo voltado para cima):

107

1 Canto: Aplicar Sune

2 cantos

0 cantos

1 canto: Neste caso, a face amarela est prxima de ser concluda. Quando o movimento Sune for aplicado, ou a face amarela fica completa, ou este mesmo caso ser obtido, necessitando ento que se posicione a camada de cima corretamente e se faa o Sune mais uma vez. 2 cantos: Os dois cantos com amarelo para cima no necessariamente estaro da forma do desenho, mas o nmero 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 no importando o posicionamento dos restantes) fique como no desenho, ou seja, na face da esquerda e aplique o Sune. Ento ser obtido o primeiro caso. Dica: Com o explicado no passo, o Sune ser aplicado no mximo 3 vezes para que a face amarela seja concluda. Se forem feitas 3 vezes e no 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 possveis:

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 trs (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 devero ficar alinhados. Nenhum lado certo: Neste caso, faa 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.

Stima etapa: Resolvendo os meios da camada de cima: Esta a etapa final onde os meios sero permutados entre si para irem para seus respectivos lugares. Dois casos so observados, o que os meios devem girar no sentido anti-horrio e o que eles devem girar no sentido horrio.

-->
(Vista de cima)

-->
(Vista de cima)

Sentido anti-horrio

Sentido horrio

Anti-horrio: Aplicar o algoritmo F2 U L R' F2 L' R U' F2. Horrio: 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 trs. 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 diferena 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.

Misso cumprida!

109

Agora s praticar bastante para memorizar os algoritmos! Para tirar dvidas ou fazer comentrios ou sugestes, mande e-mail para sorlac_rox@hotmail.com. Pea-me a apostila de nvel intermedirio para que voc possa aprimorar seu mtodo, e, conseqentemente, diminuir seus tempos. Conhea tambm o frum brasileiro de cubo mgico. Participe do ranking nacional de velocidade e troque idia com os melhores cubistas do pas: http://www.cubomagicobrasil.com/forum
Por Carlos Alberto de Alcntara Jnior

11.5 Anexo V - Apostila Nvel Intermedirio


Por Carlos Alberto de Alcntara Jnior

Agora que j dominamos o mtodo bsico, est na hora de comear a poupar algumas repeties de movimentos conhecendo alguns casos mais especficos (de nvel intermedirio). 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 esto primeiro poupam mais movimentos na resoluo e/ou compensam mais serem aprendidos antes. Esses a seguir so dois tipos de movimentos que vamos utilizar e que ainda no tinham sido apresentados na primeira apostila:

110

Comecemos ento pela orientao dos meios, da quarta etapa. Na apostila bsica 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 permutao dos meios, da ltima etapa. Vimos na apostila bsica 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 especficos de cada caso). So duas combinaes possveis:

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 horrio ou anti-horrio, mas os sentidos costumam ser especificados com o objetivo de mostrar a maneira mais rpida de executar o algoritmo de acordo com as posies que os dedos vo assumindo no cubo.

111

Outra parte da soluo que podemos melhorar um pouco a parte de permutao dos cantos (sexta etapa da apostila bsica). 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, deveramos 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 parnteses) para possamos dividi-lo e poder decorar um pedao de cada vez, mas veja bem, isso s para facilitar um pouco. Para o resultado esperado ser atingido, a seqncia 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 permutao de ambos os tipos de pea, hora de dar uma boa evoluda na orientao dos cantos. Depois que a cruz de cima j est feita, so 7 combinaes diferentes que podem aparecer. Vamos aprender o algoritmo especfico 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 so novidades mesmo. Vamos aos sete:

112

R U R U R U2 R

L U L U L U2 L

R U R U R U R U R U2 R

R F L F R F L F

R U2 R2 U R2 U R2 U2 R

R2 D R U2 R D R U2 R

R F R B R F R B

Bom, ainda no 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 rpido, no ? Comece a treinar isso. Mas lembre-se, no basta fazer a cruz, preocupe-se tambm com o fato de que todos os meios que a compem 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, no 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 peas de uma vez no lugar (conhecido como F2L First 2 Layers), o que ajuda poupar bastante tempo depois que estivermos com prtica. Basicamente temos esses 4 casos genricos com resoluo bem simples:

U F U F

U R U R

R U R

F U F

113

O que temos que fazer procurar duas peas que formam um par de F2L (por exemplo, a pea azul-vermelho com a pea 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 peas para encontrar algum dos casos bsicos acima. Dica: Para manipular as peas que formam o par, gire o lado, gire em cima, mas no se esquea de devolver o movimento que fez girando o lado, para que a cruz j feita no seja perdida. Exemplos:

R U2 R

R U R

F' U F U2

R U2 R U

R U2 R

Essas 5 so algumas situaes das diversas possveis que podemos encontrar. O algoritmo que temos para cada figura no para resolver o par de F2L, mas para levar a um dos 4 casos genricos vistos acima. No comeo provavelmente vamos usar mais movimentos do que os descritos nos exemplos para encontrar um caso genrico, mas o nmero de movimentos para isso tende a diminuir aos poucos com a prtica. Observe que nos dois ltimos exemplos temos o lado branco da pea virado para cima. Esses dois casos so exemplos de como podemos ajeitar o lado branco da pea (deixando-o virado para o lado) j conseguindo ao mesmo tempo obter algum dos 4 casos bsicos, com isso j comeamos a ver como possvel economizar movimentos se visualizarmos bem como os movimentos influenciam as peas. Dica: Antes de realizar um movimento buscando um caso genrico, verifique se o movimento que vai fazer no 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 no contenha mais um par j resolvido.

114

No comeo, fazer por F2L vai ser um pouco mais lento do que fazer camada por camada, como ensina a primeira apostila. No desanime e continue treinando, pois com um pouco de experincia, F2L provavelmente vai ajudar a diminuir, e muito, seus tempos.

Quando estiver com o contedo dessa apostila todo j na ponta dos dedos, muito facilmente voc estar conseguindo resolver o cubo em menos de um minuto. Bons treinos! Qualquer dvida sobre o contedo dessa apostila ou sobre speedcubing em geral, envie por e-mail para sorlac_rox@hotmail.com que ajudarei como puder. Caso ainda no conhea o frum brasileiro de cubo mgico, acesse: www.cubomagicobrasil.com/forum. Participe do ranking nacional de velocidade e troque idia com os melhores cubistas do pas.
Por Carlos Alberto de Alcntara Jnior

You might also like