Backlog SAFe
Personas
Uma persona é o personagem fictício da user story que representa o usuário ideal do produto. Todas as histórias são escritas a partir da perspectiva de um tipo de usuário.
- Mestre: refere-se ao jogador de campanha de RPG que dejesa mestrar uma campanha no ChaosManager.
- Jogador: refere-se jogador de uma campanha de RPG que deseja participar de um campanha mestrada pela persona metre.
Requisitos funcionais
Um requisito funcional é uma especificação de uma funcionalidade ou comportamento que um sistema ou software deve ser capaz de realizar. No caso do ChaosManager esses requisitos serão modelados usando o modelo de backlog SAFe, dividido em Histórias de Usuário (US), Funcionalidade (FN), Capacidade (CP) e Épicos (EP).
Para a criação do backlog foi utilizado o mural abaixo, a versão dos requisitos aqui apresentada esta demarcada como "Segunda versão do Backlog após verificação e validação":
Para fins de registro abaixo está a tabela com os requisitos.
| Épico | Capacidade | Funcionalidade | Nome da História de Usuário |
|---|---|---|---|
| Plataforma de gereciamento de campanha de rpg | Administração caracteristicas de personagem | Gerenciar raça | Criar raça |
| Visualizar raça | |||
| Editar raça | |||
| Excluir raça | |||
| Gerenciar profissão | Criar profissão | ||
| Visualizar profissão | |||
| Editar profissão | |||
| Excluir profissão | |||
| Administração de fichas | Gerenciar ficha de personagem | Criar ficha de personagem | |
| Visualizar ficha de personagem | |||
| Editar ficha de personagem | |||
| Excluir ficha de personagem | |||
| Gerenciar estados | Atribuir estados | ||
| Retirar estado | |||
| Gerenciar magia | Adicionar magia | ||
| Retirar magia | |||
| Gerenciar arma | Adicionar arma | ||
| Retirar arma | |||
| Gerenciar equipamento | Adicionar equipamento | ||
| Retirar equipamento | |||
| Gerenciar item | Administrar item | ||
| Retirar item | |||
| Administração de dinâmicas | Gerenciar testes | Realizar teste | |
| Visualizar resultado do teste | |||
| Gerenciar combate | Ordenar iniciativa de combate | ||
| Realizar efeito do combate | |||
| Visualizar efeito do combate | |||
| Administração sala da campanha | Gerenciar mapa | Visualizar mapa | |
| Importar mapa | |||
| Editar mapa | |||
| Gerenciar sala da campanha | Criar campanha de rpg | ||
| Visualizar campanha de rpg | |||
| Editar campanha de rpg | |||
| Excluir campanha de rpg | |||
| Acessar campanha de rpg (mestre) | |||
| Acessar campanha de rpg (jogador) |
Declaração das histórias de usuário
| Número | Nome | Declaração | Critérios de aceitação |
|---|---|---|---|
| US01 | Criar raça | Eu, como mestre quero ser capaz de criar uma raça para ter variedade de raças na campanha. | Deve ser possível incluir características das raças (nome, descrição e atributos afetados) Deve ser possivel determinar como as idades afetam essa raça. Deve ser possivel que a raça altere os valores caracteristicos do personagem (atributos). |
| US02 | Visualizar raça | Eu, como mestre ou jogador quero ser capaz de visualizar a lista de raças para ver as raças que estão na campanha. | Deve ser possível selecionar a raça para visualiza-la. Deve ser possível visualizar características das raças (nome, descrição, atributos afetados e valores de modificação). |
| US03 | Editar raça | Eu, como mestre quero ser capaz de editar uma raçapara que eu possa ajustar suas informações relevantes. | O sistema deve permitir que o mestre modifique características das raças (nome, descrição e atributos afetados). |
| US04 | Excluir raça | Eu, como mestre quero ser capaz de excluir uma raça para manter a lista de raças atualizada. | Deve haver uma confirmação antes de remover a raça para evitar erros. |
| US05 | Criar profissão | Eu, como mestre quero ser capaz de criar uma profissão para ter variedade de profissões na campanha. | Deve ser possível adicionar um nome e uma descrição. Deve ser possível adicionar objetos da profissão. Deve ser possível adicionar bônus e penalidades para os testes. |
| US06 | Visualizar profissão | Eu, como mestre ou jogador quero ser capaz de visualizar a lista de profissões para ver as profissões que estão na campanha. | Deve ser possível selecionar a profissão para visualizar a sua descrição e objetos. Deve ser possível visualizar características das profissões (nome, descrição, atributos afetados e valores de modificação). |
| US07 | Editar profissão | Eu, como mestre quero ser capaz de editar uma profissão para que eu possa ajustar suas informações relevantes. | O sistema deve permitir que o mestre modifique as características da profissão (nome, descrição e objetos). |
| US08 | Excluir profissão | Eu, como mestre quero ser capaz de excluir uma profissão para manter a lista de profissões atualizada. | Deve haver uma confirmação antes de remover a profissão para evitar erros. |
| US09 | Criar ficha de personagem | Eu, como mestre ou jogador quero ser capaz de criar uma ficha de personagem para registrar as informações do personagem | Deve ser possível cadastrar o nome, a raça, a profissão, a idade, o gênero. Deve ser possível atribuir o personagem à um jogador ou ao mestre. Deve ser possível escrever historia, as notas e a descrição fisica do personagem. Deve ser possível atribuir atributos. Deve ser possível redistribuir atributos. Somente o mestre deve poder ver as fichas atribuídas a ele. |
| US10 | Visualizar ficha de personagem | Eu, como mestre ou jogador quero ser capaz de visualizar a ficha do personagem para que eu possa acessar informações detalhadas sobre o personagem | Deve ser possível ver o nome, a raça, a profissão, a idade, o genero. Deve ser possível ver magias, armas, equipamentos e itens. Deve ser possível ver estados e traços. Deve ser possível ver pontos de vida, pontos de armadura e pontos de energia. Deve ser ver à quem o personagem está atribuido (mestre ou jogador). Deve ser possível ver historia e a descrição fisica do personagem. Deve ser possível ver o campo de anotações. Deve ser possível ver os atributos. |
| US11 | Editar ficha de personagem | Eu, como mestre ou jogador quero ser capaz de editar a ficha do personagem para manter suas informações atualizadas. | O sistema deve permitir o jogador/mestre editar o nome, a raça, a profissão, a idade, o gênero, a experiência e o dinheiro do personagem. Deve ser possível editar possível ver magias, armas, equipamentos e itens. Deve ser possível editar possível ver estados e traços. O sistema deve permitir o jogador/mestre mudar à quem o personagem está atribuido (mestre ou jogador). O sistema deve permitir que o mestre/jogador edite os pontos atuais de vida, de energia e de armadura. O sistema deve permitir o jogador/mestre editar a história e a descrição física do personagem. O sistema deve permitir o jogador/mestre editar o campo de anotações. O sistema deve permitir o jogador/mestre editar os atributos. |
| US12 | Excluir ficha de personagem | Eu, como mestre quero ser capaz de excluir a ficha do personagem para quando o personagem morrer ou sair da campanha. | Deve haver uma confirmação antes de remover a ficha para evitar erros. |
| US13 | Atribuir estados | Eu, como mestre ou jogador quero ser capaz de atribuir um estado para definir uma penalidade a algumas ações. | Deve ser possivel selecionar estados já existentes. |
| US14 | Retirar estado | Eu, como mestre ou jogador quero ser capaz de retirar um estado para quando uma penalidade não é mais válida. | O sistema deve permitir que o mestre/jogador retirar um estado da ficha ao selecioná-lo e clicar em um botão que indique remoção. Deve haver uma confirmação antes de remover o estado para evitar erros. Deve poder alterar os testes |
| US15 | Adicionar magia | Eu, como mestre ou jogador quero ser capaz de adicionar uma magia na ficha para saber quais possuo. | Para adicionar uma nova magia deve ser possivel adicionar os valores caracteristicos da magia (classe da magia, nome e descrição). Deve ser possível adicionar no máximo 10 magias. |
| US16 | Retirar magia | Eu, como mestre ou jogador quero ser capaz de retirar uma magia da ficha para quando não quiser mais usar ela. | O sistema deve permitir que o mestre/jogador retirar uma magia da ficha ao selecioná-la e clicar em um botão que indique remoção. Deve haver uma confirmação antes de remover a magia para evitar erros. |
| US17 | Adicionar arma | Eu, como mestre ou jogador quero ser capaz de adicionar uma arma na ficha para saber quais possuo. | Deve ser possivel selecionar armas já existentes. Deve ser possível que o jogador/mestre adicione uma nova arma a ficha. O sistema deve validar se a arma sendo adicionada não possui informações diferentes de alguma já existente. US18 |
| US18 | Retirar arma | Eu, como mestre/jogador quero ser capaz de retirar uma arma da ficha para quando não quiser permanecer com ela. | O sistema deve permitir o jogador/mestre retirar uma arma da ficha ao selecioná-la e clicar em um botão que indique remoção. Deve haver uma confirmação antes de remover a arma para evitar erros. |
| US19 | Adicionar equipamento | Eu, como mestre ou jogador quero ser capaz de adicionar um equipamento na ficha para saber quais possuo. | Deve ser possivel selecionar equipamentos já existentes. Deve ser possível que o jogador/mestre adicione um novo equipamento a ficha. Para adicionar um novo equipamento o jogador/mestre deve preencher os campos de nome, modificador de dano, teste usado e peso. O sistema deve validar se o equipamento sendo adicionada não possui informações diferentes de alguma já existente. Deve ser possível adicionar no máximo 5 equipamentos. |
| US20 | Retirar equipamento | Eu, como mestre ou jogador quero ser capaz de retirar um equipamento da ficha para quando não quiser permanecer com ele. | Deve ser possível retirar um equipamento da ficha ao selecioná-lo e clicar em um botão que indique remoção. Deve haver uma confirmação antes de remover o equipamento para evitar erros. |
| US21 | Administrar item | Eu, como mestre ou jogador quero ser capaz de administrar um item na ficha para saber quais e quantos possuo . | De ser possível adicionar novos itens. Para adicionar um novo item devem ser preenchidos os campos de nome e peso. Ao adicionar um novo item a quantidade será 1 por padrão. Deve ser possível adicionar no máximo 15 itens. Deve ser possível aumentar e diminuir a quantidade de um item. |
| US22 | Retirar item | Eu, como mestre ou jogador quero ser capaz retirar um item da ficha para quando não quiser permanecer com ele. | O sistema deve permitir o jogador/mestre retirar um item da ficha ao selecioná-lo e clicar em um botão que indique remoção. <br Deve haver uma confirmação antes de remover o item para evitar erros. |
| US23 | Realizar teste | Eu, como jogadorquero ser capaz de realizar um teste de ações vinculado a um personagem para que ele tente superar uma dificuldade da narrativa. | Deve ser possível realizar os 10 testes possíveis de acordo com o livro de regras (Força, Res. Física, Res. Mental, Sobrevivência, Agilidade, Destreza, Criatividade, Manipulação, Competência, Sorte). Deve ter o campo para randomizar um inteiro de 1 a 20. O sistema deve verificar se foi utilizado pontos de energia para realizar o teste de competência. |
| US24 | Visualizar resultado do teste | Eu, como mestre ou jogador, quero ser capaz de visualizar os resultados do teste para verificar se obtive sucesso ou fracasso no teste | Deve ser possivel visualizar os resultados do teste por meio do registro de ações. Deve mostrar o inteiro de 1 a 20 randomizado quando realiza teste no registro de ações. Deve mostrar o valor do teste de acordo com a ficha. Se o valor do inteiro de 1 a 20 randomizado for igual a 1, deve mostrar a mensagem "falha crítica". Se o valor do inteiro de 1 a 20 randomizado for igual a 20, deve mostrar a mensagem "Acerto crítico". |
| US25 | Ordenar iniciativa de combate | Eu, como mestrequero ser capaz de adicionar fichas em uma lista para determinar a ordem de quem tomará a primeira ação em um combate. | Ao iniciar um novo turno de um combate o mestre deve ser capaz de adicionar em uma lista as fichas dos personagens que irão participar. |
| US26 | Realizar efeito do combate | Eu, como mestre quero ser capaz de realizar efeito de combate para agilizar a dinâmica com os jogadores. | Deve adicionar o valor da ação/retaliação. Deve adicionar valor de dano/PdE, se houver. Deve adicionar reação de defender ou a resistência física. Deve escolher a ficha de quem vai sofrer o dano (Ou a ficha ser por padrão a ordem do turno do combate que vai mudando quando passa pra proxima pessoa) |
| US27 | Visualizar efeito do combate | Eu, como mestre ou jogador, quero ser capaz de visualizar o efeito no turno de combate para verificar os dados que devem ser atualizados na ficha | Deve ser possivel visualizar o efeito do combate por meio do registro de ações. Deve ser possível visualizar os danos causados no registro de ações. |
| US28 | Visualizar mapa | Eu, como mestre ou jogador quero ser capaz de visualizar o mapa para compreender como é a geografia do mundo da campanha. | Todos os jogadores devem ver as alterações no mapa simultaneamente. |
| US29 | Importar mapa | Eu, como mestre quero ser capaz de importar uma imagem para representar como é a geografia do mundo da campanha. | A imagem precisa ser .png ou .jpg. A imagem precisa ter a resolução mínima de 1280 x 720 pixels. |
| US30 | Editar mapa | Eu, como mestre quero ser capaz de editar o mapa exibido para manter atualizado como está a geografia do mundo da campanha. | Deve ser possível desenhar sobre o mapa com um pincel. |
| US31 | Criar campanha de rpg | Eu, como mestre quero ser capaz de criar uma sala de campanha para que possa reunir todos os jogadores, informações e ferramentas da minha campanha. | Deve ser possível o mestre nomear a sala de campanha. Deve ser possível adicionar uma senha de acesso a sala de campanha para o mestre. A senha deve ser obrigatória ao mestre, e deve ter no mínimo 5 dígitos. Deve ser possível incluir informações relacionadas à campanha. Deve ser gerado um código de acesso para que os jogadores acessem a campanha. |
| US32 | Visualizar campanha de rpg | Eu, como mestre ou jogador quero ser capaz de visualizar as informações da campanha para que possa estar informado de sua história. | Deve ser possível visualizar as informações da campanha como: nome e história da campanha. O sistema deve permitir o mestre visualizar o nome e as senhas da sala. O sistema deve permitir o jogador visualizar o nome e a senha dos jogadores da sala. |
| US33 | Editar campanha de rpg | Eu, como mestre quero ser capaz de editar as informações da minha sala para mante-las atualizadas com o decorrer da campanha. | O mestre deve ser capaz de editar as informações da campanha como nome e história da campanha. |
| US34 | Excluir campanha de rpg | Eu, como mestre quero ser capaz de excluir a minha sala de campanha para caso ela seja finalizada ou não queira mais continuá-la. | Apenas mestre deve ser capaz de excluir a sala de campanha. Ao excluir a sala, todas as informações associadas à campanha também devem ser removidas. Deve haver uma confirmação antes de remover a sala de campanha para evitar erros. |
| US35 | Acessar campanha de rpg (mestre) | Eu, como mestre quero ser capaz de acessar a minha sala para poder mestrar uma campanha de RPG. | O acesso deve ser concedido ao mestre através da senha de acesso. Deverá haver uma notificação caso a senha seja digitada incorretamente. |
| US36 | Acessar campanha de rpg (jogador) | Eu, como jogador quero ser capaz de acessar uma sala para poder participar de uma campanha de RPG. | Jogadores devem ser capazes de inserir um um nickname para acessar a sala de campanha. O acesso deve ser concedido através de um código de acesso. |
Requisitos não-funcionais
Um requisito não funcional é uma especificação de uma característica ou propriedade do sistema ou software que não esta diretamente relacionada à sua funcionalidade, como desempenho, segurança, usabilidade, entre outras.
| Número | Declaração |
|---|---|
| RNF01 | A aplicação deve seguir o livro base de regras Order & Chaos |
| RNF02 | A aplicação deve ser responsiva a diferentes tamanhos de tela |
| RNF03 | A aplicação deve ser desenvolvida utilizando NextJS e Node |
| RNF04 | A aplicação deverá rodar nos browsers mais comumente utilizados (Chrome, Edge, Opera) em suas versões recentes |
| RNF05 | O sistema deve ser desenvolvido orientado a objetos |
| RNF06 | O sistema deve ser desenvolvido em paradigma funcional |
| RNF07 | O sistema deve utilizar Jest como biblioteca de testes |
| RNF08 | O sistema deve utilizar Github Actions para automação de processos e testes |
Histórico de versão
| Data | Versão | Descrição | Autor |
|---|---|---|---|
| 25/10 | 1.0 | Criação do backlog | Luciano Ricardo |