SlideShare uma empresa Scribd logo
1 de 49
Baixar para ler offline
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
Faculdade de Tecnologia Rubens Lara
Curso Superior de Tecnologia em Análise e
Desenvolvimento de Sistemas
CAIO SILVA ALONSO
DIEGO MARTINEZ SANTOS
FOOTBRAS – APLICATIVO DE REGISTRO DE
ESTATÍSTICAS DE FUTEBOL:
Utilização da Metodologia Ágil Kanban para o
Desenvolvimento de Uma Aplicação Móvel.
Santos, SP
2018
CAIO SILVA ALONSO
DIEGO MARTINEZ SANTOS
FOOTBRAS – APLICATIVO DE REGISTRO DE
ESTATÍSTICAS DE FUTEBOL:
Utilização da Metodologia Ágil Kanban para o
Desenvolvimento de Uma Aplicação Móvel.
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia Rubens Lara, como
exigência para a obtenção do Título de Tecnólogo
em Análise e Desenvolvimento de Sistemas.
Orientador: Jorge Luiz Chiara
Santos, SP
2018
CAIO SILVA ALONSO
DIEGO MARTINEZ SANTOS
FOOTBRAS – APLICATIVO DE REGISTRO DE
ESTATÍSTICAS DE FUTEBOL:
Utilização da Metodologia Ágil Kanban para o
Desenvolvimento de Uma Aplicação Móvel.
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia Rubens Lara, como exigência
para a obtenção do Título de Tecnólogo em Análise e
Desenvolvimento de Sistemas.
Aprovado em ____ de ____________ de 20__
BANCA EXAMINADORA:
___________________________________________________________________
Nome do examinador:
Titulação:
___________________________________________________________________
Nome do examinador:
Titulação:
___________________________________________________________________
Nome do examinador:
Titulação:
Local: Faculdade de Tecnologia da Baixada Santista
RESUMO
Este trabalho tem como objetivo descrever o processo de desenvolvimento de uma
aplicação móvel, para a plataforma Android, que possui como principal
funcionalidade o registro de dados estatísticos de jogadores de futebol amador. A
aplicação foi desenvolvida utilizando o método ágil Kanban, linguagem de
programação Java e banco de dados NoSQL com Firebase. Como resultado,
obteve–se um aplicativo que permite gerenciar partidas de futebol e manter perfis de
jogadores atualizados, com registros estatísticos, considerando todas as 17 regras
oficiais do futebol.
Palavras Chave: Android. Kanban. Futebol.
ABSTRACT
This study aims to describe the development process of a mobile application, for the
Android platform, that has as its main feature the registration of statistical data of
amateur soccer players. The application was developed using the Kanban agile
method, Java programming language and NoSQL database with Firebase. As
results, it was obtained an application that allows managing soccer matches and
maintaining updated player profile, with statistical records, considering all 17 official
rules of soccer.
Keywords: Android. Kanban. Soccer.
LISTA DE SIGLAS E ABREVIATURAS
API Application Programming Interface (Interface de Programação de
Aplicações)
FAQs Frequently Asked Questions (Perguntas Frequentes)
FIFA Federação Internacional de Futebol
IBGE Instituto Brasileiro de Geografia e Estatística
IDE Integrated Development Environment (Ambiente de
Desenvolvimento Integrado)
JSON JavaScript Object Notation (Notação de Objetos JavaScript)
PNAD Pesquisa Nacional por Amostra de Domicílios
UML Unified Modeling Language (Linguagem de Modelagem Unificada)
WIP Work In Progress (Trabalho em Desenvolvimento)
LISTA DE FIGURAS
Figura 1 – Android Studio ...............................................................................13
Figura 2 – Quadro Kanban .............................................................................17
Figura 3 – Documentação do Banco de Dados ..............................................20
Figura 4 – Diagrama de Caso de Uso ............................................................21
Figura 5 – Exemplos de Cartões Kanban Utilizados.......................................29
Figura 6 – Telas de Login, Cadastro e Recuperação de Senha .....................36
Figura 7 – Tela Princial...................................................................................37
Figura 8 – Painel do Jogador..........................................................................38
Figura 9 – Painel Amigo do Jogador...............................................................39
Figura 10 – Telas Criar/Editar/Deletar Jogador ..............................................40
Figura 11 – Tela Partidas................................................................................41
Figura 12 – Tela Criar/Editar Partida ..............................................................42
Figura 13 – Painel da partida..........................................................................43
Figura 14 – Tela Controle de Jogo .................................................................44
LISTA DE TABELAS
Tabela 1 – Caso de Uso – Criar Conta...........................................................22
Tabela 2 – Caso de Uso – Logar....................................................................22
Tabela 3 – Caso de Uso – Excluir Conta........................................................23
Tabela 4 – Caso de Uso – Criar Perfil ............................................................23
Tabela 5 – Caso de Uso – Editar Perfil...........................................................24
Tabela 6 – Caso de Uso – Visualizar Resultados de Partidas........................24
Tabela 7 – Caso de Uso – Visualizar Estatísticas ..........................................25
Tabela 8 – Caso de Uso – Enviar Solicitação de Amizade.............................25
Tabela 9 – Caso de Uso – Responder Solicitações de Amizade....................25
Tabela 10 – Caso de Uso – Criar Uma Partida...............................................26
Tabela 11 – Caso de Uso – Convidar Jogadores Para Uma Partida..............26
Tabela 12 – Caso de Uso – Responder Convites de Partidas........................27
Tabela 13 – Caso de Uso – Gerenciar Partida ...............................................27
Tabela 14 – Listagem de Cartões Kanban Utilizados .....................................29
SUMÁRIO
1 INTRODUÇÃO..........................................................................................10
1.1 Problema............................................................................................10
1.2 Solução ..............................................................................................11
1.3 Objetivo ..............................................................................................11
1.4 Objetivos Específicos .........................................................................11
2 REVISÃO BIBLIOGRÁFICA......................................................................12
2.1 Android...............................................................................................12
2.2 Android Studio....................................................................................13
2.3 Java....................................................................................................13
2.4 Banco de Dados NoSQL ....................................................................14
2.5 Firebase .............................................................................................14
2.6 Controle de Versão ............................................................................14
2.7 UML....................................................................................................15
2.7.1 Casos de Uso...............................................................................15
2.8 Metodologias Ágeis para o Desenvolvimento de Software.................15
2.9 Kanban...............................................................................................16
2.9.1 O Cartão Kanban .........................................................................17
2.9.2 O Quadro Kanban ........................................................................17
3 DESENVOLVIMENTO ..............................................................................18
3.1 A Aplicação ........................................................................................18
3.2 Requisitos...........................................................................................18
3.3 Banco de Dados.................................................................................19
3.4 Diagramas de Caso de Uso ...............................................................20
3.4.1 Casos de uso expandidos ............................................................22
3.5 O Planejamento do Kanban ...............................................................27
3.6 O Desenvolvimento ............................................................................29
4 RESULTADOS..........................................................................................33
4.1 Interface .............................................................................................33
4.2 Interação com o usuário.....................................................................33
4.3 Utilização das Cores...........................................................................34
4.4 Floating Buttons .................................................................................34
4.5 Guias..................................................................................................34
4.6 Cartões...............................................................................................34
4.7 Mapa do Aplicativo .............................................................................35
4.8 Login e Cadastro ................................................................................36
4.9 Menu Principal....................................................................................37
4.9.1 Funcionalidades da tela principal .................................................37
4.10 Telas de Jogadores – Perfil, Estatísticas, Amigos e Busca ............38
4.10.1 Funcionalidades da tela Jogadores............................................38
4.11 Telas de Jogadores Terceiros.........................................................39
4.11.1 Funcionalidades da tela perfil de jogador...................................39
4.12 Criar/Editar/Deletar Jogador............................................................40
4.12.1 Funcionalidades da tela criar/editar jogador...............................40
4.13 Partidas...........................................................................................41
4.14 Iniciar nova partida ou editar uma partida existente........................42
4.14.1 Funcionalidades da tela Painel da partida..................................42
4.15 Painel da partida .............................................................................43
4.15.1 Funcionalidades da tela Painel da partida..................................43
4.16 Tela Controle de Jogo.....................................................................44
4.16.1 Funcionalidades da tela controle de jogo ...................................44
5 CONCLUSÃO ...........................................................................................45
REFERÊNCIAS ..............................................................................................46
10
1 INTRODUÇÃO
O futebol é o esporte mais popular do planeta, sendo praticado por jogadores
de diversas idades e culturas, atravessando fronteiras. É extremamente amplo, com
diversas modalidades e categorias, sendo possível encontrar com grande facilidade,
partidas, times amadores, escolinhas de futebol e campeonatos não–oficiais, em
qualquer região do mundo.
Em muitos países, este é o esporte utilizado como prática esportiva em
projetos sociais, por ser uma paixão universal, um esporte que não discrimina por
sexo, cor, religião, posição social ou política, são somente os jogadores e a bola.
Segundo dados da Pesquisa Nacional por Amostra de Domicílio (PNAD) 2015,
divulgados pelo Instituto Brasileiro de Geografia e Estatística (IBGE), o futebol foi a
principal modalidade esportiva praticada no brasil, com 15,3 milhões de adeptos.
Ainda sobre o futebol no Brasil, de acordo com artigo publicado no site Pequenas
Empresas & Grandes Negócios “O mercado de futebol amador fatura mais de R$ 30
bilhões por ano no Brasil. Por mês, são realizadas cerca de um milhão de partidas
em quadras”.
1.1 Problema
Seja jogando em uma quadra, em campo, na praia ou na rua, jogadores de
futebol amador buscam guardar a quantidade de gols marcados, partidas jogadas,
vitórias obtidas com seus times, e diversos outros dados estatísticos presentes no
dia–a–dia de quem pratica este esporte. Porém, na maioria dos casos, se torna
inviável registrar todos estes números durante uma partida ou campeonato, com
detalhes como tempo do cronômetro, jogador, time e outras informações, apenas
anotando marcações utilizando papel e caneta, devido à velocidade do esporte e a
grande quantidade de eventos ocorridos em uma única partida.
Com um grande número de modalidades e possibilidades de regras, os
jogadores amadores, diferente do profissional, onde há uma organização uniforme
de regras, nem sempre anotam suas estatísticas. Outro ponto bastante incômodo é
a formação de times, que pode ser resumido em mais uma pergunta: “Quem nunca
foi escolhido por último na formação de times dos amigos?”
11
Em certos casos, para eliminar este primeiro problema, muitos grupos de
jogadores aderem ao sorteio de time, em exemplos de jogos chamados
popularmente de “próximo”, onde os times se revezam através de uma lista de
espera, onde quem perde o jogo dá a vez ao próximo time. Mesmo esta solução,
que parece resolver o problema anterior, trouxe um novo aspecto não solucionável
por sorteios. Quando o sorteio coloca os melhores jogadores em um time, que por
consequência, passa a vencer um grande número de partidas.
1.2 Solução
A solução proposta para ambos os problemas levantados anteriormente é o
desenvolvimento de uma aplicação móvel que permita ao usuário registrar suas
estatísticas de jogos de futebol, cadastrar e manter perfis estatísticos atualizados e
realizar a divisão e o sorteio de times de forma nivelada, utilizando as estatísticas de
cada jogador.
1.3 Objetivo
O principal objetivo deste trabalho é descrever o processo de
desenvolvimento de uma aplicação de registro de estatísticas de jogos de futebol
amador para o sistema operacional Android, utilizando o Kanban como metodologia,
sendo uma possível solução para o cenário exposto acima. Esta aplicação permite
que os jogadores de futebol amador se cadastrem e mantenham seu perfil com
estatísticas atualizadas.
1.4 Objetivos Específicos
● Permitir o registro de estatísticas de jogadores de futebol de forma
individual.
● Permitir que o sorteio e a divisão de times sejam realizados de forma
nivelada, utilizando as estatísticas de cada jogador.
● Realizar testes da aplicação em jogos de futebol amadores, levando em
conta os requisitos levantados e funcionalidades básicas.
12
2 REVISÃO BIBLIOGRÁFICA
Atualmente existem diversas ferramentas e tecnologias disponíveis para o
desenvolvimento de aplicações móveis. Por se tratar de uma aplicação voltada para
o sistema Android, as principais ferramentas selecionadas para o desenvolvimento
foram o ambiente de desenvolvimento Android Studio, a linguagem de programação
Java e o banco de dados Firebase. Tecnologias que compõem o ambiente oficial,
recomendado pela Google, para desenvolvimento Android.
Este capítulo descreve as ferramentas e tecnologias utilizadas para o
desenvolvimento da aplicação proposta.
2.1 Android
Segundo Ableson, Sen e King (2012), o Android é um ambiente de software
voltado para dispositivos móveis. Inclui um sistema operacional baseado em kernel
Linux, interface de usuário, aplicativos de usuário, bibliotecas de código, frameworks
de aplicativo, suporte a multimídia e funcionalidades de telefone.
No que se refere a seu surgimento e sua construção, define–se que o Android:
Foi construído com a intenção de permitir aos desenvolvedores criar
aplicações móveis que possam tirar total proveito do que um aparelho portátil
possa oferecer. Foi construído para ser verdadeiramente aberto. Por
exemplo, uma aplicação pode apelar a qualquer uma das funcionalidades de
núcleo do telefone, tais como efetuar chamadas, enviar mensagens de texto
ou utilizar a câmera, que permite aos desenvolvedores adaptarem e
evoluírem cada vez mais estas funcionalidades. (PEREIRA; SILVA, 2009, p.
3).
Monteiro (2012) aponta que, atualmente, a plataforma possui grande
destaque no mercado, tanto pela quantidade de dispositivos produzidos como
também por oferecer uma API rica, possibilitando acesso facilitado a diversos
recursos de hardware, como Wi–Fi e GPS. A utilização da linguagem Java para
desenvolvimento, a simplicidade e o baixo custo para a publicação de aplicativos na
Google Play e a grande quantidade de dispositivos Android no mundo aumentam
cada vez mais a popularidade da plataforma.
13
2.2 Android Studio
Segundo a documentação do Android “O Android Studio é o ambiente de
desenvolvimento integrado (IDE) oficial para o desenvolvimento de aplicativos
Android...”
É um ambiente completo, contendo editor de layout, editor de código,
emulador e ferramentas voltadas para análise de performance do aplicativo. Além
disso, possibilita integração facilitada com ferramentas externas, como Firebase e
Git.
Figura 1 – Android Studio
Fonte: Documentação Oficial do Android Studio, 2018
2.3 Java
Segundo Luckow e Melo (2010), a linguagem Java teve seu início em 1991,
na Sun Microsystems, a princípio, como parte de outro projeto, chamado Green
Project, que visava possibilitar a convergência entre computador, equipamentos
eletrônicos e eletrodomésticos.
Para Mendes (2009) “A linguagem de programação Java representa uma
linguagem simples, orientada a objetos, multithread, interpretada, neutra de
arquitetura, portável, robusta, segura e que oferece alto desempenho.”
14
É altamente recomendada para o desenvolvimento de aplicações móveis,
devido aos seus recursos e funcionalidades. Além disso, é a principal linguagem
utilizada no Android Studio.
2.4 Banco de Dados NoSQL
Segundo Lóscio, Oliveira e Pontes (2011), os bancos de dados NoSQL
possuem características fundamentais que os diferenciam dos bancos de dados
relacionais. Estas características tornam os bancos NoSQL adequados para o
armazenamento de grandes volumes de dados estruturados ou semiestruturados.
Algumas das principais características são: escalabilidade horizontal, ausência de
esquema ou esquema flexível, suporte nativo a replicação, API simples para acesso
aos dados e consistência eventual.
Vera et al (2015) descrevem que os bancos de dados NoSQL surgiram como
resposta às necessidades de melhor escalabilidade, menor latência e maior
flexibilidade na era de big data e computação em nuvem.
2.5 Firebase
Segundo Moroney (2017), o Firebase possui tecnologias projetadas para
aprimorar o desenvolvimento de aplicativos, sendo as principais: Authentication
(Autenticação), Real time Database (Banco de Dados em Tempo Real), Cloud
Storage (Armazenamento em Nuvem), Hosting (Hospedagem), Test Lab
(Laboratório de Testes), Crash Reporting (Relatórios de Falhas) e Cloud Functions
(Funções em Nuvem).
Moroney (2017) ainda define o Firebase Real time Database como sendo um
banco de dados NoSQL, baseado em nuvem, que permite a sincronização de dados
em todos os clientes em tempo real, possuindo funcionalidades offline. Os dados
são armazenados no banco utilizando estruturas JSON, e todos os clientes
conectados compartilham uma instância, recebendo automaticamente atualizações
com os dados mais recentes.
2.6 Controle de Versão
Segundo Chacon (2010), controle de versão é um sistema que guarda
mudanças de um arquivo ou de um conjunto de arquivos ao longo do tempo para
que, no futuro, seja possível recuperar versões anteriores destes arquivos.
15
Dentre suas principais funções, Chacon (2010) destaca a possibilidade de se
reverter arquivos e projetos para um estado anterior, comparar mudanças ao longo
do tempo, verificar quem foi o último a modificar um arquivo ou projeto, e quando as
modificações ocorreram.
2.7 UML
A UML pode ser definida como:
... uma linguagem gráfica para visualização, especificação, construção e
documentação de artefatos de sistemas complexos de software. A UML proporciona
uma forma–padrão para a preparação de planos de arquitetura de projetos de
sistemas, incluindo aspectos conceituais como processos de negócios e funções do
sistema, além de itens concretos como as classes escritas em determinada
linguagem de programação, esquemas de bancos de dados e componentes de
software reutilizáveis. (BOOCH; RUMBAUGH; JACOBSON, 2006, p. XIII)
2.7.1 Casos de Uso
De acordo com Larman (2007), os casos de uso podem ser definidos como
narrativas em texto, utilizadas para descobrir e registrar requisitos. Influenciam
diversos aspectos de um projeto, servindo de entrada para vários artefatos
subsequentes nos estudos de caso.
Os diagramas de caso de uso são compostos, principalmente, por atores,
cenários e casos de uso.
2.8 Metodologias Ágeis para o Desenvolvimento de Software
Segundo Pressman e Maxim (2016), uma metodologia estabelece uma base
para um processo de engenharia completo, identificando uma pequena quantidade
de atividades metodológicas que podem ser aplicadas em qualquer projeto de
software, independente de tamanho e complexidade.
Um processo de software, compreende, de forma genérica, as seguintes
atividades: Comunicação, Planejamento, Modelagem, Construção e Entrega.
Atualmente, há uma grande variedade de metodologias de desenvolvimento
disponíveis, cada uma com suas características, vantagens e desvantagens. Dentre
todas elas, um grupo que se encontra cada vez mais em evidência é o de
metodologias ágeis. No que se refere a elas, é descrito que:
16
A engenharia de software ágil combina filosofia com um conjunto de
princípios de desenvolvimento. A filosofia defende a satisfação do cliente e
a entrega incremental antecipada; equipes de projeto pequenas e altamente
motivadas; métodos informais; artefatos de engenharia de software
mínimos; e, acima de tudo, simplicidade no desenvolvimento geral.
(PRESSMAN; MAXIM, 2016, p. 66).
Sobre o termo Metodologias Ágeis, Prikladnicki, Willi e Milani (2014)
descrevem que o termo se popularizou em 2001, quando 17 especialistas em
desenvolvimento de software, representando metodologias já existentes, como XP e
Scrum, estabeleceram princípios comuns a todas elas, resultando na criação da
Aliança Ágil e no estabelecimento do Manifesto Ágil.
2.9 Kanban
Ohno (1997) descreve que o Kanban surgiu como um instrumento para
garantia da produção Just–In–Time, sendo o primeiro pilar do Sistema Toyota de
Produção. Busca fornecer e movimentar componentes de uma produção nas
quantidades requeridas e no momento exato. Basicamente, é uma forma simples e
direta de comunicação, localizada sempre no ponto que se faz necessária.
Para Peinado e Graeml (2007), “o Kanban é um método que se baseia em
“puxar”, os itens necessários para o próximo estágio de produção (ou para consumo)
apenas quando necessários”.
Quando se tratando de desenvolvimento de software:
Utiliza–se Kanban para controlar o trabalho em progresso (ou WIP – Work in
Progress) para indicar quando novas tarefas devem ser puxadas, em outras
palavras, indica quando um requisito deve ser analisado, desenvolvido,
testado, etc. (GOMES, 2010)
Ainda segundo Gomes (2010), o Kanban pode ser considerado um método de
desenvolvimento de software baseado em práticas Lean, que visa otimizar o
processo de desenvolvimento de software, limitando o trabalho em progresso,
apresentando a evolução de forma visual, tornando problemas evidentes e provendo
melhoria contínua.
Para Genari e Ferrari (2015), “As principais características do Kanban são:
Visualização do fluxo de trabalho, limitação do trabalho em progresso e
gerenciamento e medição do fluxo existente.”.
17
Figura 2 – Quadro Kanban
Fonte: PRIKLADNICKI, WILLI, MILANI, 2014
2.9.1 O Cartão Kanban
O cartão Kanban é definido da seguinte forma:
O cartão Kanban é responsável pela comunicação e pelo funcionamento de
todo o sistema, nele devem estar contidos as informações mínimas para o
bom funcionamento da linha de produção. Sendo necessário, ele poderá
conter um número maior de informações, desde que sejam importantes para
a área específica, onde se pretende implementar o sistema Kanban.
(AGUIAR; PEINADO, 2007, p. 141)
2.9.2 O Quadro Kanban
O quadro de Kanban é uma das principais ferramentas utilizadas no método.
Nele serão colocados e “puxados” os cartões do Kanban. Arruda (2012) descreve
que, através do quadro de Kanban, é possível entender quanto esforço pode ser
adicionado em uma determinada tarefa, sempre levando em consideração a
indicação de limite e de capacidade da equipe, assim como o software que está
sendo desenvolvido.
18
3 DESENVOLVIMENTO
Este capítulo apresenta a metodologia, os diagramas UML e o modelo de
banco de dados, permitindo uma melhor visualização da estrutura utilizada no
desenvolvimento do projeto.
3.1 A Aplicação
Este projeto propõe o desenvolvimento de uma aplicação Android, que
permita aos usuários cadastrar e editar seus perfis e organizar partidas de futebol
para o registro de estatísticas.
Oficialmente, o esporte tem 17 regras universais. O texto oficial, em inglês, é
divulgado pela Federação Internacional de Futebol (FIFA), organização não–
governamental internacional que dirige as associações de futebol, futsal e futebol de
areia. A aplicação possibilitará ao usuário aplicar às partidas todas estas 17 regras
existentes.
Esta aplicação permite o registrar cada evento de uma partida e traduzir, em
números, todos estes registros, com detalhes como tempo do cronômetro na hora do
clique, jogador, time e tipo de marcação.
Estes registros são realizados por meio de um controle de jogo, que
possibilita a marcação de todos os eventos de uma partida, como gols, faltas,
cartões, escanteios e laterais, permitindo que o jogador guarde, em seu perfil, as
suas estatísticas e resultados, podendo ter diversas outras análises, como ver seu
índice em diferentes formações de time.
Com esse controle de eventos ocorridos em cada partida também é possível
analisar cada jogo de forma individual, mostrando os jogadores que tiveram melhor
desempenho e como cada time se comportou na partida.
3.2 Requisitos
O levantamento de requisitos foi feito com base em conversas com jogadores
de futebol amador de diversas idades, a fim de apresentar uma breve ideia da
aplicação e também recolher dados relevantes que pudessem ser destacados como
requisitos.
19
De acordo com os principais pontos levantados pelos jogadores durante as
entrevistas, os seguintes requisitos foram obtidos:
● Realizar o cadastro de usuários.
● Recuperar senha quando necessário.
● Permitir a alteração de dados de usuário.
● Realizar a criação de perfil de jogadores.
● Permitir a consulta e alteração dos dados e informações de jogadores.
● Enviar convites de amizade.
● Aceitar e recusar convites de amizade.
● Agendar partidas.
● Definir regras que serão utilizadas na partida.
● Convidar amigos para participar da partida.
● Aceitar e recusar convites de partida.
● Nivelar times classificando jogadores por caraterísticas físicas.
● Nivelar times classificando jogadores por desempenho estatístico.
● Nivelar times classificando jogadores por resultados.
● Registrar eventos ocorridos na partida.
● Atribuir eventos ocorridos na partida a jogadores e times.
● Atribuir pontuação a cada jogador no término da partida.
● Consultar dados de uma partida.
● Consultar eventos ocorridos em uma partida.
● Consultar estatísticas e registros de um jogador.
3.3 Banco de Dados
O banco de dados da aplicação, assim como foi descrito anteriormente, utiliza
como tecnologia o Firebase. Um banco de dados real–time (tempo real) de modelo
hierárquico e NoSQL.
Está organizado com quatro nodos de dados principais e os demais são feitos
por relação, são estes: Jogador, Time, Partida e Marcação. Outros dados são
coletados a partir de eventos registrados dentro da aplicação e que geram a relação
entre os demais, são estes: Amigos, Escalação (Separados por Time), Notificações
(Convocações e Solicitações de Amizade).
20
Para a modelagem de dados foi utilizado o modelo proposto por Vera et al
(2015), que consiste em um padrão de modelagem de dados NoSQL na forma de
diagramas entidade relacionamento.
Figura 3 – Documentação do Banco de Dados
Fonte: Desenvolvido pelos autores, 2018.
3.4 Diagramas de Caso de Uso
Esta seção apresenta os casos de uso da aplicação, utilizando os padrões de
diagramas da UML.
A figura 3 descreve os casos de uso do usuário dentro do aplicativo,
considerando seus dois papéis principais, jogador e administrador da partida. Ambos
realizam as ações de usuário (criar conta, logar e excluir a conta), porém, possuem
funções distintas dependendo do contexto da partida. Quando ocupando papel de
jogador, o usuário poderá criar e editar seu perfil de jogador, visualizar resultado da
partida, visualizar suas estatísticas, responder convites de partidas, enviar
solicitações de amizade, podendo cancelar as mesmas caso necessário, e
responder convites de solicitação de amizade. Ao ocupar o papel de administrador
da partida, o usuário poderá criar uma partida, convidar jogadores para a partida,
21
devendo realizar a escalação e divisão dos jogadores, e iniciar, pausar e finalizar
uma partida.
Figura 4 – Diagrama de Caso de Uso
Fonte: Desenvolvido pelos autores, 2018.
22
3.4.1 Casos de uso expandidos
A seguir são apresentados os casos de uso expandidos da aplicação.
Tabela 1 – Caso de Uso – Criar Conta
Caso de Uso Criar Conta
Descrição Requisito que permite a criação de conta de usuário.
Ator Usuário
Fluxo Principal 1 – Usuário acessa a página de criação de conta
2 – Usuário insere informações solicitadas para criação da conta
Fluxo Alternativo 1 – E–mail ou senha inválidos
Sistema informa usuário que e–mail ou senha digitados não são válidos.
2 – Campo em branco
Sistema informa o usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
Tabela 2 – Caso de Uso – Logar
Caso de Uso Logar
Descrição Requisito que permite aos usuários realizar login na aplicação.
Ator Usuário
Fluxo Principal 1 – Usuário insere login e senha
2 – Sistema realiza autenticação de usuário baseado nas informações digitadas.
Fluxo Alternativo 1 – E–mail ou senha inválidos
Sistema informa usuário que e–mail ou senha digitados não são válidos.
2 – E–mail não cadastrado
Sistema sugere ao usuário a criação de uma nova conta.
3 – Campo em branco
Sistema informa ao usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
23
Tabela 3 – Caso de Uso – Excluir Conta
Caso de Uso Excluir Conta
Descrição Requisito que permite ao usuário realizar a exclusão de sua conta de usuário.
Ator Usuário
Fluxo Principal 1 – Usuário solicita exclusão da conta
2 – Usuário informa o e–mail cadastrado
3 – Usuário recebe link em seu e–mail para efetivar a exclusão da conta.
4 – Conta é excluída após usuário confirmar solicitação no link enviado.
Fluxo Alternativo 1 – E–mail inválido
Sistema informa usuário que o e–mail inserido não é válido ou que não há
cadastro com este e–mail.
2 – Campo em branco
Sistema informa o usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
Tabela 4 – Caso de Uso – Criar Perfil
Caso de Uso Criar Perfil
Descrição Requisito que permite aos usuários criar um perfil de jogador e alimentar esse
perfil com seus dados pessoais.
Ator Jogador
Fluxo Principal 1 – Usuário acessa página de perfil
2 – Usuário seleciona a opção criar perfil
3 – Usuário insere os dados necessários para a criação do perfil
4 – Ao concluir a operação é realizada a criação do jogador no banco de dados
Fluxo Alternativo 1 – Informações Inválidas
Sistema informa o usuário quais informações inseridas estão inválidas.
2 – Campo em branco
Sistema informa o usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
24
Tabela 5 – Caso de Uso – Editar Perfil
Caso de Uso Editar Perfil
Descrição Requisito que permite aos usuários editar as informações presentes em seu
perfil de jogador.
Ator Jogador
Fluxo Principal 1 – Usuário acessa seu perfil
2 – Usuário seleciona a opção editar perfil
3 – Usuário seleciona e insere os dados que deseja alterar
Ao concluir a operação, alteração é realizada no banco de dados
Fluxo Alternativo 1 – Informações Inválidas
Sistema informa o usuário quais informações inseridas estão inválidas
2 – Campo em branco
Sistema informa o usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
Tabela 6 – Caso de Uso – Visualizar Resultados de Partidas
Caso de Uso Visualizar Resultados de Partidas
Descrição Requisito que permite aos usuários visualizar resultados e informações de uma
partida.
Ator Jogador
Fluxo Principal 1 – Usuário acessa menu de partidas
2 – Usuário seleciona uma partida
3 – Usuário acessa informações e resultados da partida
Fluxo Alternativo –
Fonte: Desenvolvido pelos autores, 2018.
25
Tabela 7 – Caso de Uso – Visualizar Estatísticas
Caso de Uso Visualizar Estatísticas
Descrição Requisito que permite aos usuários visualizar as estatísticas de um determinado
jogador.
Ator Jogador
Fluxo Principal 1 – Usuário acessa o perfil de jogador
2 – Usuário acessa a opção estatísticas
3 – Usuário visualiza dados estatísticos referentes ao jogador
Fluxo Alternativo –
Fonte: Desenvolvido pelos autores, 2018.
Tabela 8 – Caso de Uso – Enviar Solicitação de Amizade
Caso de Uso Enviar Solicitação de Amizade
Descrição Requisito que permite aos usuários enviar solicitação de amizade a outros
usuários.
Ator Jogador
Fluxo Principal 1 – Usuário seleciona um jogador que não possui amizade
2 – Usuário seleciona a opção de adicionar amigo
3 – Convite de amizade é enviado pelo sistema
Fluxo Alternativo 1 – Usuário Envia Solicitação de Amizade por Engano
Sistema oferece funcionalidade para cancelar solicitação de amizade
Fonte: Desenvolvido pelos autores, 2018.
Tabela 9 – Caso de Uso – Responder Solicitações de Amizade
Caso de Uso Responder Solicitações de Amizade
Descrição Requisito que permite aos usuários aceitar ou recusar solicitações de amizade
de outros usuários.
Ator Jogador
Fluxo Principal 1 – Usuário seleciona a aba de notificações no menu principal
2 – Usuário seleciona um convite de amizade
3 – Usuário escolhe se deseja aceitar ou recusar o convite de amizade
Fluxo Alternativo –
Fonte: Desenvolvido pelos autores, 2018.
26
Tabela 10 – Caso de Uso – Criar Uma Partida
Caso de Uso Criar Uma Partida
Descrição Requisito que permite aos usuários criar uma partida e alimentar esta partida
com as informações e regras desejadas.
Ator Administrador da Partida
Fluxo Principal 1 – Usuário acessa menu de partidas
2 – Usuário seleciona a opção criar partida
3 – Usuário insere os dados necessários para a criação de uma partida
Sistema envia partida para o banco de dados e habilita o gerenciamento da
partida para o administrador
Fluxo Alternativo 1 – Informações da Partida Inválidas
Sistema informa o usuário quais informações inseridas estão inválidas
2 – Campo em branco
Sistema informa o usuário que os campos obrigatórios devem ser preenchidos.
Fonte: Desenvolvido pelos autores, 2018.
Tabela 11 – Caso de Uso – Convidar Jogadores Para Uma Partida
Caso de Uso Convidar Jogadores Para Uma Partida
Descrição Requisito que permite aos usuários enviar convites de participação de partida
para jogadores amigos.
Ator Administrador da Partida
Fluxo Principal 1 – Usuário acessa o menu de partida
2 – Usuário seleciona uma partida já criada
3 – Usuário seleciona a opção de escalação
4 – Usuário escolhe os jogadores que deseja convidar para a partida
5 – Ao concluir a operação o convite é enviado para os jogadores selecionados
Fluxo Alternativo 1 – Usuário Finaliza a Operação Sem Selecionar Jogadores
Sistema informa o usuário que deve selecionar uma quantidade mínima de
jogadores
2 – Usuário Envia Convite para um Jogador Errado
Sistema deve apresentar opção para cancelar convite de participação da partida
Fonte: Desenvolvido pelos autores, 2018.
27
Tabela 12 – Caso de Uso – Responder Convites de Partidas
Caso de Uso Responder Convites de Partidas
Descrição Requisito que permite aos usuários aceitar convites de participação de partidas.
Ator Jogador
Fluxo Principal 1 – Usuário acessa a aba de notificações
2 – Usuário seleciona uma solicitação de amizade
3 – Usuário escolhe se deseja aceitar ou recusar o convite
Fluxo Alternativo –
Fonte: Desenvolvido pelos autores, 2018.
Tabela 13 – Caso de Uso – Gerenciar Partida
Caso de Uso Gerenciar Partida
Descrição Requisito que permite aos usuários gerenciar uma partida criada anteriormente,
possibilitando iniciar, pausar ou finalizar a partida, assim como realizar as
marcações e registros de eventos ocorridos na partida.
Ator Jogador
Fluxo Principal 1 – Usuário acesso o menu de partidas
2 – Usuário seleciona uma partida já criada
3 – Usuário pode escolher entre as opções de iniciar, pausar e finalizar a partida
4 – Usuário realiza marcações de acordo com os acontecimentos da partida.
3 – Ao finalizar a partida, os dados coletados são enviados para o banco de
dados.
Fluxo Alternativo –
Fonte: Desenvolvido pelos autores, 2018.
3.5 O Planejamento do Kanban
A organização do projeto foi feita separando o aplicativo em quatro módulos:
Login, Menu principal, Jogadores e Partidas. Cada um destes possui um conjunto de
telas e tarefas específicas que foram organizados por etiquetas.
Para este projeto, a estrutura do quadro Kanban utilizado contém Backlog (À
Fazer), Work In Progress (WIP) (Em Desenvolvimento), Testing (Fila de Teste) e
Done (Concluído). Além disso, foram adotadas cores diferentes para os cartões de
28
diferentes tipos de tarefa, proporcionando melhor organização e visualização da
execução do projeto.
● Planning Tasks (Tarefas de Planejamento): Todas as ideias eram
colocadas nesta lista e a ordem dos cartões era discutida para saber em
qual momento deveriam ser desenvolvidas.
● Backlog (A Fazer): Os cartões selecionados eram passados para o
Backlog organizados por sequência.
● Work In Progress (Em Desenvolvimento): Cada desenvolvedor pode
escolher um cartão para desenvolver e aplicar uma etiqueta de
identificação com seu nome.
● Testing (Em Teste): Depois de desenvolvida, a funcionalidade referente ao
cartão é passada para a fila de testes, onde deve ser validado se o código
enviado não quebra outras funcionalidades.
● Done (Concluído): Por fim, testado e aprovado, o cartão é colocado na
lista Done.
Para maior organização visual do desenvolvimento da aplicação, os cartões
foram divididos de acordo com a tela a qual pertenciam. Por seguir um mesmo
padrão de tela, a partir do desenvolvimento do menu inicial, foi possível a
reutilização de código para se criar a base dos módulos seguintes, o que
proporcionou maior agilidade e um menor número de alterações na interface de
cada tela.
Também foi feita a classificação dos cartões por nível de complexidade,
sendo numerados de um a sete, possibilitando colocar em WIP cartões que
possuíam interdependência e que fossem de complexidade baixa. Outros mais
complexos de nível sete eram tratados com mais atenção. O tratamento de erros ou
mudanças, também era realizado com a criação de novos cartões, devidamente
sinalizados.
29
Figura 5 – Exemplos de Cartões Kanban Utilizados
Fonte: Desenvolvido pelos autores, 2018
3.6 O Desenvolvimento
A tabela a seguir apresenta uma relação com os cartões Kanban que foram
utilizados durante o desenvolvimento da aplicação, mostrando as divisões realizadas
tanto por nível de dificuldade quanto por módulo ou divisão a qual pertence.
Tabela 14 – Listagem de Cartões Kanban Utilizados
DESCRIÇÃO POR NÍVEL DIVISÃO DATA
Desenvolvimento da Tela Base Caio 4 Menu Principal 02/04
Navegação da Tela Base Caio 7 Menu Principal 02/04
Design da Tela Diego 3 Menu Principal 02/04
Design dos Cartões Diego 3 Menu Principal 04/04
Conexão com o banco de dados Diego 6 Menu Principal 10/04
Validação de usuário criado Diego 2 Menu Principal 12/04
Validação de usuário (login) Caio 2 Menu Principal 14/04
Lógica do Login Caio 7 Menu Principal 14/04
Criar a guia para o Dashboard Caio 3 Menu Principal 18/04
Configurar o Dashboard na guia Diego 5 Menu Principal 22/04
Criar a guia para as Notificações Diego 3 Menu Principal 25/04
Configurar as Notificações na guia Diego 5 Menu Principal 25/04
Criar a guia para a FAQs Diego 3 Menu Principal 01/05
Configurar a FAQs na guia Caio 5 Menu Principal 01/05
30
Desenvolvimento da Tela Base Diego 4 Tela Login 01/05
Design da Tela Diego 3 Tela Login 01/05
Programação do Login Caio 6 Tela Login 01/05
Conexão com o Banco de Dados Caio 6 Tela Login 05/06
Desenvolvimento da Tela Base Diego 4 Tela Cadastro 05/06
Design da Tela Diego 3 Tela Cadastro 11/06
Programação do Cadastro de Usuários Caio 5 Tela Cadastro 11/06
Conexão com o Banco de Dados Diego 6 Tela Cadastro 15/06
Desenvolvimento da Tela Base Diego 4 Recuperação de Senha 17/06
Design da Tela Diego 3 Recuperação de Senha 19/06
Programação da Recuperação de Senha Caio 7 Recuperação de Senha 22/06
Conexão com o Banco de Dados Caio 6 Recuperação de Senha 22/05
Desenvolvimento da Tela Base Caio 4 Módulo do Jogador 24/05
Navegação da Tela Base Caio 6 Módulo do Jogador 24/05
Design da Tela Diego 3 Módulo do Jogador 27/05
Design e Configuração dos Cartões Diego 6 Módulo do Jogador 27/05
Desenvolvimento dos Cartões Diego 5 Módulo do Jogador 01/06
Conexão com o banco de dados Diego 6 Módulo do Jogador 01/06
Criar a guia para o Cartão de Perfil Caio 3 Módulo do Jogador 06/06
Configurar o Cartão de Perfil na guia Diego 5 Módulo do Jogador 07/06
Criar a guia para o Cartão de Estatísticas Caio 3 Módulo do Jogador 13/06
Configurar o Cartão de Estatísticas na
guia
Diego 5 Módulo do Jogador 13/06
Criar a guia para a Lista de Amigos Caio 3 Módulo do Jogador 15/06
Configurar a Lista de Amigos na guia Caio 5 Módulo do Jogador 15/06
Acesso ao perfil de outro jogador Diego 6 Módulo do Jogador 22/06
Validação se outro jogador já é amigo Diego 5 Módulo do Jogador 22/06
Criar a guia para Busca de Jogadores Caio 3 Módulo do Jogador 22/06
Configurar a Busca de Jogadores na guia Caio 7 Módulo do Jogador 23/06
Desenvolvimento da Tela Base Diego 4 Criar/Editar Jogador 23/06
Navegação da Tela Base Diego 6 Criar/Editar Jogador 30/06
Design da Tela Diego 3 Criar/Editar Jogador 30/06
Conexão com o banco de dados Diego 6 Criar/Editar Jogador 02/07
Desenvolvimento da Tela Base Diego 5 Perfil Amigos/Não–
amigos
02/07
Navegação da Tela Base Diego 6 Perfil Amigos/Não–
amigos
05/07
31
Design da Tela Diego 3 Perfil Amigos/Não–
amigos
07/07
Design dos Cartões Diego 4 Perfil Amigos/Não–
amigos
09/07
Desenvolvimento dos Cartões Diego 5 Perfil Amigos/Não–
amigos
10/07
Conexão com o banco de dados Diego 6 Perfil Amigos/Não–
amigos
17/07
Criar a guia para o Cartão Perfil Diego 3 Perfil Amigos/Não–
amigos
17/07
Configurar o Cartão Perfil na guia Diego 5 Perfil Amigos/Não–
amigos
17/07
Criar a guia para o Cartão Estatísticas Diego 3 Perfil Amigos/Não–
amigos
19/07
Configurar o Cartão Estatísticas na guia Diego 5 Perfil Amigos/Não–
amigos
19/07
Criar a guia para a Lista de Amigos Diego 3 Perfil Amigos/Não–
amigos
26/07
Desenvolvimento da Tela Base Caio 4 Módulo de Partidas 26/07
Navegação da Tela Base Caio 6 Módulo de Partidas 26/07
Design da Tela Diego 3 Módulo de Partidas 30/07
Design dos Cartões Diego 4 Módulo de Partidas 30/07
Desenvolvimento dos Cartões Diego 5 Módulo de Partidas 01/08
Conexão com o banco de dados Diego 6 Módulo de Partidas 03/08
Criar a guia para os Detalhes da Partida Caio 3 Painel da Partida 06/08
Configurar os Detalhes da Partida na guia Diego 6 Painel da Partida 10/08
Criar a guia para os Cartões de
Escalação
Caio 3 Painel da Partida 11/08
Configurar os Cartões de Escalação na
guia
Diego 6 Painel da Partida 11/08
Desenvolvimento da Tela Base Diego 4 Criar/Editar Partida 11/08
Navegação da Tela Base Diego 6 Criar/Editar Partida 17/08
Design da Tela Diego 3 Criar/Editar Partida 17/08
Conexão com o banco de dados Diego 6 Criar/Editar Partida 17/08
Desenvolvimento da Tela Base Diego 4 Painel da Partida 22/08
Navegação da Tela Base Diego 6 Painel da Partida 22/08
Design da Tela Diego 3 Painel da Partida 30/08
Design dos Cartões Diego 5 Painel da Partida 30/08
Desenvolvimento dos Cartões Diego 6 Painel da Partida 30/08
Conexão com o banco de dados Diego 6 Painel da Partida 03/09
32
Desenvolvimento da Tela Base Diego 4 Tela Controle de Jogo 07/09
Navegação da Tela Base Diego 7 Tela Controle de Jogo 07/09
Design da Tela Diego 3 Tela Controle de Jogo 07/09
Configuração do Cronômetro Caio 6 Tela Controle de Jogo 09/09
Configuração dos botões de marcação Caio 1 Tela Controle de Jogo 11/09
Ação dos botões de marcação Diego 1 Tela Controle de Jogo 12/09
Janela de seleção do jogador marcado Diego 5 Tela Controle de Jogo 12/09
Aplicação da Marcação Diego 6 Tela Controle de Jogo 18/09
Lógica de Controle do Ciclo de Partida Diego 7 Tela Controle de Jogo 18/09
Validações de Substituição de Jogadores Diego 7 Tela Controle de Jogo 22/09
Criação de Jogadores Diego 7 Criar/Editar Jogador 26/09
Edição de Jogadores Caio 7 Criar/Editar Jogador 29/09
Criação de Partidas Diego 7 Criar/Editar Partidas 29/09
Edição de Partidas Caio 7 Criar/Editar Partidas 29/09
Pedido de Amizade Diego 7 Perfil Amigos/Não–
amigos
01/10
Convite de partida Diego 7 Painel da Partida 01/10
Validação de dados de jogador completos Diego 3 Menu Principal 05/10
Aceite/Recusa Pedidos de Amizade Diego 6 Menu Principal 06/10
Aceite/Recusa Convites de Partida Diego 6 Menu Principal 06/10
Validação de acesso à partida Diego 3 Módulo de Partidas 09/10
Fonte: Desenvolvido pelos autores, 2018.
33
4 RESULTADOS
Este capítulo apresenta a aplicação Android desenvolvida com base na
proposta do trabalho, com detalhes sobre suas funcionalidades.
4.1 Interface
A interface foi desenvolvida orientada utilizando a tecnologia de guias com
Recycler Views de cartões, o que permitiu o desenvolvimento de telas mais
dinâmicas, permitindo que informações mais complexas fossem tratadas de forma
simples e em uma única tela. Como acontece na tela de partida, que em três guias
informa os dados principais da partida, permite ajustes na escalação e também
mostra a partida lance a lance após o fim da partida.
As telas do aplicativo foram desenvolvidas utilizando a linguagem XML e o
editor visual do Android Studio. Os principais componentes da tela são RecyclerView
e CardView, utilizados para proporcionar maior padronização e adaptabilidade em
diversos formatos e layouts. Além disso, os principais menus possuem interação e
navegação que simulam guias.
4.2 Interação com o usuário.
Ao acessar a aplicação pela primeira vez, há uma validação que requer que o
usuário tenha registrado suas informações para acessar a tela de perfil do jogador,
este é o primeiro ponto de bloqueio após o login. Evitando que o jogador acesse a
tela do seu perfil sem tê–lo criado.
Para todas as telas críticas a aplicação oferece janelas que são exibidas para
confirmar ações, como sair ou executar mudanças, evitando que dados não salvos
sejam perdidos ou alterações indesejadas por parte da interação do usuário com a
aplicação.
Há também um cuidado em destacar em vermelho os botões críticos
espalhados pela aplicação, para este caso, todos são passíveis de confirmação para
executar a ação.
34
4.3 Utilização das Cores
Na escolha de cores do projeto, por se tratar de futebol, entendeu–se que
uma cor amarela fluorescente, se bem utilizada, poderia trazer benefícios. Apesar de
não ser a mais indicada para telas, o equilíbrio com cores mais escuras deixou a
aplicação com um bom aspecto visual. Outra vantagem é por não ser a cor principal
de times tradicionais do esporte.
4.4 Floating Buttons
Um recurso bastante utilizado em aplicações Android, floating buttons (botões
flutuantes) permitem uma interação mais fácil com o usuário, que por padrão já
entende que este tipo de botão, ao ser clicado, apresenta uma funcionalidade ou
lista de funcionalidades.
4.5 Guias
Utilizados para organizar campos e fluxo de dados em sistemas que tratam
um grande número de informações, as guias são necessárias para dividir
informações como dados de usuário e estatísticas, ou mesmo dividir partidas
anteriores e as próximas.
4.6 Cartões
Toda a aplicação é desenvolvida com layouts baseados em cartões, desta
forma, é possível manter um dinamismo, capaz de não apenas apresentar as
informações necessárias no tempo correto, como também permitem uma expansão
da gama de funcionalidades da aplicação de forma padronizada e sem prejudicar
pontos anteriormente desenvolvidos.
35
4.7 Mapa do Aplicativo
A aplicação é dividida em dois módulos principais, o que permite tratar
informações de jogadores e partidas que seriam muito complexas para um único
módulo.
Login
● Tela de Login – Acessar a aplicação.
● Tela de Cadastro – Cadastrar um novo usuário.
● Tela de recuperação de senha – Recuperar uma senha perdida.
Menu principal
● Dashboard (Painel de Controle) – Possui dois cartões de acesso aos
módulos (Jogador e Partida).
● Notificações – Mostra convocações e solicitações de amizade.
● FAQs – Perguntas frequentes sobre o aplicativo.
Jogadores
● Perfil do Jogador – Exibe dados do jogador relevante à aplicação.
● Estatísticas – Informa dados estatísticos e resultados
● Lista de amigos – Exibe lista de amigos do usuário.
● Buscar jogadores – Permite buscar usuário por ID.
Partidas
● Próximas Partidas – Acessar a tela de partida
Painel da Partida
● Informações principais – Dados da partida.
● Controle de jogo – Onde são feitas as marcações.
● Escalação – Definição da escalação dos times.
● Lance a Lance – Mostra um log de todas as marcações.
● Resultados
● Buscar partidas
36
4.8 Login e Cadastro
O primeiro contato do usuário com a aplicação é a tela de login, onde há três
possibilidades: acessar o menu da aplicação, recuperar senha ou se cadastrar.
Caso esteja cadastrado o usuário precisa apenas inserir o e–mail e senha
para acessar o menu principal da aplicação, a validação é feita online pelo próprio
sistema de autenticação do Firebase.
Uma possível perda ou esquecimento da senha ainda permite ao usuário a
recuperação da mesma através do botão recuperação de senha. O usuário neste
caso deve informar seu e–mail de cadastro para receber a nova senha por e–mail.
Caso não tenha cadastro, o usuário pode clicar no botão cadastrar, onde
deverá escolher um nome de usuário, informar um e–mail e senha, além de aceitar
os termos de uso da aplicação.
● Tela de Login – Acessar a aplicação.
● Tela de Cadastro – Cadastrar um novo usuário.
● Tela de recuperação de senha – Recuperar uma senha perdida.
Figura 6 – Telas de Login, Cadastro e Recuperação de Senha
Fonte: Aplicativo desenvolvido pelos autores, 2018
37
4.9 Menu Principal
O menu do aplicativo foi planejado para ser dinâmico e permitir que novos
módulos sejam adicionados sem alterar a estrutura padrão. Organizado em cartões,
permite que o usuário encontre todas as funcionalidades principais de forma fácil por
ter listado no cartão de acesso o ícone e nome das guias principais.
Um Floating Button permite ao usuário sair do aplicativo, um clique exibe uma
janela para o usuário confirmar se realmente deseja sair.
4.9.1 Funcionalidades da tela principal
A tela principal além de organizar os módulos do aplicativo, é também única
tela que permite ao usuário aceitar e recusar notificações.
● Dashboard – Possui dois cartões de acesso aos módulos (Jogador e partida)
ao clicar o jogador tem acesso ao respectivo módulo.
● Notificações – São exibidas todas as convocações para partidas e
solicitações de amizade ao usuário em forma de cartão. Ao clicar, este abre
uma janela que permite aceitar ou recusar.
● FAQs – São respondidas perguntas frequentes sobre o uso da aplicação que
poderiam deixar o usuário em dúvida.
Figura 7 – Tela Principal
Fonte: Aplicativo desenvolvido pelos autores, 2018
38
4.10 Telas de Jogadores – Perfil, Estatísticas, Amigos e Busca
O módulo jogadores funciona de forma independente, com um cadastro,
edição e exclusão de perfil de jogador. Possibilitando que o jogador mantenha a
aplicação com dados de amigos sobre jogos, sem necessariamente fazer marcações
estatísticas, sob a contrariedade de não ter suas estatísticas marcadas.
4.10.1 Funcionalidades da tela Jogadores
A tela jogadores permite ao usuário, de uma forma geral, organizar suas
informações e lista de amigos, além de buscar novos jogadores por nome de
usuário.
● Perfil do Jogador – Exibe dados do jogador relevantes aos jogos em
que disputar, podendo considerar a idade, peso e altura como
parâmetro para equilibrar times.
● Estatísticas – Informa dados estatísticos e resultados contando vitórias,
derrotas e empates.
● Lista de amigos – Exibe lista de amigos do usuário.
● Buscar jogadores – Permite buscar usuário por ID.
Figura 8 – Painel do Jogador
Fonte: Aplicativo desenvolvido pelos autores, 2018
39
4.11 Telas de Jogadores Terceiros
O acesso a perfil de outros usuários é livre, tendo apenas uma condição:
mudar o acesso do usuário a perfil de amigos listados e usuários com quem ainda
não possui amizade.
Como mostra a figura 7, ao acessar um perfil de um usuário ainda não listado
em sua lista de amigos, é possível abrir apenas a tela simples que tem dados do
jogador e não há guias para ver outras informações. Enquanto ao acessar o perfil de
um amigo, é possível ver o perfil completo, com estatísticas, e até mesmo a lista de
amigos, navegando através de três guias.
4.11.1 Funcionalidades da tela perfil de jogador
A principal funcionalidade desta tela é visualizar o perfil dos jogadores. Nesta
mesma tela é possível enviar solicitação de amizade e também deletar um amigo da
lista.
Figura 9 – Painel Amigo do Jogador
Fonte: Aplicativo desenvolvido pelos autores, 2018
40
4.12 Criar/Editar/Deletar Jogador
Ao acessar a aplicação e clicar no cartão de acesso ao módulo jogadores, o
aplicativo verifica se o usuário já preencheu as informações de Jogador, caso não o
tenha feito, é direcionado a tela para criar jogador. Posteriormente esta mesma tela
permite a edição dos dados de jogador.
Um Floating Button no canto da tela Jogadores têm como opção ir a partidas,
editar ou deletar seu perfil. No caso do clique em editar, é possível editar
informações como data de nascimento, país, peso, altura, nome de exibição,
posição de jogo e pé do chute. Já a segunda opção, deletar jogador, leva o usuário a
uma tela onde é possível apenas desativar a conta, ou excluir em definitivo.
4.12.1 Funcionalidades da tela criar/editar jogador
A página editar/criar jogador tem como principal funcionalidade permitir que o
jogador insira seus dados na aplicação. As informações desta página são relevantes
para a aplicação ler os dados do jogador em uma possível reclassificação em times.
Figura 10 – Telas Criar/Editar/Deletar Jogador
Fonte: Aplicativo desenvolvido pelos autores, 2018
41
4.13 Partidas
Ao acessar o módulo partidas, o usuário tem à disposição os cartões das
próximas partidas, os resultados das partidas anteriores e também poderá buscar
partidas.
Para esta tela é possível acessar apenas páginas de partidas em que o
usuário participa como jogador ou organizador. Partidas de organizadores ou
jogadores terceiros são inacessíveis para manter a organização e segurança da
informação.
● Próximas Partidas – Acessar a tela de partida.
● Resultados
● Buscar partidas
Figura 11 – Tela Partidas
Fonte: Aplicativo desenvolvido pelos autores, 2018
42
4.14 Iniciar nova partida ou editar uma partida existente
A tela partidas permite a criação de uma nova partida, neste caso é aberta
uma nova Tela para preencher as informações que incluem: o nome da partida, data
e hora, localização, endereço, cidade, duração da partida, além de opções como a
divisão da partida em duas etapas, a duração do tempo extra se aplicado,
quantidade de jogadores na linha e na reserva e o limite de substituições.
São aplicáveis também o tipo de jogo e as regras utilizadas, o que permite ao
usuário grande flexibilidade em registrar apenas as estatísticas que precisa. Esta
possibilidade permite registrar dados de um jogo oficial de futebol, ou até mesmo um
jogo de rua entre amigos sem compromisso.
4.14.1 Funcionalidades da tela Painel da partida
A página editar/criar partida permite que o usuário insira os dados
necessários para se criar ou editar uma partida, com definição de regras.
Figura 12 – Tela Criar/Editar Partida
Fonte: Aplicativo desenvolvido pelos autores, 2018
43
4.15 Painel da partida
A página de jogo é uma Tela que permite ao usuário configurar toda a partida
após a criação da mesma. É planejada para reunir as informações necessárias para
organizar a partida de forma simples e rápida, evitando que o grande número de
informações referentes a partida deixe a tela confusa ao usuário.
4.15.1 Funcionalidades da tela Painel da partida
O painel da partida tem como funcionalidade principal além de exibir de forma
organizada informações da partida e também a escalação de cada um dos times.
● Informações principais – Dados da partida, passa ao usuário informações
sobre o jogo, de forma reduzida.
● Escalação – Definição da escalação dos times, permite ao usuário inscrever a
si mesmo na partida como também convidar amigos para o jogo. Ao clicar no
botão convidar jogador, é exibida a lista de amigos excluindo os jogadores já
convidados. Ao clicar em no cartão de cada jogador, abre–se uma janela
onde é possível escolher o time do jogador e se este será titular ou reserva.
● Lance a Lance – Mostra um log de todas as marcações. Disponível após o fim
da partida.
Figura 13 – Painel da partida
Fonte: Aplicativo desenvolvido pelos autores, 2018
44
4.16 Tela Controle de Jogo
A Tela controle de jogo é dinâmica e por isso tem uma programação bastante
complexa. Antes do início da partida, que só pode ser iniciada se o usuário confirmar
a escalação na tela do jogo, é exibida uma mensagem para informar ao usuário que
os jogadores devem entrar em campo e um único botão que muda a cada etapa com
a próxima a ser iniciada.
4.16.1 Funcionalidades da tela controle de jogo
Ao início, o cronômetro começa a contar informando ao lado do relógio: a
etapa corrente e o tempo total da etapa. Abaixo do cronômetro são informados os
desempates habilitados, que podem ser tempo extra e pênalti. Há possibilidade de o
usuário selecionar se quer contar o jogo em duas etapas ou apenas uma etapa
corrida, o que altera todo o funcionamento do controle do jogo.
Uma das verificações da tela controle de jogo é detectar o ciclo de partida. O
que permite ao aplicativo validar em qual estágio a partida se encontra. Um exemplo
está na figura 5 – Tela de controle de jogo, onde é mostrado O cronômetro em
amarelo fluorescente durante o tempo regular e após o término, inicia a contagem
dos acréscimos trocando as cores de amarelo fluorescente para vermelho.
Figura 14 – Tela Controle de Jogo
Fonte: Aplicativo desenvolvido pelos autores, 2018
45
5 CONCLUSÃO
Este trabalho teve como objetivo relatar o processo de desenvolvimento de
uma aplicação móvel para registro de estatísticas de futebol. A partir do
levantamento de requisitos, dois problemas principais foram percebidos. O primeiro
trata da dificuldade que os jogadores de futebol amador encontram para registrar e
manter seus dados estatísticos. O segundo se refere ao sorteio de times, realizado
de forma aleatória e sem critérios definidos, permitindo a formação de times
desnivelados.
A partir do problema encontrado, a solução proposta foi o desenvolvimento de
uma aplicação móvel que permitisse aos usuários realizar o gerenciamento de
partidas de futebol, o registro de suas estatísticas e o sorteio de times de forma
nivelada.
A principal metodologia de desenvolvimento utilizada foi o método ágil
Kanban, que permitiu maior flexibilidade, organização das tarefas e controle do
tempo de execução do projeto. A ferramenta também proporcionou melhor reação
às diversas mudanças que surgiram ao longo do projeto, principalmente pela grande
quantidade de variações de regras que precisaram ser validadas no módulo para
gerenciamento de partidas. Para o desenvolvimento da aplicação também foram
utilizados o Android Studio, a linguagem Java e banco de dados NoSQL com
Firebase.
Os resultados obtidos demonstraram que o desenvolvimento da aplicação foi
realizado com sucesso, atendendo aos requisitos levantados inicialmente e
solucionando os dois principais problemas encontrados, cumprindo, assim, os
objetivos propostos neste trabalho.
Como trabalhos futuros, pretende–se desenvolver a aplicação utilizando
tecnologias, permitindo tornar a aplicação multiplataforma, assim como a
implementar novas funcionalidades que permitam a criação e o gerenciamento de
torneios de futebol.
46
REFERÊNCIAS
ABLESON, W. F.; SEM, R.; KING, C. Android em Ação. Rio de Janeiro: Elsevier.
2012.
AGUIAR, G.; PEINADO, J. Compreendendo o Kanban: Um Ensino Interativo
Ilustrado. da Vinci, Curitiba, v. 4, n. 1, p. 133–146, 2007
ARRUDA, L. Desenvolvimento Ágil de Software: Uma Análise Sintética a Partir da
Metodologia Kanban. VII CONNEPI. 2012. Disponível em:
<http://propi.ifto.edu.br/ocs/index.php/connepi/vii/paper/viewFile/3644/961>. Acesso
em: 02 nov. 2018.
BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML, Guia do Usuário. Rio de
Janeiro: Elsevier. 2006.
CHACON, S. Pro Git. 1 Ed. Apress. 2010.
CONFEDERAÇÃO BRASILEIRA DE FUTEBOL. Regras de Futebol 2017/18. 2017.
Disponível em: <https://cdn.cbf.com.br/content/201712/20171221124545_0.pdf>.
Acesso em 8 abr. 2018.
GENARI, J.; FERRARI, F. C. Times de alto desempenho no contexto das
metodologias Scrum e Kanban. T.I.S. São Carlos, v. 4, n. 3, p. 200–208, set–dez
2015.
GOMES, A. Desenvolvimento Ágil com Kanban. Java Magazine 84. 2010.
Disponível em: <https://www.devmedia.com.br/desenvolvimento–agil–com–kanban–
java–magazine–84/18235>. Acesso em: 02 nov. 2018.
Google Developers. Android Studio. Disponível em:
<https://developer.android.com/studio/>. Acesso em: 04 jun. 2018.
47
Google Developers. Conheça o Android Studio. Disponível em:
<https://developer.android.com/studio/intro/?hl=pt–br>. Acesso em: 06 maio 2018.
IBGE. Bola na Rede. Retratos, A Revista do IBGE. 2017. Disponível em:
<https://agenciadenoticias.ibge.gov.br/media/com_mediaibge/arquivos/99824c28d40
d5c38987a16ba9daCaio487.pdf>. Acesso em: 08 abr. 2018.
LARMAN, C.; Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto
Orientados a Objetos e ao Desenvolvimento Iterativo. São Paulo: Bookman, 2007.
LÓSCIO, B. F.; OLIVEIRA, H. R.; PONTES, J. NoSQL no Desenvolvimento de
Aplicações Web Colaborativas. 2011. Disponível em:
<https://www.researchgate.net/profile/Bernadette_Loscio/publication/268201466_No
SQL_no_desenvolvimento_de_aplicacoes_Web_colaborativas/links/576aa72008aef
2a864d1ef8c/NoSQL–no–desenvolvimento–de–aplicacoes–Web–colaborativas.pdf>.
Acesso em: 02 nov. 2018.
LUCKOW, D. H.; MELO. A. A. Programação Java Para a Web. São Paulo:
Novatec. 2010.
Manifesto Ágil. Disponível em: <http://www.manifestoagil.com.br/>. Acesso em: 05
jun. 2018.
MENDES, D. R. Programação Java com Ênfase em Orientação a Objetos. São
Paulo: Novatec. 2009.
MONTEIRO, J. Google Android, Crie aplicações para celulares e tablets. Casa do
Código. 2012.
MORONEY, L. The Definitive Guide to Firebase: Build Android aplicativos on
Google's Mobile Platform. Washington: Apress. 2017.
OHNO, T. O Sistema de Produção Toyota: Além da Produção em Larga Escala. 1
Ed. Bookman. 1997.
48
PEINADO, J.; GRAEML, A. Administração da Produção (Operações Industriais e
de Serviços). Curitiba: UnicenP. 2007.
PEREIRA, L.; SILVA, M. Android para Desenvolvedores. Rio de Janeiro: Brasport.
2009
Pequenas Empresas & Grandes Negócios. Empreendedor cria startup e inventa o
aluguel de goleiro. Disponível em: <http://g1.globo.com/economia/pme/pequenas–
empresas–grandes–negocios/noticia/2017/08/empreendedor–cria–startup–e–
inventa–o–aluguel–de–goleiro.html>. Acesso em: 21 mar. 2018.
PRESSMAN, R.; MAXIM, B. Engenharia de Software: Uma Abordagem
Profissional. Porto Alegre: AMGH. 2016.
PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos Ágeis para Desenvolvimento
de Software. Porto Alegre: Bookman. 2014.
VERA, H.; BOAVENTURA, W.; HOLANDA, M.; GUIMARÃES, V.; HONDO, F. Data
Modeling for NoSQL Document–Oriented Databases. Anais do 2º Simpósio
Internacional Anual de Gestão da Informação e Big Data. 2015. p. 129–135.

Mais conteúdo relacionado

Semelhante a Kanban App Desenvolvimento Futebol

Trabalho Fábrica de Softwares baseado em ISO 9001:2008
Trabalho Fábrica de Softwares baseado em ISO 9001:2008Trabalho Fábrica de Softwares baseado em ISO 9001:2008
Trabalho Fábrica de Softwares baseado em ISO 9001:2008Claudio Cardozo
 
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...Felipe Pontes
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMarkus Christen
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Caio Moreno
 
Plano de Projeto - Grupo Ajax
Plano de Projeto - Grupo AjaxPlano de Projeto - Grupo Ajax
Plano de Projeto - Grupo AjaxPre Amadeus
 
Rich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsRich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsEduardo Cereto Carvalho
 
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013Cesar Jardim
 
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOREDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOYouTube TV
 
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...Édipo Souza
 
Ar tool kit-cap6-2004
Ar tool kit-cap6-2004Ar tool kit-cap6-2004
Ar tool kit-cap6-2004caetano_selva
 
Uml estudo de caso
Uml   estudo de casoUml   estudo de caso
Uml estudo de casoLeo Serrao
 
Plano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWPlano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWrafahreis
 
Conhecendo o br office.org 2.0 write
Conhecendo o br office.org 2.0  writeConhecendo o br office.org 2.0  write
Conhecendo o br office.org 2.0 writeLuciana
 
AbleLink versão-final - Alexander Antonio Benedicto
AbleLink versão-final - Alexander Antonio BenedictoAbleLink versão-final - Alexander Antonio Benedicto
AbleLink versão-final - Alexander Antonio BenedictoAlexander Benedicto
 

Semelhante a Kanban App Desenvolvimento Futebol (20)

Trabalho Fábrica de Softwares baseado em ISO 9001:2008
Trabalho Fábrica de Softwares baseado em ISO 9001:2008Trabalho Fábrica de Softwares baseado em ISO 9001:2008
Trabalho Fábrica de Softwares baseado em ISO 9001:2008
 
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
AMAO - DESENVOLVIMENTO DE UM AMBIENTE ONLINE DE AUXÍLIO À CORREÇÃO E RESOLUÇÃ...
 
Wellington Vasconcelos - Priorização de requisitos
Wellington Vasconcelos - Priorização de requisitosWellington Vasconcelos - Priorização de requisitos
Wellington Vasconcelos - Priorização de requisitos
 
Monitoração de Aplicações Distribuídas
Monitoração de Aplicações DistribuídasMonitoração de Aplicações Distribuídas
Monitoração de Aplicações Distribuídas
 
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
Integração de ferramentas de código aberto (java, pentaho e android) e mapas,...
 
Dn2 projeto total
Dn2 projeto totalDn2 projeto total
Dn2 projeto total
 
Relatório de estágio
Relatório de estágioRelatório de estágio
Relatório de estágio
 
Plano de Projeto - Grupo Ajax
Plano de Projeto - Grupo AjaxPlano de Projeto - Grupo Ajax
Plano de Projeto - Grupo Ajax
 
Rich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando GearsRich Internet Applications com clientes offline utilizando Gears
Rich Internet Applications com clientes offline utilizando Gears
 
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013Pim i terminais de consulta copa 2014_olímpiadas 2016(rev  final)_11 05 2013
Pim i terminais de consulta copa 2014_olímpiadas 2016(rev final)_11 05 2013
 
Curso Básico Android - Aula 05
Curso Básico Android - Aula 05Curso Básico Android - Aula 05
Curso Básico Android - Aula 05
 
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEOREDE DE DADOS, VOZ, ÁUDIO E VÍDEO
REDE DE DADOS, VOZ, ÁUDIO E VÍDEO
 
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...
UMA ANÁLISE COMPARATIVA DE FERRAMENTAS DE DESENVOLVIMENTO MULTIPLATAFORMA PAR...
 
Ar tool kit-cap6-2004
Ar tool kit-cap6-2004Ar tool kit-cap6-2004
Ar tool kit-cap6-2004
 
Curriculo christiane abril13
Curriculo christiane abril13Curriculo christiane abril13
Curriculo christiane abril13
 
Uml estudo de caso
Uml   estudo de casoUml   estudo de caso
Uml estudo de caso
 
2014 Monografia Final
2014 Monografia Final2014 Monografia Final
2014 Monografia Final
 
Plano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SWPlano de Projeto de Software para produtos da Lacertae SW
Plano de Projeto de Software para produtos da Lacertae SW
 
Conhecendo o br office.org 2.0 write
Conhecendo o br office.org 2.0  writeConhecendo o br office.org 2.0  write
Conhecendo o br office.org 2.0 write
 
AbleLink versão-final - Alexander Antonio Benedicto
AbleLink versão-final - Alexander Antonio BenedictoAbleLink versão-final - Alexander Antonio Benedicto
AbleLink versão-final - Alexander Antonio Benedicto
 

Kanban App Desenvolvimento Futebol

  • 1. CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA Faculdade de Tecnologia Rubens Lara Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CAIO SILVA ALONSO DIEGO MARTINEZ SANTOS FOOTBRAS – APLICATIVO DE REGISTRO DE ESTATÍSTICAS DE FUTEBOL: Utilização da Metodologia Ágil Kanban para o Desenvolvimento de Uma Aplicação Móvel. Santos, SP 2018
  • 2. CAIO SILVA ALONSO DIEGO MARTINEZ SANTOS FOOTBRAS – APLICATIVO DE REGISTRO DE ESTATÍSTICAS DE FUTEBOL: Utilização da Metodologia Ágil Kanban para o Desenvolvimento de Uma Aplicação Móvel. Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia Rubens Lara, como exigência para a obtenção do Título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Orientador: Jorge Luiz Chiara Santos, SP 2018
  • 3. CAIO SILVA ALONSO DIEGO MARTINEZ SANTOS FOOTBRAS – APLICATIVO DE REGISTRO DE ESTATÍSTICAS DE FUTEBOL: Utilização da Metodologia Ágil Kanban para o Desenvolvimento de Uma Aplicação Móvel. Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia Rubens Lara, como exigência para a obtenção do Título de Tecnólogo em Análise e Desenvolvimento de Sistemas. Aprovado em ____ de ____________ de 20__ BANCA EXAMINADORA: ___________________________________________________________________ Nome do examinador: Titulação: ___________________________________________________________________ Nome do examinador: Titulação: ___________________________________________________________________ Nome do examinador: Titulação: Local: Faculdade de Tecnologia da Baixada Santista
  • 4. RESUMO Este trabalho tem como objetivo descrever o processo de desenvolvimento de uma aplicação móvel, para a plataforma Android, que possui como principal funcionalidade o registro de dados estatísticos de jogadores de futebol amador. A aplicação foi desenvolvida utilizando o método ágil Kanban, linguagem de programação Java e banco de dados NoSQL com Firebase. Como resultado, obteve–se um aplicativo que permite gerenciar partidas de futebol e manter perfis de jogadores atualizados, com registros estatísticos, considerando todas as 17 regras oficiais do futebol. Palavras Chave: Android. Kanban. Futebol.
  • 5. ABSTRACT This study aims to describe the development process of a mobile application, for the Android platform, that has as its main feature the registration of statistical data of amateur soccer players. The application was developed using the Kanban agile method, Java programming language and NoSQL database with Firebase. As results, it was obtained an application that allows managing soccer matches and maintaining updated player profile, with statistical records, considering all 17 official rules of soccer. Keywords: Android. Kanban. Soccer.
  • 6. LISTA DE SIGLAS E ABREVIATURAS API Application Programming Interface (Interface de Programação de Aplicações) FAQs Frequently Asked Questions (Perguntas Frequentes) FIFA Federação Internacional de Futebol IBGE Instituto Brasileiro de Geografia e Estatística IDE Integrated Development Environment (Ambiente de Desenvolvimento Integrado) JSON JavaScript Object Notation (Notação de Objetos JavaScript) PNAD Pesquisa Nacional por Amostra de Domicílios UML Unified Modeling Language (Linguagem de Modelagem Unificada) WIP Work In Progress (Trabalho em Desenvolvimento)
  • 7. LISTA DE FIGURAS Figura 1 – Android Studio ...............................................................................13 Figura 2 – Quadro Kanban .............................................................................17 Figura 3 – Documentação do Banco de Dados ..............................................20 Figura 4 – Diagrama de Caso de Uso ............................................................21 Figura 5 – Exemplos de Cartões Kanban Utilizados.......................................29 Figura 6 – Telas de Login, Cadastro e Recuperação de Senha .....................36 Figura 7 – Tela Princial...................................................................................37 Figura 8 – Painel do Jogador..........................................................................38 Figura 9 – Painel Amigo do Jogador...............................................................39 Figura 10 – Telas Criar/Editar/Deletar Jogador ..............................................40 Figura 11 – Tela Partidas................................................................................41 Figura 12 – Tela Criar/Editar Partida ..............................................................42 Figura 13 – Painel da partida..........................................................................43 Figura 14 – Tela Controle de Jogo .................................................................44
  • 8. LISTA DE TABELAS Tabela 1 – Caso de Uso – Criar Conta...........................................................22 Tabela 2 – Caso de Uso – Logar....................................................................22 Tabela 3 – Caso de Uso – Excluir Conta........................................................23 Tabela 4 – Caso de Uso – Criar Perfil ............................................................23 Tabela 5 – Caso de Uso – Editar Perfil...........................................................24 Tabela 6 – Caso de Uso – Visualizar Resultados de Partidas........................24 Tabela 7 – Caso de Uso – Visualizar Estatísticas ..........................................25 Tabela 8 – Caso de Uso – Enviar Solicitação de Amizade.............................25 Tabela 9 – Caso de Uso – Responder Solicitações de Amizade....................25 Tabela 10 – Caso de Uso – Criar Uma Partida...............................................26 Tabela 11 – Caso de Uso – Convidar Jogadores Para Uma Partida..............26 Tabela 12 – Caso de Uso – Responder Convites de Partidas........................27 Tabela 13 – Caso de Uso – Gerenciar Partida ...............................................27 Tabela 14 – Listagem de Cartões Kanban Utilizados .....................................29
  • 9. SUMÁRIO 1 INTRODUÇÃO..........................................................................................10 1.1 Problema............................................................................................10 1.2 Solução ..............................................................................................11 1.3 Objetivo ..............................................................................................11 1.4 Objetivos Específicos .........................................................................11 2 REVISÃO BIBLIOGRÁFICA......................................................................12 2.1 Android...............................................................................................12 2.2 Android Studio....................................................................................13 2.3 Java....................................................................................................13 2.4 Banco de Dados NoSQL ....................................................................14 2.5 Firebase .............................................................................................14 2.6 Controle de Versão ............................................................................14 2.7 UML....................................................................................................15 2.7.1 Casos de Uso...............................................................................15 2.8 Metodologias Ágeis para o Desenvolvimento de Software.................15 2.9 Kanban...............................................................................................16 2.9.1 O Cartão Kanban .........................................................................17 2.9.2 O Quadro Kanban ........................................................................17 3 DESENVOLVIMENTO ..............................................................................18 3.1 A Aplicação ........................................................................................18 3.2 Requisitos...........................................................................................18 3.3 Banco de Dados.................................................................................19 3.4 Diagramas de Caso de Uso ...............................................................20 3.4.1 Casos de uso expandidos ............................................................22 3.5 O Planejamento do Kanban ...............................................................27 3.6 O Desenvolvimento ............................................................................29 4 RESULTADOS..........................................................................................33
  • 10. 4.1 Interface .............................................................................................33 4.2 Interação com o usuário.....................................................................33 4.3 Utilização das Cores...........................................................................34 4.4 Floating Buttons .................................................................................34 4.5 Guias..................................................................................................34 4.6 Cartões...............................................................................................34 4.7 Mapa do Aplicativo .............................................................................35 4.8 Login e Cadastro ................................................................................36 4.9 Menu Principal....................................................................................37 4.9.1 Funcionalidades da tela principal .................................................37 4.10 Telas de Jogadores – Perfil, Estatísticas, Amigos e Busca ............38 4.10.1 Funcionalidades da tela Jogadores............................................38 4.11 Telas de Jogadores Terceiros.........................................................39 4.11.1 Funcionalidades da tela perfil de jogador...................................39 4.12 Criar/Editar/Deletar Jogador............................................................40 4.12.1 Funcionalidades da tela criar/editar jogador...............................40 4.13 Partidas...........................................................................................41 4.14 Iniciar nova partida ou editar uma partida existente........................42 4.14.1 Funcionalidades da tela Painel da partida..................................42 4.15 Painel da partida .............................................................................43 4.15.1 Funcionalidades da tela Painel da partida..................................43 4.16 Tela Controle de Jogo.....................................................................44 4.16.1 Funcionalidades da tela controle de jogo ...................................44 5 CONCLUSÃO ...........................................................................................45 REFERÊNCIAS ..............................................................................................46
  • 11. 10 1 INTRODUÇÃO O futebol é o esporte mais popular do planeta, sendo praticado por jogadores de diversas idades e culturas, atravessando fronteiras. É extremamente amplo, com diversas modalidades e categorias, sendo possível encontrar com grande facilidade, partidas, times amadores, escolinhas de futebol e campeonatos não–oficiais, em qualquer região do mundo. Em muitos países, este é o esporte utilizado como prática esportiva em projetos sociais, por ser uma paixão universal, um esporte que não discrimina por sexo, cor, religião, posição social ou política, são somente os jogadores e a bola. Segundo dados da Pesquisa Nacional por Amostra de Domicílio (PNAD) 2015, divulgados pelo Instituto Brasileiro de Geografia e Estatística (IBGE), o futebol foi a principal modalidade esportiva praticada no brasil, com 15,3 milhões de adeptos. Ainda sobre o futebol no Brasil, de acordo com artigo publicado no site Pequenas Empresas & Grandes Negócios “O mercado de futebol amador fatura mais de R$ 30 bilhões por ano no Brasil. Por mês, são realizadas cerca de um milhão de partidas em quadras”. 1.1 Problema Seja jogando em uma quadra, em campo, na praia ou na rua, jogadores de futebol amador buscam guardar a quantidade de gols marcados, partidas jogadas, vitórias obtidas com seus times, e diversos outros dados estatísticos presentes no dia–a–dia de quem pratica este esporte. Porém, na maioria dos casos, se torna inviável registrar todos estes números durante uma partida ou campeonato, com detalhes como tempo do cronômetro, jogador, time e outras informações, apenas anotando marcações utilizando papel e caneta, devido à velocidade do esporte e a grande quantidade de eventos ocorridos em uma única partida. Com um grande número de modalidades e possibilidades de regras, os jogadores amadores, diferente do profissional, onde há uma organização uniforme de regras, nem sempre anotam suas estatísticas. Outro ponto bastante incômodo é a formação de times, que pode ser resumido em mais uma pergunta: “Quem nunca foi escolhido por último na formação de times dos amigos?”
  • 12. 11 Em certos casos, para eliminar este primeiro problema, muitos grupos de jogadores aderem ao sorteio de time, em exemplos de jogos chamados popularmente de “próximo”, onde os times se revezam através de uma lista de espera, onde quem perde o jogo dá a vez ao próximo time. Mesmo esta solução, que parece resolver o problema anterior, trouxe um novo aspecto não solucionável por sorteios. Quando o sorteio coloca os melhores jogadores em um time, que por consequência, passa a vencer um grande número de partidas. 1.2 Solução A solução proposta para ambos os problemas levantados anteriormente é o desenvolvimento de uma aplicação móvel que permita ao usuário registrar suas estatísticas de jogos de futebol, cadastrar e manter perfis estatísticos atualizados e realizar a divisão e o sorteio de times de forma nivelada, utilizando as estatísticas de cada jogador. 1.3 Objetivo O principal objetivo deste trabalho é descrever o processo de desenvolvimento de uma aplicação de registro de estatísticas de jogos de futebol amador para o sistema operacional Android, utilizando o Kanban como metodologia, sendo uma possível solução para o cenário exposto acima. Esta aplicação permite que os jogadores de futebol amador se cadastrem e mantenham seu perfil com estatísticas atualizadas. 1.4 Objetivos Específicos ● Permitir o registro de estatísticas de jogadores de futebol de forma individual. ● Permitir que o sorteio e a divisão de times sejam realizados de forma nivelada, utilizando as estatísticas de cada jogador. ● Realizar testes da aplicação em jogos de futebol amadores, levando em conta os requisitos levantados e funcionalidades básicas.
  • 13. 12 2 REVISÃO BIBLIOGRÁFICA Atualmente existem diversas ferramentas e tecnologias disponíveis para o desenvolvimento de aplicações móveis. Por se tratar de uma aplicação voltada para o sistema Android, as principais ferramentas selecionadas para o desenvolvimento foram o ambiente de desenvolvimento Android Studio, a linguagem de programação Java e o banco de dados Firebase. Tecnologias que compõem o ambiente oficial, recomendado pela Google, para desenvolvimento Android. Este capítulo descreve as ferramentas e tecnologias utilizadas para o desenvolvimento da aplicação proposta. 2.1 Android Segundo Ableson, Sen e King (2012), o Android é um ambiente de software voltado para dispositivos móveis. Inclui um sistema operacional baseado em kernel Linux, interface de usuário, aplicativos de usuário, bibliotecas de código, frameworks de aplicativo, suporte a multimídia e funcionalidades de telefone. No que se refere a seu surgimento e sua construção, define–se que o Android: Foi construído com a intenção de permitir aos desenvolvedores criar aplicações móveis que possam tirar total proveito do que um aparelho portátil possa oferecer. Foi construído para ser verdadeiramente aberto. Por exemplo, uma aplicação pode apelar a qualquer uma das funcionalidades de núcleo do telefone, tais como efetuar chamadas, enviar mensagens de texto ou utilizar a câmera, que permite aos desenvolvedores adaptarem e evoluírem cada vez mais estas funcionalidades. (PEREIRA; SILVA, 2009, p. 3). Monteiro (2012) aponta que, atualmente, a plataforma possui grande destaque no mercado, tanto pela quantidade de dispositivos produzidos como também por oferecer uma API rica, possibilitando acesso facilitado a diversos recursos de hardware, como Wi–Fi e GPS. A utilização da linguagem Java para desenvolvimento, a simplicidade e o baixo custo para a publicação de aplicativos na Google Play e a grande quantidade de dispositivos Android no mundo aumentam cada vez mais a popularidade da plataforma.
  • 14. 13 2.2 Android Studio Segundo a documentação do Android “O Android Studio é o ambiente de desenvolvimento integrado (IDE) oficial para o desenvolvimento de aplicativos Android...” É um ambiente completo, contendo editor de layout, editor de código, emulador e ferramentas voltadas para análise de performance do aplicativo. Além disso, possibilita integração facilitada com ferramentas externas, como Firebase e Git. Figura 1 – Android Studio Fonte: Documentação Oficial do Android Studio, 2018 2.3 Java Segundo Luckow e Melo (2010), a linguagem Java teve seu início em 1991, na Sun Microsystems, a princípio, como parte de outro projeto, chamado Green Project, que visava possibilitar a convergência entre computador, equipamentos eletrônicos e eletrodomésticos. Para Mendes (2009) “A linguagem de programação Java representa uma linguagem simples, orientada a objetos, multithread, interpretada, neutra de arquitetura, portável, robusta, segura e que oferece alto desempenho.”
  • 15. 14 É altamente recomendada para o desenvolvimento de aplicações móveis, devido aos seus recursos e funcionalidades. Além disso, é a principal linguagem utilizada no Android Studio. 2.4 Banco de Dados NoSQL Segundo Lóscio, Oliveira e Pontes (2011), os bancos de dados NoSQL possuem características fundamentais que os diferenciam dos bancos de dados relacionais. Estas características tornam os bancos NoSQL adequados para o armazenamento de grandes volumes de dados estruturados ou semiestruturados. Algumas das principais características são: escalabilidade horizontal, ausência de esquema ou esquema flexível, suporte nativo a replicação, API simples para acesso aos dados e consistência eventual. Vera et al (2015) descrevem que os bancos de dados NoSQL surgiram como resposta às necessidades de melhor escalabilidade, menor latência e maior flexibilidade na era de big data e computação em nuvem. 2.5 Firebase Segundo Moroney (2017), o Firebase possui tecnologias projetadas para aprimorar o desenvolvimento de aplicativos, sendo as principais: Authentication (Autenticação), Real time Database (Banco de Dados em Tempo Real), Cloud Storage (Armazenamento em Nuvem), Hosting (Hospedagem), Test Lab (Laboratório de Testes), Crash Reporting (Relatórios de Falhas) e Cloud Functions (Funções em Nuvem). Moroney (2017) ainda define o Firebase Real time Database como sendo um banco de dados NoSQL, baseado em nuvem, que permite a sincronização de dados em todos os clientes em tempo real, possuindo funcionalidades offline. Os dados são armazenados no banco utilizando estruturas JSON, e todos os clientes conectados compartilham uma instância, recebendo automaticamente atualizações com os dados mais recentes. 2.6 Controle de Versão Segundo Chacon (2010), controle de versão é um sistema que guarda mudanças de um arquivo ou de um conjunto de arquivos ao longo do tempo para que, no futuro, seja possível recuperar versões anteriores destes arquivos.
  • 16. 15 Dentre suas principais funções, Chacon (2010) destaca a possibilidade de se reverter arquivos e projetos para um estado anterior, comparar mudanças ao longo do tempo, verificar quem foi o último a modificar um arquivo ou projeto, e quando as modificações ocorreram. 2.7 UML A UML pode ser definida como: ... uma linguagem gráfica para visualização, especificação, construção e documentação de artefatos de sistemas complexos de software. A UML proporciona uma forma–padrão para a preparação de planos de arquitetura de projetos de sistemas, incluindo aspectos conceituais como processos de negócios e funções do sistema, além de itens concretos como as classes escritas em determinada linguagem de programação, esquemas de bancos de dados e componentes de software reutilizáveis. (BOOCH; RUMBAUGH; JACOBSON, 2006, p. XIII) 2.7.1 Casos de Uso De acordo com Larman (2007), os casos de uso podem ser definidos como narrativas em texto, utilizadas para descobrir e registrar requisitos. Influenciam diversos aspectos de um projeto, servindo de entrada para vários artefatos subsequentes nos estudos de caso. Os diagramas de caso de uso são compostos, principalmente, por atores, cenários e casos de uso. 2.8 Metodologias Ágeis para o Desenvolvimento de Software Segundo Pressman e Maxim (2016), uma metodologia estabelece uma base para um processo de engenharia completo, identificando uma pequena quantidade de atividades metodológicas que podem ser aplicadas em qualquer projeto de software, independente de tamanho e complexidade. Um processo de software, compreende, de forma genérica, as seguintes atividades: Comunicação, Planejamento, Modelagem, Construção e Entrega. Atualmente, há uma grande variedade de metodologias de desenvolvimento disponíveis, cada uma com suas características, vantagens e desvantagens. Dentre todas elas, um grupo que se encontra cada vez mais em evidência é o de metodologias ágeis. No que se refere a elas, é descrito que:
  • 17. 16 A engenharia de software ágil combina filosofia com um conjunto de princípios de desenvolvimento. A filosofia defende a satisfação do cliente e a entrega incremental antecipada; equipes de projeto pequenas e altamente motivadas; métodos informais; artefatos de engenharia de software mínimos; e, acima de tudo, simplicidade no desenvolvimento geral. (PRESSMAN; MAXIM, 2016, p. 66). Sobre o termo Metodologias Ágeis, Prikladnicki, Willi e Milani (2014) descrevem que o termo se popularizou em 2001, quando 17 especialistas em desenvolvimento de software, representando metodologias já existentes, como XP e Scrum, estabeleceram princípios comuns a todas elas, resultando na criação da Aliança Ágil e no estabelecimento do Manifesto Ágil. 2.9 Kanban Ohno (1997) descreve que o Kanban surgiu como um instrumento para garantia da produção Just–In–Time, sendo o primeiro pilar do Sistema Toyota de Produção. Busca fornecer e movimentar componentes de uma produção nas quantidades requeridas e no momento exato. Basicamente, é uma forma simples e direta de comunicação, localizada sempre no ponto que se faz necessária. Para Peinado e Graeml (2007), “o Kanban é um método que se baseia em “puxar”, os itens necessários para o próximo estágio de produção (ou para consumo) apenas quando necessários”. Quando se tratando de desenvolvimento de software: Utiliza–se Kanban para controlar o trabalho em progresso (ou WIP – Work in Progress) para indicar quando novas tarefas devem ser puxadas, em outras palavras, indica quando um requisito deve ser analisado, desenvolvido, testado, etc. (GOMES, 2010) Ainda segundo Gomes (2010), o Kanban pode ser considerado um método de desenvolvimento de software baseado em práticas Lean, que visa otimizar o processo de desenvolvimento de software, limitando o trabalho em progresso, apresentando a evolução de forma visual, tornando problemas evidentes e provendo melhoria contínua. Para Genari e Ferrari (2015), “As principais características do Kanban são: Visualização do fluxo de trabalho, limitação do trabalho em progresso e gerenciamento e medição do fluxo existente.”.
  • 18. 17 Figura 2 – Quadro Kanban Fonte: PRIKLADNICKI, WILLI, MILANI, 2014 2.9.1 O Cartão Kanban O cartão Kanban é definido da seguinte forma: O cartão Kanban é responsável pela comunicação e pelo funcionamento de todo o sistema, nele devem estar contidos as informações mínimas para o bom funcionamento da linha de produção. Sendo necessário, ele poderá conter um número maior de informações, desde que sejam importantes para a área específica, onde se pretende implementar o sistema Kanban. (AGUIAR; PEINADO, 2007, p. 141) 2.9.2 O Quadro Kanban O quadro de Kanban é uma das principais ferramentas utilizadas no método. Nele serão colocados e “puxados” os cartões do Kanban. Arruda (2012) descreve que, através do quadro de Kanban, é possível entender quanto esforço pode ser adicionado em uma determinada tarefa, sempre levando em consideração a indicação de limite e de capacidade da equipe, assim como o software que está sendo desenvolvido.
  • 19. 18 3 DESENVOLVIMENTO Este capítulo apresenta a metodologia, os diagramas UML e o modelo de banco de dados, permitindo uma melhor visualização da estrutura utilizada no desenvolvimento do projeto. 3.1 A Aplicação Este projeto propõe o desenvolvimento de uma aplicação Android, que permita aos usuários cadastrar e editar seus perfis e organizar partidas de futebol para o registro de estatísticas. Oficialmente, o esporte tem 17 regras universais. O texto oficial, em inglês, é divulgado pela Federação Internacional de Futebol (FIFA), organização não– governamental internacional que dirige as associações de futebol, futsal e futebol de areia. A aplicação possibilitará ao usuário aplicar às partidas todas estas 17 regras existentes. Esta aplicação permite o registrar cada evento de uma partida e traduzir, em números, todos estes registros, com detalhes como tempo do cronômetro na hora do clique, jogador, time e tipo de marcação. Estes registros são realizados por meio de um controle de jogo, que possibilita a marcação de todos os eventos de uma partida, como gols, faltas, cartões, escanteios e laterais, permitindo que o jogador guarde, em seu perfil, as suas estatísticas e resultados, podendo ter diversas outras análises, como ver seu índice em diferentes formações de time. Com esse controle de eventos ocorridos em cada partida também é possível analisar cada jogo de forma individual, mostrando os jogadores que tiveram melhor desempenho e como cada time se comportou na partida. 3.2 Requisitos O levantamento de requisitos foi feito com base em conversas com jogadores de futebol amador de diversas idades, a fim de apresentar uma breve ideia da aplicação e também recolher dados relevantes que pudessem ser destacados como requisitos.
  • 20. 19 De acordo com os principais pontos levantados pelos jogadores durante as entrevistas, os seguintes requisitos foram obtidos: ● Realizar o cadastro de usuários. ● Recuperar senha quando necessário. ● Permitir a alteração de dados de usuário. ● Realizar a criação de perfil de jogadores. ● Permitir a consulta e alteração dos dados e informações de jogadores. ● Enviar convites de amizade. ● Aceitar e recusar convites de amizade. ● Agendar partidas. ● Definir regras que serão utilizadas na partida. ● Convidar amigos para participar da partida. ● Aceitar e recusar convites de partida. ● Nivelar times classificando jogadores por caraterísticas físicas. ● Nivelar times classificando jogadores por desempenho estatístico. ● Nivelar times classificando jogadores por resultados. ● Registrar eventos ocorridos na partida. ● Atribuir eventos ocorridos na partida a jogadores e times. ● Atribuir pontuação a cada jogador no término da partida. ● Consultar dados de uma partida. ● Consultar eventos ocorridos em uma partida. ● Consultar estatísticas e registros de um jogador. 3.3 Banco de Dados O banco de dados da aplicação, assim como foi descrito anteriormente, utiliza como tecnologia o Firebase. Um banco de dados real–time (tempo real) de modelo hierárquico e NoSQL. Está organizado com quatro nodos de dados principais e os demais são feitos por relação, são estes: Jogador, Time, Partida e Marcação. Outros dados são coletados a partir de eventos registrados dentro da aplicação e que geram a relação entre os demais, são estes: Amigos, Escalação (Separados por Time), Notificações (Convocações e Solicitações de Amizade).
  • 21. 20 Para a modelagem de dados foi utilizado o modelo proposto por Vera et al (2015), que consiste em um padrão de modelagem de dados NoSQL na forma de diagramas entidade relacionamento. Figura 3 – Documentação do Banco de Dados Fonte: Desenvolvido pelos autores, 2018. 3.4 Diagramas de Caso de Uso Esta seção apresenta os casos de uso da aplicação, utilizando os padrões de diagramas da UML. A figura 3 descreve os casos de uso do usuário dentro do aplicativo, considerando seus dois papéis principais, jogador e administrador da partida. Ambos realizam as ações de usuário (criar conta, logar e excluir a conta), porém, possuem funções distintas dependendo do contexto da partida. Quando ocupando papel de jogador, o usuário poderá criar e editar seu perfil de jogador, visualizar resultado da partida, visualizar suas estatísticas, responder convites de partidas, enviar solicitações de amizade, podendo cancelar as mesmas caso necessário, e responder convites de solicitação de amizade. Ao ocupar o papel de administrador da partida, o usuário poderá criar uma partida, convidar jogadores para a partida,
  • 22. 21 devendo realizar a escalação e divisão dos jogadores, e iniciar, pausar e finalizar uma partida. Figura 4 – Diagrama de Caso de Uso Fonte: Desenvolvido pelos autores, 2018.
  • 23. 22 3.4.1 Casos de uso expandidos A seguir são apresentados os casos de uso expandidos da aplicação. Tabela 1 – Caso de Uso – Criar Conta Caso de Uso Criar Conta Descrição Requisito que permite a criação de conta de usuário. Ator Usuário Fluxo Principal 1 – Usuário acessa a página de criação de conta 2 – Usuário insere informações solicitadas para criação da conta Fluxo Alternativo 1 – E–mail ou senha inválidos Sistema informa usuário que e–mail ou senha digitados não são válidos. 2 – Campo em branco Sistema informa o usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018. Tabela 2 – Caso de Uso – Logar Caso de Uso Logar Descrição Requisito que permite aos usuários realizar login na aplicação. Ator Usuário Fluxo Principal 1 – Usuário insere login e senha 2 – Sistema realiza autenticação de usuário baseado nas informações digitadas. Fluxo Alternativo 1 – E–mail ou senha inválidos Sistema informa usuário que e–mail ou senha digitados não são válidos. 2 – E–mail não cadastrado Sistema sugere ao usuário a criação de uma nova conta. 3 – Campo em branco Sistema informa ao usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018.
  • 24. 23 Tabela 3 – Caso de Uso – Excluir Conta Caso de Uso Excluir Conta Descrição Requisito que permite ao usuário realizar a exclusão de sua conta de usuário. Ator Usuário Fluxo Principal 1 – Usuário solicita exclusão da conta 2 – Usuário informa o e–mail cadastrado 3 – Usuário recebe link em seu e–mail para efetivar a exclusão da conta. 4 – Conta é excluída após usuário confirmar solicitação no link enviado. Fluxo Alternativo 1 – E–mail inválido Sistema informa usuário que o e–mail inserido não é válido ou que não há cadastro com este e–mail. 2 – Campo em branco Sistema informa o usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018. Tabela 4 – Caso de Uso – Criar Perfil Caso de Uso Criar Perfil Descrição Requisito que permite aos usuários criar um perfil de jogador e alimentar esse perfil com seus dados pessoais. Ator Jogador Fluxo Principal 1 – Usuário acessa página de perfil 2 – Usuário seleciona a opção criar perfil 3 – Usuário insere os dados necessários para a criação do perfil 4 – Ao concluir a operação é realizada a criação do jogador no banco de dados Fluxo Alternativo 1 – Informações Inválidas Sistema informa o usuário quais informações inseridas estão inválidas. 2 – Campo em branco Sistema informa o usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018.
  • 25. 24 Tabela 5 – Caso de Uso – Editar Perfil Caso de Uso Editar Perfil Descrição Requisito que permite aos usuários editar as informações presentes em seu perfil de jogador. Ator Jogador Fluxo Principal 1 – Usuário acessa seu perfil 2 – Usuário seleciona a opção editar perfil 3 – Usuário seleciona e insere os dados que deseja alterar Ao concluir a operação, alteração é realizada no banco de dados Fluxo Alternativo 1 – Informações Inválidas Sistema informa o usuário quais informações inseridas estão inválidas 2 – Campo em branco Sistema informa o usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018. Tabela 6 – Caso de Uso – Visualizar Resultados de Partidas Caso de Uso Visualizar Resultados de Partidas Descrição Requisito que permite aos usuários visualizar resultados e informações de uma partida. Ator Jogador Fluxo Principal 1 – Usuário acessa menu de partidas 2 – Usuário seleciona uma partida 3 – Usuário acessa informações e resultados da partida Fluxo Alternativo – Fonte: Desenvolvido pelos autores, 2018.
  • 26. 25 Tabela 7 – Caso de Uso – Visualizar Estatísticas Caso de Uso Visualizar Estatísticas Descrição Requisito que permite aos usuários visualizar as estatísticas de um determinado jogador. Ator Jogador Fluxo Principal 1 – Usuário acessa o perfil de jogador 2 – Usuário acessa a opção estatísticas 3 – Usuário visualiza dados estatísticos referentes ao jogador Fluxo Alternativo – Fonte: Desenvolvido pelos autores, 2018. Tabela 8 – Caso de Uso – Enviar Solicitação de Amizade Caso de Uso Enviar Solicitação de Amizade Descrição Requisito que permite aos usuários enviar solicitação de amizade a outros usuários. Ator Jogador Fluxo Principal 1 – Usuário seleciona um jogador que não possui amizade 2 – Usuário seleciona a opção de adicionar amigo 3 – Convite de amizade é enviado pelo sistema Fluxo Alternativo 1 – Usuário Envia Solicitação de Amizade por Engano Sistema oferece funcionalidade para cancelar solicitação de amizade Fonte: Desenvolvido pelos autores, 2018. Tabela 9 – Caso de Uso – Responder Solicitações de Amizade Caso de Uso Responder Solicitações de Amizade Descrição Requisito que permite aos usuários aceitar ou recusar solicitações de amizade de outros usuários. Ator Jogador Fluxo Principal 1 – Usuário seleciona a aba de notificações no menu principal 2 – Usuário seleciona um convite de amizade 3 – Usuário escolhe se deseja aceitar ou recusar o convite de amizade Fluxo Alternativo – Fonte: Desenvolvido pelos autores, 2018.
  • 27. 26 Tabela 10 – Caso de Uso – Criar Uma Partida Caso de Uso Criar Uma Partida Descrição Requisito que permite aos usuários criar uma partida e alimentar esta partida com as informações e regras desejadas. Ator Administrador da Partida Fluxo Principal 1 – Usuário acessa menu de partidas 2 – Usuário seleciona a opção criar partida 3 – Usuário insere os dados necessários para a criação de uma partida Sistema envia partida para o banco de dados e habilita o gerenciamento da partida para o administrador Fluxo Alternativo 1 – Informações da Partida Inválidas Sistema informa o usuário quais informações inseridas estão inválidas 2 – Campo em branco Sistema informa o usuário que os campos obrigatórios devem ser preenchidos. Fonte: Desenvolvido pelos autores, 2018. Tabela 11 – Caso de Uso – Convidar Jogadores Para Uma Partida Caso de Uso Convidar Jogadores Para Uma Partida Descrição Requisito que permite aos usuários enviar convites de participação de partida para jogadores amigos. Ator Administrador da Partida Fluxo Principal 1 – Usuário acessa o menu de partida 2 – Usuário seleciona uma partida já criada 3 – Usuário seleciona a opção de escalação 4 – Usuário escolhe os jogadores que deseja convidar para a partida 5 – Ao concluir a operação o convite é enviado para os jogadores selecionados Fluxo Alternativo 1 – Usuário Finaliza a Operação Sem Selecionar Jogadores Sistema informa o usuário que deve selecionar uma quantidade mínima de jogadores 2 – Usuário Envia Convite para um Jogador Errado Sistema deve apresentar opção para cancelar convite de participação da partida Fonte: Desenvolvido pelos autores, 2018.
  • 28. 27 Tabela 12 – Caso de Uso – Responder Convites de Partidas Caso de Uso Responder Convites de Partidas Descrição Requisito que permite aos usuários aceitar convites de participação de partidas. Ator Jogador Fluxo Principal 1 – Usuário acessa a aba de notificações 2 – Usuário seleciona uma solicitação de amizade 3 – Usuário escolhe se deseja aceitar ou recusar o convite Fluxo Alternativo – Fonte: Desenvolvido pelos autores, 2018. Tabela 13 – Caso de Uso – Gerenciar Partida Caso de Uso Gerenciar Partida Descrição Requisito que permite aos usuários gerenciar uma partida criada anteriormente, possibilitando iniciar, pausar ou finalizar a partida, assim como realizar as marcações e registros de eventos ocorridos na partida. Ator Jogador Fluxo Principal 1 – Usuário acesso o menu de partidas 2 – Usuário seleciona uma partida já criada 3 – Usuário pode escolher entre as opções de iniciar, pausar e finalizar a partida 4 – Usuário realiza marcações de acordo com os acontecimentos da partida. 3 – Ao finalizar a partida, os dados coletados são enviados para o banco de dados. Fluxo Alternativo – Fonte: Desenvolvido pelos autores, 2018. 3.5 O Planejamento do Kanban A organização do projeto foi feita separando o aplicativo em quatro módulos: Login, Menu principal, Jogadores e Partidas. Cada um destes possui um conjunto de telas e tarefas específicas que foram organizados por etiquetas. Para este projeto, a estrutura do quadro Kanban utilizado contém Backlog (À Fazer), Work In Progress (WIP) (Em Desenvolvimento), Testing (Fila de Teste) e Done (Concluído). Além disso, foram adotadas cores diferentes para os cartões de
  • 29. 28 diferentes tipos de tarefa, proporcionando melhor organização e visualização da execução do projeto. ● Planning Tasks (Tarefas de Planejamento): Todas as ideias eram colocadas nesta lista e a ordem dos cartões era discutida para saber em qual momento deveriam ser desenvolvidas. ● Backlog (A Fazer): Os cartões selecionados eram passados para o Backlog organizados por sequência. ● Work In Progress (Em Desenvolvimento): Cada desenvolvedor pode escolher um cartão para desenvolver e aplicar uma etiqueta de identificação com seu nome. ● Testing (Em Teste): Depois de desenvolvida, a funcionalidade referente ao cartão é passada para a fila de testes, onde deve ser validado se o código enviado não quebra outras funcionalidades. ● Done (Concluído): Por fim, testado e aprovado, o cartão é colocado na lista Done. Para maior organização visual do desenvolvimento da aplicação, os cartões foram divididos de acordo com a tela a qual pertenciam. Por seguir um mesmo padrão de tela, a partir do desenvolvimento do menu inicial, foi possível a reutilização de código para se criar a base dos módulos seguintes, o que proporcionou maior agilidade e um menor número de alterações na interface de cada tela. Também foi feita a classificação dos cartões por nível de complexidade, sendo numerados de um a sete, possibilitando colocar em WIP cartões que possuíam interdependência e que fossem de complexidade baixa. Outros mais complexos de nível sete eram tratados com mais atenção. O tratamento de erros ou mudanças, também era realizado com a criação de novos cartões, devidamente sinalizados.
  • 30. 29 Figura 5 – Exemplos de Cartões Kanban Utilizados Fonte: Desenvolvido pelos autores, 2018 3.6 O Desenvolvimento A tabela a seguir apresenta uma relação com os cartões Kanban que foram utilizados durante o desenvolvimento da aplicação, mostrando as divisões realizadas tanto por nível de dificuldade quanto por módulo ou divisão a qual pertence. Tabela 14 – Listagem de Cartões Kanban Utilizados DESCRIÇÃO POR NÍVEL DIVISÃO DATA Desenvolvimento da Tela Base Caio 4 Menu Principal 02/04 Navegação da Tela Base Caio 7 Menu Principal 02/04 Design da Tela Diego 3 Menu Principal 02/04 Design dos Cartões Diego 3 Menu Principal 04/04 Conexão com o banco de dados Diego 6 Menu Principal 10/04 Validação de usuário criado Diego 2 Menu Principal 12/04 Validação de usuário (login) Caio 2 Menu Principal 14/04 Lógica do Login Caio 7 Menu Principal 14/04 Criar a guia para o Dashboard Caio 3 Menu Principal 18/04 Configurar o Dashboard na guia Diego 5 Menu Principal 22/04 Criar a guia para as Notificações Diego 3 Menu Principal 25/04 Configurar as Notificações na guia Diego 5 Menu Principal 25/04 Criar a guia para a FAQs Diego 3 Menu Principal 01/05 Configurar a FAQs na guia Caio 5 Menu Principal 01/05
  • 31. 30 Desenvolvimento da Tela Base Diego 4 Tela Login 01/05 Design da Tela Diego 3 Tela Login 01/05 Programação do Login Caio 6 Tela Login 01/05 Conexão com o Banco de Dados Caio 6 Tela Login 05/06 Desenvolvimento da Tela Base Diego 4 Tela Cadastro 05/06 Design da Tela Diego 3 Tela Cadastro 11/06 Programação do Cadastro de Usuários Caio 5 Tela Cadastro 11/06 Conexão com o Banco de Dados Diego 6 Tela Cadastro 15/06 Desenvolvimento da Tela Base Diego 4 Recuperação de Senha 17/06 Design da Tela Diego 3 Recuperação de Senha 19/06 Programação da Recuperação de Senha Caio 7 Recuperação de Senha 22/06 Conexão com o Banco de Dados Caio 6 Recuperação de Senha 22/05 Desenvolvimento da Tela Base Caio 4 Módulo do Jogador 24/05 Navegação da Tela Base Caio 6 Módulo do Jogador 24/05 Design da Tela Diego 3 Módulo do Jogador 27/05 Design e Configuração dos Cartões Diego 6 Módulo do Jogador 27/05 Desenvolvimento dos Cartões Diego 5 Módulo do Jogador 01/06 Conexão com o banco de dados Diego 6 Módulo do Jogador 01/06 Criar a guia para o Cartão de Perfil Caio 3 Módulo do Jogador 06/06 Configurar o Cartão de Perfil na guia Diego 5 Módulo do Jogador 07/06 Criar a guia para o Cartão de Estatísticas Caio 3 Módulo do Jogador 13/06 Configurar o Cartão de Estatísticas na guia Diego 5 Módulo do Jogador 13/06 Criar a guia para a Lista de Amigos Caio 3 Módulo do Jogador 15/06 Configurar a Lista de Amigos na guia Caio 5 Módulo do Jogador 15/06 Acesso ao perfil de outro jogador Diego 6 Módulo do Jogador 22/06 Validação se outro jogador já é amigo Diego 5 Módulo do Jogador 22/06 Criar a guia para Busca de Jogadores Caio 3 Módulo do Jogador 22/06 Configurar a Busca de Jogadores na guia Caio 7 Módulo do Jogador 23/06 Desenvolvimento da Tela Base Diego 4 Criar/Editar Jogador 23/06 Navegação da Tela Base Diego 6 Criar/Editar Jogador 30/06 Design da Tela Diego 3 Criar/Editar Jogador 30/06 Conexão com o banco de dados Diego 6 Criar/Editar Jogador 02/07 Desenvolvimento da Tela Base Diego 5 Perfil Amigos/Não– amigos 02/07 Navegação da Tela Base Diego 6 Perfil Amigos/Não– amigos 05/07
  • 32. 31 Design da Tela Diego 3 Perfil Amigos/Não– amigos 07/07 Design dos Cartões Diego 4 Perfil Amigos/Não– amigos 09/07 Desenvolvimento dos Cartões Diego 5 Perfil Amigos/Não– amigos 10/07 Conexão com o banco de dados Diego 6 Perfil Amigos/Não– amigos 17/07 Criar a guia para o Cartão Perfil Diego 3 Perfil Amigos/Não– amigos 17/07 Configurar o Cartão Perfil na guia Diego 5 Perfil Amigos/Não– amigos 17/07 Criar a guia para o Cartão Estatísticas Diego 3 Perfil Amigos/Não– amigos 19/07 Configurar o Cartão Estatísticas na guia Diego 5 Perfil Amigos/Não– amigos 19/07 Criar a guia para a Lista de Amigos Diego 3 Perfil Amigos/Não– amigos 26/07 Desenvolvimento da Tela Base Caio 4 Módulo de Partidas 26/07 Navegação da Tela Base Caio 6 Módulo de Partidas 26/07 Design da Tela Diego 3 Módulo de Partidas 30/07 Design dos Cartões Diego 4 Módulo de Partidas 30/07 Desenvolvimento dos Cartões Diego 5 Módulo de Partidas 01/08 Conexão com o banco de dados Diego 6 Módulo de Partidas 03/08 Criar a guia para os Detalhes da Partida Caio 3 Painel da Partida 06/08 Configurar os Detalhes da Partida na guia Diego 6 Painel da Partida 10/08 Criar a guia para os Cartões de Escalação Caio 3 Painel da Partida 11/08 Configurar os Cartões de Escalação na guia Diego 6 Painel da Partida 11/08 Desenvolvimento da Tela Base Diego 4 Criar/Editar Partida 11/08 Navegação da Tela Base Diego 6 Criar/Editar Partida 17/08 Design da Tela Diego 3 Criar/Editar Partida 17/08 Conexão com o banco de dados Diego 6 Criar/Editar Partida 17/08 Desenvolvimento da Tela Base Diego 4 Painel da Partida 22/08 Navegação da Tela Base Diego 6 Painel da Partida 22/08 Design da Tela Diego 3 Painel da Partida 30/08 Design dos Cartões Diego 5 Painel da Partida 30/08 Desenvolvimento dos Cartões Diego 6 Painel da Partida 30/08 Conexão com o banco de dados Diego 6 Painel da Partida 03/09
  • 33. 32 Desenvolvimento da Tela Base Diego 4 Tela Controle de Jogo 07/09 Navegação da Tela Base Diego 7 Tela Controle de Jogo 07/09 Design da Tela Diego 3 Tela Controle de Jogo 07/09 Configuração do Cronômetro Caio 6 Tela Controle de Jogo 09/09 Configuração dos botões de marcação Caio 1 Tela Controle de Jogo 11/09 Ação dos botões de marcação Diego 1 Tela Controle de Jogo 12/09 Janela de seleção do jogador marcado Diego 5 Tela Controle de Jogo 12/09 Aplicação da Marcação Diego 6 Tela Controle de Jogo 18/09 Lógica de Controle do Ciclo de Partida Diego 7 Tela Controle de Jogo 18/09 Validações de Substituição de Jogadores Diego 7 Tela Controle de Jogo 22/09 Criação de Jogadores Diego 7 Criar/Editar Jogador 26/09 Edição de Jogadores Caio 7 Criar/Editar Jogador 29/09 Criação de Partidas Diego 7 Criar/Editar Partidas 29/09 Edição de Partidas Caio 7 Criar/Editar Partidas 29/09 Pedido de Amizade Diego 7 Perfil Amigos/Não– amigos 01/10 Convite de partida Diego 7 Painel da Partida 01/10 Validação de dados de jogador completos Diego 3 Menu Principal 05/10 Aceite/Recusa Pedidos de Amizade Diego 6 Menu Principal 06/10 Aceite/Recusa Convites de Partida Diego 6 Menu Principal 06/10 Validação de acesso à partida Diego 3 Módulo de Partidas 09/10 Fonte: Desenvolvido pelos autores, 2018.
  • 34. 33 4 RESULTADOS Este capítulo apresenta a aplicação Android desenvolvida com base na proposta do trabalho, com detalhes sobre suas funcionalidades. 4.1 Interface A interface foi desenvolvida orientada utilizando a tecnologia de guias com Recycler Views de cartões, o que permitiu o desenvolvimento de telas mais dinâmicas, permitindo que informações mais complexas fossem tratadas de forma simples e em uma única tela. Como acontece na tela de partida, que em três guias informa os dados principais da partida, permite ajustes na escalação e também mostra a partida lance a lance após o fim da partida. As telas do aplicativo foram desenvolvidas utilizando a linguagem XML e o editor visual do Android Studio. Os principais componentes da tela são RecyclerView e CardView, utilizados para proporcionar maior padronização e adaptabilidade em diversos formatos e layouts. Além disso, os principais menus possuem interação e navegação que simulam guias. 4.2 Interação com o usuário. Ao acessar a aplicação pela primeira vez, há uma validação que requer que o usuário tenha registrado suas informações para acessar a tela de perfil do jogador, este é o primeiro ponto de bloqueio após o login. Evitando que o jogador acesse a tela do seu perfil sem tê–lo criado. Para todas as telas críticas a aplicação oferece janelas que são exibidas para confirmar ações, como sair ou executar mudanças, evitando que dados não salvos sejam perdidos ou alterações indesejadas por parte da interação do usuário com a aplicação. Há também um cuidado em destacar em vermelho os botões críticos espalhados pela aplicação, para este caso, todos são passíveis de confirmação para executar a ação.
  • 35. 34 4.3 Utilização das Cores Na escolha de cores do projeto, por se tratar de futebol, entendeu–se que uma cor amarela fluorescente, se bem utilizada, poderia trazer benefícios. Apesar de não ser a mais indicada para telas, o equilíbrio com cores mais escuras deixou a aplicação com um bom aspecto visual. Outra vantagem é por não ser a cor principal de times tradicionais do esporte. 4.4 Floating Buttons Um recurso bastante utilizado em aplicações Android, floating buttons (botões flutuantes) permitem uma interação mais fácil com o usuário, que por padrão já entende que este tipo de botão, ao ser clicado, apresenta uma funcionalidade ou lista de funcionalidades. 4.5 Guias Utilizados para organizar campos e fluxo de dados em sistemas que tratam um grande número de informações, as guias são necessárias para dividir informações como dados de usuário e estatísticas, ou mesmo dividir partidas anteriores e as próximas. 4.6 Cartões Toda a aplicação é desenvolvida com layouts baseados em cartões, desta forma, é possível manter um dinamismo, capaz de não apenas apresentar as informações necessárias no tempo correto, como também permitem uma expansão da gama de funcionalidades da aplicação de forma padronizada e sem prejudicar pontos anteriormente desenvolvidos.
  • 36. 35 4.7 Mapa do Aplicativo A aplicação é dividida em dois módulos principais, o que permite tratar informações de jogadores e partidas que seriam muito complexas para um único módulo. Login ● Tela de Login – Acessar a aplicação. ● Tela de Cadastro – Cadastrar um novo usuário. ● Tela de recuperação de senha – Recuperar uma senha perdida. Menu principal ● Dashboard (Painel de Controle) – Possui dois cartões de acesso aos módulos (Jogador e Partida). ● Notificações – Mostra convocações e solicitações de amizade. ● FAQs – Perguntas frequentes sobre o aplicativo. Jogadores ● Perfil do Jogador – Exibe dados do jogador relevante à aplicação. ● Estatísticas – Informa dados estatísticos e resultados ● Lista de amigos – Exibe lista de amigos do usuário. ● Buscar jogadores – Permite buscar usuário por ID. Partidas ● Próximas Partidas – Acessar a tela de partida Painel da Partida ● Informações principais – Dados da partida. ● Controle de jogo – Onde são feitas as marcações. ● Escalação – Definição da escalação dos times. ● Lance a Lance – Mostra um log de todas as marcações. ● Resultados ● Buscar partidas
  • 37. 36 4.8 Login e Cadastro O primeiro contato do usuário com a aplicação é a tela de login, onde há três possibilidades: acessar o menu da aplicação, recuperar senha ou se cadastrar. Caso esteja cadastrado o usuário precisa apenas inserir o e–mail e senha para acessar o menu principal da aplicação, a validação é feita online pelo próprio sistema de autenticação do Firebase. Uma possível perda ou esquecimento da senha ainda permite ao usuário a recuperação da mesma através do botão recuperação de senha. O usuário neste caso deve informar seu e–mail de cadastro para receber a nova senha por e–mail. Caso não tenha cadastro, o usuário pode clicar no botão cadastrar, onde deverá escolher um nome de usuário, informar um e–mail e senha, além de aceitar os termos de uso da aplicação. ● Tela de Login – Acessar a aplicação. ● Tela de Cadastro – Cadastrar um novo usuário. ● Tela de recuperação de senha – Recuperar uma senha perdida. Figura 6 – Telas de Login, Cadastro e Recuperação de Senha Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 38. 37 4.9 Menu Principal O menu do aplicativo foi planejado para ser dinâmico e permitir que novos módulos sejam adicionados sem alterar a estrutura padrão. Organizado em cartões, permite que o usuário encontre todas as funcionalidades principais de forma fácil por ter listado no cartão de acesso o ícone e nome das guias principais. Um Floating Button permite ao usuário sair do aplicativo, um clique exibe uma janela para o usuário confirmar se realmente deseja sair. 4.9.1 Funcionalidades da tela principal A tela principal além de organizar os módulos do aplicativo, é também única tela que permite ao usuário aceitar e recusar notificações. ● Dashboard – Possui dois cartões de acesso aos módulos (Jogador e partida) ao clicar o jogador tem acesso ao respectivo módulo. ● Notificações – São exibidas todas as convocações para partidas e solicitações de amizade ao usuário em forma de cartão. Ao clicar, este abre uma janela que permite aceitar ou recusar. ● FAQs – São respondidas perguntas frequentes sobre o uso da aplicação que poderiam deixar o usuário em dúvida. Figura 7 – Tela Principal Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 39. 38 4.10 Telas de Jogadores – Perfil, Estatísticas, Amigos e Busca O módulo jogadores funciona de forma independente, com um cadastro, edição e exclusão de perfil de jogador. Possibilitando que o jogador mantenha a aplicação com dados de amigos sobre jogos, sem necessariamente fazer marcações estatísticas, sob a contrariedade de não ter suas estatísticas marcadas. 4.10.1 Funcionalidades da tela Jogadores A tela jogadores permite ao usuário, de uma forma geral, organizar suas informações e lista de amigos, além de buscar novos jogadores por nome de usuário. ● Perfil do Jogador – Exibe dados do jogador relevantes aos jogos em que disputar, podendo considerar a idade, peso e altura como parâmetro para equilibrar times. ● Estatísticas – Informa dados estatísticos e resultados contando vitórias, derrotas e empates. ● Lista de amigos – Exibe lista de amigos do usuário. ● Buscar jogadores – Permite buscar usuário por ID. Figura 8 – Painel do Jogador Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 40. 39 4.11 Telas de Jogadores Terceiros O acesso a perfil de outros usuários é livre, tendo apenas uma condição: mudar o acesso do usuário a perfil de amigos listados e usuários com quem ainda não possui amizade. Como mostra a figura 7, ao acessar um perfil de um usuário ainda não listado em sua lista de amigos, é possível abrir apenas a tela simples que tem dados do jogador e não há guias para ver outras informações. Enquanto ao acessar o perfil de um amigo, é possível ver o perfil completo, com estatísticas, e até mesmo a lista de amigos, navegando através de três guias. 4.11.1 Funcionalidades da tela perfil de jogador A principal funcionalidade desta tela é visualizar o perfil dos jogadores. Nesta mesma tela é possível enviar solicitação de amizade e também deletar um amigo da lista. Figura 9 – Painel Amigo do Jogador Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 41. 40 4.12 Criar/Editar/Deletar Jogador Ao acessar a aplicação e clicar no cartão de acesso ao módulo jogadores, o aplicativo verifica se o usuário já preencheu as informações de Jogador, caso não o tenha feito, é direcionado a tela para criar jogador. Posteriormente esta mesma tela permite a edição dos dados de jogador. Um Floating Button no canto da tela Jogadores têm como opção ir a partidas, editar ou deletar seu perfil. No caso do clique em editar, é possível editar informações como data de nascimento, país, peso, altura, nome de exibição, posição de jogo e pé do chute. Já a segunda opção, deletar jogador, leva o usuário a uma tela onde é possível apenas desativar a conta, ou excluir em definitivo. 4.12.1 Funcionalidades da tela criar/editar jogador A página editar/criar jogador tem como principal funcionalidade permitir que o jogador insira seus dados na aplicação. As informações desta página são relevantes para a aplicação ler os dados do jogador em uma possível reclassificação em times. Figura 10 – Telas Criar/Editar/Deletar Jogador Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 42. 41 4.13 Partidas Ao acessar o módulo partidas, o usuário tem à disposição os cartões das próximas partidas, os resultados das partidas anteriores e também poderá buscar partidas. Para esta tela é possível acessar apenas páginas de partidas em que o usuário participa como jogador ou organizador. Partidas de organizadores ou jogadores terceiros são inacessíveis para manter a organização e segurança da informação. ● Próximas Partidas – Acessar a tela de partida. ● Resultados ● Buscar partidas Figura 11 – Tela Partidas Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 43. 42 4.14 Iniciar nova partida ou editar uma partida existente A tela partidas permite a criação de uma nova partida, neste caso é aberta uma nova Tela para preencher as informações que incluem: o nome da partida, data e hora, localização, endereço, cidade, duração da partida, além de opções como a divisão da partida em duas etapas, a duração do tempo extra se aplicado, quantidade de jogadores na linha e na reserva e o limite de substituições. São aplicáveis também o tipo de jogo e as regras utilizadas, o que permite ao usuário grande flexibilidade em registrar apenas as estatísticas que precisa. Esta possibilidade permite registrar dados de um jogo oficial de futebol, ou até mesmo um jogo de rua entre amigos sem compromisso. 4.14.1 Funcionalidades da tela Painel da partida A página editar/criar partida permite que o usuário insira os dados necessários para se criar ou editar uma partida, com definição de regras. Figura 12 – Tela Criar/Editar Partida Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 44. 43 4.15 Painel da partida A página de jogo é uma Tela que permite ao usuário configurar toda a partida após a criação da mesma. É planejada para reunir as informações necessárias para organizar a partida de forma simples e rápida, evitando que o grande número de informações referentes a partida deixe a tela confusa ao usuário. 4.15.1 Funcionalidades da tela Painel da partida O painel da partida tem como funcionalidade principal além de exibir de forma organizada informações da partida e também a escalação de cada um dos times. ● Informações principais – Dados da partida, passa ao usuário informações sobre o jogo, de forma reduzida. ● Escalação – Definição da escalação dos times, permite ao usuário inscrever a si mesmo na partida como também convidar amigos para o jogo. Ao clicar no botão convidar jogador, é exibida a lista de amigos excluindo os jogadores já convidados. Ao clicar em no cartão de cada jogador, abre–se uma janela onde é possível escolher o time do jogador e se este será titular ou reserva. ● Lance a Lance – Mostra um log de todas as marcações. Disponível após o fim da partida. Figura 13 – Painel da partida Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 45. 44 4.16 Tela Controle de Jogo A Tela controle de jogo é dinâmica e por isso tem uma programação bastante complexa. Antes do início da partida, que só pode ser iniciada se o usuário confirmar a escalação na tela do jogo, é exibida uma mensagem para informar ao usuário que os jogadores devem entrar em campo e um único botão que muda a cada etapa com a próxima a ser iniciada. 4.16.1 Funcionalidades da tela controle de jogo Ao início, o cronômetro começa a contar informando ao lado do relógio: a etapa corrente e o tempo total da etapa. Abaixo do cronômetro são informados os desempates habilitados, que podem ser tempo extra e pênalti. Há possibilidade de o usuário selecionar se quer contar o jogo em duas etapas ou apenas uma etapa corrida, o que altera todo o funcionamento do controle do jogo. Uma das verificações da tela controle de jogo é detectar o ciclo de partida. O que permite ao aplicativo validar em qual estágio a partida se encontra. Um exemplo está na figura 5 – Tela de controle de jogo, onde é mostrado O cronômetro em amarelo fluorescente durante o tempo regular e após o término, inicia a contagem dos acréscimos trocando as cores de amarelo fluorescente para vermelho. Figura 14 – Tela Controle de Jogo Fonte: Aplicativo desenvolvido pelos autores, 2018
  • 46. 45 5 CONCLUSÃO Este trabalho teve como objetivo relatar o processo de desenvolvimento de uma aplicação móvel para registro de estatísticas de futebol. A partir do levantamento de requisitos, dois problemas principais foram percebidos. O primeiro trata da dificuldade que os jogadores de futebol amador encontram para registrar e manter seus dados estatísticos. O segundo se refere ao sorteio de times, realizado de forma aleatória e sem critérios definidos, permitindo a formação de times desnivelados. A partir do problema encontrado, a solução proposta foi o desenvolvimento de uma aplicação móvel que permitisse aos usuários realizar o gerenciamento de partidas de futebol, o registro de suas estatísticas e o sorteio de times de forma nivelada. A principal metodologia de desenvolvimento utilizada foi o método ágil Kanban, que permitiu maior flexibilidade, organização das tarefas e controle do tempo de execução do projeto. A ferramenta também proporcionou melhor reação às diversas mudanças que surgiram ao longo do projeto, principalmente pela grande quantidade de variações de regras que precisaram ser validadas no módulo para gerenciamento de partidas. Para o desenvolvimento da aplicação também foram utilizados o Android Studio, a linguagem Java e banco de dados NoSQL com Firebase. Os resultados obtidos demonstraram que o desenvolvimento da aplicação foi realizado com sucesso, atendendo aos requisitos levantados inicialmente e solucionando os dois principais problemas encontrados, cumprindo, assim, os objetivos propostos neste trabalho. Como trabalhos futuros, pretende–se desenvolver a aplicação utilizando tecnologias, permitindo tornar a aplicação multiplataforma, assim como a implementar novas funcionalidades que permitam a criação e o gerenciamento de torneios de futebol.
  • 47. 46 REFERÊNCIAS ABLESON, W. F.; SEM, R.; KING, C. Android em Ação. Rio de Janeiro: Elsevier. 2012. AGUIAR, G.; PEINADO, J. Compreendendo o Kanban: Um Ensino Interativo Ilustrado. da Vinci, Curitiba, v. 4, n. 1, p. 133–146, 2007 ARRUDA, L. Desenvolvimento Ágil de Software: Uma Análise Sintética a Partir da Metodologia Kanban. VII CONNEPI. 2012. Disponível em: <http://propi.ifto.edu.br/ocs/index.php/connepi/vii/paper/viewFile/3644/961>. Acesso em: 02 nov. 2018. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML, Guia do Usuário. Rio de Janeiro: Elsevier. 2006. CHACON, S. Pro Git. 1 Ed. Apress. 2010. CONFEDERAÇÃO BRASILEIRA DE FUTEBOL. Regras de Futebol 2017/18. 2017. Disponível em: <https://cdn.cbf.com.br/content/201712/20171221124545_0.pdf>. Acesso em 8 abr. 2018. GENARI, J.; FERRARI, F. C. Times de alto desempenho no contexto das metodologias Scrum e Kanban. T.I.S. São Carlos, v. 4, n. 3, p. 200–208, set–dez 2015. GOMES, A. Desenvolvimento Ágil com Kanban. Java Magazine 84. 2010. Disponível em: <https://www.devmedia.com.br/desenvolvimento–agil–com–kanban– java–magazine–84/18235>. Acesso em: 02 nov. 2018. Google Developers. Android Studio. Disponível em: <https://developer.android.com/studio/>. Acesso em: 04 jun. 2018.
  • 48. 47 Google Developers. Conheça o Android Studio. Disponível em: <https://developer.android.com/studio/intro/?hl=pt–br>. Acesso em: 06 maio 2018. IBGE. Bola na Rede. Retratos, A Revista do IBGE. 2017. Disponível em: <https://agenciadenoticias.ibge.gov.br/media/com_mediaibge/arquivos/99824c28d40 d5c38987a16ba9daCaio487.pdf>. Acesso em: 08 abr. 2018. LARMAN, C.; Utilizando UML e Padrões: Uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo. São Paulo: Bookman, 2007. LÓSCIO, B. F.; OLIVEIRA, H. R.; PONTES, J. NoSQL no Desenvolvimento de Aplicações Web Colaborativas. 2011. Disponível em: <https://www.researchgate.net/profile/Bernadette_Loscio/publication/268201466_No SQL_no_desenvolvimento_de_aplicacoes_Web_colaborativas/links/576aa72008aef 2a864d1ef8c/NoSQL–no–desenvolvimento–de–aplicacoes–Web–colaborativas.pdf>. Acesso em: 02 nov. 2018. LUCKOW, D. H.; MELO. A. A. Programação Java Para a Web. São Paulo: Novatec. 2010. Manifesto Ágil. Disponível em: <http://www.manifestoagil.com.br/>. Acesso em: 05 jun. 2018. MENDES, D. R. Programação Java com Ênfase em Orientação a Objetos. São Paulo: Novatec. 2009. MONTEIRO, J. Google Android, Crie aplicações para celulares e tablets. Casa do Código. 2012. MORONEY, L. The Definitive Guide to Firebase: Build Android aplicativos on Google's Mobile Platform. Washington: Apress. 2017. OHNO, T. O Sistema de Produção Toyota: Além da Produção em Larga Escala. 1 Ed. Bookman. 1997.
  • 49. 48 PEINADO, J.; GRAEML, A. Administração da Produção (Operações Industriais e de Serviços). Curitiba: UnicenP. 2007. PEREIRA, L.; SILVA, M. Android para Desenvolvedores. Rio de Janeiro: Brasport. 2009 Pequenas Empresas & Grandes Negócios. Empreendedor cria startup e inventa o aluguel de goleiro. Disponível em: <http://g1.globo.com/economia/pme/pequenas– empresas–grandes–negocios/noticia/2017/08/empreendedor–cria–startup–e– inventa–o–aluguel–de–goleiro.html>. Acesso em: 21 mar. 2018. PRESSMAN, R.; MAXIM, B. Engenharia de Software: Uma Abordagem Profissional. Porto Alegre: AMGH. 2016. PRIKLADNICKI, R.; WILLI, R.; MILANI, F. Métodos Ágeis para Desenvolvimento de Software. Porto Alegre: Bookman. 2014. VERA, H.; BOAVENTURA, W.; HOLANDA, M.; GUIMARÃES, V.; HONDO, F. Data Modeling for NoSQL Document–Oriented Databases. Anais do 2º Simpósio Internacional Anual de Gestão da Informação e Big Data. 2015. p. 129–135.