Congresso de Inovação, Ciência e Tecnologia do IFSP - 2016 APLICATIVO AIKA: UM SOFTWARE GERENCIADOR DE ROTINAS, TAREFAS E TRAJETOS DANILO CHAVES S.R. DE SOUZA¹, VICTOR V. RUFINO SANTOS2, VINICIUS B.A. DOS SANTOS3, GLAUBER DA ROCHA BALTHAZAR4 Cursando Técnico em Informática integrado ao Médio no IFSP – Campus São Paulo. Cursando Iniciação Científica na área de informática no IFSP – Campus São Paulo. [email protected] 2 Cursando Técnico em Informática integrado ao Médio no IFSP – Campus São Paulo. Cursando Iniciação Científica na área de informática no IFSP – Campus São Paulo. [email protected] 3 Cursando Técnico em Informática integrado ao Médio no IFSP – Campus São Paulo. Cursando Iniciação Científica na área de informática no IFSP – Campus São Paulo. [email protected]. 4 Professor Mestre em Engenharia de Software - IFSP – Campus São Paulo. [email protected]. Área de conhecimento (Tabela CNPq): Linguagens de Programação - 1.03.03.01-4 1 Apresentado no 7° Congresso de Iniciação Científica e Tecnológica do IFSP 29 de novembro a 02 de dezembro de 2016 - Matão-SP, Brasil RESUMO: Esse projeto tem como objetivo oferecer uma ferramenta útil para que as pessoas possam organizar as suas tarefas e rotinas diárias. Esta ferramenta, batizada de Aika, permite aos usuários cadastrarem suas atividades, rotinas e locais a serem visitados nas suas tarefas diárias e estabelecer um cronograma de tempo para execução. Para tanto, o Aika é responsável por traçar uma rota de execução com uma divisão do tempo para cada atividade. Assim, é apresentada neste artigo a adoção da metodologia Scrum para gerenciamento dos requisitos para o desenvolvimento do Aika assim como a definição de sua arquitetura lógica e física. Atualmente o software encontra-se já desenvolvido e em fase de testes finais. PALAVRAS-CHAVE: tarefas; agendamento de rotinas; programação móvel. AIKA APLLICATION: A MANAGER ROUTINES SOFTWARE, TASKS AND PATHS ABSTRACT: This project aims to provide a useful tool for people to organize their tasks and daily routines. This tool, named Aika, allows users to register their activities, routines and places to be visited in their daily tasks and set up a schedule of time for execution. Therefore, the Aika is responsible for drawing a route with time division for each activity. Thus, this article adopts the Scrum methodology for requirements management for the development of Aika and the definition of its logical and physical architecture. Currently the software is already developed and undergoing final testing phase. KEYWORDS: tasks; scheduling routines; mobile programming. INTRODUÇÃO Segundo MÉNARD (2008) uma má administração das atividades de rotina e tarefas do dia-a-dia causa uma sensação de falta de tempo nas pessoas o que as leva a cometer equívocos tanto na vida pessoal quanto profissional. Apesar de ser muito complexo construir uma boa e completa administração do tempo, quando se segue padrões e métodos para gerenciar estas rotinas e tarefas, torna-se possível dividir e organizar as atividades e assim diminuir a sensação de falta de tempo. Este projeto nasceu da necessidade dos alunos do 3º ano do curso Técnico em Informática em administrar suas atividades tanto da escola quanto dos afazeres diários. Para tanto foi proposto a construção de um software (denominado Aplicativo Aika) que pudesse auxiliar na administração do dia-a-dia dos alunos. Desta forma o aluno poderia informar suas tarefas com idas a locais que ele tenha que obrigatoriamente visitar e o Aika irá apresentar um plano de trabalho para realizar estas tarefas mediante um tempo pré estipulado. Assim o aluno poderá cadastrar a tarefa e os possíveis locais que estarão envolvidos com esta tarefa mediante um período de tempo disponível para isso. Com base nestas informações o Aika irá verificar qual a rota mais adequada para que o aluno possa cumprir esta tarefa baseando-se no tempo estipulado. Para tanto ele poderá incluir o meio de deslocamento como a pé, de ônibus, carro ou bicicleta ou até mesmo com um misto destas formas de deslocamento. O objetivo principal do aplicativo Aika é o gerenciamento de cronograma diário de seus usuários auxiliando-os para que possam cumprir os requisitos estabelecidos por ele de forma a possibilitá-lo obter uma maior facilidade em seus deslocamentos diários. MATERIAL E MÉTODOS A metodologia utilizada para o desenvolvimento do aplicativo Aika segue os princípios e orientações da metodologia Scrum para construção e gerenciamento do processo de desenvolvimento de software. De acordo com SUTHERLAND (2014) o Scrum é caracterizado como uma metodologia para a gestão dinâmica de projetos de software na qual os projetos são divididos em ciclos chamados de sprints. Os sprints são vistos como a unidade básica de desenvolvimento, pois representam um conjunto de atividades que deve ser executado, ou seja, representa um ciclo de trabalho no Scrum que pode ser de duas semanas, três ou quatro semanas. Estas funcionalidades são agrupadas em uma lista denominada Product Backlog. O gerente do projeto organiza estas funcionalidades em atividades que são agrupadas em diversos sprints de backlog. Em seguida são definidos os períodos de tempo para cada sprint, geralmente de duas até quatro semanas. A figura 1 apresenta a organização dos sprints. FIGURA 1 - Definição dos sprints no Scrum. Fonte: Sutherland (2014). Para este projeto foram definidos três sprints de desenvolvimento. Estes sprints estão descritos e detalhados: 1º Sprint: encontrar a posição do usuário, traçar uma rota com os pontos pelos quais o usuário selecionou para seu dia, mostrar na tela quanto tempo ele levará de um ponto ao outro, iniciar um cronometro interno quando o usuário chegar a um local selecionado e mostrar periodicamente uma notificação que avise ao usuário quanto tempo ele ainda tem no local; 2º Sprint: perguntar ao usuário qual será seu meio de transporte para chegar a cada ponto, perguntar ao usuário quanto tempo ele pretende ficar em cada ponto e soar um alarme quando o tempo limite em um local for atingido; 3º Sprint: permitir ao usuário armazenar compromissos de sua rotina e ser avisado na hora que estas estão a começar, permitir ao usuário armazenar compromissos em um determinado dia do mês e permitir ao usuário armazenar suas tarefas e excluía-las quando o usuário marcar o checkbox de concluído. Em relação à parte técnica de desenvolvimento foi adicionada à metodologia de desenvolvimento do projeto a linguagem de programação Java e utilizou-se como plataforma para o produto final o sistema operacional Android. Android é um sistema operacional para smartphones que dá suporte para aplicações escritas na linguagem Java (LECHETA, 2015) e Java é uma linguagem que permite trabalhar de forma Orientada a Objetos atendendo aos requisitos desta plataforma (DEITEL, 2015). Além disso, foi construída uma arquitetura para a estrutura que apresenta a definição dos componentes de software e suas propriedades externas. Neste projeto é utilizado e adaptado o padrão de projeto denominado Data Access Object (DAO) que é um design pattern para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados e a linguagem de programação Java. Neste padrão a arquitetura da codificação do Aika está organizada em três pacotes distintos (mostrado na Figura 2), sendo cada um deles responsável por uma atribuição do software: model: define toda arquitetura das entidades e classes de acesso e persistência do banco de dados; controller: responsável e adaptado do original do design pattern DAO para acomodar todas as regras de negócio que constituem a aplicação; view: camada responsável por armazenar e dar suporte para as telas de interfaces de comunicação com o usuário. FIGURA 2 - Abstração da arquitetura lógica do projeto. Fonte: autores do projeto. Por fim, é mostrada na Figura 3 uma visão da aplicação desta arquitetura na linguagem de programação Java com a utilização da IDE (Integrated Development Environment) Android Studio. Nesta figura é possível ver a aplicação das camadas mostradas na Figura 3, porém agora aplicadas em packages (pacotes) definidos na própria linguagem Java. FIGURA 3 - Arquitetura aplicada na linguagem Java. ARQUITETURA FÍSICA Para este projeto uma estrutura física de componentes de servidores e serviços deverá estar disponível para que o aplicativo Aika venha a ser implantado e executado de forma a dar suporte para implantação em aparelhos móveis com Android. Para tanto a Figura 4 apresenta uma abstração destes componentes. Nesta arquitetura faz-se necessário a presença de um servidor provedor de recursos da Google que irá fornecer toda a API (Application Programming Interface) para localização geográfica do usuário, exibição no mapa tanto da posição do usuário quanto dos pontos dos locais a serem visitados e a realização da projeção do traço da rota. A conexão com este provedor será feita via HTTP (Hypertext Transfer Protocol) através da internet e no Aika existirá um banco de dados para armazenamento das informações do usuário e da rota. FIGURA 4 - Abstração da arquitetura física do projeto. Fonte: autores do projeto. RESULTADOS E DISCUSSÃO O aplicativo Aika encontra-se atualmente no processo final da fase de desenvolvimento. De acordo com o cronograma dos sprints, pretende-se concluir o desenvolvimento até novembro de 2016. As últimas implementações a serem feitas envolvem o gerenciamento indoor proporcionado pelo aplicativo – funcionalidades descritas no 3º sprint -, são elas: criação de um sistema de classificação de atividades de acordo com níveis de importância, bem como a geração de estatísticas com base nestas atividades; criação de um sistema que permita ao usuário a recuperação de atividades já excluídas (tanto esporádicas quanto com repetição). A figura 5 apresenta a parte do software responsável pelo registro de locais realizado pelo usuário (através de uma Autocomplete View). Já a figura 6 apresenta a parte do software responsável por mostrar um mapa ao usuário com os pontos selecionados por ele anteriormente (Figura 5), bem como as informações referentes a cada um dos pontos. Ambas as telas se referem a partes integrantes da ferramenta de mapa, que permite o gerenciamento de atividades outdoor. FIGURA 5 – Cadastro de Lugares. Fonte: autores do projeto. FIGURA 6 – Exibição dos lugares no mapa. Fonte: autores do projeto. CONCLUSÕES O aplicativo Aika encontra-se, atualmente, desenvolvido. Para a conclusão do mesmo, diversos testes foram realizados, muitos destes através da população do sistema, a partir da qual se pôde atestar a eficiência dos métodos de reconhecimento da posição do usuário, geração de rotas, escolha dos meios de transporte, visualização do tempo entre dois pontos, entre outras funcionalidades do aplicativo. Isso possibilitou aos alunos poderem colocar em prática os conhecimentos obtidos no curso Técnico de Informática da linguagem de programação Java na construção de um software para ambiente mobile (Android). REFERÊNCIAS DEITEL, Paul. DEITEL, Harvey. Java how to program. Pearson, USA, New Jersey, 2015. LECHETA, Ricardo. Android: Aprenda a criar aplicações para dispositivos móveis com o Android SDK. Novatec, São Paulo: São Paulo, 2015. MÉNARD, Jean-Denis. Como Administrar Seu Tempo - Noções-Chave, Situações Reais, Soluções Concretas. 1. ed. Rio de Janeiro: Vozes, 2008. SUTHERLAND, Jeff. Scrum - A Arte de Fazer o Dobro de Trabalho na Metade do Tempo. 1. ed. São Paulo: Leya Brasil, 2014.