Pular para conteúdo

Declaração de escopo - Matcher

Histórico de Revisão

Data Versão Descrição Autor(es)
16/10/2023 0.1 Criação do documento Lucas Queiroz
João Eduardo
Rodrigo Mattos
23/10/2023 1.0 Documento para entrega Lucas Queiroz
Lucas Meireles
João Pedro
Rodrigo Mattos
31/10/2023 1.1 Alteração do Banco de Dados Philipe Morais

Problema/Sistema de software

Definição da equipe de trabalho

Aluno Matrícula
JOÃO EDUARDO PEREIRA RABELO 180053299
FABIO ALESSANDRO TORRES SANTOS 200037170
JOAO PEDRO DA SILVA RODRIGUES 211031074
LUCAS HENRIQUE LIMA DE QUEIROZ 190091703
LUCAS OLIVEIRA MEIRELES 190016647
PHILIPE BARBOSA DE MORAIS 211062830
RODRIGO MATTOS DE FIGUEIREDO AYRES BEZERRA 180108875

Declaração do problema, metodologia, tecnologias e atividades

O chaveamento de torneios de e-sports para algumas formas especiais de competição é realizado manualmente, de forma que organizadores precisam verificar longos arquivos .csv para definir os confrontos. O Matcher surge como uma oportunidade para automatizar esse processo. Além disso, ele será usado para reconhecer dados repetidos em torneios separados e para gerar relatórios de torneios.

Utilizaremos, como tecnologias, React com Typescript, para o Front-end. Para o Back-end, utilizaremos o SGBD PostgreSQL, o ambiente de runtime NodeJS, também com Typescript, o ORM Prisma e o framework Express. Também usaremos o Docker para conteinerização. Git e Github serão empregados no versionamento do software. O MkDocs será usufruído para a documentação. Escolhemos essas tecnologias porque alguns membros do grupo já as conhecem.

Nossa abordagem é ágil, com ciclo de vida ScrumXP. Com base no Scrum vamos utilizar dos rituais de Daily Scrum, Sprint Planning, Sprint Review e Sprint Retrospective. A duração de uma sprint é de uma semana. Além disso, vamos aproveitar as técnicas de Pair Programming, Code Review e Integração Contínua.

Vamos utilizar as métricas Velocity e Throughput. Como abordagem de testes, usaremos de Testes Unitários e de Integração. Escreveremos os testes unitários ao longo da implementação de uma história de usuário.

Backlog do Produto

Perfis de acesso

# Nome do perfil Características do perfil Permissões de acesso
1 Supervisor Responsável por verificar e analisar todos os aspectos a todo momento da realização dos eventos. É também a pessoa capaz de acessar dados extras de recorrências de jogadores e/ou vencedores nos eventos. Acesso completo às funcionalidades da aplicação.
2 Administrador Será o principal indivíduo a organizar a competição, sendo responsável por indicar quais serão os jogadores e grupos de partidas, além de ser o suporte ativo durante todo o decorrer do evento para garantir que este ocorra e os jogadores estejam seguindo os procedimentos e regras. Acesso a dados dos jogadores, grupos da competição, resultados de partidas, relatório final.
3 Jogador Indivíduo que não possui permissões de organização, seu uso é limitado a ter o conhecimento de qual o grupo a que pertence na competição. Grupos de tabela ao qual pertence.

Cenários

Numeração do cenário Nome do cenário
1 Processamento de arquivo CSV
2 Agrupamento de confrontos
3 Partidas
4 Persistência de dados dos jogadores

Backlog do produto

Numeração (Cenário/Requisito) Nome do requisito Tipo de requisito Priorização do requisito Descrição sucinta do requisito User Stories associadas
C1-R1 Importação de CSV Funcional Must A aplicação importa um arquivo CSV. US 1
C1-R2 Interpretação de CSV Funcional Must A aplicação interpreta e organiza os dados do CSV. US 1
C1-R3 Visualização de dados Funcional Must A aplicação apresenta os dados organizados do CSV ao usuário US 1
C2-R1 Sortear as chaves Funcional Must Sorteio dos nomes de jogadores US 2
C2-R2 Exportação de tabela Funcional Should Exportação de uma tabela dos confrontos US 3
C3-R1 Confirmar presença dos jogadores Funcional Should Deverá ser possível confirmar e registrar os nomes que compareceram à partida ou não. US 4
C3-R2 Punir jogadores Funcional Could Deverá ser possível registrar punições em jogadores durante o evento US 5
C3-R3 Receber dados da partida Funcional Could Receber os dados de uma partida, após o seu fim. US 6
C3-R4 Busca de dados de partida Funcional Should Buscar os dados de uma partida utilizando API externa. US 6
C3-R5 Registro manual dos vencedores Funcional Must Registrar manualmente a posição final dos jogadores do grupo na rodada. US 6
C3-R6 Obtenção de vencedores de cada grupo Funcional Must A aplicação deverá ser capaz de identificar os vencedores de cada grupo por rodada. US 6
C4-R1 Obtenção de vencedores de competição Funcional Should A aplicação deverá ser capaz de repassar ao usuário o resultado final da competição. US 7
C4-R2 Persistir dados do torneio Funcional Should A aplicação deverá registrar a informação dos jogadores em documento geral para frequências de participantes e vencedores. US 7 e US 8
C4-R3 Gerar relatório do torneio Funcional Should A aplicação deverá ser capaz de emitir um relatório de finalização do evento US 8
C4-R4 Emitir os dados de torneios de um conjunto de jogadores Funcional Should A aplicação deve ser capaz de emitir um relatório do banco de dados de todos os eventos US 9
C4-R5 Armazenar dados dos jogadores Funcional Should A aplicação armazena os dados dos jogadores recebidos via CSV no banco de dados US 9
RNF1 Usabilidade Não funcional Must A aplicação deverá conter as cores principais da empresa Megalodon, sendo elas Azul, Preto e Branco. A aplicação não poderá ter cores claras como composição principal de suas telas. -
RNF2 Desempenho Não funcional Must A aplicação não poderá ter tempo de resposta superior a 1 minuto entre ações. -
RNF3 Segurança Não funcional Must O acesso aos recursos dos sistemas deve ser limitado a cada perfil de usuário, seguindo as especificações dos perfis de acesso. -
RNF4 Suportabilidade Não funcional Must O sistema deve funcionar para navegadores Google Chrome cuja versão é maior ou igual a 118.0.5993.88. -
RNF5 Confiabilidade Não funcional Must O administrador deve ser capaz de identificar mensagens de erro auto-explicativas em ações que venham a falhar durante o uso da aplicação. O sistema deve manter os dados recebidos salvos para que consiga recuperá-los em caso de parada total do sistema por problemas com baixa previsibilidade, como perda de conexão. -

Sprints previstas

# Sprint Descrição Objetivos Composição de itens do backlog(lista conforme tabela Backlog do produto)
1 Pré-requisitos para os itens da próxima sprint Gerar os itens prévios para a realização dos requisitos de C2-R1 e C2-R2 C1: R1, R2 e R3
2 Iniciar requisitos de chaveamento Iniciar o desenvolvimento da parte com valor de negócio para o cliente do produto C2: R1 e R2
3 Itens para registro de resultados Completa a sequência de ações para prosseguir com o torneio. C3: R3, R5 e R6
4 Itens para controle de presença Expande a quantidade de ações para realização de partidas pelo administrador para controle de jogadores no torneio. C3: R1 e R2
5 Resultado automatizado e vencedores Integrar o sistema à API já existente da empresa do jogo foco para identificar o resultado de partida e trazer informe dos vencedores da competição C3-R4 e C4-R1
6 Dados de jogadores entre torneios Os dados dos jogadores são registrados em um banco de dados persistentes para registrar frequências e vitórias de jogadores C4: R2 e R5
7 Relatórios de informações para uso comercial Finalizar os itens de valor de negócio para o cliente para uso externo. C4: R3 e R4

Definição de ready/done

Definition of Ready: a história de usuário deve estar no formato: “Eu, como (Role), quero/desejo/necessito (verbo no infinitivo) para que (descrição do objetivo do usuário com aquela funcionalidade)". Além disso, os critérios de aceitação devem estar de acordo com as regras de negócio, e os habilitadores técnicos devem estar bem definidos.

Definition of Done: a história deve ter testes unitários escritos e passar em 100% deles. Além disso, testes anteriores de histórias anteriores não podem ser quebrados. A história deve passar por integração contínua. O código novo deve passar por uma revisão por outro membro da equipe. Todo o código novo (classes, métodos, funções, variavéis novas, etc) deve estar bem documentado no próprio código.

US - User Stories

Todas as User Stories estarão sujeitas a todos os critérios de Ready e Done descritos acima.

Identificador Descrição Técnica de elicitação
US1 Eu, como administrador, desejo enviar o CSV com os dados dos jogadores do torneio à aplicação para que possa identificar quem está presente e suas informações de cadastro. Brainstorm
US2 Eu, como administrador, desejo realizar o sorteamento dos grupos da competição para que então os jogadores possam prosseguir com o torneio. Brainstorm
US3 Eu, como jogador, desejo visualizar o grupo em que fui sorteado para que consiga realizar a disputa com os oponentes corretos. Brainstorm
US4 Eu, como administrador, desejo ser capaz de registrar e identificar jogadores que não compareceram às suas partidas, assim tendo acesso à lista correta do resultado dos jogadores. Brainstorm
US5 Eu, como administrador, desejo ser capaz de registrar punições à jogadores quando necessário para que possa manter um bom controle das regras do evento e de um ambiente esportivo com o devido respeito. Brainstorm
US6 Eu, como administrador, desejo registrar os vencedores de cada grupo em cada rodada para que o evento possa prosseguir até sua finalização. Brainstorm
US7 Eu, como administrador, desejo receber os vencedores da competição para que possa identificá-los e registrar sua conquista aos demais jogadores via canal de comunicação externo. Brainstorm
US8 Eu, como administrador, desejo receber os dados necessários para realizar o relatório ao final do evento para que os vencedores possam receber suas premiações. Brainstorm
US9 Eu, como supervisor, desejo acessar as informações de frequência de participação e vitórias de um ou mais jogadores quando analisados no decorrer de diversos torneios e/ou tempo específico para que possa ter esses dados. Brainstorm

Diagrama de casos de uso

Diagrama de casos de uso

MVP

Para o MVP, o cliente, juntamente com os desenvolvedores, chegou em um consenso para serem trabalhadas as U.S.s de numerações 1, 2, 3, 6, 7. Estas são as histórias que delimitam a maior necessidade do cliente no momento e trarão retorno mais rápido e viável ao cliente quando se trata de valor de negócio. As histórias 4 e 5 são itens adicionais que o mesmo já realiza de modo externo e que não necessitam de desenvolvimento rápido ou com urgência, pois o valor de negócio é menor e mais voltado ao controle interno da qualidade do torneio. As histórias 8 e 9 são relacionadas a itens dos torneios, mas também itens extras para uso do cliente em reuniões externas, análise de dados e desempenho de sua empresa, não necessariamente ligado à execução do torneio em si, que é o foco do produto a ser desenvolvido. Foi definido com o cliente que no caso de o desenvolvimento não conseguir abranger os itens externos ao MVP, que eles seriam desenvolvidos durante a primeira atualização do produto para potencial integração a uma aplicação externa.

Referências

SCHWABER, Ken; SUTHERLAND, Jeff. Guia do Scrum: as regras do jogo. 2ª ed. Rio de Janeiro: Elsevier, 2020.

BECK, Kent. Programação extrema (xp) explicada: acolha as mudanças. Porto Alegre: Bookman, 2004.

Nimble. What is velocity in agile?. Disponível em: https://www.nimblework.com/agile/what-is-velocity/. Acesso em: 16 de outubro de 2023.

MACKESY-BUCKLEY, Austin. The Dark Horse Metric: a case for using Throughput. Disponível em: https://medium.com/swlh/the-dark-horse-metric-a-case-for-using-throughput-c486094913a0. Acesso em: 23 de outubro de 2023.

Businessmap. 6 Agile Metrics that matter. Disponível em: https://businessmap.io/agile/project-management/agile-metrics#:~:text=2.-,Throughput,weekly%2C%20monthly%2C%20etc. Acesso em: 16 de outubro de 2023.