ALVES, Marcus Antonio Rodrigues Fernandes [1], NISHIYAMA, Rômulo Pereira [2]
ALVES, Marcus Antonio Rodrigues Fernandes; NISHIYAMA, Rômulo Pereira. StartedBee – Aplicativo para Gerenciamento de Objetivos e Metas. Revista Científica Multidisciplinar Núcleo do Conhecimento. Ano 03, Ed. 08, Vol. 16, pp. 60-153, Agosto de 2018. ISSN:2448-0959
RESUMO
Atualmente, observa-se que alunos e estudantes possuem certa dificuldade em gerenciar seu tempo, seus objetivos e metas para os estudos, sejam esses objetivos como passar em um concurso público ou até mesmo em ser aprovado numa prova de vestibular. Os cronogramas de estudos costumam atrasar e por isso eles têm dificuldades para controlar o progresso. A partir dessa observação surgiu a ideia de desenvolver um sistema que permita gerenciar os objetivos e metas dos estudantes, possibilitando que eles tenham maior comprometimento e produtividade na execução de suas tarefas, tanto para o acompanhamento dos prazos quanto para o maior controle das etapas, esse sistema foi denominado como Started Bee.
Para o desenvolvimento desse projeto foi necessária a realização de pesquisa bibliográfica acerca dos conceitos que contextualizam o tema, a questão problema, os objetivos gerais e específicos, os elementos de projeto e desenvolvimento do sistema, será desenvolvido um modelo MPV (produto mínimo viável) que usara os conceitos de uma aplicação Hibrida (Aplicação desenvolvida com tecnologia Web, responsiva para qualquer plataforma), não nativa, que rodará no android e IOS usando o framework IONIC 3, Angular JS, TypeScript, Firebase, baseando-se no conceito de uma MVP. No trabalho são abordadas as etapas realizadas, como o planejamento, incluindo coleta e documentação de requisitos, prototipação, modelagem de Banco de Dados (BD). São descritos resultados da implementação do protótipo do sistema apresentado, e, por fim, são apresentadas as conclusões com constatações que foram obtidas a partir da experiência do desenvolvimento.
Palavras-chave: Started Bee, Estudos, Gerenciamento, Objetivos, Metas, MVP.
1. INTRODUÇÃO
O Brasil tem mais telefones celulares do que habitantes, já é o quinto país com maior número de smartphones e acessos móveis, nas áreas da cultura e educação muita transformação tem ocorrido. Compreender e avaliar os impactos dessas tecnologias tornou-se uma necessidade. É indispensável que a educação acompanhe essas transformações, não só das tecnologias, mas da sociedade. (Merije, 2012)
Pessoas passaram a utilizar os smartphones para a estudar e pesquisar pelo universo mobile. A expansão dos objetos de aprendizagem é um bom exemplo do emprego da tecnologia na educação.
Com os avanços tecnológicos, novos ambientes de trabalho estão se expandindo e com cada vez mais aceitação entre as pessoas. As empresas percebendo essa transformação estão desenvolvendo e criando novas ferramentas que permitam a produção de materiais para tais dispositivos. Então chega-se a ideia de desenvolvimento de objetos de aprendizagem para dispositivos móveis.
Com a criatividade é possível desenvolver aplicativos e sistemas com custos baixos, que interliguem a escola com a comunidade das cidades próximas e até mesmo com o mundo, como forma de facilitar a vida de educadores, estudante e familiares.
1.1 Motivação
Segundo a matéria feita pelo (Salgado, 2014) cita que alguns milhões de pessoas que iniciam o projeto concurso público desistem, sem atingir o objetivo. Os fatores que contribuem para isso são, em sua grande maioria, previsíveis, porém, nem sempre evitáveis. Se os concurseiros obtiver conhecimento do que é necessário enfrentar, seja possível lidar melhor com as dificuldades, quando surgirem.
Considerando com a ampla gama de informações proporcionadas tanto por materiais didáticos quanto pela internet em geral nem sempre disponibilizam conteúdo de qualidade, alguns estudantes ficam confusos em relação ao que estudar e como estudar, por não saber exatamente o que estudar acaba por perder tempo e o foco e justamente por isso este trabalho irá apresentar ferramentas para ter foco nas estratégias e o gerenciamento de objetivos e metas e são indispensáveis para uma alta performance com foco em melhorar a produtividade em relação aos estudos.
1.2 Objetivos
Desenvolver um Sistema de Gestão de Objetivos e Metas – Started Bee. Será desenvolvida uma MVP que será hibrida, utilizando Angular JS, IONIC, Type script, facilitando assim a criação de uma versão para outros dispositivos.
1.2.1 Geral
O objetivo geral deste trabalho consiste no desenvolvido de um sistema de gerenciamento de Objetivos e Metas, fundamenta em práticas de coaching para alta performance pessoal, visando crescimento emocional e profissional do usuário, denominado Started Bee. O sistema será baseado na criação de uma MVP (Produto mínimo viável) para consumo de futuras aplicações (Android, IOS, Windows Phone).
1.2.2 Específicos
- Criar um planejamento personalizado dos estudos;
- Aumentar a performance de estudos do concurseiros;
- Possibilita utilizar técnicas de estudo, com revisão, resolução de exercícios;
- Monitora e mede os resultados atingidos de forma concreta e tangível;
1.3 Organização do Trabalho
O trabalho está dividido em 6 capítulos, distribuídos conforme abaixo:
Primeiro capítulo: É referente a introdução, a motivação, objetivos, e organização do projeto a ser desenvolvido.
Segundo capítulo: apresentará o referencial teórico utilizado para desenvolver o trabalho e uma conceituação sobre os métodos e ferramentas que são utilizados no trabalho.
Terceiro capítulo: Uma visão do sistema, identificação do problema, o modelo de negócio e apoio a solução do problema.
Quarto capítulo: Mostra quais os requisitos, alguns diagramas, permite conhecer o planejamento estratégico para chegar ao resultado final.
Quinto capítulo: Apresentará o sistema depois de pronto e suas principais funcionalidades.
Sexto capítulo: Mostra a conclusão do trabalho a ser desenvolvido, desde sua documentação, até a fase de produção da solução Started Bee.
2. Pesquisas e métodos
A metodologia utilizada será basicamente uma pesquisa bibliográfica na área de engenharia de software, análise de dados, aplicação de recomendações técnicas de desenvolvimento de software, bem como leitura de artigos técnicos relacionados com a Tecnologia da Informação.
Neste capítulo serão apresentadas a metodologia, a proposta da solução, o referencial tecnológico, a arquitetura do sistema e as tecnologias empregadas para o desenvolvimento do projeto.
2.1 Metodologia
Na primeira etapa deste trabalho será iniciado o levantamento de requisitos e estudos sobre as dificuldades dos estudantes, diante de seus problemas e necessidades.
Após isso será realizado estudos de caso e a criação da modelagem do sistema utilizando a linguagem UML. A próxima etapa será implementada uma aplicação móvel com a plataforma Android, posteriormente será feita a implementação de uma aplicação web service para integração dos dados do aplicativo móvel, para uma web site.
Para a implementação deste software será utilizada a ferramenta uso de ferramentas para montar UX design e UI design da aplicação.
Ao final de cada etapa, o sistema será disponibilizado para os testes necessários, tanto de carga, quanto de funcionalidades, a fim de identificar possíveis erros que deverão ser corrigidos.
2.2 Proposta da solução
Na hora de se preparar para uma prova muito importante ou estudar várias disciplinas, os alunos confrontam problemas parecidos: falta de disciplina, de tempo ou de foco. É comum que os estudantes tenham dificuldades para se organizarem e assimilarem as grandes quantidades de conteúdo necessárias. Uma solução para isso seria fazer um planejamento de estudos bem elaborado.
Uma técnica seria coaching de estudos que é um produto para estudantes que querem melhorar o seu desempenho em provas e concursos de um jeito totalmente personalizado. Para cada estudante, será criado um plano de estudos único, que leva em conta seus objetivos, suas forças e também sua saúde emocional.
Tendo em vista as dificuldades de acesso ao tipo de profissional, será desenvolvido um modelo MVP que ajudará o usuário de forma semelhante a um profissional Coach, a definir objetivos e metas para alcançar um determinado propósito.
2.3 Referencial Tecnológico
Nesta seção são apresentados conceitos, de suma importância e tecnologias e ferramentas utilizadas para o desenvolvimento do aplicativo Started Bee e suas respectivas referências bibliográficas, mostrando o motivo das decisões tomadas com sua devida referência.
2.4 Arquitetura do Sistema
De acordo com (Pressman, 2011) a arquitetura de sistema é a estrutura que engloba os componentes de software, as propriedades externas visíveis desses componentes e as relações entre eles.
(Kazman, 2003) define que arquitetura de software de um sistema se refere à sua estrutura, consistindo de elementos de software, propriedades externamente visíveis desses elementos e seus relacionamentos. A arquitetura define tanto elementos de software como envolve informações sobre como eles se. Ela pode envolver mais de um tipo de estrutura, com diversos tipos de elementos e de relacionamentos. As propriedades visíveis indicam as suposições que os demais elementos podem fazer sobre um elemento, tais como serviços providos e características de qualidade previstas. Resumindo, uma arquitetura é usada para descrever aspectos estruturais de um sistema, em alguns casos ela omite informações de elementos que não pertencem as suas
Interações.
Um fator que é fundamental para a escolha da arquitetura é o ambiente técnico (plataforma de implementação). Muitas vezes, há para esse ambiente um conjunto dominante de padrões, práticas e técnicas que é aceito pela comunidade de arquitetos ou pela organização de desenvolvimento. Por fim, a arquitetura é influenciada também pela estrutura e natureza da organização de desenvolvimento.(Kazman, 2003)
2.4.1 Requisitos mínimos para instalação
O funcionamento do sistema se dará nas plataformas, Android e IOS, usando componentes de webview, para gerar uma aplicação híbrida que roda em mais de uma aplicação com um único código.
Para o funcionamento adequado nas plataformas são necessários:
Android
Requisitos de software:
- Android 4.1 até 8.0
Requisitos de hardware:
- 1 GB de memória RAM
- 8GB de memória de armazenamento
- Interface de Rede 3G/4G/WIFI
- Processador Qualcomm Snapdragon, Samsung, MediaTek (mais de 1Ghz).
- Tela de 5 polegadas (HD)
IOS
Requisitos de software:
- IOS 9 a 11
Requisitos de hardware:
- 1 GB de memória RAM
- Interface de Rede 3G/4G/WIFI
- Processar Samsung de 1Ghz
- Tela de 5 polegadas (HD)
- Armazenamento de 8GB
2.5 Tecnologia de desenvolvimento
Dentro deste capítulo estão atreladas as tecnologias a serem usadas para o desenvolvimento da aplicação. Visando usar o que o mercado de trabalho está pedindo de conhecimento no currículo de um profissional de TI.
2.6 Linguagem de Programação
Segundo (GOTARDO, 2015) conceitua que
“Uma linguagem de programação é um método padronizado que usamos para expressar as instruções de um programa a um computador programável. Ela segue um conjunto de regras sintáticas e semânticas para definir um programa de computador. Através da especificação de uma linguagem de programação você pode especificar quais dados um computador vai usar; como estes dados serão tratados, armazenados, transmitidos; quais ações devem ser tomadas em determinadas circunstâncias”.
A Linguagens de programação permitir que programadores tenham uma maior produtividade e tem como função servir de um meio de comunicação entre computadores e humanos de maneira mais rápida e organizada, são projetadas para adotar uma sintaxe de nível mais alto, que pode ser mais facilmente entendida por programadores humanos e expressando assim suas intenções mais facilmente do que quando comparado com a linguagem de máquina. (Leite, 2006)
A seguir mostraremos algumas linguagens que serão utilizadas no projeto Started Bee.
2.6.1 JAVA
Java é uma linguagem de programação multiplataforma e orientada a objetos, isto quer dizer que simula os elementos da linguagem semelhante aos objetos do mundo real e é totalmente independente de plataforma de hardware e software, uma vez que deveriam ser executados em qualquer arquitetura e sistema operacional.(Fernandes & Araújo, 2014)
É uma linguagem poderosa por ser versátil, eficiente e portável e sua segurança fazem dela uma tecnologia ideal em ambientes distribuídos de rede da Internet, permite ao programador ir além, oferece uma poderosa linguagem de programação de uso geral, com recursos suficientes para a construção de uma variedade de aplicativos, pode encontrar a tecnologia Java em redes e dispositivos que vão desde a internet, laptops, smartphones, cartões de créditos dentre outros… (SERSON, 2007)
A linguagem Java possui algumas características dentre elas ser simples porque permite o desenvolvimento em diferentes SO e arquiteturas de hardware, outra característica é que a plataforma Java permite a criação de programas que implementam o conceito de multithread, que é uma técnica de programação concorrente, que permite projetar e implementar aplicações paralelas de forma eficiente. (Mendes, 2009)
2.6.2 PHP
A linguagem PHP foi criada por Rasmus Lerdorf em 1994, era uma linguagem formada por um conjunto de scripts desenvolvido na linguagem C, voltado a criação de conteúdos Word Wide Web, mas a frente fora sendo adicionados novos recursos como interação com banco de dados. (Dall’Oglio, 2015)
Segundo (Niederauer, 2005) uma das principais características de páginas que utilizam PHP é o dinamismo e praticidade, que fica evidente com automatização das tarefas, economia de tempo e de mão de obra, outra vantagem do PHP é que ele é gratuito e com código fonte aberto.
Inicialmente era uma linguagem de script estruturada, mas com o passar do tempo, e com a adição de novos recursos, chegando em sua quinta versão, o PHP 5 foi transformado em linguagem orientada a objetos a partir desse “amadurecimento” o PHP começou a chamar a atenção de programadores acostumados a utilizar o paradigma de programação orientada a objetos, além de favorecer a criação de aplicações mais robustas e de melhores componentes de software. (Minetto, 2007)
2.6.3 JavaScript
Javascript é uma linguagem usada nos navegadores da web para controlar o comportamento de páginas e interagir com utilizadores. Utilizando uma linguagem de scripting do lado do cliente usada para navegadores web, isto é, a interpretação e o funcionamento da linguagem dependem de funcionalidades hospedadas no navegador do usuário. (Silva, 2008)
De acordo com (Flanagan, 2007) Javascript tem o objetivo primário em ajudar os desenvolvedores a interagir com as páginas web bem como o próprio navegador, é uma linguagem de programação web mais popular orientada a objetos, a maioria dos sites modernos usa JavaScript, a utilização expandiu para todo tipo de manipulação com o utilizador para que pudessem ser executados do lado do cliente e interagisse com usuário.
2.7 Web Services
É um meio utilizado para integração de sistemas e na comunicação entre diferentes aplicações, com esta tecnologia é possível que novas aplicações possam interagir com aquelas que já existente em um ambiente de trabalho e que sistemas desenvolvidos em plataformas diferentes sejam compatíveis. (Eulalio et al. , 2017)
Os Web Services são componentes que permitem às aplicações enviar e receber dados em formato XML. Cada aplicação pode ter a sua própria “linguagem”, que é traduzida para uma linguagem universal, isto é, em um formato de texto.
2.7.1 Rest
Segundo Fielding citado por (Ferreira & de Oliveira Knop, 2017) REST significa Transferência de Estado Representacional ou Representational State Transfer, é um protocolo de comunicação baseado em HTTP. Se trata de uma coleção de princípios e restrições arquiteturais para o desenvolvimento de aplicações distribuídas na Web. Ele adota o conceito de cliente servidor, onde as requisições partem inicialmente do cliente e são respondidas pelo servidor.
Os serviços web baseados no framework REST se diferenciam dos serviços web baseados na arquitetura SOA (Service Oriented Architecture) pelo fato utilizarem o cabeçalho HTTP como envelope de metadados, diferentemente do SOA, que utiliza o HTTP apenas como um meio para transportar um envelope em seu próprio formato, o protocolo REST são mais leves, e, portanto, mais rápidos. (Berenguel et al. , 2008)
2.7.2 API (Interface de programação de aplicações)
Se refere a padrões e conjunto de rotinas de programação para acesso a um determinado aplicativo ou sistema. Geralmente ela é criada quando a empresa detentora do software pretende que outros programadores desenvolvam produtos através dos seus serviços.
Ela permite a construções de novos aplicativos e sua utilização não é tão evidentes para os seus usuários. API é a raiz dos aplicativos, pode estar conectada com vários outros sistemas sem que seus usuários se quer perceba. Ela funciona através da interligação com vários códigos, apresentando comportamentos específicos para cada funcionalidade do sistema. (Ciriaco, 2017)
2.7.3 JSON
O JSON (Javascript Object Notation) é um modelo para armazenamento e transmissão de informações no formato de texto. Segundo (Fonseca & Simoes, 2007) o JSON foi desenhado com o objetivo de ser simples, portável, textual, e um subconjunto do JavaScript, e é cada vez mais a ser usado para transporte de dados serializados no contexto da internet, em detrimento do XML.
Embora todos os browsers mais usados suportem corretamente o processamento de XML, ainda nem todos possuem um bom e completo processador e interrogador de XML, e se a ideia é criar aplicações web leve e rápida o JSON é assim é um ótimo substituto do XML.
2.7.4 XML
O uso do formato XML permite a troca de dados, buscando uma linguagem de padrão aberto que tenha a facilidade de ser convertida para outros formatos, inclusive formatos proprietários pois é baseado em texto, o que contribui para sua fácil leitura e processamento, gerando menos incompatibilidades que aumenta o reaproveitamento dessas informações. (Brandão & Ribeiro, 2007)
2.8 Framework
É uma biblioteca ou como uma caixa de ferramentas que possui diversas funcionalidades devidamente implementadas, testadas e prontas para serem utilizadas na construção de softwares, poupando ao desenvolvedor tempo e trabalho na elaboração de operações básicas como acesso a banco de dados, sistema de templates, mapeamento de rotas e validação de dados.
Dentre alguns tipos de framework para desenvolvimento podemos citar:
2.8.1 AngularJs
É um framework Javascript MVC de código aberto, mantido pelo Google que simplifica e facilita o desenvolvimento de aplicações que executem adequadamente em qualquer plataforma móvel ou desktop. (Williamson, 2015)
(Freeman, 2014) ressalta que AngularJS tem como objetivo trazer grande parte das ferramentas e capacidades como controllers para os componentes visuais que são codificadas no lado servidor para o lado cliente. Com isso, oferecem muitas vantagens que facilita o desenvolvimento rápido, agilidade na operação, testabilidade e a manutenção dos sistemas.
2.8.2 IONIC
Ionic que é um framework que visa a criação de aplicativos híbridos para dispositivos móveis. Nele é possível utilizar componentes responsivos e atrativos para o desenvolvimento dos aplicativos, com a possibilidade de compilação nas mais diversas plataformas. Oferece diversas bibliotecas de CSS e Javascript para AngularJS, ele simplifica o desenvolvimento e ajuda a produzir APP com um visual muito agradável, sem dar muito trabalho ao desenvolvedor, além de não exigir muito conhecimento prévio, apenas HTML, CSS e Javascript. (Gois, 2017)
Para (Gois, 2017) a grande vantagem do Ionic é que seu desenvolvimento foi pensado em utilizar os recursos mais novos do CSS, HTML e Javascript com o objetivo de prover para o desenvolvedor uma gama de componentes pré-prontos de alta qualidade e desempenho.
Existem uma série de ferramentas sistemas que facilita o desenvolvimento com o Ionic dentre elas utilizamos:
- Ionic View: Você pode faz upload do seu aplicativo e pode testa-lo em qualquer aparelho.
- Ionic Market: Com ele você pode comprar temas e plugins para facilitar seu desenvolvimento. Nós desenvolvemos o InstaCopy que é uma cópia do Instagram, com Ionic com Feed, Story, Filtro em imagens.
- Build Phonegap: Caso não tenha um MacOS porém, consiga os certificados, você pode usar o Build Phonegap que faz esse papel.
- OneSignal: Para fazer PushNotification
- Ionic Native: Coleção de plugins para acesso ao hardware do dispositivo
2.8.3 AngularJs
Segundo (Pereira, 2014) “AngularJS é um framework Javascript que simplifica o desenvolvimento de aplicações web dinâmicas, viabilizando a implementação do conceituado MVC”.
Para (Pereira, 2014) AngularJS tem como objetivo trazer grande parte das ferramentas e capacidades como controllers para os componentes visuais que são codificadas no lado servidor para o lado cliente. Ele apresenta características satisfatórias tais como:
- produtividade
- desempenho
- fácil customização
- é testável
- implementa conceito de diretivas, ampliando o vocabulário HTML
2.8.4 Phonegap
PhoneGap possibilita o desenvolvimento de aplicações mobile, open source, multiplataforma. Com ele é possível que programadores de software construam aplicações para dispositivos mobile usando JavaScript, HTML5 e CSS3, em vez de depender do uso de SDKs ou compiladores específicos de plataforma como aqueles em iOS, Windows Phone ou Android. O PhoneGap permite encapsular código HTML, CSS e Javascript independentemente da plataforma do dispositivo. (Lopes, 2016)
2.9 Servidor WeB
O servidor web são responsáveis por exibir conteúdos de arquivos HTML. Ele é um programa que usa o protocolo HTTP para servir os arquivos que formam páginas da web para os usuários, em resposta aos seus pedidos, que são encaminhadas pelos clientes HTTP de seus computadores. (Luiz, 2014)
2.9.1 FTP
É semelhante ao HTTP, foi criado com o propósito de armazenamento em nuvem e sua
abreviação significa File Transfer Protocol (Protocolo de transferência). Ele é responsável por enviar arquivos para a rede web de forma versátil e prática. A transferência é feita entre um servidor e um cliente. O servidor é o local onde fica os arquivos enquanto o cliente é quem realiza as operações, sua conexão é autenticada por um servidor em um determinado IP e por um nome de usuário. (Barros, 2017)
2.9.2 HostGator
Foi criado nos Estados Unidos e está presente no Brasil e na Índia, é conhecido por ser uma das maiores empresas de hospedagem de sites do mundo. Ele oferece serviços como hospedagem de sites, revenda de hospedagem, registro de domínio, entre outros serviços. Fundada em 2002 na universidade de Flórida, onde se expandiu e possui escritórios em Austin, Texas, Estados Unidos, Houston e filiais no Brasil e Índia. (Delavy, 2017)
2.9.3 HTTP
O HTTP é o protocolo utilizado para transferência de páginas HTML do computador para a
Internet. Esta informação é necessária para estabelecer a comunicação entre a URL e o servidor
Web que armazena os dados, enviando então a página HTML solicitada pelo usuário. (Luiz, 2014)
2.10 Banco de Dados / Gerenciador de Banco de Dados (SGBD)
(Feitosa, 2008) conceitua que banco de dados é um conjunto de dados que se relacionam, de forma organizado a permitir que sistemas de aplicação armazenem novos dados, encontrem dados armazenados, alterem seu conteúdo e excluam dados por meio de métodos precisos de manipulação e localização. Os gerenciamentos desses dados são feitos pelos SGBDs, que disponibiliza uma interface para que seus clientes possam manipular os dados.
2.10.1 MySql
É um servidor de banco de dados relacional de código aberto usado na maioria das aplicações gratuita, o serviço utiliza a linguagem SQL que é a linguagem de banco de dados mais popular no mundo. MySql é uma implementação cliente-servidor que consiste de um servidor e diferentes programas clientes e bibliotecas. SQL é uma linguagem padronizada que torna fácil o armazenamento e acesso de informações. O servidor MySql é também rápido e flexível o suficiente para permitir armazenar logs e figuras nele. (Gonzaga & Birckan, 2000)
As principais vantagens do MySql são velocidade, robustez e facilidade de uso. MySql foi originalmente desenvolvido pois a equipe da T.c.X. DataKonsultAB (empresa que desenvolveu MySql) precisava de um servidor SQL que pudesse manipular banco de dados grandes numa ordem de magnitude mais rápida que qualquer banco de dados comercial pudesse lhes oferecer. (Gonzaga & Birckan, 2000)
2.10.2 PostgreSQL
Outra opção de servidor de banco de dados seria o PostgreSQL, pois se trata de um SGBD de grande potencial e confiabilidade, contendo todas as características dos principais bancos de dados utilizados no mercado.
Segundo (Milani, 2008) o PostegreSQL é utilizado para armazenar informações de soluções de tecnologia em todas as áreas (setor aéreo, bancário, governamental, automobilístico, dentre outros) de negócios existentes, bem como administrar o acesso a estas informações. Um fator importante para escolha do banco de dados PostgreSQL pois ele apresenta licença mais flexível, porque permite que seja integrado em aplicações comerciais sem restrição.
2.10.3 MariaDB
É um sistema de gerência de banco de dados que oferece a funcionalidade e substituição para o MySql. MariaDB foi implementado por alguns dos autores originais do MySql, com a ajuda da grande comunidade de desenvolvedores de software livre e software de código aberto. Além das funcionalidades básicas do MySql, MariaDB oferece um rico conjunto de aprimoramentos de recursos, incluindo mecanismos de armazenamento alternativo, otimização de servidores e patches. (Morgenstern et al. 2016)
Através desta ferramenta podemos realizar testes de gerenciamento de requisições, juntamente com teste de administração de recursos por parte do banco de dados. Sendo assim, disponibilizando ao usuário uma boa média da real necessidade de hardware para o banco de dados que ele necessita. (Morgenstern et al., 2016)
O software é desenvolvido na linguagem de programação Java EE, contando juntamente com a utilização do JDBC MariaDB, na versão 1.1.7, podendo contar também com o JDBC para o MySql. Sendo assim, a aplicação destina se a atender ambas os bancos de dados, de maneira igualitária. O controle da aplicação apresenta-se via terminal, uma vez que a aplicação não conta com Interface Gráfica para auxílio ao usuário. (Morgenstern et al., 2016)
2.10.4 NoSQL
Os gerenciadores de banco de dados tradicionais, ou seja, os modelos relacionais possuem alta disponibilidade de gerenciamento centralizado, oferecendo recuperação de falhas, segurança, processos de validação e verificação, otimização de consultar, entre outras características, além da confiabilidade de armazenamento. Segundo (Brito, 2017), essas características fizeram com que os seus números de usuários crescessem, sendo assim criada aplicações mais complexas e completas a serem desenvolvidas.
Os bancos de dados tradicionais não suportaram o avanço do aumento de banco de dados em diversos ambientes, como a Web, o NoSQL se tornou essencial para aplicativos corporativos, o que trouxe no decorrer dos anos um novo modelo de utilização de sistemas de armazenamento.
Os modelos não relacionais como NoSQL supriu as maiores facilidades para a construção de aplicações web. Devido ao crescimento das redes sociais e demais aplicações web, a geração de conteúdo por computadores e dispositivos móveis, e cada vez maior o número de usuários conectados, fez com que trabalho de armazenar esses dados pudessem ser utilizados para análises. (Wylie, 2017)
2.10.5 FireBase
Foi criado pela Google, possui uma infraestrutura para desenvolver aplicativos com maior flexibilidade e rapidez. É uma plataforma móvel capaz de oferecer aos seus usuários desenvolver aplicativos com alta qualidade e agilidade. Sua implementação é intuitiva e conta com APIs em um único SDK (Software Development Kit – pacote de desenvolvimento de software), podendo resolver problemas dos clientes e não perder tempo com infraestruturas complexa.
Realtime Database
É um banco de dados hospedado na nuvem, esses dados são armazenados como JSON e são sincronizados em tempo real. Quando se cria aplicativos em plataformas com SDKs para Android, iOS e Java Script, todos os clientes recebem automaticamente as atualizações. (Firebase, 2017)
Cloud Storage
Foi criado pelos desenvolvedores com o intuito de armazenarem e criar vínculo do conteúdo gerado pelo usuário, como fotos, vídeos ou vídeos. É um armazenamento de objetos simples e econômico, com os SDKs do firebase ele usa a segurança do google para fazer o download e upload dos arquivos independente de qualidade da rede, caso esse serviço for interrompido, são reiniciados até esse ponto. (Firebase, 2017)
Authentication
Para que os aplicativos salvem os dados na nuvem com segurança é preciso que confirme a identidade do seu usuário. Essa ferramenta permite que esses dados sejam salvos com segurança. Ele fornece serviços como SDKs fáceis de utilizar, back-end e bibliotecas de IU para autenticar seus clientes em seus aplicativos. (Firebase, 2017)
2.11 Modelador de banco de Dados
É uma descrição dos tipos de informações que estão sendo armazenadas em um banco de dodos é uma técnica para especificação das regras de negócios e as estruturas de um banco de dados. Um modelo de dados serve para explicar qual a organização de um banco de dados. (Heuser, 2009)
2.11.1 DbDesign
É uma ferramenta de código livre que serve para a modelagem de dados, mais especificamente para a elaboração de diagramas MER. Dentre suas principais vantagens é de fácil geração de código SQL, faz a separação dos modelos físico e logico, possui simples interface gráfica e é portável. (Pichiliani, 2012)
2.11.2 Enterprise Architect
O Enterprise Architect é uma ferramenta para representação de sistemas baseada na UML. Auxilia todas as equipes envolvidas na construção de um software, incluindo: analistas, testadores, gerentes de projeto, controle de qualidade do pessoal que trabalha com a implantação do software. Pode ser utilizado durante as fases de definição dos requisitos, análise, design dos modelos, testes e a manutenção. (Caetano et al., 2009) É uma aplicação desktop e suporta a interação de vários usuários, possibilitando dessa forma documentar os projetos de software com alta qualidade. Os modelos construídos no Enterprise Architect podem servir de subsídio para a alocação de recursos pelo gerente de projetos, estabelecimento de prazos para as tarefas, definição de métricas de caso de uso, estabelecimento de novas métricas, detalhar a quantidade de esforço para um determinado modelo e definir itens de risco no projeto. (Caetano et al. , 2009)
2.12 Ferramentas de desenvolvimentos
Algumas ferramentas para o desenvolvimento, serão listadas a seguir:
2.12.1 Android
Studio Android Studio é ferramenta oficial do Google para desenvolvimento de aplicativos no Android, fornece uma interface gráfica que permite aos desenvolvedores executar tarefas de desenvolvimento mais rapidamente. Além do editor de código e das ferramentas de desenvolvedor avançados do IntelliJ, o Android Studio oferece ainda mais recursos para aumentar sua produtividade na criação de aplicativos Android.
O Kit de Desenvolvimento de Software para Android permite aos desenvolvedores criarem aplicativos para a plataforma Android de forma nativa. O Android SDK inclui projetos de exemplo com código-fonte, ferramentas de desenvolvimento, emuladores e bibliotecas necessárias para criar os aplicativos Android. Os aplicativos são escritos usando a linguagem de programação Java, máquinas virtuais personalizadas e projetadas para rodar dentro dos dispositivos Android que funciona em cima de um kernel Linux.
2.12.2 Sublime Text 3
O Sublime text é um editor de texto tem sido muito escolhido pelos desenvolvedores por ser leve, simples e com interface agradável. Este editor oferece recursos para aumentar a produtividade, o desenvolvedor precisa de um editor de códigos eficiente e, dentre tantos ambientes de desenvolvimento robustos e gratuitos, como o Eclipse. O Sublime Text destaca-se justamente pela simplicidade e facilidade de uso, além de leve. Além disso, ele aceita diversas linguagens de programação e personalizável.
2.12.3 Visual Studio Enterprise 2017
Visual Studio é um conjunto completo de ferramentas de desenvolvimento baseadas em componentes para criação de aplicativo desktop e aplicativos Web. Além de criar aplicativos individuais de alto desempenho, pode usar as poderosas ferramentas de desenvolvimento baseadas em componentes do Visual Studio e outras tecnologias para simplificar o trabalho em equipe no projeto, desenvolvimento e implantação de soluções empresariais.
É uma plataforma para desenvolvimento de aplicações altamente escalável e de baixo nível, pois você vai programar diretamente com diversos protocolos de rede e internet utilizando Javascript.
2.12.4 Node Js
NodeJs é uma ferramenta utilizada para construir aplicações web, o Nodejs utiliza arquitetura orientada a eventos e um modelo de entrada e saída não bloqueante que faz com seja leve e eficiente. Essas são características para solucionar problemas de intenso tráfego de rede e aplicações web. (Moraes, 2015)
2.12.5 Xamarin
Com o Xamarin é possível desenvolver aplicativos mobile nativas utilizando C#, isto é, é uma plataforma que visa amenizar a necessidade de desenvolver códigos separados para cada sistema móvel existente no mercado, tornando possível criar aplicativos usando uma mesma linguagem de programação C.
O Xamarin não garante eliminar completamente a necessidade de desenvolvimento repetido, principalmente na camada de interface de usuário, onde ainda é necessário desenvolver código específico para cada sistema alvo. O Xamarin garante que todo o código da regra de negócio, acesso a base de dados ou comunicação com servidor seja implementada apenas uma vez.
2.12.6 NetBeans
O NetBeans é um projeto open sourcefundada pela Sun Microsystems em junho de 2000, é uma ferramenta de desenvolvimento para programadores, que permite escrever, compilar, depurar e instalar programas. O IDE é completamente escrito em Java, mas pode suportar qualquer linguagem de programação. Existe também um grande número de módulos para estender as funcionalidades do IDE NetBeans. Ambos os produtos são open source e livres para uso comercial e não comercial.
Outras tecnologias, a seguir será listada outras tecnologias que serão utilizadas:
2.12.7 HTML5
O HTML tem códigos para criar páginas na web. Estes códigos que definem o tipo de letra, qual o tamanho, cor, espaçamento, e vários outros aspectos do site. No início era muito complicado aprender HTML, pois eram muitos comandos para fazer algo simples. Desde a invenção da web por Tim Berners-Lee, a HTML evoluiu por sete versões, até chegar no HTML5. (Silva, 2008)
A cada nova versão fica mais fácil de utilizar, e adquire mais funções. HTML5 é a nova versão da linguagem de marcação HTML que será utilizada em novos projetos de sites ou sistemas baseados em Web. Adicionando novas funcionalidades API’s para a manipulação de folhas de estilos em CSS e Javascript.
2.12.8 CSS3
O CSS formata a informação que é entregue pelo HTML. Essa informação pode ser: imagem, texto, vídeo, áudio ou qualquer outro elemento criado. O CSS (Cascading Style Sheets) é uma folha de estilo composta por camadas e utilizada para definir a aparência em páginas da internet que adotam para o seu desenvolvimento linguagens de marcação prepara a informação para que ela seja consumida da melhor maneira possível. (Eis & Ferreira, 2012)
Já em sua nova versão, O CSS3 é um novo padrão para folhas de estilo que está sendo definido atualmente pela W3C, e trará novidades com características emocionantes, o que levará a uma maior flexibilidade tornando muito mais fácil recriar efeitos anteriormente complexos. O CSS3 oferece uma enorme variedade de novas formas de criar um impacto em seus projetos, com algumas mudanças importantes. (Eis & Ferreira, 2012)
2.12.9 JQUERY
JQuery é um framework de Javascript. que tem por objetivo simplificar o código e maximizar a produtividade no desenvolvimento web, por meio dele é possível manipular qualquer conteúdo com poucas linhas de código e sem toda a complexidade do Javascript. O foco principal da biblioteca JQuery é a sua simplicidade e além de ser muito leve.
2.12.10 GULP
É uma ferramenta de automação de tarefas feita em Javascript e roda em cima do NodeJs. O Gulp ajudar desenvolvedores front-end com tarefas necessárias e repetitivas e, com isso, prover maior velocidade no desenvolvimento de um projeto, as principais características do Gulp são: fáceis de usar, eficiente, alta qualidade e fácil aprendizado.
2.12.11 DESIGN EXPERIENCE ADOBE
Adobe Experience Design integra design e prototipagem em uma aplicação desktop que é rápida e fluida. A solução ajuda designers a alternarem entre wireframe, design, protótipo e preview, para conseguirem desenvolver aplicativos e sites que mantêm os usuários engajados.
É uma aplicação desktop e suporta a interação de vários usuários, possibilitando dessa forma documentar os projetos de software com alta qualidade. Os modelos construídos no Enterprise Architect podem servir de subsídio para a alocação de recursos pelo gerente de projetos, estabelecimento de prazos para as tarefas, definição de métricas de caso de uso, estabelecimento de novas métricas, detalhar a quantidade de esforço para um determinado modelo e definir itens de risco no projeto.
2.12.12 SASS
SASS é uma linguagem de extensão do CSS que proporciona maior controle sobre as folhas de estilos, deixando-o mais dinâmico e profissional. Ele foi criado para resolver a falta de dinamismo do CSS, como por exemplo, evitar repetições ao longo da folha e construir padrões mais complexas. É compatível com todas as versões do CSS e a partir do Magento versão 1.9 já é incluído no tema padrão, onde se escreve a folha de estilo em SASS e utiliza-se um conversor para o CSS padrão, ficando a sua extensão como scss e depois transformar em scss ou css. (Diniz, 2017)
2.12.13 BOOTSTRAP 4
Bootstrap é um framework front-end que facilita a vida dos desenvolvedores web a criar sites com tecnologia mobile sem ter que digitar uma linha de CSS. Além disso, o Bootstrap possui uma diversidade de componentes em Javascript que auxiliam o designer a implementar: tootlip, menu-dropdown, modal, carousel, slideshow, entre outros sem a menor dificuldade, apenas acrescentando algumas configurações no código, sem a necessidade de criar scripts, fora desenvolvido usando SASS.
2.12.14 MVP
MVP significa Minimum Viable Product (Produto mínimo viável) que é um protótipo que as empresas lançam com o mínimo investimento possível para testar antes de investir muito. Ele possuí as necessidades necessárias para que tenha funcionalidade adequada para o qual foi projetado. É a partir dele que testa a eficiência, usabilidade, comparação da concorrência e aceitação dos consumidores. (RIES, 2012)
2.12.15 MVC
É um design pattern que está entre os mais conhecidos. Basicamente é uma aplicação que tem as suas classes separadas em três grandes grupos de responsabilidades, isto é, MVC é um padrão de arquitetura de software, separando sua aplicação em 3 camadas. A camada de interação do usuário (vie), a camada de manipulação dos dados (model) e a camada de controle (controller)usuários engajados.
2.12.16 Uml
A UML (Unified Modeling Language), que significa Linguagem Unificada de Modelagem é uma linguagem padrão para modelagem orientada a objetos. Têm como papel auxiliar a visualizar o desenho e a comunicação entre objetos. Ela permite que desenvolvedores visualizem os produtos de seu trabalho em diagramas padronizados, e é muito usada para criar modelos de sistemas que são usados em combinação, com a finalidade de obter todas as visões e aspectos do sistema.
2.12.17 Versionamento
Sua função principal é documentar as inclusões, alterações e exclusões das funcionalidades de um sistema. Isso garante com que tenha maior controle sobre o projeto e ser for necessário em caso de erros, resgatar a versão anterior durante seu processo de publicação. Possuir uma aplicação versionada é a mesma coisa que oferecer aos seus usuários maior segurança. (Scripcase, 2017)
2.12.18 GIT
É uma ferramenta de versionamento, é usada em grandes projetos que tenham muitos usuários e é a plataforma que roda o GitHub (Serviço online que fornece um servidor GIT gratuito para projetos que são open source). Ele trabalha com um servidor principal e mais inúmeros servidores, enquanto se trabalha em um deles, quando tiver concluído, só subir as atualizações para todos. (Oliveira, 2017)
2.12.19 Bitbucket
É semelhando ao GitHub, um serviço de hospedagem de projetos controlados através do Mercurial (Ferramenta multiplataforma de controle de versão) possui um serviço gratuito e um comercial. Seu sistema é composto pela linguagem Phyton e suporta repositórios usando os sistemas de controle de versão GIT.
2.12.20 GitHub
É semelhante ao uma rede social para programadores e desenvolvedores. Oferece diversas funcionalidades, comowiki, feeds, followers e um gráfico que mostra como os desenvolvedores estão contribuindo nas versões de seus repositórios. Existem diversas funcionalidades gratuitas extraídas do GIT, mas também possui planos comerciais privados. Seu armazenamento pode ser em nuvem e quase todos os projetos open source estão no GitHub, podendo o usuário contribuir identificando bug e enviando correções e códigos.
3. Visão do projeto
Veja com mais detalhes a descrição do problema a ser solucionado, seus impactos no meio social e o modo como é elaborado a proposta de solução que é a documentação para o desenvolvimento do sistema.
3.1 Identificação do Problema
Para identificar quais são os principais problemas que os alunos enfrentavam na hora de estudar para uma prova ou concurso, foram feitas várias algumas pesquisas e entrevistas com objetivo de entender e identificar as principais dificuldades enfrentadas. Os principais problemas encontrados são listados a seguir:
Tabela 1: Descrição do problema
Problema | Descrição |
Falta de estratégias de estudo e gestão do tempo | Em geral, os estudantes ao pleitearem um concurso público, começam a estudar e nunca termina, muitos desistem no meio do caminho, outros continuam estudando da maneira errada, sem estabelecer um foco, um objetivo bem detalhado, eles façam. |
Afeta | Aos próprios estudantes que não conseguem atingir seus objetivos. |
O seu impacto é | Social e econômico, de forma que as pessoas que desistem, optam por trabalhar no setor privado, recebendo um valor muito abaixo do desejado. |
Solução viável | Desenvolver uma ferramenta, a Started Bee, onde o usuário vai ter um controle maior dos estudos, poder estabelecer objetivos mais claros e eficientes, aplicar metas em tempo ágil. A plataforma estará disponível para acesso no navegador, e em outros dispositivos android e IOS. |
3.2 Sentença de Posição do Produto
Análise do quadro sobre a sentença final do Sistema Started Bee, e sua viabilidade.
Tabela 2: Sobre o produto final.
Situação | Descrição |
Para | O gerenciamento de objetivos e metas dos estudantes. |
Que | Usufrui de uma ferramenta para manter o foco no objetivo de ser aprovado em um determinado concurso público, gerenciando as metas e as tarefas. |
A Ferramenta Started Bee | Gestão de Objetivos e Metas com técnicas de Coaching em um Feed de notícias. |
Que Difere | Da maneira tradicional de estudos, e como as pessoas definem seus objetivos e metas para alcançar um objetivo de passar em concurso público |
Nosso Produto | Será disponibilizado para as plataformas Mobile, Android e IOS. Atendo as necessidades do usuário em mais de uma plataforma. Seus objetivos ao alcance de suas mãos, em qualquer lugar, bastar ter um smartphone. |
3.3 Modelo de Ciclo de Vida do Projeto
3.3.1 Apoio a Solução
Os estudantes, e concurseiros terão um controle maior dos estudos, poderão ter um acompanhamento do processo de um objetivo para ser aprovado em determinado concurso.
4. Elaboração da solução
O desenvolvimento de um sistema de gerenciamento de Objetivos e Metas – Started Bee, traz grandes mudanças em hábitos de estudos, em controle de Objetivos, e ajuda a implementar metas de forma que elas sejam eficientes de forma a obter a eficácia no decorrer do alcançar o objetivo.
4.1 Requisitos
Segundo (Engholm Jr, 2010) requisitos são como uma condição ou capacidade de um software que deve ser implementada por um sistema para alcançar um determinado fim. Os requisitos refletem a necessidade dos clientes quanto às funções que um sistema deverá ajudar a resolver algum problema. Gerenciar os requisitos é de suma importância, pois muitos projetos fracassam ou terminam pela falta de um gerenciamento de re quistos adequado.
Os requisitos são características funcionais e não funcionais.
4.1.1 Requisitos funcionais
São aqueles que definem o comportamento do sistema, retirados por meio dos casos de uso, que documentam as entradas, os processos e as saídas geradas. (Martins, 2010)
Os requisitos funcionais variam muito, pois depende do tipo de software a ser desenvolvido, podendo ser abrangentes e gerais como ser muito específico em determinadas etapas do processo. Outro ponto que define muito como esses requisitos vão ser explorados são seus possíveis usuários, podendo ser descritos como abstratos tanto como específicos. (Sommerville, 2011)
Os requisitos funcionais do sistema Start Bee são:
- Manter usuário
- Fazer login
- Recuperar senha
- Manter objetivo
- Manter meta
- Manter tarefa
- Manter feed coaching
- Exibir desempenho de objetivos
- Exibir desempenho de metas
- Exibir desempenho de tarefas
Tabela 3: Requisitos Funcionais
Requisito Funcional | Descrição |
RF-01 | Manter usuário |
Operação realizada pelo
usuário |
|
• Cadastrar usuário
• Alterar usuário • Consultar usuário • Excluir usuário |
RF-02 | Fazer Login |
Operação realizada pelo usuário | |
• Validar informações
• Consultar usuário |
|
RF-03 | Recuperar Senha |
Operação realizada pelo usuário | |
• Validar informações
• Enviar e-mail recuperação |
|
RF-04 | Manter Objetivo |
Operação realizada pelo usuário | |
• Cadastrar Objetivo
• Alterar Objetivo • Consultar Objetivo • Excluir Objetivo |
|
RF-05 | Manter Meta |
Operação realizada pelo usuário | |
• Cadastrar Meta
• Alterar Meta • Consultar Meta • Excluir Meta |
RF-06 | Manter Tarefa |
Operação realizada pelo usuário | |
• Cadastrar Tarefa
• Alterar Tarefa • Consultar Tarefa • Excluir Tarefa |
|
RF-07 | Manter Feed Coaching |
Operação realizada pelo usuário | |
• Cadastrar Feed
• Alterar Feed • Consultar Feed • Excluir Feed |
|
RF-08 | Exibir desempenho de objetivos |
Operação realizada pelo sistema | |
• Consultar objetivos
• Calcular QTD de objetivos • Calcular nível de desempenho |
|
RF-09 | Exibir desempenho de metas |
Operação realizada pelo sistema | |
• Consultar metas
• Calcular QTD de metas • Calcular nível de desempenho |
|
RF-10 | Exibir desempenho de tarefas |
Operação realizada pelo sistema | |
• Consultar tarefas
• Calcular QTD de tarefas • Calcular nível de desempenho |
4.1.2 Requisitos não funcionais
Os requisitos não funcionais geralmente são aplicados ao sistema como um todo, são compostos por características não necessariamente associadas ao comportamento (Martins, 2010)
A seguir serão demonstrados os requisitos não funcionais do sistema.
Tabela 4: Requisitos não funcionais
Funcionalidade | |||||
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-01 | Segurança | Autenticação segura | Usando os recursos avançados de autenticação do Firebase, garante-se a segurança do usuário | Alta | Alta |
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-02 | Interoperabilidade | O sistema funciona em mais de uma plataforma | Com os recursos do desenvolvimento hibrido, usando IONIC, garante-se o funcionamento do aplicativo na plataforma Android e IOS | Alta | Alta |
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-03 | Usabilidade | Aplicativo intuitivo/ Design UX | O sistema tem recursos de usabilidade para facilitar o aprendizado, assim o usuário não precisa de um treinamento | Alta | Alta |
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-04 | Confiabilidade | O sistema estará disponível 99% | A disponibilidade do sistema se deve ao usuário ter uma conexão com internet | Alta | Alta |
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-05 | Interoperabilidade | Acesso ao Firebase | O sistema deverá se comunicar com API do Firebase, Autentication, Storage, e outros… |
Alta | Alta |
ID | Categoria | Nome | Detalhe | Relevância | Complexidade |
RNF-06 | Portabilidade | Plataformas Android, Ios, Web | O sistema suporte as plataformas Androi, IOS, e Web | Alta | Alta |
4.2. Regras de negócio
Regras de negócio são declarações de ação que descrevem aspectos dinâmicos do negócio, sendo uma expressão de uma restrição ou de uma condição que controla as ações do sistema.
(Wiegers & Beatty, 2013)
Tabela 5: Regras de negócio
Regra de Negócio | |
ID | Descrição |
RN-01 | Para acessar as funcionalidades do sistema, é necessário que o usuário esteja autenticado |
RN-02 | Para criar uma meta, é necessário ter atribuído um objetivo antes para que haja associação |
RN-03 | Para criar uma tarefa, é necessário ter atribuído uma meta antes para que haja associação |
Todos os sistemas precisam cumprir as regras de negócio, de acordo com o que o cliente definir. A maioria das regras de negócio vem diretamente do cliente e da sua necessidade para o determinado sistema, ou seja, cada sistema possui sua particularidade. As regras precisam ser identificadas, documentadas e associadas aos requisitos do sistema em questão. (Wiegers & Beatty, 2013)
Regras de negócio são provenientes do domínio da aplicação de sistema e refletem propriedade e restrições do mesmo. São derivados do negócio que o sistema se apoia e podem restringir requisitos funcionais ou até mesmo estabelecer como cálculos específicos devem ser realizados. (Sommerville, 2011)
4.3 Regras de qualidade
Quando um produto está em desenvolvimento, o objetivo da especificação das características de qualidade é assegurar que o produto atenda às necessidades explícitas e implícitas do usuário. (Koscianski & dos Santos Soares, 2007)
Essas categorias utilizadas, contém requisitos gerais e específicos para avaliação de qualidade de software e fornece uma estrutura para analisar a qualidade dos produtos de software e determina os parâmetros necessários para essa medição avaliação de produtos de software.
(Koscianski & dos Santos Soares, 2007)
No quadro a seguir estão descritos os itens de qualidade.
Tabela 6: Características de qualidade
Funcionalidade | |
Precisão | Os cálculos de objetivos concluídos, e iniciados, e o desempenho de objetivos, também validos para metas, tarefas, segue critérios de matemática, para garantir valores mais próximo possível do real. |
Interoperabilidade | Conexão com internet, e acesso a um smartphone com Android 4.1 até o 8.1, ou IOS 9 até o 11. Navegador da Internet (Firefox, ou Chrome). |
Padronização | Padrão MVC |
Segurança | Autenticação do usuário |
Confiabilidade | |
Maturidade | Poucas falhas |
Tolerância a falhas | Buscar debugar o sistema, e corrigir a falha, liberando ao usuário, dependendo da falha no mínimo 24h. |
Recuperação de falhas | Recuperar o acesso do usuário ao sistema e suas funcionalidades |
Usabilidade | |
Facilidade de entendimento | Sistema desenvolvido usando UX, e UI, obedecendo os critérios de facilidade na usabilidade do usuário, e design moderno. |
Facilidade de aprendizagem | No primeiro acesso já fica claro como deve usar o aplicativo, não havendo a necessidade de tutorial prolongando, ou treinamento pós instalação. |
Operabilidade | Uso de Smatrphone Android ou Iphone |
4.4 Casos de uso
Muito utilizado por ser uma linguagem de fácil compreensão, é uma funcionalidade ou serviço que serve para documentar os comportamentos que são esperados pelo sistema, ou seja, é mostrado para o usuário para que ele compreenda como o sistema irá se comportar e qual a função e perfil de cada ator descrito. (Miletto & de Castro Bertagnolli, 2014)
Segundo (Wazlawick, 2010) um caso de uso é uma transação completa, onde o usuário pode ativar o sistema, executar o caso de uso e desativar o sistema logo em seguida, e a operação estaria completa e consistente.
4.4.1 Atores
Ator | Descrição |
Usuário/Coach | Usuário estudante, concurseiros, a pessoa interessada em uma mudança, em ter controle dos objetivos e metas, aquele que quer obter a aprovação em um concurso público. Pode dar dicas de estudos para demais usuários do sistema. |
Sistema | Vai fazer com que seja executadas tarefas que visam analisar os dados existente e mostrar para o usuário em forma de dados de análise e desempenho. |
4.4.2 Prioridades
No quadro a seguir estão descritas as prioridades do sistema:
Caso de Uso | Prioridade | Risco |
UC-01: Manter Usuário | Alta | Alta |
UC -02: Fazer Login | Alta | Alta |
UC -03: Recuperar Senha | Alta | Alta |
UC-04: Manter Objetivos | Alta | Alta |
UC-05: Manter Metas | Média | Média |
UC-06: Manter Feed Coa-
ching |
Média | Média |
UC-07: Exibir desempenho de Objetivos | Alta | Alta |
UC-08: Exibir desempenho de Metas | Alta | Alta |
UC-09: Exibir desempenho de Tarefas | Alta | Alta |
UC-10: Manter Tarefas | Média | Média |
4.4.3 Caso de Uso (UC-01): Manter Usuário
Tabela 7: Caso de Uso (UC-01): Manter Usuário
Descrição | Todo usuário precisa ter um cadastro no sistema, o manter usuário, é o caso de uso a qual fará o inserir, editar, pesquisar e excluir (CRUD) o usuário. | ||
Objetivo | Cadastrar o usuário na base de dados do aplicativo. | ||
Ator | Usuário (Coach) | ||
Pré-condições | Acessar o aplicativo, e está na tela de apresentação. | ||
Pós-condições | Acesso as funcionalidades do sistema |
Fluxo principal | |||
A01- Cadastrar Usuário | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão cadastrar
usuário |
P02 | Dar um push para a tela de cadastro do usuário |
P03 | Informar o nome | P04 | Receber o nome de usuário e validar se tem mais de 3 caracteres |
P05 | Informar o username | P06 | Receber o username e verificar se já existe um username repetido na Base de Dados |
P07 | Informar e-mail | P8 | Receber o e-mail e verificar duplicidade na
Base de Dados, verificar se é um e-mail válido |
P09 | Informar senha | P10 | Receber a senha e validar, senhas válidas acima de 6 caracteres |
P011 | Clicar em Cadastrar | P12 | Inserir os dados na Base de Dados, exibe [MSG-01] e redirecionar o usuário para a aplicação |
Fluxo alternativo | |||
A02 – Alterar usuário | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no menu lateral | P02 | Exibe o menu lateral para o usuário com as opções de navegação |
P03 | Escolha Meu Perfil | P04 | Exibi os campos para edição de dados do usuário, foto nome, sobrenome, data de nascimento, sexo, etc.. |
P05 | Clicar em salvar alterações | P06 | O sistema altera as informações na Base de Dados, exibe [MSG-02] e redireciona o usuário para o meu perfil. |
A03 – Excluir usuário | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no menu lateral | P02 | Exibe o menu lateral para o usuário com as opções de navegação |
P03 | Escolha Meu Perfil | P04 | Exibi os campos para edição de dados do usuário, foto nome, sobrenome, data de nascimento, sexo, etc.. |
P05 | Clicar no Botão excluir Perfil | P06 | Exibir mensagem de advertência se deseja mesmo excluir seu usuário [MSG-03]. |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
E01 – Excluir usuário | |||
Caso o usuário decida desistir de excluir a conta de perfil de usuário, o sistema redireciona para a página inicial. | |||
Restrições e validações | |||
O usuário não é obrigado a se cadastrar no sistema, pode desistir no meio do processo. |
Regras de Negócio específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário não pode ter cadastro no sistema |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Usuário cadastrado com sucesso |
MSG-02 | Dados alterado com sucesso |
MSG-02 | Deseja realmente excluir sua conta de usuário? |
MSG-02 | Nome de usuário pequeno |
MSG-02 | E-mail já cadastrado |
MSG-02 | Senha pequena |
4.4.4 Caso de uso (UC-02): Fazer Login
Tabela 8: Caso de uso (UC-02): Fazer Login
Descrição | Todo usuário precisa fazer o login para acessar as funcionalidades do sistema, fazer login, consulta se o usuário tem cadastro válido e libera o acesso ao mesmo. | ||
Objetivo | Verificar se e-mail e senha são validos para permitir acesso ao sistema. | ||
Ator | Usuário (Coach) | ||
Pré-condições | • Ter cadastro de usuário válido no aplicativo (UC-01, A01).
• Está na tela de introdução |
||
Pós-condições | Acesso as funcionalidades do sistema | ||
Fluxo principal | |||
A01- Fazer login | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão fazer login | P02 | Dar um push para a tela de login de usuário |
P03 | Informar o e-mail de usuário | P04 | Receber o e-mail de usuário, validar. |
P05 | Informar a senha | P06 | Receber a senha e validar |
P07 | Clicar no Botão fazer login | P8 | Validar os dados no Banco de Dados, e permitir o acesso da aplicação e exibe [MSG-01]. |
Fluxo alternativo | |||
A02 – Cadastrar Usuário | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no link para cadastrar usuário | P02 | Dar um push para a tela de cadastro de usuário (UC-01, A01). |
A03 – Recuperar senha | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no link recuperar senha | P02 | Dar um push para a tela de recuperar senha de usuário (UC-03, A01). |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
Restrições e validações | |||
O usuário pode recuperar a senha caso tenha esquecido. |
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter cadastro no sistema com e-mail válido e acessível |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Aguarde um momento, estamos trabalhando… |
4.4.5 Caso de uso (UC-03): Recuperar senha
Tabela 9: Caso de uso (UC-03): Recuperar senha
Descrição | Quando o usuário esquecer o acesso, ele pode solicitar ao sistema a recuperação da senha. | |||
Objetivo | Recuperar o acesso ao sistema | |||
Ator | Usuário (Coach) | |||
Pré-condições | • Ter cadastro de usuário válido no aplicativo (UC-01, A01).
• Está em uma tela com o link para recuperar senha |
|||
Pós-condições | Voltar a acessar as funcionalidades do sistema | |||
Fluxo principal | ||||
A01- Recuperar senha | ||||
Ações do Ator | Ações do Sistema | |||
P01 | Clicar no link | P02 | Dar um push para a tela de login de usuário | |
P03 | Informar o e-mail de usuário | P04 | Receber o e-mail de usuário, validar. | |
P05 | Clicar em recuperar senha | P06 | Recebe requisição, e enviar mensagem de recuperar senha para e- cadastrado no sistema | |
P07 | Clicar no link no corpo de email para recupera senha | P8 | Inserir nova senha para acesso no sistema. | |
Fluxo alternativo | ||||
A02 – Lembrei a senha | ||||
Ações do Ator | Ações do Sistema | |||
P01 | Clicar em lembrei da senha | P02 | Dar um push para a tela de cadastro de
usuário(UC-01, A01) |
|
Fluxo exceção | ||||
Ações do Ator | Ações do Sistema | |||
Restrições e validações | ||||
Exibe [MSG-02] caso o e-mail inserido seja in-
válido. |
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter cadastro no sistema com e-mail válido e acessível |
RNF-02 | O usuário precisa ter esquecido a senha |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | E-mail inválido |
MSG-02 | Mensagem de recuperação enviada para seu e-mail |
4.4.6 Caso de uso (UC-04): Manter objetivo
Tabela 10: Caso de uso (UC-04): Manter objetivo
Descrição | O usuário pode manter objetivo, a qual fará o inserir, editar, pesquisar e excluir (CRUD) o objetivo. | ||
Objetivo | Fazer o CRUD de objetivo na base de dados. | ||
Ator | Usuário (Coach) | ||
Pré-condições | Ter executado o UC-01. | ||
Pós-condições | Gerenciar objetivos | ||
Fluxo principal | |||
A01- Objetivos | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão de objetivo em Tabs | P02 | Dar um push para a tela de objetivos |
Fluxo alternativo | |||
A02 – Cadastrar objetivo | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão flutuante com sinal de + | P02 | Dar um push para a tela de cadastro de objetivos |
P03 | Informar nome | P04 | Receber o nome do objetivo |
P05 | Informar descrição | P06 | Receber a descrição do objetivo |
P07 | Informar data de Inicio | P08 | Receber a data de inicio |
P09 | Informar a data de termino do
objetivo |
P10 | Receber a data de termino do objetivo |
P11 | Inserir uma imagem para representar o objetivo | P12 | Receber a imagem do objetivo |
P13 | Clicar em cadastrar objetivo | P14 | Armazenar informações na Base de dados, exibe [MSG-01] |
A02 – Alterar objetivo | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no objetivo | P02 | Dar um push para a tela de objetivo especifico selecionado |
P03 | Clicar em cima do objetivo | P04 | Exibi um Action Sheets com a opção de editar
objetivo. |
P05 | Clicar em Editar objetivo | P06 | O sistema dar um push para a tela de editar ob-
jetivo especifico. |
P07 | Escolha o campo que deseja
editar |
P08 | O sistema válida a entrada |
P09 | Clique em salvar | P10 | O sistema exibe [MSG-02], insere a informação inserida na base de dados. |
A03 – Excluir objetivo | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no objetivo | P02 | Dar um push para a tela de objetivo especifico selecionado |
P03 | Clicar em cima do objetivo | P04 | Exibi um Action Sheets com a opção de excluir
objetivo. |
P05 | Clicar em Excluir objetivo | P06 | Exibi [MSG-03]. |
A04 – Pesquisar Objetivo | |||
Ações do Ator | Ações do Sistema | ||
P01 | Inserir informação na barra de pesquisa | P02 | O sistema recebe o valor digitado |
P03 | Clicar em pesquisar, na lupa | P04 | O sistema verifica se existe a informação na base de dados, e exibe o resultado para o usuá-
rio |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
Restrições e validações | |||
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter criado um objetivo para poder excluir |
RNF-02 | O usuário precisa ter criado um objetivo para poder editar |
RNF-03 | Não é possível pesquisar um objetivo que já foi excluído |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Objetivo cadastrado com sucesso |
MSG-02 | Objetivo alterado com sucesso |
MSG-03 | Objetivo excluído com sucesso |
4.4.7 Caso de uso (UC-05): Manter meta
Tabela 11: Caso de uso (UC-05): Manter meta
Descrição | O usuário pode manter meta, a qual fará o inserir, editar, pesquisar e excluir (CRUD) o meta. | ||
Objetivo | Fazer o CRUD de meta na base de dados. | ||
Ator | Usuário (Coach) | ||
Pré-condições | Ter executado o UC-01, e UC-04 | ||
Pós-condições | Gerenciar as metas | ||
Fluxo principal | |||
A01- Metas | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão de metas em
Tabs |
P02 | Dar um push para a tela de metas |
Fluxo alternativo | |||
A02 – Cadastrar meta | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão flutuante com sinal de + | P02 | Dar um push para a tela de cadastro de metas |
P03 | Seleciona um objetivo para ser associada | P04 | Exibe uma lista de objetivos, e seta associação do objetivo a meta. Que a meta a ser criada pertence ao objetivo selecionado |
P05 | Informar nome | P06 | Receber o nome da meta |
P07 | Informar descrição | P08 | Receber a descrição da meta |
P09 | Informar data de Inicio | P10 | Receber a data de inicio |
P11 | Informar a data de termino da meta | P12 | Receber a data de termino da meta |
P13 | Inserir uma imagem para representar a meta | P14 | Receber a imagem da meta |
P15 | Clicar em cadastrar meta | P16 | Armazenar informações na Base de dados, exibe [MSG-01] |
A02 – Alterar meta | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar na meta que deseja al-
terar |
P02 | Dar um push para a tela da meta selecionada |
P03 | Clicar em cima da meta | P04 | Exibi um Action Sheets com a opção de editar meta. |
P05 | Clicar em Editar meta | P06 | O sistema dar um push para a tela de editar
meta. |
P07 | Escolha o campo que deseja
editar |
P08 | O sistema válida a entrada |
P09 | Clique em salvar | P10 | O sistema exibe [MSG-02], insere a informação inserida na base de dados. |
A03 – Excluir meta | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar na meta | P02 | Dar um push para a tela de meta especifica selecionada |
P03 | Clicar em cima de meta | P04 | Exibi um Action Sheets com a opção de excluir meta. |
P05 | Clicar em Excluir meta | P06 | Exibi [MSG-03]. |
A04 – Pesquisar Meta | |||
Ações do Ator | Ações do Sistema | ||
P01 | Inserir informação na barra de pesquisa | P02 | O sistema recebe o valor digitado |
P03 | Clicar em pesquisar, na lupa | P04 | O sistema verifica se existe a informação na base de dados, e exibe o resultado para o usuário |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
Restrições e validações | |||
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter criado uma mata para poder excluir |
RNF-02 | O usuário precisa ter criado uma meta para poder editar |
RNF-03 | Não é possível pesquisar uma meta que já foi excluída |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Meta cadastrado com sucesso |
MSG-02 | Meta alterado com sucesso |
MSG-03 | Meta excluído com sucesso |
4.4.8 Caso de uso (UC-06): Manter tarefa
Tabela 12: Caso de uso (UC-06): Manter tarefa
Descrição | O usuário pode manter tarefa, a qual fará o inserir, editar, pesquisar e excluir (CRUD) a tarefa. | ||
Objetivo | Fazer o CRUD de tarefa na base de dados. | ||
Ator | Usuário (Coach) | ||
Pré-condições | Ter executado o UC-01, e UC-04, e UC-05 | ||
Pós-condições | Gerenciar as tarefas | ||
Fluxo principal | |||
A01- Metas | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão de tarefas em
Tabs |
P02 | Dar um push para a tela de tarefas |
Fluxo alternativo | |||
A02 – Cadastrar tarefa | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão flutuante com sinal de + | P02 | Dar um push para a tela de cadastro de tarefas |
P03 | Seleciona uma tarefa para ser associada | P04 | Exibe uma lista de metas, e seta associação da tarefa a meta selecionada. Que a tarefa a ser criada pertence ao meta selecionado |
P05 | Informar nome | P06 | Receber o nome da tarefa |
P07 | Informar descrição | P08 | Receber a descrição da tarefa |
P09 | Informar data de Início | P10 | Receber a data de início |
P11 | Informar a data de termino da
tarefa |
P12 | Receber a data de termino da tarefa |
P13 | Inserir uma imagem para representar a tarefa | P14 | Receber a imagem da tarefa |
P15 | Clicar em cadastrar tarefa | P16 | Armazenar informações na Base de dados, exibe [MSG-01] |
A02 – Alterar tarefa | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar na tarefa que deseja alterar | P02 | Dar um push para a tela da meta selecionada |
P03 | Clicar em cima da tarefa | P04 | Exibi um Action Sheets com a opção de editar
tarefa. |
P05 | Clicar em Editar tarefa | P06 | O sistema dar um push para a tela de editar ta-
refa. |
P07 | Escolha o campo que deseja
editar |
P08 | O sistema válida a entrada |
P09 | Clique em salvar | P10 | O sistema exibe [MSG-02], insere a informação inserida na base de dados. |
A03 – Excluir tarefa | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar na tarefa | P02 | Dar um push para a tela de tarefa específica selecionada |
P03 | Clicar em cima de tarefa | P04 | Exibi um Action Sheets com a opção de excluir
tarefa. |
P05 | Clicar em Excluir tarefa | P06 | Exibi [MSG-03]. |
A04 – Pesquisar Tarefa | |||
Ações do Ator | Ações do Sistema | ||
P01 | Inserir informação na barra de pesquisa | P02 | O sistema recebe o valor digitado |
P03 | Clicar em pesquisar, na lupa | P04 | O sistema verifica se existe a informação na base de dados, e exibe o resultado para o usuário |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
Restrições e validações | |||
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter criado uma tarefa para poder excluir |
RNF-02 | O usuário precisa ter criado uma tarefa para poder editar |
RNF-03 | Não é possível pesquisar uma tarefa que já foi excluída |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Tarefa cadastrado com sucesso |
MSG-02 | Tarefa alterado com sucesso |
MSG-03 | Tarefa excluído com sucesso |
4.4.9 Caso de uso (UC-07): Manter feed coaching
Tabela 13: Caso de uso (UC-07): Manter feed coaching
Descrição | O usuário pode manter uma dica de concurso no feed coaching, a qual fará o inserir, editar, pesquisar e excluir (CRUD) o objetivo.. | ||
Objetivo | Fazer o CRUD de feed na base de dados. | ||
Ator | Usuário (Coach) | ||
Pré-condições | Ter executado o UC-01. | ||
Pós-condições | Gerenciar objetivos | ||
Fluxo principal | |||
A01- Metas | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão de coaching em Tabs | P02 | Dar um push para a tela de feed coaching |
Fluxo alternativo | |||
A02 – Cadastrar feed | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no botão flutuante com sinal de + | P02 | Dar um pushpara a tela de cadastro de feed coaching |
P03 | Informar nome | P04 | Receber o nome do feed |
P05 | Informar descrição | P06 | Receber a descrição do feed |
P07 | Clicar em cadastrar Dica | P08 | Armazenar informações na Base de dados, exibe [MSG-01] |
A02 – Alterar feed | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar no feed coaching | P02 | Dar um push para a tela de feed específico selecionado |
P03 | Clicar em cima do feed | P04 | Exibi um Action Sheets com a opção de editar
feed. |
P05 | Clicar em Editar feed | P06 | O sistema dar um push para a tela de editar feed
específico. |
P07 | Escolha o campo que deseja
editar |
P08 | O sistema válida a entrada |
P09 | Clique em salvar | P10 | O sistema exibe [MSG-02], insere a informação inserida na base de dados. |
A03 – Excluir feed | |||
Ações do Ator | Ações do Sistema | ||
P01 | Clicar na feed | P02 | Dar um push para a tela de feed específico selecionado |
P03 | Clicar em cima do feed | P04 | Exibi um Action Sheets com a opção de excluir
feed. |
P05 | Clicar em Excluir feed | P06 | Exibir [MSG-03]. |
A04 – Pesquisar Tarefa | |||
Ações do Ator | Ações do Sistema | ||
P01 | Inserir informação na barra de pesquisa | P02 | O sistema recebe o valor digitado |
P03 | Clicar em pesquisar, na lupa | P04 | O sistema verifica se existe a informação na base de dados, e exibe o resultado para o usuário |
Fluxo exceção | |||
Ações do Ator | Ações do Sistema | ||
Restrições e validações | |||
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter criado um feed para poder excluir |
RNF-02 | O usuário precisa ter criado um feed para poder editar |
Mensagens.
Mensagens | |
ID | Descrição |
MSG-01 | Feed cadastrado com sucesso |
MSG-02 | Feed alterado com sucesso |
MSG-03 | Feed excluído com sucesso |
4.4.10 Caso de uso (UC-08): Desempenho de objetivo
Tabela 14: Caso de uso (UC-08): Desempenho de objetivo
Descrição | O usuário pode visualizar o desempenho dos objetivos, ver quantos foram concluídos, estão em andamento, porcentagem e desempenho. | |||
Objetivo | Que o sistema mostre quantidade de objetivos concluídos, em andamento, e o desempenho. | |||
Ator | Sistema | |||
Pré-condições | Ter executado o UC-04 | |||
Pós-condições | O usuário deverá buscar melhorias no gerenciamento e cumprimento dos objetivos. | |||
Fluxo principal | ||||
Desempenho de objetivos | ||||
Ações do Ator | Ações do Sistema | |||
P01 | Verificar a existência de objetivos | |||
P02 | Calcular quantidade de objetivos concluídos ( ). | |||
P03 | Calcular a quantidade de objetivos em andamento (status == false). | |||
P04 | Calcular o desempenho. (qtdObjC – qtdObjA)/100 | |||
Fluxo exceção | ||||
Ações do Ator | Ações do Sistema | |||
E01 | Caso o usuário não tenha nenhum objetivo, devera exibir o valor zerado nos campos de objetivos concluído, em andamento, e desempenho há definir. | |||
Restrições e validações | ||||
Os status do objetivo precisa ser definido para que seja possível o cálculo de desempenho. |
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter cadastrado no mínimo um objetivo para definir as propriedades de desempenho. |
4.4.11 Caso de uso (UC-09): Desempenho de Metas
Tabela 15: Caso de uso (UC-09): Desempenho de Metas
Descrição | O usuário pode visualizar o desempenho das metas, ver quantas foram concluídas, estão em andamento, porcentagem e desempenho. | |||
Objetivo | Que o sistema mostre quantidade de metas concluídas, em andamento, e o desempenho. | |||
Ator | Sistema | |||
Pré-condições | Ter executado o UC-05 | |||
Pós-condições | O usuário deverá buscar melhorias no gerenciamento e cumprimento das metas. | |||
Fluxo principal | ||||
Desempenho de objetivos | ||||
Ações do Ator | Ações do Sistema | |||
P01 | Verificar a existência de metas | |||
P02 | Calcular quantidade de metas concluídos (status==true). | |||
P03 | Calcular a quantidade de metas em andamento (status == false). | |||
P04 | Calcular o desempenho. (qtdMC – qtdMA)/100 | |||
Fluxo exceção | ||||
Ações do Ator | Ações do Sistema | |||
E01 | Caso o usuário não tenha nenhuma meta, devera exibir o valor zerado nos campos de objetivos concluído, em andamento, e desempenho
há definir. |
|||
Restrições e validações | ||||
Os status da meta precisa ser definido para que seja possível o cálculo de desempenho. |
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter cadastrado no mínimo uma meta para definir as propriedades de desempenho. |
4.4.12 Caso de uso (UC-10): Desempenho de tarefa
Tabela 16: Caso de uso (UC-10): Desempenho de tarefa
Descrição | O usuário pode visualizar o desempenho das tarefas, ver quantas foram concluídas, estão em andamento, porcentagem e desempenho. | |||
Objetivo | Que o sistema mostre quantidade de tarefas concluídas, em andamento, e o desempenho. | |||
Ator | Sistema | |||
Pré-condições | Ter executado o UC-05 | |||
Pós-condições | O usuário deverá buscar melhorias no gerenciamento e cumprimento das metas. | |||
Fluxo principal | ||||
Desempenho de tarefas | ||||
Ações do Ator | Ações do Sistema | |||
P01 | Verificar a existência de tarefas | |||
P02 | Calcular quantidade de tarefas concluídos (status==true). | |||
P03 | Calcular a quantidade de tarefas em andamento (status == false). | |||
P04 | Calcular o desempenho. (qtdTC – qtdTA)/100 | |||
Fluxo exceção | ||||
Ações do Ator | Ações do Sistema | |||
E01 | Caso o usuário não tenha nenhuma tarefa, devera exibir o valor zerado nos campos de objetivos concluído, em andamento, e desempenho há definir. | |||
Restrições e validações | ||||
Os status da tarefa precisa ser definido para que seja possível o cálculo de desempenho. |
Regras de Negócio Específicas.
Regra de Negócio | |
ID | Descrição |
RNF-01 | O usuário precisa ter cadastrado no mínimo uma meta para definir as propriedades de desempenho. |
4.5 Diagrama de classe
É um dos mais importantes diagramas utilizados da UML. Seu principal enfoque é permitir a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos, bem como demonstrar como as classes se relacionam entre si. O diagrama de classes apresenta uma visão estática de como as classes estão organizadas, procurando definir sua estrutura lógica. (Guedes, 2014)
4.6 Diagrama de atividades
4.7 Design
É uma forma de transmitir uma ideia, um projeto, através de processos de interação e elementos e princípios. O design interpreta a implementação, compreendendo e analisando as interações que ocorrem dentro do sistema, os impactos que possíveis mudanças podem causar. (Silveira et al., 2011)
4.7.1 Design UX
A sigla UX significa experiência do usuário (User Experience), descreve a experiência de quem usa. Ele mostra o lado de quem realmente precisa do produto, a experiência que teve ao utiliza-lo. Nas aplicações não é diferente, se determinado usuário conseguiu realizar determinada tarefa com êxito sua experiência foi boa, mas se deu algum erro, se não conseguiu achar o que precisa ou carrega lento demais a experiência desse usuário foi ruim.
Essas experiências são muito subjetivas, pois não depende só do sistema que o usuário utiliza mais dele também, pois é influenciado pelas suas habilidades, como utilizar um caixa eletrônico, algumas pessoas são rápidas e conseguem achar tudo muito mais rápido que outras. Outro fator que influencia são os fatores externos, como o horário e dia que irá utilizar o caixa eletrônico, a fila de espera, a falta de dinheiro no determinado caixa, etc. Embora sejam subjetivas, alguém projetou, pensou e desenhou como seria essa interface digital e sua interação com o homem.(Teixeira, 2014)
4.7.2 Design UI
Significa Design de interface de usuário, é a parte onde o usuário controla o software. Podendo ter botões, menus e qualquer meio que tenha uma interação entre o dispositivo e o usuário. Um projeto bem elaborado planeja com antecedência as necessidades do usuário para garantir que a interface contenha os elementos de fácil utilização e acesso. UI se trata muito mais das cores e design que são utilizados, mas como ele funciona e sua interação. (Matiola, 2017)
4.8 Modelo entidade relacionamento
É uma ferramenta gráfica utilizada para projetar e auxiliar na implementação de banco de dados cuja a finalidade é identificar as entidades e seus relacionamentos, que tem como objetivo facilitar o projeto de banco de dados, possibilitando especificar a estrutura lógica geral do banco de dados. (Heuser, 2009)
5. Aplicativo StartedBee
O presente capítulo apresenta a interface do sistema e suas principais funcionalidades. Na tela inicial é feita uma breve apresentação sobre a aplicação.
5.1 TELAS DO SISTEMA
CONSIDERAÇÕES FINAIS
Diante da dificuldade observada nos alunos e estudantes em ter mais disciplina e conseguir maior produtividade dos estudos, com o sistema Start Bee é possível organizar prioridade de estudo, e realizar uma reeducação e mudanças comportamentais com foco nas conquistas de resultados e avaliar os resultados obtidos a partir da utilização do sistema.
A decisão de se adotar o framework Ionic como base para o desenvolvimento, uma vez que a grande vantagem do Ionic é que seu desenvolvimento foi pensado em utilizar os recursos mais novos do CSS, HTML e Javascript com o objetivo de prover para o desenvolvedor uma gama de componentes pré-prontos de alta qualidade e desempenho. A equipe por trás da ferramenta está trabalhando, lançando correções e melhorias continuamente e ouvindo bastante usuários finais. Espera-se também um projeto para contribuir pois o desenvolvimento é bastante simples e a comunidade é bastante receptiva.
Há que se considerar que o protótipo desenvolvido neste projeto está em versão de teste, sendo necessária, como qualquer sistema, a implantação de testes para o seu amadurecimento e correções. Há melhorias que deverão ser implementadas para que o sistema alcance o status de produto, mais conceitual e funcional, os principais requisitos foram identificados, analisados e prototipados. O desenvolvimento do projeto continuará a ser realizado com vistas a tornar o sistema um produto para a implantação comercial, mas antes exige melhorias futuras a serem feitas, como por exemplo, pretende-se agregar mais funcionalidades, uma delas seria a cobrança de serviços prestados pelo coach.
REFERÊNCIAS BIBLIOGRÁFICAS
Barros, Thiago. 2017. O que é ftp. http://www.techtudo.com.br/artigos/ noticia/2012/07/o-que-ftp-e-como-usar.html.
Berenguel, André Luiz Amorim, Queiros, Leonardo Ribeiro, Souza, Marcia Izabel Fugisawa, & Alves, Maria das Dores Rosa. 2008. Arquitetura aaa em sistemas web baseados em rest. Global science and technology, 1(1).
Brandão, F, & Ribeiro, JA. 2007. Estudo do xml, gml, svg e webservices (wms e wfs) para formatação e divulgação de informações geográficas. Xiii simpósio brasileiro de sensoriamento remoto, florianópolis, 5622–5617.
Brito, Ricardo. 2017. Bancos de dados nosql x sgbds relacionais: Análise comparativa. http://infobrasil.inf.br/userfiles/27-05-S4-168840-Banco% 20de%20Dados%20NoSQL.pdf.
Caetano, Artur, Silva, António Rito, & Tribolet, José. 2009. A role-based enterprise architecture framework. Pages 253–258 of: Proceedings of the 2009 acm symposium on applied computing. ACM.
Ciriaco, Douglas. 2017. O que é api? www.tecmundo.com.br/programacao/ 1807-o-que-e-api-.htm>.
Cloud Google. Serviços de back-end de aplicativos para dispositivos móveis. Disponível em: <https://cloud.google.com/solutions/mobile/mobile-app-backend-services?hl=pt-br>. Acesso em: 10 nov. 2017.
Dall’Oglio, Pablo. 2015. Php programando com orientação a objetos 3a edição. Novatec Editora.
Delavy, Eduarda. 2017. O que é uma hospedagem de site. https://www.hostgator. com.br/blog/o-que-e-uma-hospedagem-de-site.
Diniz, Ronaldo. 2017. O que é sass e quais suas vantagens para edição de css. http://www.ronaldodiniz.com.br/design/css-sass-vantagens.html.
Eis, Diego, & Ferreira, Elcio. 2012. Html5 e css3 com farinha e pimenta. Lulu. com.
Engholm Jr, Hélio. 2010. Engenharia de software na prática. Novatec Editora.
Eulalio, Athos Denis, Cordeiro, Diego, & de Souza, Rodrigo. 2017. Web services: Integração de sistemas orientado a serviços com uma proposta de aplicação na ead. Revista de informática aplicada, 12(2).
Feitosa, Marcio Porto. 2008. Fundamentos de banco de dados.
Fernandes, Clara Aben-Athar B, & Araújo, Carlos Alberto Pedroso. 2014. Estudo comparativo entre tecnologias java: Applet e jws. Urissanê, 1(2).
Ferreira, Willian Ottoni, & de Oliveira Knop, Igor. 2017. Estruturação de aplicações distribuídas com a arquitetura rest. Caderno de estudos em sistemas de informação, 3(1).
Firebase.2017. Firebase relatime database. http://www.cs.sandia.gov/~dmdunla/publication/WyDuDaBa12.pdf.
Flanagan, David. 2007. Javascript: O guia definitivo. Bookman Editora.
Fonseca, Rúben, & Simoes, Alberto. 2007. Alternativas ao xml: Yaml e json.
Freeman, Adam. 2014. Pro angularjs. Apress.
FURTADO, Gustavo. O que é um SGBD. Disponível em: <http://www.dicasdeprogramacao.com.br/o-que-e-um-sgbd/>. Acesso em: 30 maio 2017.
Gois, Adrian. 2017. Ionic framework construa aplicativos para todas as plataformas mobile.
Gonzaga, Flávio S, & Birckan, Guilherme. 2000. Curso de php e mysql. Florianópolis, outubro.
GOTARDO, REGINALDO APARECIDO. 2015. Linguagem de programação. 17.
Guedes, Gilleanes TA. 2014. Uml 2–guia prático-2a edição. Novatec Editora.
Heuser, Carlos Alberto. 2009. Projeto de banco de dados: Volume 4 da série livros didáticos informática ufrgs. Bookman Editora.
Kazman. 2003. Software architecture in practice. Boston, massachusetts addison.
Koscianski, André, & dos Santos Soares, Michel. 2007. Qualidade de software-2a edição: Aprenda as metodologias e técnicas mais modernas para o desenvolvimento de software. Novatec Editora.
Leite, Mario. 2006. Técnicas de programação-uma abordagem moderna. Brasport.
Lopes, Sergio. 2016. Aplicações mobile híbridas com cordova e phonegap.
Luiz, Rogerio da Costa Dantas. 2014. Plone 4: Administrando servidores 4.x na prática.
Martins, José Carlos Cordeiro. 2010. Gerenciando projetos de desenvolvimento de software com pmi, rup e uml. Brasport.
Matiola, Willian. 2017. O que é ui design e ux design. http://designculture.com.br/o-que-e-ui-design-e-ux-design/.
Mendes, Douglas Rocha. 2009. Programação java com ênfase em orientação a objetos. Novatec Editora.
Merije, Wagner. 2012. Mobimento: educação e comunicação mobile. Editora Peirópolis LTDA. Milani, André. 2008. Postgresql-guia do programador. Novatec Editora.
Miletto, Evandro Manara, & de Castro Bertagnolli, Silvia. 2014. Desenvolvimento de software ii: Introdução ao desenvolvimento web com html, css, javascript e php-eixo: Informação e comunicação-série tekne. Bookman Editora.
Minetto, Elton Luís. 2007. Frameworks para desenvolvimento em php. São paulo: Novatec.
Moraes, William Bruno. 2015. Construindo aplicações com nodejs.
Morgenstern, Marcos Sulzbach, Machado Filho, Lori Ronaldo Flores, De Medeiros, Roger Casagrande, Minelli, Leonardo, & Maran, Vinicius. 2016. Uma análise de desempenho utilizando o banco de dados mariadb. Salão do conhecimento, 2(2).
Niederauer, Juliano. 2005. Integrando php 5 com mysql. São paulo. novatec editora ltda.
Oliveira, Everton. 2017. Versionamento com git.
Pereira, Michael Henrique R. 2014. Angularjs: Uma abordagem prática e objetiva. Novatec Editora.
PETKOVSKI, Filip. Apache Cordova Capabilities. Disponível em: <https://www.toptal.com/mobile/developing-mobile-applications-with-apache-cordova>. Acesso em: 02 out. 2017.
Pichiliani, Mauro Carlos. 2012. Conversando sobre banco de dados.
PHONEGAP. Take the pain out of developing mobile apps. Disponível em: <https://build.phonegap.com/>. Acesso em: 02 out. 2017.
Pressman, Roger S. 2011. Engenharia de software: uma abordagem profissional. 7a edição. Ed: Mcgraw hill.
RIES, Eric. 2012. A startup enxuta: como os empreendedores atuais utilizam a inovação contínua para criar empresas extremamente bem-sucedidas.
Salgado, Lia. 2014. Por que os candidatos desistem de concursos antes da aprovação? G1 notícias, 1.
Scripcase. 2017. O que é versionamento. http://www.scriptcaseblog.com.br/o-que-e-versionamento.
SERSON, Roberto Rubistein. 2007. Programação orientada a objetos com java 6. Rio de janeiro: Brasport.
Silva, Maurício Samy Jquery. 2008. a biblioteca do programador javascript. Maurício samy silva.–são paulo: Novatec editora.
Silveira, Guilherme, Kung, Fabio, Moreira, Guilherme, SILVEIRA, PAULO, LOPES, SÉRGIO, & STEPAAT, NICO. 2011. Introdução à arquitetura de design de software: Uma introdução à plataforma java. Elsevier Brasil.
Sommerville, I. 2011. Arquitetura orientada a serviços. Engenharia de software, 355–368.
Teixeira, Fabricio. 2014. Introdução e boas práticas em ux design. Editora Casa do Código.
Wazlawick, Raul. 2010. Análise e projeto de sistemas de informação orientados. Vol. 2. Elsevier Brasil.
Wiegers, Karl, & Beatty, Joy. 2013. Software requirements. Pearson Education.
Williamson, Ken. 2015. Learning angularjs: A guide to angularjs development. “O’Reilly Media, Inc.”.
Wylie, Brian. 2017. Using nosql databases for streaming network analysis. http://www.cs.sandia.gov/~dmdunla/publication/WyDuDaBa12.pdf.
[1] Curso de Sistemas de Informação – Centro Universitário Unieuro, Brasília
[2] Curso de Sistemas de Informação – Centro Universitário Unieuro, Brasília