StartedBee – Aplicativo para gerenciamento de Objetivos e Metas

0
338
DOI: ESTE ARTIGO AINDA NÃO POSSUI DOI [ SOLICITAR AGORA! ]
StartedBee – Aplicativo para gerenciamento de Objetivos e Metas
Classificar o Artigo!
ARTIGO EM PDF

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

Contents

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)

Figura 1: Arquitetura do Sistema. Fonte: Cloud Google (2017)
Figura 1: Arquitetura do Sistema. Fonte: Cloud Google (2017)

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.

Figura 2: Arquitetura híbrida. Fonte: Petkovski (2014)
Figura 2: Arquitetura híbrida. Fonte: Petkovski (2014)

Existem uma série de ferramentas sistemas que facilita o desenvolvimento com o Ionic dentre elas utilizamos:

  1. Ionic View: Você pode faz upload do seu aplicativo e pode testa-lo em qualquer aparelho.
  2. 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.
  3. Build Phonegap: Caso não tenha um MacOS porém, consiga os certificados, você pode usar o Build Phonegap que faz esse papel.
  4. OneSignal: Para fazer PushNotification
  5. 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)

Figura 3: Phonegap. Fonte: Phonegap (2013)
Figura 3: Phonegap. Fonte: Phonegap (2013)

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.

Figura 4: Sistema de Banco de Dados. Fonte: Furtado (2013)
Figura 4: Sistema de Banco de Dados. Fonte: Furtado (2013)

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

Figura 5: Diagrama geral de processos da Started Bee. Fonte: elaborada pelo autor
Figura 5: Diagrama geral de processos da Started Bee. Fonte: elaborada pelo autor

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.

Figura 6: Caso de uso. Fonte: elaborada pelo autor.
Figura 6: Caso de uso. Fonte: elaborada pelo autor.

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)

Figura 7: Diagrama de classe. Fonte: elaborada pelo autor
Figura 7: Diagrama de classe. Fonte: elaborada pelo autor

4.6 Diagrama de atividades

Figura 8: Diagrama cadastrar usuário. Fonte: elaborada pelo autor
Figura 8: Diagrama cadastrar usuário. Fonte: elaborada pelo autor
Figura 9: Diagrama realizar login. Fonte: elaborada pelo autor
Figura 9: Diagrama realizar login. Fonte: elaborada pelo autor
Figura 10: Diagrama Recupera Login. Fonte: elaborada pelo autor
Figura 10: Diagrama Recupera Login. Fonte: elaborada pelo autor
Figura 11: Diagrama Cadastrar objetivo. Fonte: elaborada pelo autor
Figura 11: Diagrama Cadastrar objetivo. Fonte: elaborada pelo autor
Figura 12: Diagrama Cadastrar Meta. Fonte: elaborada pelo autor
Figura 12: Diagrama Cadastrar Meta. Fonte: elaborada pelo autor
Figura 13: Diagrama Cadastrar Tarefa. Fonte: elaborada pelo autor
Figura 13: Diagrama Cadastrar Tarefa. Fonte: elaborada pelo autor
Figura 14: Diagrama Cadastrar Feed Coaching. Fonte: elaborada pelo autor
Figura 14: Diagrama Cadastrar Feed Coaching. Fonte: elaborada pelo autor

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)

Figura 15: Modelo entidade relacionamento. Fonte: elaborada pelo autor
Figura 15: Modelo entidade relacionamento. Fonte: elaborada pelo autor

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

Figura 16: Tela Home com menu tabs slide de com desempenho de objetivo. Fonte: elaborada pelo autor
Figura 16: Tela Home com menu tabs slide de com desempenho de objetivo. Fonte: elaborada pelo autor
Figura 17: Tela de Introdução. Fonte: elaborada pelo autor
Figura 17: Tela de Introdução. Fonte: elaborada pelo autor
Figura 18: Tela Home com menu tabs e slide de com desempenho de meta. Fonte: elaborada pelo autor
Figura 18: Tela Home com menu tabs e slide de com desempenho de meta. Fonte: elaborada pelo autor
Figura 19: Tela Home com menu tabs e slide de com desempenho de tarefas. Fonte: elaborada pelo autor
Figura 19: Tela Home com menu tabs e slide de com desempenho de tarefas. Fonte: elaborada pelo autor
Figura 20: Tela de login. Fonte: elaborada pelo autor
Figura 20: Tela de login. Fonte: elaborada pelo autor
Figura 21: Tela de menu lateral. Fonte: elaborada pelo autor
Figura 21: Tela de menu lateral. Fonte: elaborada pelo autor
Figura 22: Tela de cadastro de usuário. Fonte: elaborada pelo autor
Figura 22: Tela de cadastro de usuário. Fonte: elaborada pelo autor
Figura 23: Tela de alert e loading para exclusão de objetivo. Fonte: elaborada pelo autor
Figura 23: Tela de alert e loading para exclusão de objetivo. Fonte: elaborada pelo autor
Figura 25: Tela com um objetivo selecionado. Fonte: elaborada pelo autor
Figura 25: Tela com um objetivo selecionado. Fonte: elaborada pelo autor
Figura 26: Tela de feed coaching. Fonte: elaborada pelo autor
Figura 26: Tela de feed coaching. Fonte: elaborada pelo autor
Figura 27: Tela de feed coaching selecionado. Fonte: elaborada pelo autor
Figura 27: Tela de feed coaching selecionado. Fonte: elaborada pelo autor
Figura 28: Tela com todos as metas. Fonte: elaborada pelo autor
Figura 28: Tela com todos as metas. Fonte: elaborada pelo autor
Figura 29: Tela com uma meta selecionada. Fonte: elaborada pelo autor
Figura 29: Tela com uma meta selecionada. Fonte: elaborada pelo autor
Figura 30: Tela com todas as tarefas. Fonte: elaborada pelo autor
Figura 30: Tela com todas as tarefas. Fonte: elaborada pelo autor
Figura 31: Tela com uma tarefa selecionada. Fonte: elaborada pelo autor
Figura 31: Tela com uma tarefa selecionada. Fonte: elaborada pelo autor
Figura 32: Tela de loading no login. Fonte: elaborada pelo autor
Figura 32: Tela de loading no login. Fonte: elaborada pelo autor
Figura 33: Tela de loaging no cadastro de usuário. Fonte: elaborada pelo autor
Figura 33: Tela de loaging no cadastro de usuário. Fonte: elaborada pelo autor
Figura 34: Tela de login com mensagem de erro de e-mail. Fonte: elaborada pelo autor
Figura 34: Tela de login com mensagem de erro de e-mail. Fonte: elaborada pelo autor
Figura 35: Tela de login com mensagem de erro na senha. Fonte: elaborada pelo autor
Figura 35: Tela de login com mensagem de erro na senha. Fonte: elaborada pelo autor
Figura 36: Tela de objetivo com action sheet. Fonte: elaborada pelo autor
Figura 36: Tela de objetivo com action sheet. Fonte: elaborada pelo autor
Figura 37: Tela de coaching com action sheets. Fonte: elaborada pelo autor
Figura 37: Tela de coaching com action sheets. Fonte: elaborada pelo autor
Figura 38: Tela de meta com action sheets. Fonte: elaborada pelo autor
Figura 38: Tela de meta com action sheets. Fonte: elaborada pelo autor
Figura 39: Tela de tarefa com action sheet. Fonte: elaborada pelo autor
Figura 39: Tela de tarefa com action sheet. Fonte: elaborada pelo autor
Figura 40: Tela de objetivo com loading de excluir. Fonte: elaborada pelo autor
Figura 40: Tela de objetivo com loading de excluir. Fonte: elaborada pelo autor
Figura 41: Tela de loading carregamento de componente do app. Fonte: elaborada pelo autor
Figura 41: Tela de loading carregamento de componente do app. Fonte: elaborada pelo autor
Figura 42: Tela com loading de excluir. Fonte: elaborada pelo autor
Figura 42: Tela com loading de excluir. Fonte: elaborada pelo autor
Figura 43: Tela feed de coaching e loading de excluir. Fonte: elaborada pelo autor
Figura 43: Tela feed de coaching e loading de excluir. Fonte: elaborada pelo autor
Figura 44: Tela de meta e loading de excluir. Fonte: elaborada pelo autor
Figura 44: Tela de meta e loading de excluir. Fonte: elaborada pelo autor
Figura 45: Tela de tarefa e loading de excluir. Fonte: elaborada pelo autor
Figura 45: Tela de tarefa e loading de excluir. Fonte: elaborada pelo autor

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

Como publicar Artigo Científico

DEIXE UMA RESPOSTA

Please enter your comment!
Please enter your name here