Aluno: Marcos Paulo José de Melo Silva. Sistema de torneios online de cubo mágico. Requisitos funcionais: 1. Fazer login no sistema. Descrição: o usuário depois de ter criado uma conta poderá ter acesso há todos os recursos. 2. Visualizar torneios. Descrição: o usuário poderá saber sobre os torneios que estão para acontecer e\ou acontecendo, e poderá também visualizar detalhes sobre ele. 3. Participar de torneio. Descrição: o usuário poderá escolher um torneio para participar. 4. Enviar tempo. Descrição: o usuário enviará seu tempo nos torneios ou fora dos torneios. 5. Criar torneios. Descrição: o usuário poderá criar dois tipos de torneios, os oficiais e os não oficiais, os oficiais não poderão ser criados por qualquer usuário. 6. Comparar desempenho. Descrição: o usuário poderá escolher grupos de competidores para comparar seu desempenho nos torneios. 7. Visualizar gráficos de desempenho. Descrição: o usuário poderá ver seu desempenho total ou em torneios. 8. Visualizar ranking. Descrição: todos participantes inscritos no sistema terá uma pontuação, que será usada em classificações gerais e especificas. 9. Visualizar tempos. Descrição: o usuário poderá ver seus tempos de montagem enviados e de outras pessoas. Requisitos não funcionais: 1. Validar login. Descrição: quando o usuário se logar sua autenticidade devera ser verificada, por questão de segurança. 2. Validar tempo. Descrição: o tempo enviado pelo usuário devera ser verificado, para saber se não houve trapaça. 3. O sistema deve ter uma boa usabilidade. Descrição: como o sistema será usado por muitas pessoas ele devera ser bastante intuitivo. Requisitos de domínio: Os requisitos de domínio serão baseados no regulamento da Word Cube Association (WCA) só que com algumas adaptações, já que as competições não serão presenciais. 1. Competição. Descrição: É aconselhável que a competição tenha no mínimo 12 competidores. As competições podem ter limites de tempo por rodada de um evento. Se, durante uma rodada, um competidor não resolver dentro do limite de tempo, sua resolução pode ser parada e desqualificada pelo juiz. 2. Embaralhamento. Descrição: Os quebra-cabeças devem ser embaralhados usando uma seqüência de embaralhamento ou posição de embaralhamento gerada aleatoriamente, que devem ser mantidas em segredo para todos até ha hora da competição. Os competidores devem resolver as mesmas seqüências de embaralhamentos ou posições de embaralhamento em cada grupo de competidores. Narrativas dos casos de usos: 1. Fazer login Descrição: Fazer login. Ator primário: Competidor. Pré-condições: Não ter efetuado o login. Fluxo básico: 1) Competidor acessa a página de login. 2) O sistema solicita o nome do competidor e a senha. 3) O sistema verifica se os dados são validos. 4) O sistema cria uma sessão para o competidor no sistema. Fluxo alternativo: 4a) No passo 4 o nome do competidor e senha estão incorretos 4a1) O sistema informa o erro. 4a2) Inicia o caso de uso Fazer login. 2. Validar login. Descrição: Verifica se o login existe. Ator primário: Sistema. Pré-condição: Ter efetuado o login. 3. 4. 5. 6. 7. Fluxo básico: 1) O sistema verifica se os dados são validos. 2) O sistema confirma a autenticidade. Fluxo alternativo: 2a) O sistema informa que o login não existe. 2a) O sistema solicita que ele efetue novamente o login. Visualizar torneios. Descrição: permite os competidores visualizar os torneios. Ator primário: Competidor. Pré-condição: Nenhuma. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de torneios. 3) O sistema retorna todos os torneios. Participar de torneio. Descrição: O competidor poderá escolher o um torneio para participar. Ator primário: Competidor Pré-condição: Estar logado. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de torneios. 3) O sistema retorna todos os torneios. 4) O competidor escolhe o torneio. 5) O competidor começa a participar. Fluxo alternativo: 5a) Não há vagas no torneio. 5a1) O sistema avisa que foi impossível se inscrever no torneio. 5a2) O sistema solicita que ele tente outro torneio. Enviar tempo. Descrição: O competidor poderá enviar seu tempo. Ator primário: Competidor. Pré-condição: Estar logado e/ou estar participando de um torneio. Fluxo básico: 1) O competidor marca seu tempo. 2) O competidor envia seu tempo. Validar tempo. Descrição: Verificar se tempo enviado é valido. Ator primário: Sistema. Pré-condição: Ter enviado o tempo. Fluxo básico: 1) O sistema recebe o tempo. 2) O sistema avalia o tempo enviado. 3) O sistema aceita o tempo. Fluxo alternativo: 3a) O sistema não aceita o tempo. 3a1) O sistema informa ao competidor que o tempo não foi aceito. 3a2) Se o competidor não tiver no torneio. 3a2b) O sistema solicita que ele envie outro tempo . 3a3) Se o competidor tiver em um torneio. 3a3b) O sistema considerar o tempo como 0s. Criar torneios não oficiais. Descrição: O competidor poderá criar torneios, só que não estará aberto para todo os participantes. Ator primário: Competidor. Pré-condição: Estar logado. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa o a pagina de criação de torneios 3) O competidor escolhe a modalidade do torneio. 4) O competidor configura o tornei. 5) O competidor convida os participantes. 8. Criar torneios oficiais. Descrição: Todos os competidores poderão participar. Ator primário: Administrador. Pré-condição: Estar logado. Fluxo básico: 1) O administrador acessa o sistema. 2) O administrador acessa o a pagina de criação de torneios 3) O administrador escolhe a modalidade 4) O administrador configura o torneio. 5) O administrador libera o torneio para que os competidores possam participar. 9. Comparar desempenho. Descrição: O competidor poderá comparar desempenho entre outros competidores. Ator primário: Competidor. Pré-condição: Nenhuma. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de competidores 3) O competidor escolhe os competidores que vai querer comparar. 4) O competidor submete as escolhas. 5) O sistema faz os cálculos. 6) O sistema retorna a comparação. 10. Visualizar gráfico de desempenho. Descrição: O competidor poderá ver gráficos de seu desempenho ou de outros competidores. Ator primário: Competidor. Pré-condição: Nenhuma. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de competidores. 3) O competidor escolher um competidor. 4) O sistema retornar o gráfico de desempenho. 11. Visualizar ranking. Descrição: Haverá um ranking com todos os competidores. Ator primário: Competidor. Pré-condição: Nenhuma. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de ranking. 3) O competidor escolhe a modalidade. 4) O sistema retorna o resultado. 12. Visualizar tempos. Descrição: Os tempos dos competidores serão visíveis para todos. Ator primário: Competidor. Pré-condição: Nenhuma. Fluxo básico: 1) O competidor acessa o sistema. 2) O competidor acessa a pagina de tempos. 3) O competidor escolhe o competidor. 4) O sistema retorna os tempos do competidor. Modelagem de domínio: Uma competição deve ter os seguintes oficiais: um delegado, um juiz por evento, embaralhadores por evento. Esses oficiais não precisão ser pessoas. O delegado do torneio será responsável: Fazer relatórios sobre a como foi à competição. O juiz do evento em um torneio será responsável: Assegurar que as regras sejam seguidas. Decidir sobre a desqualificação de um competidor em um evento. O embaralhador de um evento será responsável: Dizer a seqüência de embaralhamento que deve ser seguida. Qualquer pessoa poderá participar de uma competição se: Aceitar os regulamentos da competição. Não estiver banido das competições. Os competidores devem fornecer todas as informações solicitadas (pelo menos: nome, país, data de nascimento, sexo, informação de contato, eventos selecionados) para que a inscrição seja considerada completa. Projeto arquitetural: Inicialmente o projeto terá três módulos que será o view, core e o database, que será o de dados, pode ser ver que o modelo arquitetural utilizado será o MVC, no qual separa a lógica de negócio da lógica de apresentação. Diagrama de distribuição: Modelo de processo: O Scrum é um modelo de processo de desenvolvimento iterativo e incremental utilizado no desenvolvimento ágil de software. Por ser uma metodologia ágil onde se tentar minimizar o risco do desenvolvimento de software em curtos períodos e também por ser usado com bastante sucesso no mundo ele tem todos os atributos necessários para ser o modelo de processo usado no desenvolvimento do Sistema de torneios online de cubo mágico. Links: http://www.cubomagicobrasil.com/downloads/WCA_regulations2009v1_portuguese.pdf