Prévia do material em texto
UNIVERSIDADE ESTÁCIO DE SÁ Sistemas de Informação DAIANE NEVES DE AZEVEDO PROJETO DE TCC - DESENVOLVIMENTO DE APLICATIVO WEB PARA AUXILIAR NO APRENDIZADO. ORIENTADOR: ROGÉRIO LEITÃO NOGUEIRA 2 Rio de Janeiro 2021 RESUMO Este projeto tem por objetivo o desenvolvimento de um aplicativo web. O Aplicativo se baseia no método chamado de Repetição Espaçada (termo em inglês: Spaced Repetition System (SPS)) para auxiliar o processo de aprendizagem. A repetição espaçada é um método de revisão do material a ser estudado em intervalos sistemáticos. No início do processo de aprendizagem, os intervalos são espaçados em um curto período. Conforme o material é revisado, os intervalos tornam-se mais longos. Palavras Chaves: Aplicativo web, Aprendizado, Repetição Espaçada. 3 Rio de Janeiro 2021 Sumário 1. O Problema ............................................................................................................5 1.1. Tema do Trabalho .......................................................................................... 5 1.2. Contextualização ............................................................................................ 5 1.3. Situação-Problema ......................................................................................... 5 1.4. Breve descrição da Solução ............................................................................5 2. Contextualização do Problema ..............................................................................5 2.1. Premissas e Restrições do projeto ..................................................................5 2.2. Caracterização da Empresa ............................................................................6 2.2.1. Histórico da Empresa .............................................................................6 2.2.2. Atividade da empresa ............................................................................6 2.2.3. Mercado Consumidor .............................................................................6 2.2.4. Concorrência .........................................................................................7 2.2.5. Organograma .........................................................................................7 2.3. Propostas de Trabalho ....................................................................................7 2.3.1. Método de trabalho ................................................................................7 2.3.2. Previsão e alocação de recursos (humanos e materiais) ......................7 2.3.3. Cronograma de trabalho (diagrama de Gantt) .......................................8 2.3.4. Previsão orçamentária .........................................................................10 2.4. O Sistema Atual .............................................................................................10 2.4.1. Funcionalidade do sistema atual ..........................................................10 2.4.2. Problemas do sistema atual .................................................................10 3. A Solução ............................................................................................................10 3.1. O Sistema Proposto .....................................................................................11 3.1.1. Justificativa para o novo sistema ..........................................................11 3.1.2. Situação desejada: objetivos gerais e específicos................................11 3.1.3. Soluções alternativas ...........................................................................11 3.2. Solução Escolhida .........................................................................................11 3.2.1. Escopo da solução ...............................................................................12 3.2.2. Lista de requisitos do sistema ..............................................................12 3.2.3. Diagrama de Casos de Uso ..................................................................15 3.2.4. Especificações textuais dos casos de uso ...........................................15 3.2.5. Modelo conceitual de classes ..............................................................16 3.2.6. Modelo conceitual de dados .................................................................16 3.3. Solução Tecnológica .....................................................................................16 3.3.1. Diagrama de Sequência (ou comunicação) ..........................................16 3.3.2. Projeto de Interfaces ............................................................................17 3.3.3. Diagrama de Estados ...........................................................................20 3.3.4. Diagrama de Atividades .......................................................................21 3.3.5. Diagrama de Componentes .................................................................22 3.3.6. Modelo de classes de Projeto ...............................................................23 3.3.7. Modelo Físico de dados .......................................................................23 3.3.7.1. Projeto de Tabelas e Arquivos ...................................................23 3.3.7.2. Scripts de geração do banco e suas tabelas ..............................24 4 3.3.8. Ambiente tecnológico do sistema .........................................................25 3.3.8.1. Ambiente Físico (diagrama de implantação) ..............................25 3.3.8.2. Justificativa da escolha da linguagem de programação .............25 3.3.8.3. Justificativa da escolha do SGBD (Sistema Gerenciador de Banco de Dados) .............................................................................26 4. Conclusões ..........................................................................................................26 4.1. Reflexões e comparação entre objetivos iniciais x alcançados .....................26 4.2. Vantagens e desvantagens do sistema ........................................................26 4.3. Trabalhos futuros .........................................................................................27 5. Referências Bibliográficas ...................................................................................27 5 1. O Problema – O problema enfrentado hoje se dá pela dificuldade de guardar na memória conteúdos que estudamos. Com o excesso de conteúdos que temos disponíveis hoje fica difícil o cérebro lembrar de tudo que foi estudado. 1.1. Tema do Trabalho - Desenvolvimento de aplicativo web para auxiliar no processo de aprendizagem. 1.2. Contextualização - O aplicativo visa ajudar o desenvolvimento e o aprimoramento do aprendizado de qualquer pessoa em qualquer idade, otimizando o tempo que é preciso ficar estudando. Foi pensado inicialmente no aprendizado de línguas, principalmente no inglês onde apenas 5% da população do país fala a língua, sendo 1% deles fluente. Porém o aplicativo não é limitado apenas ao aprendizado do inglês, podendo ser utilizado para aprender qualquer coisa. 1.3. Situação-Problema - Em 1885, o filósofo alemão Hermann Ebbinghaus apresentou um estudo que demonstrou a retenção de informações no nosso cérebro, que ao longo de um período vai “desarmazenando” o que foi aprendido, pois ele não é capaz de reter toda a informação de uma vez. Ebbinghaus mostrou a sua teoria pelo gráfico da Curva do Esquecimento que nada mais é o quão rápido nosso cérebro vai “desarmazenando” o aprendizado, caso não seja utilizado com frequência. 1.4. Breve descrição da Solução – Construção de um sistemaque tenha uma inteligência e consiga decidir quais os dias o conteúdo deve ser mostrado para o usuário revisar a matéria. O usuário poderá inserir suas frases ou palavras no aplicativo, poderá excluir ou alterá-las, e de acordo com o período, a dificuldade que o usuário teve e a quantidade de vezes que já foi mostrado o aplicativo decidirá se o usuário deverá revisar a matéria ou não. 2. Contextualização do Problema 2.1. Premissas e Restrições do projeto 6 • Premissas do projeto o Deverá ter um computador disponível para o desenvolvedor. o Uso do framework ágil Scrum. o O Gerente de produto deverá estar disponível para o desenvolvedor tirar dúvidas com ele a qualquer momento. o Utilizar um banco de dados de código aberto. • Restrições do projeto o Equipe de desenvolvimento só tem uma pessoa. o Toda a regra de negócio está centralizada em uma pessoa. 2.2. Caracterização da Empresa – A Pawsome nasceu da vontade de levar o conhecimento e otimização de tempo para o maior número de pessoas possível, e sonha com um mundo mais igualitário na educação. E para que isso seja possível acredita veementemente que a tecnologia é o principal pilar. Por isso se tornou a melhor startup de tecnologia no mercado de Educação e Tecnologia. 2.2.1. Histórico da Empresa • Nome da Empresa: Pawsome • Data de Criação: Novembro de 2019. • Quantidade de Funcionários: São três funcionários, contando com Diretor, um Gerente de Produtos e um desenvolvedor. • Ramo de Atividade da Empresa: Tecnologia e Educação 2.2.2. Atividade da empresa – Prestação de serviços tecnológicos. 2.2.3. Mercado Consumidor – O foco da empresa é atingir o máximo de pessoas possíveis, sendo pessoa Física ou Jurídica e de qualquer classe social, podendo também fazer parcerias com escolas e universidades. 7 2.2.4. Concorrência – Baixa ou nenhuma concorrência, existem alguns aplicativos em empresas que já fazem isso no mercado, mas nenhuma delas tem a inteligência que os aplicativos da Pawsome têm. 2.2.5. Organograma Figura 1: Organograma da empresa 2.3. Proposta de trabalho 2.3.1. Método do trabalho – A execução do aplicativo se dará a partir de tarefas definidas pelo diretor, refinada pelo gerente de produtos e validadas pelo desenvolvedor para saber se possível o desenvolvimento. Os dados gerados serão analisados e modelados utilizando técnicas de modelagem baseadas na UML, sendo o paradigma orientado a objetos e para a implementação do aplicativo será utilizado o framework Scrum. 2.3.2. Previsão e alocação de recursos (humanos e materiais) • As colunas são: o SEQ - Sequência; o NOME DO RECURSO - Nome do recurso a ser alocado; 8 o UNIDADE - Unidade do recurso (Mês, rateio etc.); o QTD UNIDADE - Quantidade a ser utilizada do recurso; o VALOR UNIT - Valor unitário do recurso, sendo quanto paga pelo recurso pela unidade; o VALOR TOTAL - Qtd Unidade * Valor Unit. Figura 2: Recursos Humanos Figura 3: Recursos Tecnológicos Figura 4: Recursos Materiais 2.3.3. Cronograma de trabalho (diagrama de Gantt) 9 Figura 5: Diagrama de Gant 10 2.3.4. Previsão orçamentária Figura 6: Previsão orçamentária 2.4. O Sistema Atual 2.4.1. Funcionamento do sistema atual – O sistema atual é feito de forma manual e independente a cada usuário. É preciso imprimir os “flashcards” e escrever o que quer ser estudado nas cartas e ainda lembrar os dias que precisam ser estudados. 2.4.2. Problemas do sistema atual – Dado o funcionamento atual, que é bem rústico e nada tecnológico, os problemas são muitos, a pessoa pode não ter uma impressora ou papel para escrever o que quer estudar, pode 11 esquecer de estudar, pode confundir os dias que cada “flashcard” precisa ser estudado. 3. A Solução 3.1. O Sistema Proposto – O sistema proposto consiste em uma aplicação automatizada que consegue de forma inteligente por meio dos algoritmos decidir quando o usuário deve estudar as cartas ou não. 3.1.1. Justificativas para o novo sistema – O aplicativo visa dar ao usuário a forma automatizada e prática para estudar qualquer coisa por meio de flashcards. É uma ferramenta confiável que não precisa de nada físico, pode-se estudar em qualquer lugar a qualquer hora, é só ter acesso a um celular com internet. 3.1.2. Situação desejada: objetivos gerais e específicos. • Objetivos Gerais: o Otimizar os estudos; o Facilitar o acesso à informação. • Objetivos Específicos: o Controle de usuários; o Cadastro de flashcards; o Classificação automática dos estudos.; o Alteração dos flashcards. 3.1.3. Soluções alternativas – O sistema pode ser projetado para funcionamento local, com opção, de exportação e importação de dados, não definindo uma base de dados central. 3.2. Solução escolhida 12 3.2.1. Escopo da solução – O aplicativo será desenvolvido na linguagem de programação C#. O armazenamento será feito utilizando o banco de dados não relacional MongoDB na parte da interface será usado reactive native. O sistema irá fazer a otimização e o controle do flashcards para auxiliar os estudos. O usuário poderá inserir, alterar e deletar qualquer flashcard. Para realizar a inserção ele deverá preencher os dois lados da carta. 3.2.2. Lista de Requisitos do sistema • Requisitos Funcionais (RF) 13 Figura 7: Lista de requisitos funcionais do sistema 14 • Requisitos Não Funcionais (RNF) Figura 8: Lista de requisitos não funcionais do sistema 15 3.2.3. Diagrama de Casos de Uso Figura 9: Diagrama de casos de uso 3.2.4. Especificações textuais dos casos de uso Caso de uso: Fluxo do sistema 1. Usuário deve se cadastrar no aplicativo informando um e-mail e senha 2. Usuário deve “logar” no aplicativo. 3. Usuário pode cadastrar um card no formato de texto, tendo um lado A com a matéria a ser estudada e o lado B com a resposta. 4. Usuário pode visualizar os cards que o sistema escolherá o que deve ser estudado naquele dia. 5. Usuário poderá excluir os cards que não tem mais interesse em estudar. 16 3.2.5. Modelo conceitual de classes Figura 10: Modelo conceitual de classes 3.2.6. Modelo conceitual de dados Figura 11: Modelo conceitual de dados 3.3. Solução Tecnológica 3.3.1. Diagrama de Sequência (ou comunicação) 17 Figura 12: Diagrama de Sequência 3.3.2. Projeto de Interfaces Tela de login: 18 Figura 13: Tela de login do aplicativo Tela de atividades: 19 Figura 14: Tela de atividades do aplicativo Tela de cadastro de carta: 20 Figura 15: Tela de cadastro de carta dentro do aplicativo 3.3.3. Diagrama de Estados 21 Figura 16: Diagrama de estados 3.3.4. Diagrama de Atividades Figura 17: Diagrama de atividades do cadastro 22 Figura 18: Diagrama de atividades de alteração Figura 19: Diagrama de atividades de exclusão 3.3.5. Diagrama de Componentes Figura 20: Diagrama de componentes 23 3.3.6. Modelo de classes de projeto Figura 21: Modelo de classes de projeto 3.3.7. Modelo Físico de dados 3.3.7.1. Projeto de Tabelas e Arquivos Modelo lógico: Figura 22: Modelo lógico de tabelas e arquivos Modelo físico: 24 Figura 23: Modelo físico de tabelas e arquivos 3.3.7.2. Scripts de geração do banco e suas tabelas – MongoDB é um banco NoSQL Schema-less (sem schema), que, pelo fato de não ter esquema de dados pré-definido, por não ser baseado em tabelas, mas sim em documentos, não usa script para geração de um novo banco de dados. Basta salvarum documento e sua Collection (coleção) é criada, bem como todas as propriedades do documento são persistidas sem a necessidade de modelagem prévia. Figura 24: Exemplo de como a coleção do MongoDB pode ser criada diretamente pelo código Na imagem acima o método “GetCollection” é responsável por retornar essa coleção diretamente do MongoDb, caso essa coleção não exista, vai ser criada uma nova e retornada e ficará disponível para consulta pela variável _cards. 25 Figura 25: Exemplo de como um Documento pode ser criado via código usando o MongoDb 3.3.8. Ambiente tecnológico do sistema 3.3.8.1. Ambiente Físico (diagrama de implantação) Figura 26: Diagrama de implantação do ambiente físico 3.3.8.2. Justificativa da escolha da linguagem de programação 26 A escolha da linguagem C# foi feita dados os critérios abaixo: • É uma linguagem que roda em qualquer plataforma; • Tem desempenho bom por ser uma linguagem compilada; • Tem um ecossistema bem completo com as ferramentas da Microsoft como Visual Studio, Visual Studio Code e Azure Devops; • Muitos profissionais qualificados no mercado de trabalho. 3.3.8.3. Justificativa da escolha do SGBD (Sistema Gerenciador de Banco de Dados) A escolha do SGBD não relacional MongoDB foi feita dados os critérios abaixo: • Dentro do universo de NoSQL é o SGBD mais maduro; • Tem um ótimo custo x benefício entre complexidade e desempenho; • É simples, mas tem um bom desempenho • É fácil de achar compatibilidade para API dele tanto nas linguagens como para vários serviços de nuvem. 4. Conclusões 4.1. Reflexões e comparação entre objetivos iniciais x alcançados – Todos os objetivos iniciais do projeto foram alcançados. A expectativa inicial era ter um projeto simples, mas funcional, para então poder ir trabalhando e melhorando esse MVP (Produto Viável Mínimo), assim a gente consegue lançar uma versão que esteja minimamente funcional com o que foi dado de requisitos e com isso a validação dos usuários de que é produto que agregue na vida das pessoas, e que vale a pena investir mais tempo e dinheiro na plataforma para expandir cada vez mais. 4.2. Vantagens e desvantagens do sistema 27 Vantagens: • Solução única podendo ser acessada de um smartphone. • Interface extremamente fácil para o usuário final. • Solução que permite evolução ou troca de funcionalidades de forma fácil e rápida. Desvantagens: • Tem que ter uma certa expertise com smartphones, o que pode segregar um pouco o público. 4.3. Trabalhos futuros – Como trabalhos fututos deste TCC pretendo realizar integrações com outros sistemas, como por exemplo Google Tradutor, que auxiliará o usuário a não ter que colocar todas as informações. Com a integração do Google Tradutor, o usuário colocará apenas um dos lados do cartão. Outra funcionalidade que ficará para o futuro será suportar outros formatos de mídia, como por exemplo; fotos, vídeos e áudios. Também pretendo estender a plataforma para um site que possa ser aberto em qualquer navegador e assim não ficar preso no modelo de um aplicativo. E por fim, melhorar o design da interface. 5. Referências Bibliográficas • THOMAS Frank, How to Remember More of What You Learn with Spaced Repetition. Acesso em: 26/05/2021. Disponível em: https://collegeinfogeek.com/spaced- repetition-memory-technique/ • What are the time intervals for spaced repetition. Acesso em: 10/06/2021. Disponível em: https://www.quora.com/What-are-the-time-intervals-for-spaced-repetition • ALI Abdaal, How to Study. Acesso em: 10/06/2021. Disponível em: https://aliabdaal.com/spaced-repetition/ https://collegeinfogeek.com/spaced-repetition-memory-technique/ https://collegeinfogeek.com/spaced-repetition-memory-technique/ https://www.quora.com/What-are-the-time-intervals-for-spaced-repetition https://aliabdaal.com/spaced-repetition/ 28 • Folha dirigida, Curva do Esquecimento: o que é e como superar. Acesso em: 02/05/2021. Disponível em: https://folhadirigida.com.br/blog/curva-do-esquecimento- como-superar/ • Folha dirigida, Repetição Espaçada. Acesso em 18/06/2021. Disponível em: https://folhadirigida.com.br/blog/repeticao-espacada/ • MongoDB Manual. Acesso em 15/01/2022. Disponível em: https://docs.mongodb.com/manual/reference/method/db.getCollection/ https://folhadirigida.com.br/blog/curva-do-esquecimento-como-superar/ https://folhadirigida.com.br/blog/curva-do-esquecimento-como-superar/ https://folhadirigida.com.br/blog/repeticao-espacada/ https://docs.mongodb.com/manual/reference/method/db.getCollection/ RESUMO