Buscar

TrabalhoCorrigido_1396279-convertido

Prévia do material em texto

UNIVERSIDADE ESTÁCIO DE SÁ SISTEMAS DE INFORMAÇÃO
APLICATIVO PARA CONTROLE DE TRANSPORTE DE PESSOAS
CLAUDIO HENRIQUE DA S CARVALHO
RIO DE JANEIRO - RJ 2020
UNIVERSIDADE ESTÁCIO DE SÁ
CLAUDIO HENRIQUE DA S CARVALHO
APLICATIVO PARA CONTROLE DE TRANSPORTE DE PESSOAS
Trabalho apresentado na Disciplina Projeto de TCC em Sistemas de Informação, como exigência parcial para obtenção de título de Bacharel em Sistemas de Informação.
Orientador: Sergio Rodrigues Affonso Franco
 (
2
)RIO DE JANEIRO - RJ 2020
CLAUDIO HENRIQUE DA S CARVALHO
APLICATIVO PARA CONTROLE DE TRANSPORTE DE PESSOAS
Trabalho apresentado na Disciplina Projeto de TCC em Sistemas de Informação, como exigência parcial para obtenção de título de Bacharel em Sistemas de Informação.
Aprovado em de 	de 2020.
Nota: 
Prof.º Sergio Rodrigues Affonso Franco
RIO DE JANEIRO - RJ 2020
3
 (
4
)RESUMO
Este projeto consiste na criação de aplicativo para controle de transporte de pessoas para dispositivos móveis Android. O aplicativo contará com recursos simples do ponto de vista do usuário, mas complexos do ponto de vista do desenvolvimento. O aplicativo tem como público alvo usuários do sistema Android, e que possuem veículos fretados para transporte de funcionários. A ideia do aplicativo foi alcançar usuários que precisam ter o controle das rotas e assentos ocupados e disponíveis.
Para tornar o aplicativo intuitivo e amigável para o usuário final, foi utilizado o padrão de design da Google, chamado de “Material Design”, que descreve em detalhes como deve ser um aplicativo visualmente atraente, e como melhorar a usabilidade do usuário final. Para garantir a integridade dos dados do usuário, foi feito a escolha de utilizar o Firebase Firestore, que é um banco de dados em nuvem da Google orientado a documento, e por ser armazenado em nuvem, é possível garantir que o usuário terá suas informações salvas mesmo se fizer Login em outro dispositivo, ou até mesmo se formatar o dispositivo. Com estes diferenciais, pode-se garantir que este controle de transporte de pessoas estará apto a disputar com outros aplicativos da mesma categoria.
Palavras chaves: Material Design. Firebase. Usabilidade.
LISTA DE ILUSTRAÇÕES
FIGURA 1 – ORGANOGRAMA	12
FIGURA 2.1 – CRONOGRAMA DE GRANTT	14
FIGURA 2.2 – CRONOGRAMA DE GRANTT	13
FIGURA 3 – CASO DE USO	25
FIGURA 3.1 – CASO DE USO (PARTE 1)	27
FIGURA 3.2 – CASO DE USO (PARTE 2)	26
FIGURA 4 – MODELO CONCEITUAL DE CLASSES	33
FIGURA 6 – DIAGRAMA DE SEQUÊNCIA	34
FIGURA 8 – DIAGRAMA DE ESTADOS (PARTE 1)	35
FIGURA 8 – DIAGRAMA DE ESTADOS (PARTE 2)	35
FIGURA 8 – DIAGRAMA DE ATIVIDADE	36
FIGURA 9 – DIAGRAMA DE COMPONENTES	36
FIGURA 10.1 – DIAGRAMA DE CLASSE DE PROJETO (PARTE 1)	38
FIGURA 10.2 – DIAGRAMA DE CLASSE DE PROJETO (PARTE 2)	38
FIGURA 10.3 – DIAGRAMA DE CLASSE DE PROJETO (PARTE 3)	38
FIGURA 12 – DIAGRAMA DE IMPLANTAÇÃ	39
5
LISTA DE TABELAS
TABELA 1 – PREVISÃO ORÇAMENTÁRIA	15
6
SUMÁRIO
 (
14
)
RESUMO	4
LISTA DE ILUSTRAÇÕES	5
LISTA DE TABELAS	6
SUMÁRIO	7
O PROBLEMA	9
TEMA DO TRABALHO	9
CONTEXTUALIZAÇÃO	9
A SITUAÇÃO-PROBLEMA	9
BREVE DESCRIÇÃO DA SOLUÇÃO	9
CONTEXTUALIZAÇÃO DO PROBLEMA	10
PREMISSAS E RESTRIÇÕES DO PROJETO	10
CARACTERIZAÇÃO DA EMPRESA	10
Histórico da empresa	10
Atividades da empresa	10
Mercado consumidor	11
Concorrência	11
Organograma	11
PROPOSTA DE TRABALHO	11
2.3.1 Método do trabalho	11
Previsão e alocação de recursos (humanos e materiais)	12
Cronograma de trabalho (diagrama de Gantt)	13
Previsão orçamentária	15
O SISTEMA ATUAL	15
Funcionamento do sistema atual	15
Problemas do sistema atual	15
A SOLUÇÃO	16
O SISTEMA PROPOSTO	16
Justificativas para o novo sistema	16
Situação desejada: objetivos gerais e	17
específicos	17
Soluções alternativas	17
SOLUÇÃO ESCOLHIDA	18
Escopo da solução	18
Lista de Requisitos do sistema	18
Diagrama de Casos de Uso	25
Especificações textuais dos casos de uso	27
Modelo conceitual de classes	33
SOLUÇÃO TECNOLÓGICA	34
Diagrama de Sequência (ou comunicação)	34
Diagrama de Estados	335
Diagrama de Atividades	36
Diagrama de Componentes	36
Modelo de classes de Projeto	37
3.3.7.2. Scripts de geração do banco e suas tabelas	38
Ambiente tecnológico do sistema	38
Ambiente Físico (diagrama de implantação)	39
Justificativa da escolha da linguagem de programação	39
Justificativa da escolha do SGBD (Sistema Gerenciador de Banco de Dados)	40
REFERÊNCIAS BIBLIOGRÁFICAS	40
1. O PROBLEMA
1.1. TEMA DO TRABALHO
Sistema para controle de transporte de pessoas
1.2. CONTEXTUALIZAÇÃO
Empresas localizadas fora dos grandes centros, normalmente possui pouca acessibilidade de transporte público, algumas delas fretam ônibus e vans para transportar seus funcionários, para isso é necessário um controle de veículos e assentos disponíveis.
1.3. A SITUAÇÃO-PROBLEMA
As empresas precisam ter um controle dos horários de chagada e saída dos veículos fretados, saber se possui assento disponível para carona e se possui funcionário pegando outra rota que não é a sua de origem podendo exceder o número de vagas em outra rota.
1.4. BREVE DESCRIÇÃO DA SOLUÇÃO
Desenvolver um aplicativo que será instalado em um aparelho celular com leitor NFC que será fornecido para o motorista e fixado em lugar de fácil acesso dos funcionários, de maneira que cada funcionário ao entrar no ônibus, encoste o seu crachá no celular para leitura de NFC fazendo então a identificação de embarque do funcionário e informando se ele tem permissão ou não para embarcar.
2. CONTEXTUALIZAÇÃO DO PROBLEMA
2.1. PREMISSAS E RESTRIÇÕES DO PROJETO
Premissas: A empresa responsável deve possuir conta de desenvolvedor no Google Play para realizar a publicação do aplicativo.
Restrições: Para garantir o uso gratuito do Firebase, o aplicativo não deverá exceder 500 usuários.
A empresa contratante deverá fornecer os celulares com NFC
2.2. CARACTERIZAÇÃO DA EMPRESA
2.2.1. HISTÓRICO DA EMPRESA
O aplicativo de transporte foi desenvolvido inicialmente para atender a demanda de uma empresa XYZ em 2020, mas poderá atender qualquer empresa que deseja controlar sua frota de transporte privado.
2.2.2. ATIVIDADES DA EMPRESA
O aplicativo visa facilitar a gestão e o monitoramento das rotas de transporte de uma empresa de forma simplificada e de fácil administração apenas com um telefone Android por veículo e que possua leitor NFC.
2.2.3. MERCADO CONSUMIDOR
O público alvo são empresas que possuem transporte privativo para funcionários a querem ter um melhor controle de vagas disponíveis, tempo e localização.
2.2.4. CONCORRÊNCIA
Existem outros aplicativos que fazem um serviço parecido, porem o excesso de funções e opções a ser parametrizadas não deixam a aplicação tão usual.
2.2.5. ORGANOGRAMA
Figura 1 – Organograma
 (
DESENVOLVEDORES 
WEB
GERENTE DE TI
DIRETOR 
COMERCIAL
DIRETOR 
ADMINISTRATIVO
PRESIDENTE
)
2.3. PROPOSTA DE TRABALHO
2.3.1 MÉTODO DO TRABALHO
O levantamento dos dados se dará através de pesquisa com usuários do setor de transporte, levando em consideração suas principais queixas.
Será utilizado a metodologia SCRUM.
A modelagem utilizada será a de banco não-relacional, no caso orientado a documento.
2.3.2. PREVISÃO E ALOCAÇÃO DE RECURSOS (HUMANOS E MATERIAIS)
· Humanos:
· 1 – Analista de Negócios
· 2 – Desenvolvedores Mobile (Android)
· Materiais (Hardware):
· 1 Microcomputador i3, 4 GB de memória e HD 512 GB.
· 2 Macbook’s Pro
· Materiais (Software)
· MacOs
· Android Studio
· Office 365
· Firebase
2.3.3. CRONOGRAMA DE TRABALHO (DIAGRAMA DE GANTT)
Figura 2.1 – Cronograma de Grantt
Figura 2.2 – Cronograma de Grantt
2.3.4. PREVISÃO ORÇAMENTÁRIA
Tabela 1 – Previsão Orçamentária
	Recurso
	Tipo Recurso
	QTD
	Valor Mês
	Mês 1
	Mês 2
	Mês 3
	Total
	Analista de Negócios
	Humano
	1
	4500
	4500
	4500
	4500
	13500
	Desenvoldedor Mobile
	Humano
	2
	6500
	6500
	6500
	6500
	39000
	MicrocomputadorTecnológico
	1
	2500
	0
	0
	0
	2500
	MacBook Pro
	Tecnológico
	2
	8500
	0
	0
	0
	17000
	Android Studio
	Tecnológico
	2
	0
	0
	0
	0
	0
	Office 365
	Tecnológico
	3
	30
	30
	30
	30
	360
	Firebase
	Tecnológico
	1
	0
	0
	0
	0
	0
2.4. O SISTEMA ATUAL
2.4.1. FUNCIONAMENTO DO SISTEMA ATUAL
O sistema atual consiste em aplicativos de controle de transporte de pessoas, provendo controle de quantidade de assentos disponíveis.
2.4.2. PROBLEMAS DO SISTEMA ATUAL
O grande problema é que se trata de um problema específico, e as empresas que possuem, foram desenvolvidos e customizados dentro da própria empresa.
Dessa forma, não se tratando que um sistema genérico que se adeque para outros tipos de cenários em outras empresas.
3. A SOLUÇÃO
3.1. O SISTEMA PROPOSTO
O sistema proposto, visa atender as necessidades da empresa e os usuários envolvidos na gestão de transportes, mesclando simplicidade e funcionalidade, de forma que o usuário se sinta confortável na utilização.
O sistema contará com as seguintes telas:
· Login de Usuário;
· Cadastro de Novo Usuário;
· Listar de Usuários
· Criação de Rota;
· Edição de Rota;
· Criação de Passageiro;
· Edição de Passageiro;
· Menu Inferior
· Sobre o App;
O usuário irá de forma simples criar ou editar uma rota, e poderá verificar a localização exata de uma rota através do GPS do celular que ficará a bordo do veículo de transporte.
3.1.1. JUSTIFICATIVAS PARA O NOVO SISTEMA
A escolha por desenvolver um aplicativo foi de suprir a necessidade por algo simples e usual, de forma que qualquer usuário com o mínimo conhecimento em tecnologia possa administrar e operar o aplicativo mantendo um melhor controle sobre as rotas e assentos disponíveis.
3.1.2. SITUAÇÃO DESEJADA: OBJETIVOS GERAIS E ESPECÍFICOS
Objetivos Gerais
Desenvolver e publicar um aplicativo de gerenciamento de rotas privadas no Google Play, com o objetivo de suprir a demanda existente na categoria de aplicativos de gerenciamento de rotas.
Objetivos Específicos
· Atingir mais de 500 downloads;
· Receber nota acima de 4.5 na Google Play;
· Interação com usuários para melhoria do aplicativo;
· Utilizar Machine Learning com dados dos usuários para melhor experiência do aplicativo;
3.1.3. SOLUÇÕES ALTERNATIVAS
· Não utilização de GPS
· Compartilhamento de rota através de whatsapp com uma breve descrição, facilitando a comunicação entre motoristas e usuários.
3.2. SOLUÇÃO ESCOLHIDA
3.2.1. ESCOPO DA SOLUÇÃO
As empresas precisam ter um controle dos horários de chagada e saída dos veículos fretados, saber se possui assento disponível para carona e se possui funcionário pegando outra rota que não é a sua de origem excedendo o número de vagas em outra rota.
3.2.2. LISTA DE REQUISITOS DO SISTEMA
Código: RF001
Nome: Realizar Login
Descrição: O aplicativo deve autenticar usuário mediante informação de usuário e senha.
Prioridade: Essencial
Código: RF002
Nome: Cadastrar, alterar e excluir usuários
Descrição: O aplicativo deverá permitir cadastrar, alterar ou excluir usuário. É possível alterar nome, e-mail e senha. No caso de alteração de senha, será enviado um e-mail para usuário com link de alteração de senha.
Prioridade: Essencial
Código: RF003
Nome: Cadastrar, alterar e excluir passageiros
Descrição: O aplicativo deverá permitir cadastrar, alterar ou excluir passageiros. É possível alterar nome, e-mail, senha e associá-lo a uma rota. No caso de alteração de senha, será enviado um e-mail para o passageiro com link de alteração de senha.
Prioridade: Essencial
Código: RF004
Nome: Cadastrar, alterar e excluir rotas
Descrição: O aplicativo deverá permitir cadastrar, alterar ou excluir rotas. É possível alterar origem, destino e associar a um motorista. Será enviado um e-mail para o motorista com as informações da rota.
Prioridade: Essencial
Código: RF005
Nome: Cadastrar, alterar e excluir motorista
Descrição: O aplicativo deverá permitir cadastrar, alterar ou excluir Motorista. É possível cadastrar, alterar, excluir e associar o motorista a uma rota. Será enviado um e-mail para o motorista com as informações da rota.
Prioridade: Essencial
Código: RF006
Nome: Pesquisar rota
Descrição: O usuário deverá poder pesquisar um passageiro, motorista ou rota por título e descrição e navegar através das rotas que se encaixam na pesquisa.
Prioridade: Importante
Código: RF007
Nome: Pesquisar usuário
Descrição: O usuário deverá poder pesquisar um usuário especifico por título e descrição e navegar através dos usuários que se encaixam na pesquisa.
Prioridade: Importante
 (
Código
: RF008
) (
19
)
Nome: Pesquisar motorista
Descrição: O usuário deverá poder pesquisar um motorista especifico por título e descrição e navegar através dos motoristas que se encaixam na pesquisa.
Prioridade: Importante
Código: RF009
Nome: Pesquisar passageiro
Descrição: O usuário deverá poder pesquisar um passageiro especifico por título e descrição e navegar através dos passageiros que se encaixam na pesquisa.
Prioridade: Importante
Código: RF010
Nome: Listar rotas
Descrição: O aplicativo deverá listar todas as rotas do motorista na tela inicial.
Prioridade: Essencial
Código: RF0011
Nome: Listar Motorista
Descrição: O aplicativo deverá listar todas os motoristas do usuário na tela inicial.
Prioridade: Essencial
Código: RF0012
Nome: Listar passageiro
Descrição: O aplicativo deverá listar todos os passageiros de uma determinada rota do usuário.
Prioridade: Essencial
Nome: Quantificar rotas
Descrição: O aplicativo deverá exibir número total de rotas.
Prioridade: Desejável
Código: RF014
Nome: Listar rotas excluídas
Descrição: O aplicativo deverá listar todas as rotas excluídas dentro do limite de um mês.
Prioridade: Essencial
Código: RF015
Nome: Excluir de forma definitiva
Descrição: O usuário deverá poder excluir uma rota, um passageiro ou um motorista da lixeira de forma definitiva.
Prioridade: Essencial
Código: RF016
Nome: Recuperar passageiro, motorista ou rota
Descrição: O usuário deverá poder recuperar uma rota, um passageiro ou um motorista excluído dentro do limite de um mês. O passageiro, motorista ou rota recuperada voltará a lista original sem sofrer alterações.
Prioridade: Essencial
Código: RF017
Nome: Esvaziar lixeira
Descrição: O usuário deverá poder esvaziar lixeira caso tenha certeza que não precisará mais de uma rota, um passageiro ou um motorista.
Prioridade: Essencial
 (
21
)
Código: RF018
Nome: Excluir de forma definitiva uma rota, um passageiro ou um motorista a partir de um mês
Descrição: O aplicativo deverá excluir de forma definitiva uma rota, um passageiro ou um motorista que passarem do prazo de recuperação pelo usuário que é um mês.
Prioridade: Importante
Código: RF019
Nome: Informações do aplicativo
Descrição: O usuário deverá poder ver informações do aplicativo, como autor, data de criação, última atualização e versão.
Prioridade: Desejável
Código: RF020
Nome: Política de privacidade
Descrição: O usuário deverá poder ler a política de privacidade presente no aplicativo.
Prioridade: Essencial
Código: RF021
Nome: Realizar logoff
Descrição: O usuário, motorista ou passageiro deverá poder realizar logoff do aplicativo caso não queira mais utilizar com determinado usuário.
Prioridade: Essencial
Código: RF022
Nome: Compartilhamento inteligente
Descrição: O usuário deverá poder compartilhar passageiro, motorista ou rota de forma inteligente, informando o e-mail do motorista ou passageiro de destino e o mesmo deverá ter instalado em seu dispositivo Android o aplicativo.
Prioridade: Desejável
Requisitos não funcionais
Código: RNF001
Nome: Tempo de abertura do aplicativo
Descrição: O aplicativo deverá abrir e listar todas as rotas, passageiros e motoristas em menos de 5 segundos.
Categoria: Performance
Código: RNF002
Nome: Material Design
Descrição: O aplicativo deverá seguir o guia de design e cores sugerido pela Google.
Categoria: Usabilidade
Código: RFN003
Nome: Compatibilidade
Descrição:O aplicativo deverá ser compatível com versões do Android a partir da 5.0.
Categoria: Implementação
Código: RFN004
Nome: Segurança dos dados
Descrição: O aplicativo deverá acessar o banco de dados apenas se o usuário for autentificado. O aplicativo utilizará da segurança fornecido pelo Firebase.
Categoria: Implementação
Código: RFN005
Nome: Efeitos visuais
Descrição: O aplicativo deverá conter efeitos de transição de tela, para tornar o uso mais agradável para o usuário.
Categoria: Usabilidade
3.2.3. DIAGRAMA DE CASOS DE USO
Figura 3 – Caso de Uso
Figura 3.1 – Caso de Uso (Parte 1)
Figura 3.2 – Caso de Uso (Parte 2)
Figura 3.3 - Caso de uso (Parte 3)
3.2.4. ESPECIFICAÇÕES TEXTUAIS DOS CASOS DE USO
Pesquisar Passageiro ou Motorista ou uma Rota
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição: Possuir pelo menos um passageiro ou motorista ou uma rota
Pós-condição ou garantia de sucesso:
1. passageiro ou motorista ou uma rota pesquisado é exibida na tela
2. Usuário autenticado
Cenário principal:
1. Usuário clica no ícone de pesquisa
2. Aplicativo torna campo de busca visível
3. Aplicativo lista passageiro ou motorista ou uma rota que possuem texto pesquisado.
Cenários alternativos ou extensões:
3. A. Aplicativo não encontra passageiro
a. 1. Aplicativo não lista nenhum passageiro ou motorista ou uma rota
Requisitos especiais: Não possui.
Filtrar Passageiro
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição:
1. Possuir pelo menos um passageiro ou motorista ou uma rota
2. Usuário autenticado
Pós-condição ou garantia de sucesso:
1.	passageiro ou motorista ou uma rota filtrado é exibida na tela
Cenário principal:
1. Usuário clica no ícone de filtro
2. Aplicativo exibe caixa de dialog com opções de filtro
3. Usuário escolhe filtro desejado
4. Aplicativo lista passageiro ou motorista ou uma rota que estão dentro das condições de filtro
Cenários alternativos ou extensões:
4. A. Aplicativo não encontra passageiro ou motorista ou uma rota com condições do filtro
a. 1. Aplicativo não lista nenhum passageiro ou motorista ou uma rota
Requisitos especiais: Não possui.
Esvaziar Lixeira
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição:
1. Possuir pelo menos um passageiro ou motorista ou uma rota na lixeira
2. Usuário autenticado
Pós-condição ou garantia de sucesso:
1.	passageiro ou motorista ou uma rotas excluídas da lixeira de forma permanente
Cenário principal:
1. Usuário navega até a tela de lixeira
2. Realiza a ação de esvaziar lixeira
Cenários alternativos ou extensões:
2.a. Aplicativo não possui passageiro ou motorista ou uma rota na lixeira
1. Aplicativo não realiza ação
Requisitos especiais: Não possui.
Realizar Cadastro
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição:
1.	Possuir internet
Pós-condição ou garantia de sucesso:
1. Dados de usuário salvos
2. Tela principal exibida
Cenário principal:
1. Usuário informa dados solicitados
2. Aplicativo valida dados de usuário
3. Aplicativo salva dados do usuário
4. Aplicativo exibe caixa de diálogo informando que usuário foi cadastrado com sucesso
5. Aplicativo exibe tela principal
Cenários alternativos ou extensões:
2.a. Dados inválidos
1. Aplicativo informa usuário que os dados estão inválidos
2. Aplicativo volta para tela de edição de dados
3.a Sem conexão com a internet para salvar dados
1. Aplicativo informa usuário que não foi possível salvar dados no momento.
Requisitos especiais: Não possui.
Realizar Login
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição:
1.	Possuir internet
Pós-condição ou garantia de sucesso:
1. Login realizado
2. Tela inicial exibida
Cenário principal:
1. Usuário informa dados solicitados
2. Aplicativo valida dados de usuário
3. Aplicativo realiza login
4. Aplicativo exibe tela principal
Cenários alternativos ou extensões:
2.a. Dados inválidos
1. Aplicativo informa usuário que os dados estão inválidos
2. Caso motivo seja:
· Usuário não possua cadastro: <extends Realizar Cadastro>
· Usuário tenha esquecido a senha: <extends Alterar Senha>
3. Aplicativo volta para tela de edição de dados
3.a Sem conexão com a internet para salvar dados
1. Aplicativo informa usuário que não foi possível realizar login no momento.
Requisitos especiais: Não possui.
Recuperar passageiro, motorista ou rota da lixeira
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Usuário
Precondição:
1.	Pelo menos um passageiro ou motorista ou uma rota na lixeira
Pós-condição ou garantia de sucesso:
1. passageiro ou motorista ou uma rota recuperada da lixeira
2. Tela inicial exibida
Cenário principal:
1. Usuário seleciona passageiro ou motorista ou uma rota
2. Aplicativo confirma recuperação de passageiro ou motorista ou uma rota
3. Aplicativo adiciona passageiro ou motorista ou uma rota a lista principal
- <<include adicionar à lista de passageiro, motorista ou rota >>
4. Aplicativo salva passageiro ou motorista ou uma rota na lista principal -
<<include salvar passageiro, motorista ou rota no banco local e remoto>>
5. Aplicativo remove passageiro ou motorista ou uma rota da lixeira
6. Aplicativo exibe tela principal Cenários alternativos ou extensões: Não possui. Requisitos especiais: Não possui.
Cenário principal:
1. Usuário seleciona passageiro ou motorista ou uma rota que deseja excluir
2. Usuário confirma ação de excluir
3. Aplicativo adiciona a lista de excluídas - <<include adicionar à lista de excluídas>>
4. Aplicativo remove passageiro ou motorista ou uma rota da lista principal
- <<include remover da lista de passageiro, motorista ou rota >>
5. Aplicativo atualiza lista de passageiro, motorista ou rota
Cenários alternativos ou extensões:
2.a Usuário desiste da exclusão
1. Aplicativo não realiza ação de excluir
Requisitos especiais: Não possui.
Limpar lixeira a cada 1 mês
Escopo: Aplicativo de controle de transporte de pessoas
Atores: Aplicativo
Precondição:
1. Usuário autenticado
2. Possuir pelo menos um passageiro ou motorista ou uma rota na lixeira
Pós-condição ou garantia de sucesso:
1.	Lixeira vazia
Cenário principal:
1. Aplicativo verifica se há passageiro ou motorista ou uma rota na lixeira
2. Aplicativo remove de forma permanente todas os passageiro, motorista ou rota que foram excluídas há mais de 1 mês
Cenários alternativos ou extensões:
1.a. Não possui passageiro ou motorista ou uma rota nestas condições
1. Aplicativo não realiza ação de excluir
Requisitos especiais: Não possui.
3.2.5. MODELO CONCEITUAL DE CLASSES
Figura 4 – Modelo Conceitual de Classes
3.3 SOLUÇÃO TECNOLÓGICA
3.3.1. DIAGRAMA DE SEQUÊNCIA (OU COMUNICAÇÃO)
Figura 6 – Diagrama de Sequência
3.3.3. DIAGRAMA DE ESTADOS
Figura 8 – Diagrama de Estados (Parte 1)
Figura 8 – Diagrama de Estados (Parte 2)
3.3.4. DIAGRAMA DE ATIVIDADES
Figura 8 – Diagrama de Atividade
3.3.5. DIAGRAMA DE COMPONENTES
Figura 9 – Diagrama de Componentes
3.3.6. MODELO DE CLASSES DE PROJETO
Figura 10.1 – Diagrama de Classe de Projeto (Parte 1)
Figura 10.2 – Diagrama de Classe de Projeto (Parte 2)
Figura 10.3 – Diagrama de Classe de Projeto (Parte 3)
3.3.7.2. SCRIPTS DE GERAÇÃO DO BANCO E SUAS TABELAS
Não foi necessário criar script para geração de tabela, pois o projeto não utiliza banco relacional, e sim banco não relacional.
Toda infraestrutura utilizada foi fornecida pelo serviço do Firebase, da Google, e por ser um banco não relacional, utiliza-se de coleções e documentos como estrutura.
Para criar uma coleção, utiliza-se o seguinte comando em kotlin: Ex.: db.collection(“nome_da_colecao”)
Para criação de documentos, utiliza-se o seguinte comando em kotlin: Ex.: db.collection(“nome_da_colecao”).add(object)
3.3.8. AMBIENTE TECNOLÓGICO DO SISTEMA
3.3.8.1. AMBIENTE FÍSICO (DIAGRAMA DE IMPLANTAÇÃO)Figura 12 – Diagrama de Implantação
3.3.8.2. JUSTIFICATIVA DA ESCOLHA DA LINGUAGEM DE PROGRAMAÇÃO
A linguagem escolhida foi Kotlin, por ser uma linguagem relativamente nova, e por ser uma linguagem que permite o desenvolvimento de forma mais prática e concisa.
Foi criada em 2011 pela JetBrains e adotada oficialmente pela Google como linguagem oficial para Android em 2017.
Desde então a comunidade Android adotou o Kotlin como linguagem padrão e iniciaram o processo de migração.
Kotlin tem como motor a JVM (Java Virtual Machine), e por isso é possível manter um projeto com Java e Kotlin ao mesmo tempo, separando apenas as classes.
3.3.8.3. JUSTIFICATIVA DA ESCOLHA DO SGBD (SISTEMA GERENCIADOR DE BANCO DE DADOS)
O SGBD escolhido foi Firebase Firestore por ser um Banco de Dados NoSQL recomendado pela Google para desenvolvimento de aplicações.
O Custo é zero até um limite, a partir deste limite será cobrado de acordo com
o uso.
A vantagem de utilizar um banco não relacional, é poder inserir valores de
forma modular, sem a necessidade de criar o famoso null, com isto, podemos ter um documento com o campo “idade”, e outro documento sem o campo “idade”.
Os dados são armazenados em formato JSON (JavaScript Object Notation), e podem ser facilmente recuperados e formatados para o modelo de dados através de interfaces fornecida pelo próprio Firebase.
4. REFERÊNCIAS BIBLIOGRÁFICAS
MATERIAL IO, Guia de Design da Google. Disponível em: < https://material.io/>
ANDROID DEVELOPER, Guia de Desenvolvimento Android da Google. Disponível em: <https://developer.android.com/>
FIREBASE DOCS, Guia de Desenvolvimento Firebase para Android. Disponível em:
<https://firebase.google.com/docs/android/setup>
KOTLIN DOCS, Guia de Desenvolvimento em Kotlin. Disponível em:
< https://kotlinlang.org/docs/reference/android-overview.html>

Continue navegando