FutebolAges
Baixe aqui a versão 1.0.0:MVP
Apresentamos os resultados das Provas de Conceito para o stakeholder e informamos que, devido ao tempo disponível, poderíamos iniciar com um MVP do Plano C e, se desenvolvido em tempo hábil, poderíamos explorar mais os conceitos de Machine Learning e reconhecimento de objetos em tempo real para, assim, implementarmos os demais planos.
O Stakeholder aprovou a idéia então fizemos o levantamento das User Stories que estão listados abaixo:
-
[S01] Eu como usuário gostaria de criar um novo projeto;
-
[S02] Eu como usuário gostaria de avançar/recuar o video usando um valor definido para facilitar a navegação;
-
[S03] Eu como usuário gostaria de inserir múltiplos objetos para analizar;
-
[S04] Eu como usuário gostaria de preencher o quadrante de cada objeto para um frame selecionado;
-
[S05] Eu como usuário gostaria de exportar os dados no formato CSV para analisar em outro programa;
-
[S06] Eu como usuário gostaria de salvar um projeto;
-
[S07] Eu como usuário gostaria de carregar um projeto em andamento para continuar a analise;
-
[S08] Eu como usuário gostaria de nomear os objetos para facilitar a identificação;
-
[S09] Eu como usuário gostaria de percorrer o video usando um Slider;
-
[S10] Eu como usuário gostaria de ver um mini campo com os quadrantes para me ajudar a saber os quadrantes dos objetos;
-
[S11] Eu como usuário gostaria de ter atalhos para facilitar minhas ações no uso da aplicação.
As User Stories sofreram algumas alterações durante as sprints devido às contribuições dos integrantes e do próprio stakeholder.
A partir das User Stories extraímos os seguintes requisitos, que foram utilizados como critérios de aceitação:
Requisitos Funcionais:
- Abrir, Iniciar e Pausar um vídeo;
- Avançar/Recuar o vídeo usando um intervalo de tempo definido (step);
- Avançar/Recuar o vídeo usando um slider;
- Exibir uma tabela com os campos nome e posição (quadrante);
- Inserir mais linhas na tabela;
- Registrar nome e posição (quadrante) do jogador para cada instante de tempo;
- Para cada instante de tempo a tabela deve ser atualizada com os dados do instante de tempo corrente;
- Salvar/Abrir um projeto;
- Exportar os dados de um projeto;
- Importar projeto em andamento e poder continuar de onde parou;
Requisitos Não Funcionais:
- o intervalo de tempo do step será medido em segundos;
- os dados do projeto serão exportados no formato CSV;
- os vídeos serão lidos no formato .mp4 e .flv;
- a navegação entre os quadrantes poderá ser feita usando a tecla TAB;
Implementação:
Com as User Stories e os requistos definidos, escolhemos a Arquitetura que iriamos usar no projeto.
Optamos por usar a base do projeto em [Java](https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o), pois é a linguagem inicialmente introduzida no nosso curso a qual todos os integrantes do projeto tiveram contato e possuem mais familiaridade. Também pesou nessa escolha que o nosso projeto, pela complexidade, já teria uma curva de aprendizado bem complexa.
Conforme o projeto foi evoluindo, decidimos por fazer uma refatoração para adequar o código ao padrão MVC e implementamos também o Maven para nos auxiliar na compilação e na gerência de dependências. Isso nos ajudou a melhor visualizar a definição das classes usadas no projeto.