Baixe o app para aproveitar ainda mais
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>
Compartilhar