0% acharam este documento útil (0 voto)
67 visualizações154 páginas

Software TCC Task Creator Controller

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
67 visualizações154 páginas

Software TCC Task Creator Controller

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 154

UNIVERSIDADE FEDERAL DO PARANÁ

ANDRÉ GEHRING DIAS DE ALMEIDA


BÁRBARA ABREU GOZZI DOS SANTOS
CAROLINE DE ALMEIDA
EDISON LUIZ SANTIAGO MACHADO
JOÃO FELIPE OLIVEIRA FLORIANO DE SOUZA

SOFTWARE TCC – TASK CREATOR & CONTROLLER

CURITIBA
2013
ANDRÉ GEHRING DIAS DE ALMEIDA
BÁRBARA ABREU GOZZI DOS SANTOS
CAROLINE DE ALMEIDA
EDISON LUIZ SANTIAGO MACHADO
JOÃO FELIPE OLIVEIRA FLORIANO DE SOUZA

SOFTWARE TCC – TASK CREATOR & CONTROLLER

Trabalho de Conclusão de Curso apresentado à


banca examinadora do curso de Tecnologia em
Análise e Desenvolvimento de Sistemas, Setor de
Educação Profissional e Tecnológica da Universidade
Federal do Paraná, como requisito parcial para a
obtenção do grau de Tecnólogo em Análise e
Desenvolvimento de Sistemas.

Orientadora: Professora Msc. Cátia Garcia Morais

CURITIBA
2013
AGRADECIMENTOS

Aos nossos parentes e amigos, que sempre nos apoiaram nos momentos
difíceis e sempre nos motivaram quando necessário.

Aos professores do curso, pelos conhecimentos a nós repassados no


decorrer dos últimos anos, que muito auxiliaram no desenvolvimento deste trabalho.

Aos grandes exemplos de sucesso surgidos da área de Tecnologia de


Informação, que sempre nos incentivaram a darmos o máximo de si e a nunca
desistirmos de nossos sonhos.

E, em especial, ao grupo envolvido, que se dedicou completamente ao


desenvolvimento deste trabalho, superando todos os obstáculos que apareceram
pelo caminho.
O seu tempo é limitado, então não o gaste
vivendo a vida de um outro alguém.
Steve Jobs
RESUMO

Este trabalho apresenta uma proposta de software para controle de tarefas de


qualquer tipo de empresa, usando a hierarquia piramidal como base para as divisões
destas tarefas. Para esta proposta foi desenvolvida uma API, que está disponível
através de uma conexão com a internet e que serve como base de processamento
para todas as interfaces e aplicativos, sendo eles um aplicativo web, um aplicativo
para Android e um aplicativo para iOS. Esta ferramenta foi desenvolvida como um
sistema Web acompanhada de aplicativos para dispositivos móveis pois o momento
em que se encontra a tecnologia da informação é totalmente voltado à mobile e, por
consequência, à web. Além disso, ambos oferecem recursos de última geração,
possibilidade de acesso em diferentes locais – em especial os smartphones, que são
extremamente portáteis – e facilidade na expansão de suas funcionalidades. O
software possui três níveis de acesso: administrador, responsável por criar e manter
as contas dos usuários; gerente, capaz de criar tarefas raiz e executar tarefas
atribuídas pelo seu superior (se houver); funcionário, responsável apenas por
executar as tarefas atribuídas a ele pelo seu superior.

Palavras-Chave: mobile, internet, tarefa, API, desenvolvimento, software,


gerenciamento, Android, iOS.
ABSTRACT

This paper presents a software’s proposal for controlling the tasks of companys of
any kind, using the piramidal hierarchy as the basis for those task’s division. For this
proposal an API was developed, which is available through an internet connection
and works as a basis for the processing on all interfaces and applications, which are
an web application, an Android application and a iOS application.
This tool was developed a web system with mobile applications because Information
Technology right now is all about mobile and, consequently, web. Besides, both offer
last generation resources, the possibility of access from anywhere – specially
smartphones, that are extremely portable – and the possibility of easily expanding
theirs funcionalities.
There are three access levels on the software: administrator, responsible for creating
and maintaining the users accounts; manager, capable of creating root tasks and
executing tasks delegated by his supervisor (if there is any); employee, responsible
only for executing the tasks delegated to him by his supervisor.

Keywords: mobile, internet, task, API, development, software, management, Android,


iOS.
LISTA DE ILUSTRAÇÕES

FIGURA 1 - ESTRUTURA ANALÍTICA DO PROJETO ............................................. 29!


FIGURA 2 – CRONOGRAMA DO PROJETO ........................................................... 30!
FIGURA 3 – CRONOGRAMA DO PROJETO (cont.) ................................................ 31!
FIGURA 4 - GRÁFICO DE GANTT ........................................................................... 32!
FIGURA 5 - DIAGRAMA DE CASOS DE USO ......................................................... 43!
FIGURA 6 - DIAGRAMA DE CLASSES .................................................................... 44!
FIGURA 7 – MODELO LÓGICO DO BANCO DE DADOS........................................ 45!
FIGURA 8 - DIAGRAMA DE MÁQUINA DE ESTADOS ............................................ 49!
FIGURA 9 - TELA DE INSTALAÇÃO DO SOFTWARE ............................................ 53!
FIGURA 10 - TELA DE CONFIGURAÇÃO: ANDROID ............................................. 54!
FIGURA 11 - TELA DE CONFIGURAÇÃO: IOS ....................................................... 55!
FIGURA 12 - TELA DE LOGIN .................................................................................. 56!
FIGURA 13 - TELA INICIAL DO USUÁRIO ADMINISTRADOR ............................... 57!
FIGURA 14 - TELA INICIAL DO USUÁRIO GERENTE ............................................ 58!
FIGURA 15 - TELA INICIAL DO USUÁRIO FUNCIONÁRIO .................................... 59!
FIGURA 16 - TELA DE LISTAGEM DE USUÁRIOS ................................................. 60!
FIGURA 17 - TELA DE CADASTRO DE USUÁRIOS ............................................... 61!
FIGURA 18 - TELA DE EDIÇÃO DE USUÁRIO ........................................................ 63!
FIGURA 19 - TELA DE ALTERAÇÃO DO STATUS DO USUÁRIO .......................... 64!
FIGURA 20 - TELA DO PERFIL DO USUÁRIO: ANDROID...................................... 65!
FIGURA 21 - TELA DO PERFIL DO USUÁRIO: IOS ................................................ 65!
FIGURA 22 - TELA DO PERFIL DO USUÁRIO: WEB .............................................. 66!
FIGURA 23 - TELA DE LISTAGEM DE TIPOS DE TAREFA .................................... 68!
FIGURA 24 - TELA DE CADASTRO DE TIPO DE TAREFA .................................... 69!
FIGURA 25 - TELA DE EDIÇÃO DE TIPO DE TAREFA........................................... 70!
FIGURA 26 - TELA DE LISTAGEM DE TAREFA RAIZ: WEB .................................. 72!
FIGURA 27 - TELA DE LISTAGEM DE TAREFA RAIZ: ANDROID .......................... 73!
FIGURA 28 - TELA DE LISTAGEM DE TAREFA RAIZ: IOS .................................... 73!
FIGURA 29 - TELA DE CRIAÇÃO DE TAREFA RAIZ: ANDROID............................ 74!
FIGURA 30 - TELA DE CRIAÇÃO DE TAREFA RAIZ: IOS ...................................... 74!
FIGURA 31 - TELA DE CRIAÇÃO DE TAREFA RAIZ: WEB .................................... 75!
FIGURA 32 - TELA GERENCIAR TAREFAS: WEB .................................................. 78!
FIGURA 33 - TELA DE EDIÇÃO E CADASTRO DE SUB-TAREFAS: WEB ............ 80!
FIGURA 34 - TELA GERENCIAR TAREFAS: ANDROID ......................................... 82!
FIGURA 35 - TELA FILTRAR TAREFAS: ANDROID ................................................ 83!
FIGURA 36 - TELA DETALHES DA TAREFA: ANDROID ........................................ 84!
FIGURA 37 - TELA DESCRIÇÃO DA TAREFA: ANDROID ...................................... 84!
FIGURA 38 - TELA DE EDIÇÃO DO COMENTÁRIO DA TAREFA: ANDROID........ 85!
FIGURA 39 - TELA DE EDIÇÃO DO STATUS DA TAREFA: ANDROID .................. 85!
FIGURA 40 - TELA GERENCIAR TAREFAS: IOS .................................................... 87!
FIGURA 41 - TELA FILTRAR TAREFAS: IOS .......................................................... 88!
FIGURA 42 - TELA DETALHES DA TAREFA: IOS................................................... 89!
FIGURA 43 - TELA DESCRIÇÃO DA TAREFA: IOS ................................................ 89!
FIGURA 44 - TELA DE EDIÇÃO DO COMENTÁRIO DA TAREFA: IOS .................. 90!
FIGURA 45 - TELA DE EDIÇÃO DO STATUS DA TAREFA: IOS ............................ 90!
FIGURA 46 - TELA DE RELATÓRIOS ...................................................................... 91!
FIGURA 47 - PROTÓTIPO: TELA DE LOGIN........................................................... 96!
FIGURA 48 - PROTÓTIPO: TELA DE LISTAGEM DE USUÁRIOS .......................... 99!
FIGURA 49 - PROTÓTIPO: TELA DE CADASTRO DE USUÁRIO ........................ 100!
FIGURA 50 - PROTÓTIPO: TELA DE EDIÇÃO DE USUÁRIO............................... 101!
FIGURA 51 - PROTÓTIPO: TELA DE LISTAGEM DE TIPOS DE TAREFA........... 104!
FIGURA 52 - PROTÓTIPO: TELA DE CADASTRO DE TIPO DE TAREFA ........... 105!
FIGURA 53 - PROTÓTIPO: TELA DE EDIÇÃO DE TIPO DE TAREFA ................. 106!
FIGURA 54 - PROTÓTIPO: TELA GERENCIAR TAREFAS ................................... 109!
FIGURA 55 - PROTÓTIPO: TELA DE LISTAGEM DA SUPER TAREFA ............... 110!
FIGURA 56 - PROTÓTIPO: TELA DE LISTAGEM DAS SUB-TAREFAS ............... 111!
FIGURA 57 - PROTÓTIPO: TELA GERENCIAR SUB-TAREFAS .......................... 112!
FIGURA 58 - PROTÓTIPO: TELA DE RELATÓRIOS............................................. 116!
FIGURA 59 - PROTÓTIPO: TELA DE LISTAGEM DE TAREFA RAIZ ................... 118!
FIGURA 60 - PROTÓTIPO: TELA DE CRIAÇÃO DE TAREFA RAIZ ..................... 119!
FIGURA 61 - PROTÓTIPO: TELA DO PERFIL DO USUÁRIO ............................... 122!
FIGURA 62 - DIAGRAMA DE SEQUÊNCIA: LOGAR ............................................. 124!
FIGURA 63 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR USUÁRIOS ................ 125!
FIGURA 64 - DIAGRAMA DE SEQUÊNCIA: CRIAR USUÁRIO ............................. 126!
FIGURA 65 - DIAGRAMA DE SEQUÊNCIA: EDITAR USUÁRIO ........................... 127!
FIGURA 66 - DIAGRAMA DE SEQUÊNCIA: TELA PRINCIPAL............................. 128!
FIGURA 67 - DIAGRAMA DE SEQUÊNCIA: FILTRAR TAREFAS ......................... 128!
FIGURA 68 - DIAGRAMA DE SEQUÊNCIA: TAREFAS ......................................... 129!
FIGURA 69 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR SUB-TAREFAS .......... 130!
FIGURA 70 - DIAGRAMA DE SEQUÊNCIA: MENU ............................................... 131!
FIGURA 71 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR TAREFA RAIZ ............ 132!
FIGURA 72 - DIAGRAMA DE SEQUÊNCIA: CRIAR TAREFA RAIZ ...................... 133!
FIGURA 73 - DIAGRAMA DE SEQUÊNCIA: EDITAR TAREFA RAIZ .................... 133!
FIGURA 74 - DIAGRAMA DE SEQUÊNCIA: GERAR RELATÓRIO ....................... 134!
FIGURA 75 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR TIPOS ........................ 135!
FIGURA 76 - DIAGRAMA DE SEQUÊNCIA: CRIAR TIPO ..................................... 136!
FIGURA 77 - DIAGRAMA DE SEQUÊNCIA: EDITAR TIPO ................................... 137!
FIGURA 78 - DIAGRAMA DE SEQUÊNCIA: PERFIL ............................................. 138!
LISTA DE TABELAS

TABELA 1 - RESPONSABILIDADES ........................................................................ 33!


TABELA 2 - PLANO DE RISCOS .............................................................................. 34!
TABELA 3 - CONTATOS ........................................................................................... 35!
TABELA 4 - REUNIÕES ............................................................................................ 36!
TABELA 5 - DICIONÁRIO DE DADOS: TABELA USUARIO .................................... 46!
TABELA 6 - DICIONÁRIO DE DADOS: TABELA HISTORICO_ACESSO ................ 47!
TABELA 7 - DICIONÁRIO DE DADOS: TABELA TIPO ............................................ 47!
TABELA 8 - DICIONÁRIO DE DADOS: TABELA TAREFA....................................... 48!
SUMÁRIO

1 INTRODUÇÃO ...................................................................................................... 14!


1.1 CONTEXTUALIZAÇÃO ...................................................................................... 14!
1.2 OBJETIVOS........................................................................................................ 15!
1.2.1 Objetivo geral................................................................................................... 15!
1.2.2 Objetivos específicos ....................................................................................... 15!
1.3 ORGANIZAÇÃO DO TEXTO .............................................................................. 15!
2 FUNDAMENTAÇÃO TEÓRICA ............................................................................ 17!
2.1 A IMPORTÂNCIA DO GERENCIAMENTO DE PROJETOS .............................. 17!
2.2 A TECNOLOGIA COMO SOLUÇÃO NO GERENCIAMENTO DE PROJETOS 18!
2.3 SOLUÇÃO PROPOSTA PARA A GESTÃO DE TAREFAS ............................... 19!
2.4 COMO EVITAR QUE ESTA SOLUÇÃO SE TORNE OUTRO PROBLEMA ...... 20!
2.5 QUAIS PLATAFORMAS SEGUIR? .................................................................... 20!
2.6 POR QUÊ DESENVOLVER UMA API? ............................................................. 22!
3 METODOLOGIA DO PROCESSO DE DESENVOLVIMENTO DO SOFTWARE. 23!
3.1 ENGENHARIA DE SOFTWARE......................................................................... 23!
3.1.1 Scrum .............................................................................................................. 23!
3.1.2 UML ................................................................................................................. 24!
3.1.3 SQL.................................................................................................................. 24!
3.1.4 PHP Orientado a Objetos ................................................................................ 24!
3.1.5 HTML/CSS....................................................................................................... 25!
3.1.6 JavaScript ........................................................................................................ 25!
3.1.7 Java ................................................................................................................. 25!
3.1.8 XML ................................................................................................................. 26!
3.1.9 Objective-C ...................................................................................................... 26!
3.2 PLANO DE ATIVIDADES ................................................................................... 26!
3.2.1 EAP.................................................................................................................. 29!
3.2.2 GANTT............................................................................................................. 30!
3.3 RESPONSABILIDADES ..................................................................................... 33!
3.4 PLANO DE RISCOS ........................................................................................... 34!
3.5 PLANO DE COMUNICAÇÃO ............................................................................. 35!
3.5.1 Relação de contatos ........................................................................................ 35!
3.5.2 Reuniões.......................................................................................................... 36!
3.5.3 Meios e ferramentas de comunicação ............................................................. 37!
3.5.4 Repositório de documentos ............................................................................. 37!
3.6 RECURSOS DE HARDWARE E SOFTWARE UTILIZADOS ............................ 37!
3.6.1 Recursos de hardware..................................................................................... 38!
3.6.2 Recursos de software ...................................................................................... 39!
4 DESENVOLVIMENTO DO PROJETO .................................................................. 41!
4.1 SOBRE A DOCUMENTAÇÃO ............................................................................ 41!
4.1.1 Diagrama de Casos de Uso............................................................................. 42!
4.1.2 Diagrama de Classes ...................................................................................... 44!
4.1.3 Modelo Lógico do Banco de Dados ................................................................. 45!
4.1.4 Dicionário de Dados ........................................................................................ 46!
4.1.5 Diagrama de Máquina de Estados .................................................................. 49!
4.2 SOBRE O GERENCIAMENTO........................................................................... 50!
4.3 SOBRE A IMPLEMENTAÇÃO............................................................................ 51!
5 APRESENTAÇÃO DO SOFTWARE..................................................................... 52!
5.1 INSTALAÇÃO ..................................................................................................... 52!
5.1.1 Servidor/Interface Web .................................................................................... 52!
5.1.2 Aplicativos........................................................................................................ 53!
5.2 USUÁRIO ........................................................................................................... 55!
5.2.1 Efetuar login..................................................................................................... 56!
5.2.2 Buscar usuário ................................................................................................. 60!
5.2.3 Cadastrar usuário ............................................................................................ 61!
5.2.3 Editar usuário................................................................................................... 62!
5.2.4 Alterar status do usuário .................................................................................. 64!
5.2.5 Editar perfil....................................................................................................... 65!
5.3 GERENCIAR TIPOS DE TAREFAS ................................................................... 67!
5.3.1 Buscar tipo ....................................................................................................... 68!
5.3.2 Cadastrar Tipo ................................................................................................. 69!
5.3.3 Editar tipo de tarefa ......................................................................................... 70!
5.4 CADASTRAR TAREFA RAIZ ............................................................................. 71!
5.4.1 Buscar tarefa raiz............................................................................................. 71!
5.4.2 Cadastrar Tarefa Raiz ..................................................................................... 74!
5.5 GERENCIAR TAREFAS ..................................................................................... 76!
5.5.1 Sistema Web ................................................................................................... 77!
5.5.1.1 Listagem das tarefas .................................................................................... 78!
5.5.1.2 Criar e editar sub-tarefas .............................................................................. 80!
5.5.1.3 Alteração do status da tarefa ........................................................................ 81!
5.5.2 Aplicativo para Android .................................................................................... 82!
5.5.2.1 Listagem das tarefas .................................................................................... 82!
5.5.2.2 Filtrar tarefas................................................................................................. 83!
5.5.2.3 Visualização dos detalhes ............................................................................ 84!
5.5.2.4 Editar comentário e status da tarefa ............................................................. 85!
5.5.3 Aplicativo para iOS .......................................................................................... 86!
5.5.3.1 Listagem das tarefas .................................................................................... 87!
5.5.3.2 Filtrar tarefas................................................................................................. 88!
5.5.3.3 Visualização dos detalhes ............................................................................ 89!
5.5.3.4 Editar comentário e status da tarefa ............................................................. 90!
5.6 RELATÓRIOS..................................................................................................... 91!
6 CONSIDERAÇÕES FINAIS .................................................................................. 93!
REFERÊNCIAS ......................................................................................................... 94!
APÊNDICE A – ESPECIFICAÇÃO DOS CASOS DE USO...................................... 96!
APÊNDICE B – DIAGRAMAS DE SEQUÊNCIA .................................................... 124!
APÊNDICE C – MODELO FÍSICO DO BANCO DE DADOS ................................. 139!
APÊNDICE D – DOCUMENTAÇÃO DA API .......................................................... 141!
14

1 INTRODUÇÃO

A maioria das grandes empresas ainda funciona no formato clássico,


baseado em uma estrutura engessada que define uma hierarquia piramidal clara,
apesar de algumas já fugirem deste padrão, adotando ideias novas e uma maior
interação entre os funcionários. Em empresas estruturadas desta forma, as tarefas
geralmente surgem no topo da pirâmide e vão sendo divididas conforme seguem
para os níveis mais baixos. Apesar dos problemas, este formato ainda é muito
utilizado porque permite um maior controle por parte do alto escalão, o que
teoricamente reduz a ocorrência de erros.

1.1 CONTEXTUALIZAÇÃO

A divisão destas tarefas em tarefas menores geralmente ocorre de acordo


com a especialidade dos funcionários, particionando por área. Um gerente, por
exemplo, pode dividi-la entre vários chefes de departamento, os quais irão dividir
suas partes entre seus subordinados e assim sucessivamente, de forma a aproveitar
melhor o tempo e alocar a tarefa para alguém plenamente capaz de realizá-la.
Em tarefas grandiosas, como um projeto, podem ocorrer demasiadas
subdivisões, o que torna a gerência destas tarefas algo desafiador. Além disso,
estas subdivisões nem sempre são documentadas, limitando-se muitas vezes a
trocas de e-mail ou até mesmo a conversas informais.
O software TCC – Task Creator & Controller – organiza estas subdivisões,
documentando as responsabilidades de todos os envolvidos e controlando os prazos
de forma individual, permitindo identificar facilmente os elos mais fracos do projeto e
evitando grandes atrasos. Além disso, serve também como uma agenda para os
funcionários, demonstrando todas as suas obrigações e permitindo que se
organizem para cumpri-las da forma que bem entenderem.
15

1.2 OBJETIVOS

1.2.1 Objetivo geral

Controlar e documentar as atividades de uma empresa, seus prazos e os


recursos humanos envolvidos.

1.2.2 Objetivos específicos

- Permitir um maior controle dos recursos humanos alocados em um projeto


identificando seus papéis e suas responsabilidades;
- Formalização destas responsabilidades;
- Centralização dos dados;
- Diminuir o atraso dos projetos identificando os pontos críticos rapidamente,
evitando atrasos em todo o cronograma;
- Geração de relatórios mostrando um panorama de todos os projetos da
empresa;
- Melhorar o controle sobre as tarefas realizadas;
- Documentar as responsabilidades dos recursos humanos envolvidos;
- Identificar os elos mais fracos precocemente, evitando atrasos no projeto
como um todo;
- Permitir uma visão mais ampla do negócio;

1.3 ORGANIZAÇÃO DO TEXTO

Este trabalho foi divido em seis capítulos, sendo que no próximo capítulo,
Fundamentação Teórica, será explicitado o problema que este software tem como
16

objetivo resolver e a forma como isto será feito, bem como serão justificadas as
escolhas realizadas pela equipe para certos aspectos técnicos do sistema.
O capítulo 3, Metodologia do processo de desenvolvimento do software,
demonstra as metodologias, tecnologias e recursos utilizados para o
desenvolvimento do produto, além de apresentar os planos de atividades, riscos e
comunicação relativos a este processo, juntamente com a responsabilidade de cada
membro envolvido nele.
No capítulo 4, Desenvolvimento do Projeto, será relatado como ocorreu este
processo de desenvolvimento, juntamente com a apresentação de alguns diagramas
desenvolvidos durante o mesmo.
Já o capítulo 5, Apresentação do Software, demonstra os procedimentos
necessários para a instalação do software e apresenta um passo-a-passo detalhado
sobre o uso do sistema, apresentando todas as suas interfaces, as funções que
cada uma realiza, como realizá-las e quais usuários são autorizados a utilizá-las.
O capítulo 6, Considerações Finais, evidencia as maiores dificuldades
enfrentadas pela equipe durante o processo de desenvolvimento e, em
contrapartida, salienta os pontos positivos e as lições aprendidas. Também são
mencionadas melhorias a serem implementadas futuramente no software.
Por fim, a seção Referências enumera todas as fontes de informação
utilizadas neste projeto, tanto para aprendizado de novas técnicas quanto para
agregar conhecimentos teóricos, e os Apêndices contém informações extras do
trabalho, como a especificação dos casos de uso, os diagramas de sequência, o
modelo físico do banco de dados e a documentação da API construída neste projeto.
17

2 FUNDAMENTAÇÃO TEÓRICA

Este capítulo apresenta conceitos sobre o negócio sendo abordado na


aplicação, bem como descreve a razão pela qual as tecnologias aplicadas no
desenvolvimento foram escolhidas.

2.1 A IMPORTÂNCIA DO GERENCIAMENTO DE PROJETOS

A interligação entre os setores nas empresas está cada vez maior. O modelo
antigo, no qual cada setor era autônomo e cuidava apenas dos seus assuntos
internos, quase não é mais seguido. Por isso, nunca antes foi dada tanta importância
para a finalização das tarefas dentro do prazo como agora.
Dado este fato, a estratégia de gerenciamento foi sendo alterada de acordo
com as necessidades atuais, pois há uma grande dificuldade em controlar as
atividades de cada funcionário, fazendo com que estas atividades estejam
sincronizadas para que quando uma parte da atividade esteja finalizada em um setor
já haja um planejamento no outro setor para que seja dada a continuidade no
processo. Qualquer falha de planejamento pode vir a desencadear uma série de
problemas, o que levou a elaboração de técnicas para auxiliarem no gerenciamento,
visando diminuir os atrasos das atividades.
Em geral, estas técnicas se baseiam em desenvolver um cronograma no
qual está relatado a atividade, o responsável por ela, data de início e data final da
tarefa. Como este cronograma é feito para todos os funcionários de todos os
setores, o gestor tem um maior controle sobre as atividades de sua equipe, sabendo
quando um funcionário deverá finalizar uma tarefa e quando este estará disponível,
tornando mais fácil o gerenciamento das atividades que dependem de outros
setores.
18

2.2 A TECNOLOGIA COMO SOLUÇÃO NO GERENCIAMENTO DE PROJETOS

Muitos softwares foram desenvolvidos com o intuito de auxiliar as empresas


no gerenciamento de projetos devido a sua importância crescente nas empresas,
conforme citado no tópico 2.1. O foco da maioria destes softwares é no
gerenciamento das atividades, tendo em vista que é inviável fazer um planejamento
das atividades no papel, devido a sua complexidade. Apesar de existirem muitos
softwares deste tipo, a maioria é específica para o gerenciamento de uma área, por
exemplo: financeiro, desenvolvimento de software, gerenciador de atividades
pessoais, etc.
Nosso sistema trata de um gerenciamento geral, para que possa ser
implementado em qualquer tipo de empresa e principalmente, por todos os
diferentes setores existentes. Foi por este motivo que foi desenvolvido o módulo tipo
de tarefa, para que o usuário defina como suas tarefas serão categorizadas. Um
exemplo de ferramenta similar a desenvolvida neste projeto seria o Trello
(https://trello.com), um organizador de tarefas e eventos cujo funcionamento é
baseado no scrum, apresentando 4 listas, “Fazer”, “Fazendo”, “Revisão” e “Pronto”,
que vão sendo alteradas pelo usuário conforme a situação da mesma.
Apesar do Trello ser similar ao sistema desenvolvido, há uma diferença
considerável entre eles, pois o foco do sistema aqui desenvolvido não é no controle
do tempo gasto para a realização de uma tarefa, mas sim na divisão das tarefas. Um
usuário recebe uma tarefa relativamente grande e tem a possibilidade de dividir esta
tarefa, repassando-a para seus subordinados, que ficam responsáveis pela sua
execução. Todo este histórico é registrado pelo sistema, permitindo que o usuário
possa ter uma visualizacão das tarefas interligadas, o que acaba facilitando para o
usuário que recebeu apenas uma parte pequena da mesma, pois ele pode visualizar
a tarefa-mãe, e também para quem foi responsável pela dvisão da tarefa-mãe, pois
pode acompanhar o progresso das sub-tarefas e ficar ciente do percentual de
realização da tarefa que lhe foi designada.
19

2.3 SOLUÇÃO PROPOSTA PARA A GESTÃO DE TAREFAS

O software Task Creator & Controller auxilia na gerência do projeto


controlando as atividades neles desenvolvidas através de tarefas. Cada tarefa é uma
atividade e possui alguns atributos essenciais:
Status: Demonstra o estado em que a tarefa se encontra atualmente,
podeno assumir os seguintes valores: ‘Cancelada’, ‘Rascunho’, ‘Em Espera’, ‘Em
Execução’ ou ‘Finalizada’. O criador pode cancelar uma tarefa qualquer momento,
enquanto que o responsável modifica o status da mesma conforme for avançando
por seu ciclo de vida.
Tipo: Uma classificação ampla da tarefa, que permita a seu responsável
entender rapidamente onde aquela tarefa se encaixa na organização. Pode ser, por
exemplo, o nome do projeto a qual ela pertence ou a área da empresa na qual ela é
executada.
Prioridade: Utilizada para definir a importância das tarefas naquele dado
momento, para assim gerar um critério de classificação das tarefas. Uma tarefa pode
ter prioridade ‘Alta’, ‘Média’ ou ‘Baixa’.
Sub-Tarefas: São as tarefas derivadas de uma determinada tarefa. Cabe ao
responsável por uma tarefa identificar se ela deve ser dividida ou não entre seus
subordinados, de forma a ser executada da melhor maneira possível. Um
responsável só pode delegar tarefas para seus subordinados diretos.
Super-Tarefa: A tarefa a partir da qual uma tarefa foi derivada. Deve ser
mais ampla que suas sub-tarefas.
Tarefa Raiz: Uma tarefa que não possui uma super-tarefa, e que representa
uma atividade mais complexa, como, por exemplo, um módulo de um projeto.
Deste modo, o software não se preocupa apenas com prazos e em quanto
tempo a tarefa foi realizada, tendo como foco principal a tarefa como um todo.
20

2.4 COMO EVITAR QUE ESTA SOLUÇÃO SE TORNE OUTRO PROBLEMA

É muito comum um sistema ser desenvolvido para solucionar um problema e


acabar gerando outro problema: ele próprio. Muitos sistemas são abandonados por
apresentarem uma usabilidade baixa e uma interface que necessite de muito
treinamento para ser compreendida, o que faz com que o usuário acabe por não
utilizá-lo, pois não consegue perceber qual melhora seu uso trará para seu trabalho.
Apesar desse dado ser de senso comum, muitos sistemas ainda não
priorizam suas interfaces no nível correto, dando mais importância as suas
funcionalidades, o que não é o adequado. Um sistema que funciona mas que
ninguém consegue usar é tão ruim quanto um sistema que não funciona. As
interfaces interferem na qualidade geral do produto na mesma escala que as
funcionalidades, e por isso ambas devem ser levadas igualmente em consideração.
Até os menores detalhes, que geralmente passam despercebidos, interferem
na qualidade das interfaces. Por exemplo, um clique a menos para acessar uma
função de uso corrente pode ter um efeito grande na avaliação do produto por parte
do usuário.
Com isto em mente, é essencial conhecer o perfil de quem utilizará este
sistema e, especialmente, qual o seu modus operandi atual. O software tem que ser
um auxílio ao trabalho, e não apenas um engodo.

2.5 QUAIS PLATAFORMAS SEGUIR?

Em termos de número de usuários de desktops, tanto em escritórios quanto


residencial, o sistema operacional Microsoft Windows é líder incontestável de
mercado, sendo adotado por 91,51% deles, de acordo com NetMarketShare (2013).
Porém, sua participação no mercado vem caindo ao longo dos anos, ao mesmo
tempo em que, como medida de contenção de gastos, cada vez mais empresas
incentivam seus usuários a trazerem seus dispositivos de casa, uma prática
conhecida como BYOD – Bring Your Own Device (traga seu próprio dispositivo, em
tradução livre). Por isso, apesar do domínio absoluto, uma solução multiplataforma
21

se torna essencial, tornando possível atingir a totalidade do público. Mas, em


projetos com custo baixo ou prazo curto, desenvolver vários softwares, para as
várias plataformas existentes, se torna praticamente impossível.
Juntando estes problemas com o fato de que máquinas sem acesso a
internet são cada vez mais raras e que o navegador é o software mais utilizado na
maioria dos computadores percebe-se que não é a toa que a utilização de interfaces
Web é cada vez mais comum. A incompatibilidade entre os browsers se torna cada
vez menor conforme novas versões dos mesmos são lançadas, o que permite que a
interface seja funcional em todas as plataformas, oferecendo a mesma experiência
de uso em todas, com ajustes relativamente pequenos.
Porém, a mobilidade está cada vez mais em destaque, graças a ascensão
dos tablets e, especialmente, dos smartphones, em conjunto com as redes 3/4G,
que permitem que todos estejam conectados a todo momento. Muitas empresas
também fornecem smartphones a seus funcionários, especialmente àqueles que
possuem altas responsabilidades e necessitam ficar de plantão, o que torna as
plataformas móveis tão importante quanto as clássicas, se não mais importantes.
Analisando apenas os números, percebe-se que o mercado de dispositivos
móveis atuais tem um líder absoluto: o Android, com 70% do mercado. Porém, deve
se levar em conta que o Android é uma plataforma livre que engloba dispositivos de
marcas e performances diferentes, desde low-ends, mais baratos, até os high-ends,
top de linha, enquanto seu concorrente direto, o iOS, que detém 22% do mercado,
está presente em apenas uma linha de aparelhos e é voltado exclusivamente para o
mercado high-end (PCMAG, 2013).
Diferente da plataforma clássica, não existe uma solução multi-plataforma
rápida e fácil que englobe tanto os dispositivos rodando Android quanto os que
rodam iOS, pois os aplicativos desenvolvidos puramente em HTML5 ainda possuem
um desempenho sofrível se comparado aos desenvolvidos nas linguagens nativas
das plataformas. Posto isso, fica claro que a melhor forma de se atingir quase a
totalidade do mercado de dispositivos móveis é através do desenvolvimento de
aplicativos nativos separados, um para cada uma das duas plataformas dominantes
(Sealed Abstract, 2013).
22

2.6 POR QUÊ DESENVOLVER UMA API?

Definidas as interfaces, uma Web e dois aplicativos móveis, surge outro


problema: como integrá-las de forma a oferecer as funcionalidades de forma
isonômica em todas as plataformas?
A melhor solução a ser adotada para integrar o servidor com as interfaces
existentes é a construção de uma API – Application Programming Interface. Uma
API nada mais é que uma coletânea de rotinas baseadas na arquitetura REST –
Representational State Transfer, que realizam funções pré-definidas a partir dos
parâmetros recebidos. Como todas as interfaces utilizam-se da mesma API, a
manutenção do código se torna mais fácil, pois basta uma modificação no servidor
para que esta seja refletida imediatamente em todas as interfaces.
Como estas requisições serão transportadas pela Internet, às vezes partindo
de lugares consideravelmente longe do servidor, a quantidade de dados trafegada
deveria ser a menor possível. Para situações assim, a utilização do JSON para o
retorno dos dados em detrimento do tradicional XML surge como uma boa opção,
pois é um formato leve, dinâmico e fácil de lidar, além de ser suportado por todas as
principais plataformas. Um retorno em JSON pode ocorrer até 56 vezes mais rápido
que um retorno com os mesmo dados em XML (NURSEITOV, 2009).
Porém, ao optar pela utilização de uma API, a preocupação com a
segurança deve ser aumentada, tendo em vista que os dados estão mais
vulneráveis. Pensando nisto, a equipe desenvolveu um gerador de chaves que, a
cada logon de um usuário, gera uma chave de sessão única. Esta chave garante o
acesso aos dados do sistema através da API e é desabilitada quando o usuário
efetua logoff do sistema, evitando acessos indesejados. Por este motivo, um usuário
só pode efetuar um login por vez, independente da interface utilizada.
23

3 METODOLOGIA DO PROCESSO DE DESENVOLVIMENTO DO SOFTWARE

Neste capítulo, é apresentada a metodologia de software utilizada no


desenvolvimento do projeto, bem como o planejamento do mesmo, composto pelos
planos de atividade, de risco, de comunicação e as responsabilidades de cada
membro da equipe. Também serão listados os hardwares e softwares que auxiliaram
no desenvolvimento.

3.1 ENGENHARIA DE SOFTWARE

O projeto foi desenvolvido utilizando como base a metodologia ágil Scrum.


Ela foi escolhida por ser uma abordagem mais dinâmica que as tradicionais e
apresentar entregas incrementais.
Para a modelagem do sistema foi utilizada a notação UML 2.0 (Unified
Modelling Language), que é o padrão adotado atualmente no mercado. Ela possui
técnicas de notação gráfica que permitem representar todos os componentes do
sistema através de vários diagramas.
A linguagem de programação utilizada para o servidor e a construção da
interface Web foi o PHP Orientado a Objetos, que foi escolhida porque todos os
membros do projeto já haviam tido experiência com a mesma. Para o
desenvolvimento dos aplicativos Android e iOS foram utilizadas, respectivamente, as
linguagens Java e Objective-C, que são as linguagem padrões para estes sistemas.

3.1.1 Scrum

Scrum é um framework estrutural utilizado para gerenciar projetos


complexos, dentro do qual várias técnicas e processos diferentes podem ser
empregados. É um framework leve, simples de entender e extremamente fácil de
dominar e, por apresentar essas características, vem sendo utilizado no
24

desenvolvimento de projetos desde meados dos anos 90. Basicamente, o Scrum é


dividido em equipes, onde estas estão associadas a seus papéis, eventos, artefatos
e regras, de forma que haja um completo controle sobre os processos de
desenvolvimento (SCHWABER, 2011).

3.1.2 UML

A UML – Unified Modelling Language – é uma linguagem visual que utiliza-


se de diagramas para modelar softwares desenvolvidos seguindo o paradigma da
orientação a objeto. Surgida em 1996 a partir da união das metodologias BOOCH,
OMT e OOSE, muito utilizadas em meados da década de 1990, a UML foi adotada
como padrão para modelagem de software em 1997 pela OMG – Object
Management Group – e está atualmente na versão 2.3 (GUEDES, 2007).

3.1.3 SQL

A SQL – Structured Query Language – foi criada e mais tarde aprimorada


pela IBM, com o intuito de servir como uma linguagem para manipulação de dados
em tabelas relacionais. O primeiro padrão de SQL foi publicado em 1986 pelo
American National Standards Institute (ANSI) e o último em 2006. Com o passar do
tempo, novas funcionalidades foram sendo inclusas na linguagem, como suporte a
bancos de dados orientados a objetos, integração com XML, etc (BEAULIEU, 2009).

3.1.4 PHP Orientado a Objetos

PHP – PHP: Hypertext Processor – é uma linguagem de programação


interpretada muito utilizada para web, pois pode ser mesclada com código HTML.
Seu principal objetivo é permitir o desenvolvimento de páginas dinâmicas que serão
25

geradas rapidamente. Foi criada em 1994 por Rasmus Lerdorf, sendo originalmente
utilizada para computar as visitas ao seu currículo online, e atualmente encontra-se
na versão 5 (PHP.NET, 2013).

3.1.5 HTML/CSS

HTML – Hypertext Markup Language – é a linguagem universal de


publicação utilizada adotada pela World Wide Web. Foi originalmente desenvolvida
por Tim Berners-Lee enquanto ele ainda trabalhava em laboratórios e floresceu em
meados dos anos 1990, junto com a explosão da web. Desde então, o HTML já foi
expandido de inúmeras formas (W3, 1999).
CSS – Cascading Style Sheets – são folhas de estilo que permitem aos
autores anexarem estilos como fontes e espaçamento a documentos estruturados,
como, por exemplo, HTMLs. Separar o estilo do conteúdo do documento auxilia na
manutenção do site (W3, 2011).

3.1.6 JavaScript

JavaScript é uma linguagem de programação extremamente versátil e


vastamente utilizada para tornar páginas web mais interativa, sendo é executada do
lado do cliente, ou seja, no browser. Apesar de possuir Java em seu nome, a única
semelhança entre essas linguagens fica restrito ao nome, pois elas possuem
funcionalidades completamente diferentes (About.com, 2013).

3.1.7 Java

Java é uma linguagem de programação e uma plataforma de computação


lançada pela primeira vez pela Sun Microsystems. Algum tempo depois a linguagem
26

foi comprada pela ORACLE e, desde então, tem sido muito utilizada no mercado
mobile, de desktops e na web. A linguagem é gratuita para download e possui
diversos frameworks especializados em diferentes plataformas, disponibilizados pela
própria ORACLE (Java, 2013).

3.1.8 XML

A XML – Extensible Markup Language – é uma linguagem simples e


bastante flexível derivada do SGML. Foi primeiramente desenvolvida para sanar o
problema da divulgação de informações online em granda escala e atualmente é
amplamente utilizada no design de interfaces do sistema Android e na construção de
APIs, ainda podendo servir como repositório de dados (W3, 2013).

3.1.9 Objective-C

A linguagem de programação Objective-C foi desenvolvida por Brad Cox e


Tom Love no começo da década de 1980 sendo adquirida e licenciada pela NeXT
em 1988, companhia de Steve Jobs que mais tarde seria incorporada a Apple,
sendo utilizada pela empresa de Cupertino até os dias de hoje. Esta linguagem é
derivada das linguagem C ANSI, da qual herdou muitos recursos, e da linguagem
Smalltalk, na qual foi baseada toda a parte referente ao paradigma da orientação a
objetos (LECHETA, 2012).

3.2 PLANO DE ATIVIDADES

O plano de atividades ajuda a estruturar as atividades realizadas ao longo


do projeto. Essas atividades são estruturadas a partir da EAP (Estrutura Analítica de
27

Projetos), que é uma ferramenta de decomposição do projeto em partes menores. A


EAP serve como base para a maior parte do planejamento do projeto.
O Diagrama de Gantt também é utilizado para melhorar o planejamento das
atividades do projeto. É um gráfico que demonstra o avanço das etapas do projeto,
ilustra os prazos de entrega de cada atividade e as responsabilidades de cada
pessoa envolvida no projeto.
Tanto na EAP quanto no Diagrama de Gantt, o projeto é dividido em
módulos de entregas das atividades. Segue abaixo a divisão desses módulos:
• Inicialização: nesta etapa inicial é feita a definição dos requisitos do
software, onde há uma conversa com o cliente, que apresenta os problemas
enfrentados sem o software, como deseja esse software e que problema
quer que este venha a resolver. Após a definição dos requisitos, é realizada
a delimitação do escopo, onde é elaborada toda a documentação, definindo
o escopo do projeto, as tecnologias que serão utilizadas, as metodologias e
é estabelecida toda a arquitetura do sistema.
• Planejamento: na etapa de planejamento são definidos os papéis de cada
membro da equipe assim como suas responsabilidades. É elaborado um
cronograma, com todas as atividades, datas e responsáveis e logo após é
elaborada a EAP. É elaborado um plano de riscos, para a identificação dos
possíveis riscos e problemas a serem enfrentados ao longo do projeto. Para
minimizar estes riscos é desenvolvido um plano de ações. Também é
elaborado um plano de custos nesta etapa, para descobrir o custo total do
projeto, bem como o custo de cada recurso necessário para a realização do
mesmo. Por último, é elaborado o plano de comunicação, para estabelecer a
melhor comunicação possível dentre os membros da equipe.
• Design: inicia-se a elaboração da arquitetura do sistema. São desenvolvidos
os protótipos das telas, tanto da interface web quanto dos aplicativo móveis.
É elaborado o Diagrama de Casos de Uso para se ter uma divisão dos
principais módulos do sistema e saber qual usuário interagirá com quais
módulos. Depois, baseado nos protótipos das telas e no Diagrama de Casos
de Uso, são elaborados os Diagramas de Sequência, que ilustram a
sequência com que as ações executadas na tela interferem no sistema,
demonstrando todas as possibilidades. Logo após, são elaborados os
Diagramas de Classe e Entidade – Relacionamento. Por fim, são
28

especificados os Casos de Uso – uma descrição detalhada de cada um – e


o Banco de Dados é implementado.
• Iteração: essa etapa divide-se em sete Sprints, sendo que cada uma é
composta pela implementação das Interfaces, implementação das
Funcionalidades do Sistema e elaboração e execução dos Casos de Teste.
• Implantação: Etapa em que é instalado o sistema, para ser utilizado pelo
usuário final. Além disso, é realizado o treinamento e o suporte do mesmo.
• Documentação: etapa realizada para maior compreensão do sistema. É
elaborada toda a documentação a ser entregue, que é composta pela
fundamentação teórica, metodologia, desenvolvimento, e apresentação do
sistema, que explica a utilização passo-a-passo do mesmo.
29

3.2.1 EAP

A figura 1 apresenta a EAP – Estrutura Analítica do Projeto, que especifica os módulos nos quais o sistema foi dividido.

FIGURA 1 - ESTRUTURA ANALÍTICA DO PROJETO


30

3.2.2 GANTT

O cronograma do projeto é apresentado nas figuras 2 e 3 e o Gráfico de Gantt, construído a partir deste cronograma, é apresentado na figura 4.

FIGURA 2 – CRONOGRAMA DO PROJETO


31

FIGURA 3 – CRONOGRAMA DO PROJETO (cont.)


32

FIGURA 4 - GRÁFICO DE GANTT


33

3.3 RESPONSABILIDADES

As responsabilidades foram segmentadas e direcionadas para os membros


da equipe conforme suas aptidões. O projeto contou com a orientação e supervisão
da professora Cátia Garcia Morais.
Segue abaixo uma tabela representando as macro-atividades assumidas por
cada um dos integrantes da equipe, conforme especificado detalhadamente no item
3.2.2.

Atividade/Responsável André Bárbara Caroline Edison João


Acompanhamento das Atividades X
Arte Gráfica X X
Definição da Arquitetura X X X X X
Definição da Metodologia X X X X X
Desenvolvimento Mobile X X X
Desenvolvimento Web X X
Elaboração da Documentação X X X X
Elaboração e execução dos testes X
Levantamento dos Requisitos X X X X X
Testes Unitários X X X X X
TABELA 1 - RESPONSABILIDADES
34

3.4 PLANO DE RISCOS

# DESCRIÇÃO DO RISCO CONSEQUÊNCIA AÇÃO MONITORAMENTO PROBABILIDADE IMPACTO

1 Indisponibilidade dos membros da Atraso no cronograma. Em ultimo caso, realizar reuniões via Verificar a disponibilidade de todos os Alta Baixo
equipe para as reuniões. Skype. membros da equipe.

2 Mudança dos requisitos do projeto Atraso no cronograma; Analisar as mudanças solicitadas e Definir um cronograma que seja Baixa Alto
durante a fase de planejamento. Alteração da documentação do projeto; realizar todas as consideradas suficiente para realizar as mudanças
necessárias. necessárias de maneira que atrase o
projeto o mínimo possível.
3 Mudança dos requisitos do projeto Atraso no cronograma; Analisar as mudanças solicitadas, e Definir um cronograma que seja Baixa Alto
durante a fase de implementação. Alteração da documentação do projeto; realizar apenas as estritamente suficiente para realizar as mudanças
Adaptação da parte do projeto já necessárias. necessárias de maneira que atrase o
implementada. projeto o mínimo possível.

4 Falta de abrangência nos testes. Incerteza se os requisitos estão Verificar as funcionalidades do projeto e Verificar se todos os resultados Média Alto
implementados de maneira correta. moldar os testes de acordo com estas obtidos com os testes estão corretos.
funcionalidades.
5 Atrasos nos prazos de entrega dos Atraso no cronograma. Redefinir o cronograma de maneira que Monitorar o cronograma e as entregas Média Médio
protótipos. não atrase a entrega do projeto. para que não ocorra mais atrasos.

6 Insuficiência nos conhecimentos Atraso no cronograma. Mudança de escopo para se adaptar ao Verificar se o conhecimento Baixa Alto
necessários para a realização do conhecimento disponível. disponível é suficiente para a
projeto. realização do projeto.
7 Baixa maturidade dos requisitos do Atraso no cronograma. Toda a fundamentação teórica deve ser Avaliar periodicamente protótipos Baixa Alto
projeto. refeita. junto com o grupo e obter aprovação.
8 Abandono do projeto por algum membro Atraso no cronograma; Reestruturação de todo o projeto, pois é Verificar sempre que possível o Baixa Alta
da equipe. Possibilidade de abandono de toda a preciso refazer todo o cronograma. comprometimento de todos para com
equipe; o projeto.
9 Não cumprimento das atividades por Caso existam atividades dependentes, Completar as atividades o mais rápido Verificar o andamento das atividades Média Alta
algum membro da equipe dentro do estas atrasão e por consequência possível e redefinir o cronograma. de todos os membros da equipe com
prazo estipulado. atrasarão todo o cronograma. frequência.

TABELA 2 - PLANO DE RISCOS


35

3.5 PLANO DE COMUNICAÇÃO

Será descrito nessa área o Plano de Comunicação que será utilizado no


projeto Task Creator & Controller. O Plano de Comunicação serve como guia para a
tomada de decisões dentro da equipe, definindo quem é o interessado, as
informações que lhe serão úteis, quando e como será executada a ação.
Abaixo serão descritas, de maneira mais abrangente, as formas de
comunicação utilizadas neste projeto.

3.5.1 Relação de contatos

A relação dos contatos de cada membro do projeto, que foram utilizados


durante o decorrer do mesmo, encontra-se descrita abaixo:

Área Nome E-mail

UFPR TADS André Gehring Dias de Almeida [email protected]

UFPR TADS Bárbara Abreu Gozzi dos Santos [email protected]

UFPR TADS Caroline de Almeida [email protected]

UFPR TADS Edison Luiz Santiago Machado [email protected]

UFPR TADS João Felipe Oliveira Floriano de Souza [email protected]

UFPR TADS Cátia Garcia Morais [email protected]

TABELA 3 - CONTATOS
36

3.5.2 Reuniões

As reuniões para definições e elaborações do projeto serão dadas conforme


apresentado na tabela 4, a qual lista todas as reuniões pré-programadas para o
mesmo.

Reunião% Frequência% Participantes% Assuntos%

Reunião%de%Orientação% Quinzenal,%as% Cátia% Orientações%gerais%


do%TCC% segundasOfeiras%às% André% do%projeto.%
15:30%durante%todo%o% Bárbara%
projeto% Caroline%
Edison%
João%
Planejamento% Semanal,%as%terçasO André% Delimitação%do%
feiras%ás%13:30% Bárbara% escopo,%análise%das%
Caroline% atividades%
Edison% anteriores%e%
João% definições%das%ações%
futuras.%

Desenvolvimento%WEB% Semanal,%quartas%e% André% Desenvolvimento%


sextasOfeiras% Edison% do%sistema%na%
João% versão%web.%

Desenvolvimento% Semanal,%quartas%e% Bárbara% Desenvolvimento%


Mobile% sextasOfeiras% Caroline% do%sistema%na%
versão%mobile.%

TABELA 4 - REUNIÕES

Ademais das reuniões pré-definidas, é permitido que cada membro


convoque, individualmente, uma nova reunião para tratar de assuntos de caráter
urgente, que não possam ser deixados para a próxima reunião programada.
37

3.5.3 Meios e ferramentas de comunicação

Poderá ser utilizado qualquer meio de comunicação, desde que todos os


membros da equipe possam ser acionados quando necessário.
É recomendável a utilização do correio eletrônico, com os endereços que
estão listados na tabela 4, para questões que precisem ser comunicadas, debatidas
ou analisadas pelo grupo como um todo, válido também para os assuntos de maior
urgência, como convocações para reuniões, dúvidas, alterações em grande escala
no projeto ou outros assuntos de elevada importância.
A ferramenta Dropbox pode, também, ser utilizada para a divulgação de
comunicados urgentes e que envolvam o grupo de maneira geral.
Os assuntos de caráter urgente, assim como os assuntos que envolvam
mais áreas do projeto, devem ser tratados unicamente em reuniões do projeto e com
aprovação maioritária do grupo.

3.5.4 Repositório de documentos

Todos os documentos e arquivos referentes ao projeto (referências,


diagramas, gráficos, código fonte, etc.) deverão ser armazenados na pasta do
Dropbox destinada ao projeto, a qual poderá ser atualizada e acessada por todos os
envolvidos no projeto.

3.6 RECURSOS DE HARDWARE E SOFTWARE UTILIZADOS

Esta seção descreve todos os recursos de software e hardware utilizados


pela equipe durante o decorrer do projeto e que auxiliaram no desenvolvimento do
mesmo.
38

3.6.1 Recursos de hardware

A lista abaixo demonstra todos os recursos de hardware utilizados. Estes,


todos notebooks, foram escolhidos tendo em vista o custo baixo – todos já eram de
posse de algum dos membros do projeto – e a portabilidade, permitindo seu uso não
só individualmente mas também nas reuniões da equipe.
• Notebook 1: MacBook Pro 13’ Late 2011
o Processador: Intel Core i5 @ 2,4Ghz
o Memória RAM: 4GB DDR3
o Placa de Vídeo: Intel HD 3000
o Sistema Operacional: Mac OS X Lion 10.7
• Notebook 2: Samsung 550P5C-AD1
o Processador: Intel Core i7 3630QM @ 2,4Ghz
o Memória RAM: 8GB DDR3
o Placa de Vídeo: NVIDIA GeForce GT 630M
o Sistema Operacional: Windows 7 Ultimate
• Notebook 3: Sony Vaio VPC-SA
o Processador: Intel Core i5 2140M @ 2,3Ghz
o Memória RAM: 6GB DDR3
o Placa de Vídeo: AMD Radeon HD 6630M
o Sistema Operacional: Windows 7 Professional
• Notebook 4: Samsung NP-R480
o Processador: Intel Core i3 @ 2,27Ghz
o Memória RAM: 4GB
o Placa de Vídeo: NVIDIA GeForce 310M
o Sistema Operacional: Windows 7 Ultimate SP1
• Notebook 5: HP Pavillion dv4-2030br
o Processador: Intel Core i3 M330 @ 2,13Ghz
o Memória RAM: 4GB DDR3
o Placa de Vídeo: Intel Onboard
o Sistema Operacional: Windows 7 64 Bits
39

3.6.2 Recursos de software

A lista demonstra os softwares utilizados ao longo do projeto, sua respectiva


função e o porquê foi escolhido.
• Dropbox (multi): Foi utilizado como repositório de todos os arquivos
relacionados ao projeto, tendo em vista que o recursos de Pastas
Compartilhadas permite que todos os membros da equipe tenham acesso
aos arquivos desta pasta através de seus dispositivos, mesmo não
conectados à internet.
• Microsoft Word 2010/For Mac 2011/2013: A aplicação foi utilizada para a
construção da documentação e edição de demais textos relacionados ao
projeto. Escolhido por ser de uso comum de todos.
• Microsoft Excel 2010/For Mac 2011/2013: Utilizado para a construção das
tabelas. Escolhido por já ser conhecido de todos e oferecer mais funções
que softwares semelhantes.
• Astah community (multi): Responsável pela construção dos diagramas de
caso de uso, classe e de sequência. Escolhido por todos os membros já
terem experiência prévia de uso de projetos anteriores.
• Balsamiq Mockups (multi): Desenvolvimento dos protótipos das telas.
Escolhido por ser de uso fácil e rápido.
• MySQL Workbench (multi): Construção do Diagrama Entidade-
Relacionamento. Escolhido pela aparência final do diagrama e por suportar
diagramas relativos a outros bancos de dados.
• WBSTool (multi): Utilizada na construção da Work Breakdown Structure
(EAP) do Plano de Atividades. Escolhida por ser uma aplicação web de fácil
acesso e uso.
• OpenProj (multi): Utilizado para a criação do Gráfico de Gantt, parte do
Plano de Atividades. Escolhido porquê os membros da equipe já possuíam
experiência prévia de uso.
• Eclipse ADT (multi): Desenvolvimento da aplicação para Android. Foi
escolhido por ser o principal aplicativo para este fim.
40

• Xcode (Mac): Desenvolvimento da aplicação para iOS. Escolhido por ser o


principal aplicativo para este fim.
• XAMPP (multi): Servidor local para execução de scripts php, de forma a
auxiliar no desenvolvimento. Escolhido por afinidade prévia de uso oriunda
de projetos anteriores.
• PostgreSQL (multi): Sistema gerenciador de banco de dados. Escolhido por
ser de fácil uso e configuração.
• jQuery: Biblioteca Javascript utilizada no desenvolvimentos das interfaces
web do sistema. Escolhida por possuir todos os recursos necessários para o
projeto.
• JSON: É um subconjunto do Javascript, utilizado para troca de dados. Foi
utilizado por ser a melhor opção para transportar dados entre o servidor e as
interfaces.
• Sublime Text (multi),
Notepad++ (Windows),
TextWrangler (Mac OS): Criação e edição de códigos em html, javascript e
php. Escolhidos de acordo com a preferência de cada membro da equipe.
• Navicat (multi): Gerenciar banco de dados, construindo tabelas, executando
consultas e editando valores. Escolhido por que os membros da equipe já
eram familiarizados com ele.
• Safari (Mac OS),
Google Chrome (multi),
Mozilla Firefox (multi),
Internet Explorer (Windows): Navegadores utilizados para testar e garantir
que os usuários tenham a mesma experiência de uso em todos os
navegadores. Escolhidos por serem os mais utilizados no geral.
41

4 DESENVOLVIMENTO DO PROJETO

Após circunstâncias inesperadas obrigarem a equipe a adiantar a execução


deste projeto, o grupo se reuniu rapidamente para definí-lo. Já estava previamente
definido que seria um sistema web que também poderia ser utilizado através das
plataformas móveis e, após várias ideias serem descartadas, esta proposta foi aceita
por todos os membros do grupo.
Após o aceite, foram organizadas reuniões com o objetivo de amadurecer a
idéia e definir os requisitos do software, que foram apresentados à orientadora. Após
pequenos ajustes, sugeridos por ambas as partes, chegou-se a uma definição.
Com os requisitos definidos, o grupo se reuniu para definir alguns aspectos
técnicos do projeto. Foi decidido em comum acordo que a metodologia a ser
utilizada seria o Scrum, tendo em vista que todos os integrantes estavam dispostos
a utilizar uma metodologia ágil e já possuiam uma noção básica sobre a mesma.
Também foi decidido, com auxílio da orientadora, que seria utilizada a linguagem de
programação PHP orientada a objetos, pois os integrantes do grupo já estavam
familiarizados com ela. Com isso, também foi decidido que as as plataformas móveis
utilizadas seriam Android e iOS, por serem líderes de mercado, e que suas
funcionalidades seriam limitadas, pois o uso do dispositivo móvel não substitui o uso
da interface web – que não contém restrições –, apenas permite a interação do
usuário com as principais funcionalidades mesmo longe do escritório, através de
uma conexão com a internet.

4.1 SOBRE A DOCUMENTAÇÃO

O desenvolvimento do projeto iniciou-se com a elaboração da


documentação. Nesta etapa foram gerados os diagramas de caso de uso e sua
respectiva especificação, de classe, de sequência e de máquina de estados,
juntamente com os protótipos das interfaces, o dicionário de dados e o modelo
lógico do banco de dados. Todos são apresentados a seguir, com exceção dos
diagramas de sequência, que são apresentados no apêndice B e dos protótipos das
42

interfaces, que são apresentados em conjunto com as especificações dos casos de


uso no apêndice A.

4.1.1 Diagrama de Casos de Uso

O Diagrama de Casos de Uso apresentado na figura 5 mostra de maneira ampla as


principais funcionalidades do sistema e quais perfis podem acessá-las.
43

FIGURA 5 - DIAGRAMA DE CASOS DE USO


44

4.1.2 Diagrama de Classes

O Diagrama de Classes, representado na figura 6, demonstra todas as


classes utilizadas no sistema, juntamente com seus respectivos atributos e métodos.

FIGURA 6 - DIAGRAMA DE CLASSES


45

4.1.3 Modelo Lógico do Banco de Dados

A figura 7 contém o modelo lógico do banco de dados, que apresenta uma


visão geral da base de dados utilizada pelo sistema.

FIGURA 7 – MODELO LÓGICO DO BANCO DE DADOS

A partir do modelo lógico foi desenvolvido o modelo físico do banco de dados, que é
apresentado no apêndice C.
46

4.1.4 Dicionário de Dados

As tabelas 5, 6, 7 e 8 apresentam o dicionário de dados referente ao modelo


lógico da figura 7.

Tabela%usuario%

NOME%ATRIBUTO% DESCRIÇÃO% TIPO% REFERÊNCIA% NULL%

id_usuario% Código%único%de%um% INT8% PK% NOT%NULL%


usuário%
id_supervisor% Código%único%do%usuário% INT8% FK% %
do%supervisor%
nome% Nome%do%usuário% VARCHAR(60)% % NOT%NULL%

email% EOmail%do%usuário% VARCHAR(60)% % NOT%NULL%

senha% Senha%do%usuário% VARCHAR(40)% % NOT%NULL%

telefone% Telefone%do%usuário% VARCHAR(13)% % NOT%NULL%

status_usuario% Situação%do%usuário:%0O CHAR% % NOT%NULL%


Bloqueado,%1O
Desbloqueado%
logado% Se%o%usuário%está%logado% CHAR% % NOT%NULL%
no%sistema%no%momento:%
0O%Deslogado,%1O%Logado%
nivel_acesso% Nível%de%acesso%do% CHAR% % NOT%NULL%
usuário:%1O%Funcionário,%
2O%Gerente,%3O%
Administrador%
TABELA 5 - DICIONÁRIO DE DADOS: TABELA USUARIO

Tabela%historico_acesso%

NOME%ATRIBUTO% DESCRIÇÃO% TIPO% REFERÊNCIA% NULL%

id_usuario% Código%único%do%usuário% INT8% PK% NOT%


NULL%

data_logon% Data%em%que%o%usuário% TIMESTAMP% PK% NOT%


fez%logon%no%sistema%
47

NULL%

data_logoff% Data%em%que%o%usuário% TIMESTAMP% % %


fez%logoff%no%sistema%

ip% Ip%da%máquina%que%o% VARCHAR(15)% % NOT%


usuário%utilizou%para% NULL%
fazer%logon%no%sistema%
key% Chave%de%autenticação% VARCHAR(40)% % NOT%
de%acesso% NULL%

TABELA 6 - DICIONÁRIO DE DADOS: TABELA HISTORICO_ACESSO

Tabela%tipo%

NOME%ATRIBUTO% DESCRIÇÃO% TIPO% REFERÊNCIA% NULL%

id_tipo% Código%único%do%tipo% INT8% PK% NOT%


de%tarefa% NULL%

nome_tipo% Nome%do%tipo%de%tarefa% VARCHAR(100)% % NOT%


NULL%

descricao_tipo% Descrição%do%tipo%de% VARCHAR(1000)% % NOT%


tarefa% NULL%

TABELA 7 - DICIONÁRIO DE DADOS: TABELA TIPO

% % Tabela%tarefa%

NOME%ATRIBUTO% DESCRIÇÃO% TIPO% REFERÊNCIA% NULL%

id_tarefa% Código%único%da% INT8% PK% NOT%


tarefa% NULL%

id_usuario_criador% Código%único%do% INT8% FK% NOT%


usuário%que% NULL%
cadastrou%a%tarefa%
id_usuario_resp% Código%único%do% INT8% FK% NOT%
usuário%que%é% NULL%
responsável%pela%
execução%da%tarefa%
id_tipo_tarefa% Código%único%do%tipo% INT8% FK% NOT%
de%tarefa% NULL%
48

id_super_tarefa% Código%único%da% INT8% FK% %


tarefa%mãe%(superO
tarefa)%
titulo% Título%da%tarefa% VARCHAR(60)% % NOT%
NULL%

descricao% Descrição%da%tarefa% VARCHAR(10000)% % NOT%


NULL%

status% Situação%da%tarefa:%0O% CHAR% % NOT%


Cancelada,%1O% NULL%
Rascunho,%2O%Em%
Espera,%3O%Em%
Execução,%4O%
Finalizada%
prioridade% Prioridade%da%tarefa:% CHAR% % NOT%
0OBaixa,%1O%Média,%2O% NULL%
Alta%%
data_sug_inicio% Data%sugerida%para% TIMESTAMP% % NOT%
que%o%usuário%inicie%a% NULL%
tarefa%
data_inicio% Data%em%que%o% TIMESTAMP% % %
usuário%iniciou%a%
tarefa%
data_limite% Data%em%que%a%tarefa% TIMESTAMP% % NOT%
deve%estar%pronta% NULL%

data_final% Data%que%o%usuário% TIMESTAMP% % %


finalizou%a%tarefa%%
data_modificacao% Data%da%última% TIMESTAMP% % NOT%
modificação% NULL%
realizada%na%tarefa%
anexo% Anexos%da%tarefa% VARCHAR(10000)% % %

comentarios% Comentários%do% VARCHAR(10000)% % NOT%


usuário%responsável% NULL%
sobre%a%tarefa%
TABELA 8 - DICIONÁRIO DE DADOS: TABELA TAREFA
49

4.1.5 Diagrama de Máquina de Estados

O Diagrama de Máquina de Estados da figura 8 demonstra todos os estados


que uma tarefa pode assumir dentro do sistema, bem como as transições que
podem ocorrer entre eles.

FIGURA 8 - DIAGRAMA DE MÁQUINA DE ESTADOS


50

4.2 SOBRE O GERENCIAMENTO

Após ter um bom dimensionamento do projeto, foram determinados os


módulos que compõe o sistema e que serviram de base para toda a gerência de
projeto. Nesta etapa, foram elaborados os planos de atividade, risco e comunicação
e estabelecidas as responsabilidades de cada membro do projeto, que serviram
como guia para o resto do processo de desenvolvimento do projeto e foram
apresentados no capítulo 3. As sprints, que foram determinadas a partir dos módulos
definidos de forma a se completarem, são apresentadas a seguir:
Sprint 1 – Gerenciar Usuário: Nesta Sprint serão desenvolvidas as
funcionalidades de Adição, Edição e Bloqueio de Usuário, que só poderão ser
executadas por um usuário com perfil de Administrador.
Sprint 2 – Login: Nesta Sprint será desenvolvida a funcionalidade de Login
do Sistema, que permite que o usuário entre no sistema e acesse as funcionalidades
atribuídas a seu respectivo perfil de acesso.
Sprint 3 – Editar Perfil: Nesta Sprint será desenvolvida a funcionalidade de
Edição do Perfil, em que cada usuário, independente do seu nível de acesso, pode
alterar sua senha.
Sprint 4 – Gerenciar Tipos de Tarefa: Nesta Sprint serão desenvolvidas as
funcionalidades de Adição e Edição dos Tipos de Tarefa, tipos esses que
caracterizam as tarefas.
Sprint 5 – Criar Tarefa Raiz: Nesta Sprint será desenvolvida a funcionalidade
de Criação de Tarefa Raiz, tarefa essa que será a primeira da lista e que possuirá
nenhuma ou várias sub-tarefas.
Sprint 6 – Gerenciar Tarefas: Nesta Sprint serão desenvolvidas as principais
funcionalidades do sistema, sendo: a criação de novas tarefas, a edição dessas
tarefas e o registro do andamento das tarefas, que se dá pela alteração do status da
mesma.
Sprint 7 – Gerar Relatório: Nesta Sprint será desenvolvida a funcionalidade
de Geração de Relatórios, que poderá ser acessada somente pelos usuários com
perfil de Gerente.
51

4.3 SOBRE A IMPLEMENTAÇÃO

Deu-se início a etapa de desenvolvimento do sistema, seguindo o


cronograma especificado no plano de atividades. O desenvolvimento das interfaces
web e dos dispositivos móveis foi feito em paralelo com o back-end, o que gerou a
necessidade de uma boa comunicação entre as equipes de desenvolvimento. Esta
comunicação foi feita através da elaboração de documentos que especificam os
métodos presentes na API que estava sendo construída, o que orientou os
desenvolvedores do front-end neste processo. Esta documentação encontra-se
disponível no apêndice D.
Como a interface web e os dispositivos móveis dependiam do back-end, foi
utilizado um servidor externo, de acesso público na web, para sua hospedagem,
tornando possível o desenvolvimento dos módulos de forma independente, não
limitando a implementação apenas as reuniões.
Ao final de cada sprint foram executados seus respectivos casos de teste
pelos desenvolvedores e aperfeiçoamentos foram realizados a fim de corrigir os
erros encontrados. Após o desenvolvimento de todas as sprints ser concluído foram
elaborados casos de teste integrando todos os módulos e todas as plataformas, a
fim de garantir a sincronização entre os diferentes ambientes e o perfeito
funcionamento do sistema.
Com a conclusão da etapa de teste, foi desenvolvida a apresentação do
software, que se encontra no capítulo 5.
52

5 APRESENTAÇÃO DO SOFTWARE

Neste capítulo será apresentado o sistema Task Creator & Controller (TCC)
como um todo, dispondo de instruções que iniciam na etapa de instalação até a
utilização do sistema.
Serão dadas informações de cada módulo tais como sua relevância para o
sistema, quais usuários possuem acesso ao módulo, quais são suas funcionalidades
e como interagir com suas interfaces; as explicações irão abranger todas as
plataformas (web, Android e iOS), sendo identificado no cabeçalho da mesma os
usuários que possuem acesso e em qual plataforma este módulo está presente.

5.1 INSTALAÇÃO

5.1.1 Servidor/Interface Web

É necessário para o funcionamento do TCC um servidor com o Apache


instalado e um servidor com um banco de dados PostgreSQL instalado (não é
obrigatório serem servidores fisicamente diferentes).
Para realizar a instalação, primeiramente é necessário extrair o arquivo .zip
fornecido para uma pasta pública no servidor que possa ser acessada remotamente
através da web. Depois, através de uma máquina que possua acesso a este
servidor, o usuário deve acessar o arquivo install.html, que fica dentro desta pasta
na qual foi extraído o .zip.
Nesta página, devem ser fornecidos os parâmetros de conexão para o
banco de dados que será utilizado pelo sistema, sendo eles o endereço do servidor
do banco, a porta a ser utilizada, o nome da base de dados e o usuário e senha que
serão utilizados para conectar. Ao clicar em “Concluir Instalação” um esquema “tcc”,
que conterá todas as tabelas utilizadas pela aplicação, será criado no banco de
dados. Caso já exista um esquema com o mesmo nome, ou não for possível
conectar ao banco, o usuário será informado.
53

FIGURA 9 - TELA DE INSTALAÇÃO DO SOFTWARE

Após concluir a instalação do sistema o usuário será redirecionado para a


tela de login, e poderá acessar a interface de administrador do mesmo através da
conta padrão, definida como o usuário [email protected], com a senha qwe123@.
É altamente recomendado que uma nova conta com privilégios de administrador
seja criada e que a conta padrão seja bloqueada.

5.1.2 Aplicativos

Para instalar, o usuário deverá possuir um dispositivo rodando no mínimo


Android 2.3.3 ou iOS 5 e baixar o aplicativo Task Creator & Controller, que estará
disponível nas lojas de aplicativos dos respectivos sistemas operacionais em um
momento oportuno devido aos custos relativamente elevados desta operação. Ao
54

executá-lo pela primeira vez, deverá ser inserido o endereço do host a ser utilizado,
que será salvo.

FIGURA 10 - TELA DE CONFIGURAÇÃO: ANDROID


55

FIGURA 11 - TELA DE CONFIGURAÇÃO: IOS

O endereço do host é /api/, dentro da pasta onde o sistema foi instalado.


Portanto, se o sistema é acessado através de www.empresa.com.br/TCC/, o
endereço do host a ser inserido no aplicativo é www.empresa.com.br/TCC/api/. O
aplicativo validará o endereço e só permitirá seu salvamento após confirmar que ele
está correto. Após esta configuração inicial, o aplicativo abrirá automaticamente na
tela de login.

5.2 USUÁRIO

Neste tópico serão descritas as funcionalidades de acesso, cadastro e


edição de um usuário, assim como também será explicado a utilização das
funcionalidades de busca e de alteração de status de um usuário já cadastrado, será
mostrado também o funcionamento da edição do perfil do usuário.
56

5.2.1 Efetuar login

Usuários que acessam a funcionalidade: Administrador, Gerente e


Funcionário.
Plataformas que possuem a funcionalidade: Sistema web, Android e iOS.

FIGURA 12 - TELA DE LOGIN

Para acessar o Task Creator & Controller é necessário que o usuário esteja
cadastrado e desbloqueado no sistema.
O usuário deve preencher o campo “e-mail” e “senha” com os seus dados de

acesso que foram cadastrados e então apertar o botão .


57

O acesso ao sistema é restrito por perfil de usuário, desta forma após o login
o sistema irá exibir a tela compatível com seu nível de acesso (administrador,
gerente ou funcionário).
O perfil de administrador irá permitir acesso à tela principal de administrador
com os módulos de Usuário e Perfil, presentes no menu de acesso.

FIGURA 13 - TELA INICIAL DO USUÁRIO ADMINISTRADOR


58

O perfil de gerente irá permitir acesso à tela principal de gerente com os


módulos de Criar Tarefa Raiz, Gerar Relatório, Gerenciar Tipos de Tarefa, Gerenciar
Tarefas e Perfil, presentes no menu de acesso.

FIGURA 14 - TELA INICIAL DO USUÁRIO GERENTE


59

O perfil de funcionário irá permitir acesso à tela principal de funcionário com


os módulos de Gerenciar Tarefas e Perfil, presentes no menu de acesso.

FIGURA 15 - TELA INICIAL DO USUÁRIO FUNCIONÁRIO

A cada acesso do usuário no sistema é gerado um registro, com data, hora


e IP do login (não sendo permitido acessos simultâneos com uma mesma conta de
usuário). É possível verificar este histórico de acessos na tela de Perfil.
60

5.2.2 Buscar usuário

Usuários que acessam a funcionalidade: Administrador.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 16 - TELA DE LISTAGEM DE USUÁRIOS

Nesta tela, é possível realizar uma busca dos usuários cadastrados no


sistema. Ao acessar esta página são mostrados todos os usuários cadastrados, 10 a
cada página, bastando apenas clicar na próxima página para visualizar os demais
registros. Para cada usuário, é apresentado um ícone que permite editar e outro que
permite alterar o status do mesmo.
No topo da página há dois parâmetros de pesquisa: um menu de opções
que permite escolher por qual atributo irá fazer a pesquisa e um campo para ser
preenchido com a palavra que deseja fazer a busca. É possível fazer a busca
escolhendo um dos seguintes atributos dos usuários: nome, e-mail, nível de acesso
e status. Ao selecionar um destes atributos deve-se digitar a palavra que deseja
61

encontrar e, conforme o campo vai sendo preenchido, o sistema realiza a busca,


trazendo como resultado os registros que se adequam aos parâmetros passados.

5.2.3 Cadastrar usuário

Usuários que acessam a funcionalidade: Administrador.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 17 - TELA DE CADASTRO DE USUÁRIOS

Para acessar o formulário de cadastro o usuário deve clicar no botão

na tela de listagem de usuários. Acessando esta tela, é possível cadastrar


62

os usuários que irão acessar o sistema, sendo que cada usuário possuirá um nível
de acesso, que pode ser Administrador, Gerente ou Funcionário.
Antes do usuário ser salvo é feito uma validação dos dados, pois todos os
campos do formulário devem ser preenchidos corretamente. O e-mail não pode ter
sido previamente cadastrado, a senha deve conter no mínimo 6 caracteres e deve
ser igual a confirmação de senha. É recomendável que um supervisor seja
selecionado, caso contrário o usuário não será inserido na hierarquia e,
conseuqnetemente, não poderá ter tarefas delegada para si. Para salvar, o usuário

deve-se clicar no botão , e então o sistema salva o usuário, retorna uma


mensagem de cadastro realizado e redireciona para a tela de listagem de usuários.
O usuário é cadastrado com status “Desbloqueado”, já podendo utilizar o sistema.

5.2.3 Editar usuário

Usuários que acessam a funcionalidade: Administrador.


Plataformas que possuem a funcionalidade: Sistema web.
63

FIGURA 18 - TELA DE EDIÇÃO DE USUÁRIO

Para acessar esta tela, basta clicar no ícone na tela de listagem dos
usuários. Nesta tela, é apresentado o formulário preenchido com os dados
anteriormente cadastrados do usuário, permitindo sua edição. Os únicos campos
que o sistema não preenche são os campos “senha” e “confirmação de senha”,
devendo os memesmos serem preenchidos apenas se for desejada a troca da
senha deste usuário.

Para salvar as alterações, deve-se clicar no botão e então o sistema


realizará a mesma validação dos dados que foi realizada na tela de cadastro,
modificará os dados do usuário e retornará para a tela de listagem de usuários. A
64

situação do usuário recém alterado permanece a mesma da qual estava antes da


edição.

5.2.4 Alterar status do usuário

Usuários que acessam a funcionalidade: Administrador.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 19 - TELA DE ALTERAÇÃO DO STATUS DO USUÁRIO

Ao clicar no ícone de alterar status ( para desbloquear usuário, para


bloquear usuário) o sistema abre uma janela de confirmação. Caso o usuário esteja
bloqueado o sistema irá perguntar se realmente quer desbloquear o usuário; caso
contrário, perguntará se realmente quer bloquear o usuário. Um usuário bloqueado
65

não conseguirá acessar o sistema e o status de um usuário pode ser alterado a


qualquer momento.

5.2.5 Editar perfil

Usuários que acessam a funcionalidade: Administrador, Gerente e Funcionário.


Plataformas que possuem a funcionalidade: Sistema web, Android e iOS.

FIGURA 21 - TELA DO PERFIL DO


USUÁRIO: IOS

FIGURA 20 - TELA DO PERFIL DO


USUÁRIO: ANDROID
66

FIGURA 22 - TELA DO PERFIL DO USUÁRIO: WEB

Nesta tela, o usuário logado no sistema pode alterar sua própria senha. Para
isso, é preciso que sejam preenchidos todos os campos: “Senha atual”, “Nova
senha” e “Confirmação de senha”. A “Nova senha” e “Confirmação de senha” devem

ser idênticas e possuir no mínimo 6 caracteres. Ao clicar no botão , o sistema


altera a senha e emite uma mensagem de sucesso.
67

Exclusivamente na versão web, logo abaixo do formulário é disponibilizado o


histórico de acesso do usuário que está logado no sistema. Toda vez que o usuário
acessa o sistema são salvos o IP utilizado, a hora e data do login para que seja feito
um controle, já que logins simultâneos não são permitidos. Quando o usuário realiza
o logout é registrado a data e hora do mesmo e volta a ser permitido a ele realizar
login no sistema.
São mostrados por padrão apenas os 10 registros mais recentes do histórico
de acesso. Caso o usuário deseje ver mais registros, deve clicar no ícone .

5.3 GERENCIAR TIPOS DE TAREFAS

Aqui serão apresentadas as funcionalidades referentes aos tipos de tarefas.


Os tipos são utilizados para categorizar e agrupar as tarefas. Ao criar uma tarefa
deve-se obrigatoriamente selecionar um tipo para a mesma.
No módulo tipo de tarefa, é possível buscar um tipo específico, cadastrar e
editar um tipo de tarefa.
68

5.3.1 Buscar tipo

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 23 - TELA DE LISTAGEM DE TIPOS DE TAREFA

Nesta seção do sistema são listados todos os tipos cadastrados e que


podem ser vinculados às tarefas. A partir desta tela é possível acessar o formulário
de cadastro e edição de um tipo de tarefa.
Para procurar um tipo de tarefa específico basta selecionar o tipo de filtro
por qual deseja buscar – “nome” ou “descrição” – e preencher o campo ao lado com
a palavra que deseja que o sistema busque no banco de dados. Conforme o campo
vai sendo preenchendo o sistema vai, de forma dinâmica, apresentando os
resultados que se encaixam nos parâmetros passados.
69

5.3.2 Cadastrar Tipo

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 24 - TELA DE CADASTRO DE TIPO DE TAREFA

Ao clicar no botão na tela de busca de tipos de tarefas o sistema


redireciona para o formulário de cadastro. Este formulário possui os campos “Nome”
e “Descrição” devendo ambos estarem preenchidos para que o cadastro seja
realizado. O valor preenchido no campo “Nome” não deve ser igual a um nome já
cadastrado para um tipo de tarefa.

Para salvar deve-se clicar no botão . Ao salvar, o sistema retorna uma


mensagem de sucesso e redireciona para a tela de listagem de tipos.
70

5.3.3 Editar tipo de tarefa

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 25 - TELA DE EDIÇÃO DE TIPO DE TAREFA

Para poder editar um tipo de tarefa, o usuário deve acessar a tela de


listagem de tipos e então clicar no ícone . Nesta tela, o sistema traz o formulário
preenchido com os valores cadastrados no banco de dados referente a este do tipo,
permitindo ao usuário a alteração dos mesmos.

Ao se clicar no botão , as mesmas validações que são feitas no


cadastro também são feitas para que seja possível editar os dados do tipo. Se todos
71

os valores passados estiverem corretos o sistema retorna uma mensagem de


sucesso e redireciona para a tela de busca de tipo.

5.4 CADASTRAR TAREFA RAIZ

Neste tópico será explicado o funcionamento do cadastro de uma tarefa raiz.


Tarefa raiz é a tarefa mãe, a partir da qual poderão ser criadas sub-tarefas, que
serão destinadas a outros usuários, que serão responsáveis por sua execução.

5.4.1 Buscar tarefa raiz

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web, Android e iOS.
72

FIGURA 26 - TELA DE LISTAGEM DE TAREFA RAIZ: WEB


73

FIGURA 28 - TELA DE LISTAGEM DE


TAREFA RAIZ: IOS

FIGURA 27 - TELA DE LISTAGEM DE


TAREFA RAIZ: ANDROID

Na tela de listagem de tarefa raiz são listadas 10 tarefas raiz por página, é

apresentado um campo para que o usuário realize uma pesquisa, o botão


para acessar a tela de cadastro, o ícone para alterar o status da tarefa de
“Rascunho” para “Em Espera”, o ícone para descartar um rascunho, o ícone
para editar uma tarefa e o ícone para cancelar uma tarefa, conforme figura 26.
Para realizar uma busca o usuário deve escolher um parâmetro,
selecionando no menu de opções o item pelo qual deseja pesquisar, sendo eles:
titulo, responsável, data de inicio, data limite, prioridade e status. Ao lado está o
campo onde o usuário preenche o valor que deseja pesquisar e, conforme for
preenchendo, o sistema apresenta os resultados que se encaixam nos parâmetros
passados, de forma dinâmica.
74

5.4.2 Cadastrar Tarefa Raiz

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web, Android e iOS.

FIGURA 30 - TELA DE CRIAÇÃO DE


FIGURA 29 - TELA DE CRIAÇÃO DE TAREFA RAIZ: IOS
TAREFA RAIZ: ANDROID
75

FIGURA 31 - TELA DE CRIAÇÃO DE TAREFA RAIZ: WEB

Para poder cadastrar uma tarefa raiz é necessário preencher todos os


campos, menos o “Anexo” – presente apenas na versão web – , que não é
obrigatório. Os campos a serem preenchidos são:
• Título: é o nome da tarefa e deve ser algo sugestivo, pois na listagem das
tarefas é ele que aparece;
• Tipo: os valores que são carregados no menu de opção correspondem aos
tipos que foram cadastrados no sistema;
76

• Responsável: deve ser selecionado um responsável, que será quem irá


executar esta tarefa ou então quem irá subdividí-la para então repassar para
outro funcionário. O menu de opção carrega apenas os subordinados diretos
e o próprio funcionário;
• Prioridade: as opções disponíveis são: alta, média ou baixa. As tarefas com
maiores prioridades devem ser executadas primeiro;
• Data de início: data sugerida para que o responsável inicie a atividade;
• Data Limite: data em que deve ser finalizada a tarefa;
• Descrição: deve ser detalhado neste campo o que o responsável deve
realizar nesta tarefa;
• Anexo: pode-se anexar arquivos necessários para a realização da tarefa ou
então arquivos que ajudem no desenvolvimento. É possível adicionar mais
de um anexo e para removê-lo basta clicar sobre ele.

Após o correto preenchimento, deve-se clicar no botão para salvar a


tarefa. Desta forma, o sistema salva a tarefa com status “Rascunho”, o que significa
que ela ainda não será entregue para o responsável, apenas o criador da tarefa terá
acesso a ela. Enquanto a tarefa estiver com status “Rascunho”, o criador poderá
editá-la e somente quando ela estiver pronta o criador deverá alterar seu status para
“Em espera”. Depois disso, a tarefa irá aparecer para o responsável, podendo já ser
iniciada, e não poderá mais ser editada.

5.5 GERENCIAR TAREFAS

Ao acessar o sistema, a tela apresentada será a de listagem de tarefas,


onde são mostradas as tarefas das quais o usuário é responsável. É possível utilizar
o filtro para selecionar quais tarefas o usuário deseja ver.

Usuários que acessam a funcionalidade: Funcionário e Gerente.


Plataformas que possuem a funcionalidade: Sistema web, Android e iOS.
77

Apesar de o objetivo desta tela ser o mesmo em todas as plataformas, seu


funcionamento difere um pouco entre elas. Por este motivo, elas serão explicadas
separadamente.

5.5.1 Sistema Web

Abaixo serão descritas as funcionalidades do módulo Gerenciar tarefa no


sistema web, especificando a maneira de interagir na listagem de tarefas, no
cadastro e edição de uma sub-tarefa e na alteração de status.
78

5.5.1.1 Listagem das tarefas

FIGURA 32 - TELA GERENCIAR TAREFAS: WEB

Esta tela apresenta um calendário e um formulário que auxiliam o usuário na


filtragem de tarefas conforme os atributos que ele desejar. No lado direito está
presente uma listagem das tarefas que foram designadas para o usuário, ordenadas
por data limite e prioridade, ou seja, as primeiras da lista são as tarefas cujo prazo
que estão mais perto de acabar e possuem maior prioridade. Por padrão, são
mostradas apenas as 10 primeiras tarefas.
79

Na parte superior esquerda da figura 32 está presente o calendário,


bastando selecionar um dia específico para o sistema listas apenas as tarefas cuja
data limite é igual a selecionada.
Logo abaixo do calendário está o formulário de filtrar tarefas, que por padrão
encontra-se em sua forma compacta, expandindo-se ao ser selecionado. O usuário
pode escolher por qual atributo deseja filtrar suas tarefas, podendo filtrar por apenas
um atributo ou combiná-los para fazer uma filtragem mais específica. Para fazer a
filtragem, pelo menos um dos campos deve ser preenchido, sendo estes: título
(preencher o título da tarefa que deseja buscar); tipo (sistema carrega os valores
deste campo com os tipos cadastrados, ao escolher um tipo o sistema irá trazer
todas as tarefas que pertencem ao usuário que são deste tipo); data limite (inserir a
data limite da tarefa que deseja encontrar); prioridade (é possível escolher entre alta
, média e baixa ); status (o usuário pode selecionar cancelada, em execução,
em espera e finalizada). Após preencher os campos que deseja, é necessário clicar

no botão e após isso o sistema recarregará a listagem ao lado com as


tarefas que se enquadram nos parâmetros de filtragem passados pelo usuário.
Para melhor visualização, as tarefas, serão apresentadas inicialmente no
seu modo resumido, mostrando apenas os dados mais relevantes para sua
identificação (título, data de início, data limite, tipo, prioridade e status). Ao lado de
cada tarefa há uma barra de status, que varia do branco até o vermelho – seguindo
a escala de cores – conforme a tarefa vai se aproximando da sua data limite,
representando a urgência com a qual esta tarefa deve ser finalizada.

Ao clicar no ícone de expansão , o sistema apresenta a descrição e os


comentários da tarefa. Somente o usuário responsável pela tarefa pode adicionar
comentário e, toda vez que o comentário é alterado, a data de modificação da tarefa
é atualizado para representar o momento da alteracão.
Caso a tarefa seja também uma sub-tarefa, um ícone de expansão
aparecerá na parte superior e, ao ser clicado, o sistema mostrará os dados da super
tarefa correspondente, não sendo permitido ao usuário qualquer tipo de edição.
Caso a tarefa possua sub-tarefas, um ícone de expansão aparecerá na parte
inferior e, clicando neste ícone, o sistema carrega os dados das sub-tarefas, não
permitindo a edição neste momento.
80

5.5.1.2 Criar e editar sub-tarefas

FIGURA 33 - TELA DE EDIÇÃO E CADASTRO DE SUB-TAREFAS: WEB

É possível acessar a tela de cadastro/edição da sub-tarefa clicando no ícone


da mesma. Ao clicar no ícone, o sistema abre uma nova janela, com todos os
dados da tarefa selecionada e apenas com a descrição omitida, sendo necessário
clicar no ícone de expansão para visualizá-la. As sub-tarefas já cadastradas são
mostradas abaixo, e as que estiverem com o status “Rascunho” ainda podem ser
editadas, bastando editar os campos desejados e clicando no botão . Como
81

estas sub-tarefas em rascunho ainda não foram designadas para o responsável,


elas podem ser descartadas, clicando no botão . Na “caixa” da sub-
tarefa há um menu de opções que permite alterar o status da tarefa de “Rascunho”
para “Em Espera”. As sub-tarefas que não estiverem com o status “Rascunho” não
podem mais ser alteradas.
Na parte inferior esquerda localiza-se se o botão que, ao ser clicado,
apresenta o formulário de cadastro de uma nova sub-tarefa, com os seguintes
campos: título, prioridade, responsável, anexos, descrição, data sugerida de inicio e
data final. A exceção dos anexos, todos os demais campos são obrigatórios e
devem ser preenchidos para que esta sub-tarefa seja salva. Ela é inicialmente salva
com o status “Rascunho” e é automaticamente vinculada a tarefa mãe. Também é
possível adicionar várias sub-tarefas simultaneamente, pois a cada vez que o botão
é clicado o sistema apresenta mais um formulário de cadastro de sub-tarefa,
sendo possível excluir um formulário clicando no botão .

5.5.1.3 Alteração do status da tarefa

Ao clicar no ícone de cancelar uma tarefa , o sistema cancela a tarefa e


todas as suas sub-tarefas, alterando a data de modificação de todas para a data
corrente e não sendo mais permitida a alteração da mesma pelo usuário.
Ao clicar no ícone de iniciação da tarefa , o sistema altera a data de
modificação e a data de inicio para a data corrente e altera o status da tarefa para
“Em Execução”. Para alterar o status para finalizada, quando a mesma for concluída,
o usuário deve clicar no ícone de finalização , e então o sistema irá alterar a data
de término e de modificação da tarefa para a data atual e o status da tarefa passa a
ser “Finalizada”, não podendo mais ser modificado.
82

5.5.2 Aplicativo para Android

Abaixo serão descritas as funcionalidades do módulo Gerenciar tarefa no


sistema Android, especificando a maneira de interagir na listagem de tarefas, na
edição do comentário e no status da tarefa.

5.5.2.1 Listagem das tarefas

FIGURA 34 - TELA GERENCIAR TAREFAS: ANDROID

Ao fazer login no sistema, a tela inicial é a tela que lista as tarefas do


usuário. Inicialmente são carregadas 10 tarefas e as demais são carregadas
conforme o usuário interage pela lista.
Para cada tarefa é mostrado título, data de inicio, prioridade e status, sendo
elas agrupadas por data limite. Em cima de cada tarefa esta presente a barra de
83

status, que permite que o usuário identifique facilmente quais tarefas estão perto da
data de finalização.

5.5.2.2 Filtrar tarefas

FIGURA 35 - TELA FILTRAR TAREFAS: ANDROID

Para acessar a tela “Filtrar Tarefas” é necessário clicar no botão “Menu” do

aparelho e então clicar no ícone . Após isso, o sistema irá apresentar uma tela
como a da figura 32.
Os campos presentes no formulário de pesquisa são:
• Título: sistema filtra as tarefas de acordo com o seu titulo;
• Tipo: sistema carrega uma lista de opções com todos os tipos cadastrados
no sistema. O usuário deve escolher uma das opções;
84

• Data Limite: ao escolher uma data o sistema apresenta todas as tarefas que
possuam a data limite igual a que o usuário definiu;
• Prioridade: usuário pode escolher entre alta, média e baixa;
• Status: usuário pode filtrar as tarefas de acordo com o status, sendo elas,
cancelada, em espera, em execução e finalizada.
É necessário o preenchimento de pelo menos um campo para que o sistema
realize a filtragem. Após o usuário definir os parâmetros, deve clicar no botão

, e então o sistema recarregará a tela de listagem de tarefas apenas com


as tarefas que se encaixam nos parâmetros definidos pelo usuário.

5.5.2.3 Visualização dos detalhes

FIGURA 36 - TELA DETALHES DA TAREFA: FIGURA 37 - TELA DESCRIÇÃO DA


ANDROID TAREFA: ANDROID
85

A partir da tela de listagem de tarefas é possível acessar os detalhes de


cada tarefa apenas clicando sobre a mesma. Após isso, sistema apresenta uma tela
conforme a figura 33, contendo todos os detalhes da tarefa (descrição, prioridade,
status, data inicio, data limite, data da última modificação, comentários, usuário
criador, tipo da tarefa e, se houver, super-tarefa).
Como o campo descrição contém, geralmente, muita informação, ao
selecioná-lo o sistema abre uma nova tela, figura 34, apresentando a descrição
completa da tarefa. Não é permitido ao usuário realizar qualquer alteração e para
retornar para a tela de detalhes da tarefa basta clicar no botão “Voltar” do aparelho.

5.5.2.4 Editar comentário e status da tarefa

FIGURA 38 - TELA DE EDIÇÃO DO FIGURA 39 - TELA DE EDIÇÃO DO STATUS


COMENTÁRIO DA TAREFA: ANDROID DA TAREFA: ANDROID
86

Estando na tela de detalhes de uma tarefa, é possível acessar a tela de


editar comentário e alterar status da tarefa. Para isso o usuário deve clicar sobre o
campo “Comentário” ou sobre o campo “Status”.
Selecionando o campo “Comentário”, o sistema apresenta uma interface
como a figura 35, que possui um campo de texto já preenchido com o comentário
salvo. É permitido que o usuário edite o comentário, e após ser feita a alteração o

usuário deve clicar no botão . O sistema salva a alteração e volta para a tela
de detalhes da tarefa.
Ao selecionar o campo “Status”, abre-se a tela de edição de status,
apresentada na figura 36. Nesta tela está presente o status atual da tarefa e o status
para qual ela pode ser alterada, pois uma tarefa que esteja com status “Em
Rascunho” só pode ser alterara para “Em Espera”, bem como tarefas com status
“Em Espera” só poderão passar para “Em Execução”, e tarefas “Em Execução” só
podem mudar para o status “Finalizada”. Para alterar o status da mesma, basta
clicar no botão “Mudar para ...”.

5.5.3 Aplicativo para iOS

Abaixo serão descritas as funcionalidades do módulo Gerenciar tarefa no


sistema iOS, especificando a maneira de interagir na listagem de tarefas, na
visualização dos detalhes de uma tarefa, na edição do comentário e no status da
tarefa.
87

5.5.3.1 Listagem das tarefas

FIGURA 40 - TELA GERENCIAR TAREFAS: IOS

Ao se conectar no sistema, a página incial é a listagem de tarefas e caso o

usuário esteja em outra página e queira voltar a ela deve-se clicar no ícone . Na
tela de listagem de tarefas, estão listadas apenas as tarefas do usuário conectado,
agrupadas de acordo com suas datas limites, sendo que as primeiras tarefas da lista
são as que estão mais perto do fim do prazo de finalização. Entre as tarefas que
possuem a mesma data limite, o critério de desempate é a prioridade da tarefa,
sendo que as mais altas aparecem primeiro, seguidos pelas médias e por último as
mais baixas. Inicialmente, o sistema carrega as 10 primeiras tarefas, e mais são
carregadas conforme a navegação do usuário.
Na listagem, os atributos mostrados de cada tarefa são: título, data de inicio,
prioridade e status. Assim como no sistema web e no Android, no iOS também é
mostrado a barra de status da tarefa, que fica mais vermelha conforme o prazo de
finalização da tarefa se aproxima.
88

5.5.3.2 Filtrar tarefas

FIGURA 41 - TELA FILTRAR TAREFAS: IOS

Na parte superior esquerda da tela de listagem de tarefas há o ícone , que


ao ser clicado abre a tela de Filtrar Tarefas.
Nesta tela, o aplicativo apresenta um formulário com os seguintes campos:
título, para ser preenchido com o título da tarefa que se deseja buscar; tipo, para
mostrar apenas as tarefas do tipo selecionado; data, para filtrar apenas as tarefas
que contenham a data limite igual a data selecionada; status, para filtrar as tarefas
de acordo com o status selecionado.
Para realizar a filtragem das tarefas, é necessário preencher pelo menos um
campo. Quanto mais campos forem preenchidos, mais especifica fica a filtragem.

Após preencher os campos desejados, basta clicar no botão na parte superior


esquerda da tela que o sistema atualizará a listagem para mostrar apenas as tarefas
que correspondem ao filtro preenchido pelo usuário.
89

5.5.3.3 Visualização dos detalhes

FIGURA 42 - TELA DETALHES DA TAREFA: FIGURA 43 - TELA DESCRIÇÃO DA


IOS TAREFA: IOS

Para visualizar os detalhes de uma tarefa, basta clicar nela na tela de


listagem. O aplicativo então abrirá a tela da figura 39, onde são mostrados todos os
dados da tarefa: título, prioridade, status, data de inicio, data limite, comentários,
data da última modificação da tarefa, seu criador, tipo e sua tarefa raiz (se houver).
Ao clicar no campo descrição, o sistema abre uma nova tela, apresentada
na figura 40. Esta tela mostra por inteiro a descrição da tarefa e não é permitida a

edição. Para voltar à tela de informações da tarefa, basta clicar no botão na


parte superior esquerda da tela.
90

5.5.3.4 Editar comentário e status da tarefa

FIGURA 44 - TELA DE EDIÇÃO DO FIGURA 45 - TELA DE EDIÇÃO DO STATUS


COMENTÁRIO DA TAREFA: IOS DA TAREFA: IOS

Para se acessar a tela de edição de status e edição do comentário de uma


tarefa, deve-se primeiro acessar a tela de detalhes de uma tarefa, conforme
explicado na subseção 5.5.3.3. Uma vez na tela de detalhes da tarefa é possível
clicar no campo “Comentário”, e então o sistema abrirá a tela de edição do
comentário, preenchido com o comentário atualmente salvo e permitindo sua edição,
conforme figura 41.
Para editar o status, deve-se clicar no campo “Status”, e então o sistema
abriear a tela de edição de status, mostrada na figura 42. Nesta tela está presente o
status atual da tarefa e o status para qual ela pode ser alterada, pois uma tarefa que
esteja com status “Em Rascunho” só pode ser alterada para “Em Espera”, enquanto
que tarefas com status “Em Espera” só poderão passar para “Em Execução” e
tarefas com status “Em Execução” só poderão passar para “Finalizada”. Para alterar
o status basta clicar no botão “Mudar para ...”.
91

5.6 RELATÓRIOS

Neste módulo, é possível visualizar diferentes tipos de relatórios, através


dos quais é possível ter uma visão geral do andamento das atividades e do
desempenho dos funcionários.

Usuários que acessam a funcionalidade: Gerente.


Plataformas que possuem a funcionalidade: Sistema web.

FIGURA 46 - TELA DE RELATÓRIOS

Conforme mostra a figura 46, os relatórios são gerados a partir da escolha


de uma categoria de relatório, podendo ela ser “Tarefas”, “Subordinados” ou “Tipos”.
Ao escolher uma categoria o usuário está selecionando o enfoque do relatório que
deseja que seja gerado.
Ao escolher a categoria “Tarefas”, o sistema apresenta outro menu de
opções, tipo de relatório, no qual o usuário deve selecionar entre “Tarefas
Recebidas” - sistema gera um relatório sobre as tarefas que foram criadas para o
92

usuário - e “Tarefas Criadas” – sistema gera um relatório sobre as tarefas que foram
criadas pelo usuário.
Outra opção de categoria é “Subordinado”, e ao selecioná-la o sistema
apresenta um novo menu de opções no qual o usuário deve selecionar entre
“Desempenho Individual” – sistema gera um relatório sobre as tarefas executadas
por um de seus subordinados ou por ele próprio – e “Desempenho Geral”, que
agrupa os relatórios individuais em um único, fornecendo ao gerente uma visão geral
de sua área.
A última opção de categoria é “Tipos”, que possui um único relatório –
utilização dos tipos – que demonstra de quais tipos mais tarefas foram criadas.
Após o usuário selecionar os filtros de acordo com o relatório que deseja ele
obrigatoriamente deve selecionar uma data de inicio e uma data final, formando um
período, para que o sistema gere o relatório apenas sobre os registros referentes ao
período selecionado. Após o preenchimento de todos os campos, o usuário deve

clicar no botão e então o sistema apresentará os dados do relatório logo


abaixo dos menus de opção dos relatórios.
93

6 CONSIDERAÇÕES FINAIS

A equipe começou o desenvolvimento deste projeto sem todos os


conhecimentos necessários para concluí-lo, porém isto não foi um problema. Todos
os membros estavam dispostos a adquirir novos conhecimentos, pois sabem que a
melhor forma de aprender algo é fazendo, e este projeto era a chance ideal para
isso. Apesar do risco, isto não atrasou o desenvolvimento do projeto e acabou
servindo como elemento motivador para a equipe.
Atrasos ocorreram, pois algumas sprints possuírem uma complexidade
maior que o esperado, fazendo com que o tempo planejado para seu
desenvolvimento não fosse suficiente. Apesar disso, não houve nenhum grande
dano ao projeto, pois o cronograma foi intencionalmente elaborado com folga – de
forma a minimizar situações como essas – e os membros da equipe aproveitaram
momentos mais tranquilos durante o processo para antecipar a execução de
algumas tarefas que antes estavam previstas para o final do projeto.
A integração entre a equipe se mostrou muito forte, assim como a dedicação
de todos com relação a este projeto. A maioria absoluta das reuniões ocorreu com
todos os membros presentes e foram sempre marcadas por muitos diálogos e
sugestões, com todos os participantes abertos a críticas, o que interferiu diretamente
na qualidade do produto final.
Este projeto também foi uma ótima oportunidade para os membros da
equipe praticarem os conhecimentos adquiridos no curso de Tecnologia em Análise
e Desenvolvimento de Sistemas pois, apesar de todos os membros já fazerem
estágio, nenhum nunca havia participado tão ativamente de um projeto deste porte.
Algumas melhorias podem ser aplicadas futuramente neste software, como:
adição de mais recursos nos aplicativos móveis, valorizando ainda mais o poder que
a mobilidade tem hoje em dia; expansão para plataformas móveis ainda não
atingidas, cuja implementação será menos complexa que os aplicativos originais,
tendo em vista que a API já está completa; uma visualização expandida das tarefas,
permitindo ao gerente uma análise completa da árvore de tarefas de forma a
identificar ainda mais rapidamente os pontos fracos e evitar que um problema
localizado se espalhe por toda esta árvore.
94

REFERÊNCIAS

About.com: What Is Javascript? Disponível em:


<http://javascript.about.com/od/reference/p/javascript.htm>. Acesso em: 19/07/2013.

BEAULIEU, A. Learning SQL, 2nd Edition. O’Reilly, 2009.

DEITEL, P.; DEITEL, A.; DEITEL, H.; MORGANO, M. Android para


programadores: uma abordagem baseada em aplicativos. Porto Alegre :
Bookman, 2013.

GUEDES, G. T. A. UML 2: guia prático. São Paulo : Novatec Editora, 2007.


Java: O que é a tecnologia Java e por que é necessária? Disponível em:
<http://www.java.com/pt_BR/download/faq/whatis_java.xml>. Acesso em:
19/07/2013.

LECHETA, R. R. Desenvolvendo para iPhone e iPad. São Paulo : Novatec Editora,


2012.

NetMarketShare: Market Share for mobile, browsers, operating systems and


search engines. Disponível em: <http://www.netmarketshare.com>. Acesso em:
17/07/2013.

NIEDERAUER, J. XML: Guia de consulta rápida. Novatec Editora, 2002.

NURSEITOV, N.; PAULSON M.; REYNOLDS, R.; IZURIETA, C. Comparison of


JSON and XML Data Interchange Formats: A Case Study. Montana University,
2009.

PCMAG: iOS e Android dividem percentual recorde do mercado de


smartphones em 2012. Disponível em:
<http://www.pcmag.com.br/noticias/negocios/ios-e-android-dividem-percentual-
recorde-do-mercado-de-smartphones-em-2012>. Acesso em: 17/07/2013.

PHP.NET: Manual do PHP. Disponível em: <http://www.php.net/manual/>. Acesso


em: 17/07/2013.
95

SCHWABER, K.;SUTHERLAND, J. Guia do Scrum: Um guia definitivo para o


Scrum: As regras do jogo. Scrum.org, 2011.

Sealed Abstract: Why mobile apps are slow. Disponível em:


<http://sealedabstract.com/rants/why-mobile-web-apps-are-slow/>. Acesso em:
19/07/2013.

W3: Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification.


Disponível em: <http://www.w3.org/TR/CSS2/>. Acesso em: 17/07/2013.

W3: Extensible Markup Language (XML). Disponível em:


<http://www.w3.org/XML/>. Acesso em: 19/07/2013.

W3: HTML 4.01 Specification. Disponível em: <http://www.w3.org/TR/REC-


html40/>. Acesso em: 17/07/2013.
96

APÊNDICE A – ESPECIFICAÇÃO DOS CASOS DE USO

UC001 – EFETUAR LOGIN

Descrição
Este caso de uso serve para efetuar login no sistema, garantindo acesso a
todas as funcionalidades de acordo com o perfil do usuário (Funcionário, Gerente ou
Administrador).

FIGURA 47 - PROTÓTIPO: TELA DE LOGIN

Pré-condições
Este caso de uso pode iniciar somente se:
1. O Usuário acessar o sistema web pelo navegador através do link correto.
97

Pós-condições
Após o fim normal deste caso de uso, o sistema deve:
1. Ter garantido acesso ao usuário, conforme seu perfil de acesso no sistema.

Ator Primário
Usuário.

Fluxo de Eventos Principal


1. O sistema apresenta a tela da figura 47;
2. O Usuário preenche o campo “E-mail”;
3. O Usuário preenche o campo “Senha”;
4. O Usuário clica no botão “Entrar”;
5. O sistema valida as informações de Login; (E1) (E2) (E3)
6. O sistema verifica o perfil do usuário; (A1)(A2)
7. O sistema efetua o login do Usuário com sucesso;
8. O Caso de Uso é finalizado.

Fluxos Alternativos
A1: Usuário efetua login com Perfil de Administrador
1. O sistema carrega o UC002 – Gerenciar Usuários e apresenta o menu de
funcionalidades de acordo com o perfil Administrador;
2. O Caso de Uso é finalizado.
A2: Usuário efetua login com Perfil de Gerente ou Funcionário
1. O sistema carrega o UC004 – Gerenciar Tarefa e apresenta o menu de
funcionalidades de acordo com o perfil Funcionário ou Gerente;
2. O Caso de Uso é finalizado.

Fluxos de Exceção
E1: Email e⁄ou Senha incorretos
1. O sistema exibe a mensagem “E-mail de usuário incorreto ou senha
incorreta.”;
2. O Usuário clica em "OK";
3. O sistema limpa os campos “E-mail” e “Senha”;
4. O Caso de Uso é reiniciado.
98

E2: Botão “Entrar” pressionado com um dos campos sem preenchimento


1. O sistema exibe a mensagem “Favor preencher todos os campos.”;
2. O Usuário clica em "OK";
3. O Caso de Uso é reiniciado.
E3: Usuário com status Bloqueado
1. O sistema exibe a mensagem “Usuário bloqueado.”;
2. O Usuário clica em "OK";
3. O sistema limpa os campos “E-mail” e “Senha”;
4. O Caso de Uso é reiniciado.
99

UC002 – GERENCIAR USUÁRIOS

Descrição
Este caso de uso permite que usuários com perfil de acesso Administrador
cadastrem e editem os dados e acesso dos funcionários que irão interagir com o
sistema.

FIGURA 48 - PROTÓTIPO: TELA DE LISTAGEM DE USUÁRIOS


100

FIGURA 49 - PROTÓTIPO: TELA DE CADASTRO DE USUÁRIO


101

FIGURA 50 - PROTÓTIPO: TELA DE EDIÇÃO DE USUÁRIO

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário com perfil de acesso Administrador estiver logado no sistema.

Pós-condições
Após o fim normal deste caso de uso o sistema poderá:
1. Ter pesquisado um usuário no sistema.
2. Ter cadastrado um usuário no sistema.
3. Ter alterado os dados de um usuário no sistema.
4. Ter alterado o status do usuário.

Ator Primário
Administrador.
102

Fluxo de Eventos Principal


1. O sistema carrega a lista de usuários do banco de dados; (E1)
2. O sistema apresenta a tela da figura 48;
3. O Administrador clica no botão “Adicionar”; (A1)(A2)(A3)
4. O sistema carrega a tela da figura 49 com o formulário em branco;
5. O usuário preenche os campos; (A4)
6. Valida todos os campos do formulário;
7. O usuário clica no botão “Salvar”; (A4)(E2)(E3)(E4)(E5)
8. O sistema exibe a mensagem “Cadastro efetuado com sucesso!”;
9. O sistema retorna para a tela da figura 48.

Fluxos Alternativos
A1: Box selecionado
1. O Administrador seleciona no combobox um campo (nome, email, nível de
acesso ou status) do qual deseja fazer a pesquisa;
2. O Administrador preenche o campo com um valor que deseja buscar;
3. A medida que o campo é preenchido ou apagado, a lista de usuário na tela é
filtrado.
A2: Ícone “Editar” pressionado
1. O Administrador clica no ícone “Editar” de um registro;
2. O sistema carrega a tela da figura 50 com o formulário preenchido com os
dados do usuário selecionado;
3. O Administrador altera os campos que desejar; (A4)
4. O Administrador clica no botão “Salvar”; (A4)(E2)(E3)(E4)(E5)
5. O sistema valida os campos do formulário;
6. O sistema exibe a mensagem “Alteração efetuada com sucesso!”;
7. O caso de uso é reiniciado.
A3: Ícone “Alterar status” clicado
1. O Administrador clica no ícone “Alterar status” de um registro;
2. O sistema apresenta uma tela de confirmação;
3. O Administrador clica no botão “Sim” confirmando a exclusão; (A5)
4. Sistema altera o status do usuário selecionado para bloqueado ou
desbloqueado;
5. O caso de uso é reiniciado.
103

A4: Botão “cancelar” pressionado


1. O Administrador clica no botão “Cancelar”;
2. O caso de uso é reiniciado.
A5: Botão “Não” pressionado
1. O Administrador clica no botão “Não”;
2. Sistema não altera o status do usuário selecionado.
3. O caso de uso é reiniciado.

Fluxos de Exceção
E1: Não há nenhum usuário cadastrado
1. O sistema exibe a mensagem “Não há registros cadastrados”;
2. Sistema não mostra a tabela dos registros.
E2: Administrador não preenche todos ou alguns dos campos
1. O sistema exibe mensagem ao lado dos campos não preenchidos;
2. Administrador clica no botão “Ok”;
E3: Administrador preenche um e-mail inválido
1. O sistema exibe a mensagem ao lado do campo mostrando que o email é
invalido;
2. Sistema retorna para o formulário que o administrador estava preenchendo.
E4: Administrador preenche um e-mail já cadastrado.
1. O sistema exibe a mensagem ao lado do campo indicando que o email já esta
cadastrado;
2. Sistema retorna para o formulário que o administrador estava preenchendo.
E5: Valores de “Senha” e “Confirmação senha” não são iguais
1. O sistema exibe a mensagem ao lado dos campos de senha “A Senha e a
Confirmação de senha devem ser iguais”;
2. Sistema retorna para o formulário que o administrador estava preenchendo.
104

UC003 – GERENCIAR TIPOS DE TAREFA

Descrição
Este caso de uso permite que usuários com perfil de acesso Gerente
cadastrem e editem os tipos de tarefas, que serão vinculadas à uma tarefa.

FIGURA 51 - PROTÓTIPO: TELA DE LISTAGEM DE TIPOS DE TAREFA


105

FIGURA 52 - PROTÓTIPO: TELA DE CADASTRO DE TIPO DE TAREFA


106

FIGURA 53 - PROTÓTIPO: TELA DE EDIÇÃO DE TIPO DE TAREFA

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário com perfil de acesso Gerente estiver logado no sistema.

Pós-condições
Após o fim normal deste caso de uso o sistema poderá:
1. Ter pesquisado um tipo de tarefa no sistema.
2. Ter cadastrado um tipo de tarefa no sistema.
3. Ter alterado os dados de um tipo de tarefa no sistema.

Ator Primário
Gerente.
107

Fluxo de Eventos Principal


1. O sistema carrega a lista de tipos de tarefa do banco de dados; (E1)
2. O sistema apresenta a tela da figura 51;
3. O gerente clica no botão “Adicionar”; (A1)(A2)(A3)
4. O sistema carrega a tela da figura 52 com o formulário em branco;
5. O gerente preenche os campos; (A3)
6. O gerente clica no botão “Salvar”; (A3)(E2)(E3)
7. O sistema exibe a mensagem “Cadastro efetuado com sucesso!”;
8. O sistema retorna para a tela da figura 51.

Fluxos Alternativos
A1: Barra de pesquisa
1. O gerente preenche o campo com um valor que deseja buscar;
2. O sistema filtra os registros de tipos de tarefa que se enquadram nos
parâmetros passados, a medida que são digitados.
3. O sistema retorna na tabela da tela da figura 51 o resultado da pesquisa. (E3)
4. O caso de uso retorna ao fluxo principal.
A2: Ícone “Editar” pressionado
1. O gerente clica no ícone “Editar” de um registro;
2. O sistema carrega a tela da figura 53 com o formulário preenchido com os
dados do tipo de tarefa selecionado;
3. O gerente altera os campos que desejar; (A3)
4. O gerente clica no botão “Salvar”; (A3)(E2)(E3)
5. O sistema exibe a mensagem “Alteração efetuada com sucesso!”;
6. O caso de uso é reiniciado.
A3: Botão “cancelar” pressionado
1. O gerente clica no botão “Cancelar”;
2. O caso de uso é reiniciado.

Fluxos de Exceção
E1: Não há nenhum tipo de tarefa cadastrado
1. O sistema exibe a mensagem “Não há registros cadastrados”;
2. Sistema não mostra a tabela dos registros.
108

E2: Gerente não preenche todos os campos


1. O sistema exibe a mensagem “Todos os campos são obrigatórios”;
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o gerente estava preenchendo.
E3: Gerente preenche um nome já cadastrado.
1. O sistema exibe a mensagem “O nome que foi preenchido já está
cadastrado”;
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o gerente estava preenchendo.
E4: Pesquisa não retorna nenhum registro
1. O sistema exibe a mensagem “Não há registro cadastrado com os parâmetros
passados”;
Sistema não mostra a tabela dos registros.
109

UC004 – GERENCIAR TAREFA

Descrição
Este caso de uso permite que usuários com perfil de acesso Funcionário e
Gerente cadastrem, editem e excluam sub tarefas e visualizem super tarefas,
podendo assim gerenciar e controlar suas tarefas.

FIGURA 54 - PROTÓTIPO: TELA GERENCIAR TAREFAS


110

FIGURA 55 - PROTÓTIPO: TELA DE LISTAGEM DA SUPER TAREFA


111

FIGURA 56 - PROTÓTIPO: TELA DE LISTAGEM DAS SUB-TAREFAS


112

FIGURA 57 - PROTÓTIPO: TELA GERENCIAR SUB-TAREFAS

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário com perfil de acesso Funcionário ou Gerente estiver logado no
sistema.

Pós-condições
Após o fim normal deste caso de uso o sistema poderá:
1. Ter filtrado tarefas por título, tipo, data limite, prioridade ou status.
2. Ter visualizado sua Super Tarefa e suas Sub Tarefas.
3. Ter criado uma nova Sub Tarefa.
4. Ter editado uma Sub Tarefa existente.
5. Ter mudado o status de uma Tarefa para ‘Em Execução’, ‘Finalizada’ ou
‘Cancelada’.
113

Ator Primário
Funcionário.

Fluxo de Eventos Principal


1. O sistema carrega as tarefas no modo compacto. A ordem de exibição das
tarefas é caracterizada pela data limite e pela prioridade da tarefa.
2. O Usuário clica no ícone de expansão “sub-tarefas”. (A1)(A2)(A4)
3. O sistema carrega as Sub Tarefas (Tela da figura 56).
4. O Usuário visualiza as informações. (A5)
5. O Usuário clica no ícone “Finalizar Tarefa”. (A4)
6. A SubTarefa é finalizada.

Fluxos Alternativos
A1: ìcone de expansão “SuperTarefa” pressionado
1. O sistema mostra as informações da Super Tarefa (Tela da figura 55).
2. O usuário visualiza as informações. (A5)
3. O caso de Uso retorna ao fluxo principal.
A2: Botão “Alterar Status” pressionado
1. Se o status atual da tarefa é “Em Espera”, o status é alterado para “Em
Execução”. Se o status atual é “Em Execução”, o status é alterado para
“Finalizada”.
2. O sistema retorna ao Fluxo Principal.
A3: Botão “Adicionar SubTarefas” é pressionado
1. O sistema abre a tela de “Adicionar SubTarefas” (Tela da figura 57).
2. O sistema carrega a Super Tarefa.
3. O Funcionário preenche os dados referentes à nova subtarefa, como título da
tarefa e descrição. (A8)
4. Seleciona uma data de Inicio (E2) e uma data Limite (E3).
5. Seleciona a prioridade no ComboBox.
6. O Funcionário clica no botão “Salvar”. (A7)
7. O sistema retorna uma mensagem “Tarefa adicionada com sucesso”. (E1)
8. O sistema retorna ao Fluxo Principal.
114

A4: Ícone “Cancelar Tarefa” é pressionado


1. O sistema muda o status da tarefa e , se tiver, das suas sub-tarefas para
“Cancelada”.
2. A tarefa é fechada.
3. O sistema retorna ao Fluxo Principal.
A5: Botão “Descrição/Comentário” é pressionado
1. O sistema carrega dos dados referentes à Descrição e o Comentário da
Tarefa.
2. O sistema retorna ao Fluxo Principal.
A6: Botão “Filtrar” é pressionado
1. O Funcionário deve ter preenchido as informações desejadas relacionadas à
tarefa que deseja filtrar. Poderá filtrar pelo Título da Tarefa, pelo Tipo da
Tarefa, pela Data Limite, pela Prioridade ou pelo Status.
2. O sistema retorna as tarefas referentes àquela pesquisa.
3. O caso de Uso é reiniciado agora com a exibição das tarefas caracterizada
pelo resultado do filtro realizado.
A7: Botão “Adicionar” é pressionado
1. O sistema mostra um novo formulário em branco para que o Funcionário
possa preencher os dados referentes à nova tarefa.
2. O sistema retorna ao Fluxo Principal.
A8: Ícone “Anexo” é pressionado
1. O sistema pede que o usuário selecione o arquivo de anexo desejado.
2. O Funcionário seleciona o arquivo e aperta no botão “Selecionar”. (A9)
3. O sistema retorna ao Fluxo Principal, agora com um arquivo anexado.
A9: Botão “Cancelar Arquivo” é pressionado
1. A janela é fechada.
2. O sistema não anexa o arquivo.
3. O sistema retorna ao Fluxo Principal.

Fluxos de Exceção
E1: Funcionário não preenche todos os campos
1. O sistema exibe a mensagem “Todos os campos são obrigatórios”;
2. Funcionário clica no botão “Ok”;
3. Sistema retorna para o formulário que o funcionário estava preenchendo.
115

E2: Funcionário seleciona uma data de Inicio menor que a data atual
1. O sistema exibe a mensagem “Data Inválida”
2. Funcionário clica no botão “Ok”;
3. Sistema retorna para o formulário que o funcionário estava preenchendo.
E3: Funcionário seleciona uma data Limite menor que a data de Inicio
1. O sistema exibe a mensagem “Data Limite deve ser maior ou igual à data de
Inicio”
2. Funcionário clica no botão “Ok”;
3. Sistema retorna para o formulário que o funcionário estava preenchendo.
116

UC005 – GERAR RELATÓRIO

Descrição
Este caso de uso é iniciado quando um gerente clica no item de menu
“Relatórios”, podendo assim gerar relatórios desejados.

FIGURA 58 - PROTÓTIPO: TELA DE RELATÓRIOS

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário com perfil de acesso gerente estiver logado no sistema.

Pós-condições
Após o fim normal deste caso de uso o sistema irá:
1. Ter gerado relatórios de acordo com a preferencia do usuário.
117

Ator Primário
Gerente.

Fluxo de Eventos Principal


1. O sistema abrirá a tela de relatório representada na figura 58.
2. O gerente selecionará o tipo de relatório que deseja gerar;
3. O gerente seleciona uma data de inicio.
4. Gerente seleciona uma data final. (E1)
5. O relatório será gerado (A1).

Fluxos Alternativos
A1: Ícone “PDF” pressionado.
1. O sistema gera um arquivo PDF do relatório mostrado na tela. (E2)
2. O sistema retorna ao Fluxo Principal.

Fluxos de Exceção
E1: Gerente seleciona uma data de fim menor que a data de Inicio.
1. O sistema exibe a mensagem “Data Fim deve ser maior ou igual à data de
Inicio”
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o gerente estava preenchendo.
E2: Sistema não consegue gerar o arquivo PDF.
1. O sistema dá uma mensagem de erro “PDF não pôde ser gerado”.
2. O sistema retorna ao Fluxo Principal.
118

UC006 – GERENCIAR TAREFA RAIZ

Descrição
Este caso de uso é iniciado quando um gerente clica no botão “Tarefas Raiz”
na tela principal, abrindo a tela com todas as Tarefas Raiz criadas por ele.

FIGURA 59 - PROTÓTIPO: TELA DE LISTAGEM DE TAREFA RAIZ


119

FIGURA 60 - PROTÓTIPO: TELA DE CRIAÇÃO DE TAREFA RAIZ

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário com perfil de acesso Gerente estiver logado no sistema.

Pós-condições
Após o fim normal deste caso de uso o sistema irá:
1. Ter permitido a criação de uma nova Tarefa Raiz.
2. Ter editado uma tarefa raiz.
3. Ter descartado um rascunho.
4. Ter salvo um rascunho.
5. Ter filtrado uma tarefa.
6. Ter cancelado uma tarefa.
120

Ator Primário
Gerente.

Fluxo Principal
1. O sistema carrega a tela de listagem de tarefa raiz apresentada na figura 59.
2. O Gerente executa uma ação. (A1, A5, A6, A7, A8, A9).

Fluxos Alternativos
A1: Botão “Adicionar” é pressionado na tela de Tarefas Raiz
1. O sistema carrega a tela para criação de tarefa raiz, apresentada na figura 60,
com o formulário em branco.
2. O Gerente preenche o Titulo da Tarefa.(A1)
3. Seleciona no ComboBox o tipo da tarefa.
4. Seleciona no ComboBox a Prioridade da Tarefa.
5. Seleciona no ComboBox o responsável pela Tarefa.
6. Seleciona sua Data de Inicio (E2) e sua Data Limite (E3).
7. Preenche a Descrição da Tarefa.
8. O Gerente clica no botão “Salvar”. (A2)
9. O sistema abre a tela de Tarefas Raiz.
10. O sistema retorna uma mensagem “Tarefa adicionada com sucesso”. (E1)
11. O Caso de Uso é reiniciado.
A2: Ícone “Anexo” é pressionado na tela de Criar Tarefa Raiz
1. O sistema pede que o usuário selecione o arquivo de anexo desejado.
2. O Gerente seleciona o arquivo e aperta no botão “Selecionar”. (A3)
3. O sistema retorna ao Fluxo Alternativo A1, agora com um arquivo anexado.
A3: Botão “Cancelar” é pressionado na tela de Criar Tarefa Raiz
1. O sistema não salva as informações.
2. O Caso de Uso é reiniciado.
A4: Os arquivos são cancelados na tela de Criar Tarefa Raiz
1. O usuário clica sobre o arquivo a ser cancelado.
2. O sistema não anexa o arquivo.
3. O sistema retorna ao Fluxo Alternativo A1.
A5: Opção Filtrar tarefa na tela de Tarefas Raiz
1. O usuário seleciona o tipo de filtro
121

2. O usuário preenche o campo para filtrar tarefas raiz


3. A medida que o campo é digitado, as tarefas são filtradas.
A6: Botão “Editar Tarefa Raiz” é pressionado na tela de Tarefas Raiz
1. O sistema abre a tela de editar tarefa raiz com os campos do formulário
preenchidos com as informações da tarefa.
2. O usuário altera os campos do formulário.
3. O usuário clica no botão “Editar”(E4)(E3)(E2)
4. O Caso de Uso é reiniciado.
A7: Botão “Descartar Rascunho ” é pressionado na tela de Tarefas Raiz
1. O sistema exclui o rascunho da tarefa raiz do banco de dados
2. O Caso de Uso é reiniciado.
A8: Botão “Salvar Rascunho” é pressionado na tela de Tarefas Raiz
1. O sistema muda o status da tarefa para “Em espera”
2. O Caso de Uso é reiniciado.
A9: Botão “Cancelar” é pressionado na tela de Tarefas Raiz
1. O sistema muda o status da tarefa para “Cancelada”
2. O Caso de Uso é reiniciado.
Fluxos de Exceção
E1: Gerente não preenche todos os campos
1. O sistema exibe a mensagem “Todos os campos são obrigatórios”;
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o Gerente estava preenchendo.
E2: Gerente seleciona uma data de Inicio menor que a data atual
1. O sistema exibe a mensagem “Data Inválida”
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o Gerente estava preenchendo.
E3: Gerente seleciona uma data Limite menor que a data de Inicio
1. O sistema exibe a mensagem “Data Limite deve ser maior ou igual à data de
Inicio”
2. Gerente clica no botão “Ok”;
3. Sistema retorna para o formulário que o Gerente estava preenchendo.
E4: O gerente clica no botão “Cancelar”
1. O sistema volta para a tela de tarefas raiz
2. O caso de uso é reiniciado.
122

UC007 – EDITAR PERFIL

Descrição
Este caso de uso permite que o usuário altere sua senha e veja o seu
histórico de acesso.

FIGURA 61 - PROTÓTIPO: TELA DO PERFIL DO USUÁRIO

Pré-condições
Este caso de uso pode iniciar somente se:
1. Um usuário estiver logado no sistema.

Pós-condições
Após o fim normal deste caso de uso, o sistema deve:
1. Ter permitido ao usuário alterar sua senha de acesso;
2. Ter mostrado ao usuário seu histórico de acesso ao sistema.
123

Ator Primário
Usuário.

Fluxo de Eventos Principal


1. O sistema apresenta a tela da figura 61;
2. O Usuário preenche o campo “Senha antiga”; (A1)
3. O usuário preenche o campo “Senha”;
4. O usuário preenche o campo “Confirmação Senha”;
5. Sistema valida os campos preenchidos;
6. O usuário clica no botão “Salvar”; (E1)(E2)
7. O sistema altera a senha de acesso do usuário.

Fluxos Alternativos
A1: Usuário apenas visualiza histórico de acesso
1. O usuário visualiza os seus 10 últimos registros do histórico de acesso; (A2)
2. O caso de uso é encerrado.
A2: Usuário clica no ícone “Visualizar mais registros”
1. O usuário clica no ícone “Visualizar mais registros”;
2. Sistema mostra mais 10 registros do histórico de acesso do usuário;
3. O caso de uso retorna ao fluxo principal.

Fluxos de Exceção
E1: Usuário não preenche todos os campos
1. O sistema exibe a mensagem “Todos os campos são obrigatórios”;
2. Usuário clica no botão “Ok”;
3. Sistema retorna para o formulário que o Usuário estava preenchendo.
E2: Valor de “Senha Antiga” é incorreto
1. O sistema exibe a mensagem “A Senha Antiga está incorreta”;
2. Usuário clica no botão “Ok”;
3. Sistema retorna para o formulário que o usuário estava preenchendo.
124

APÊNDICE B – DIAGRAMAS DE SEQUÊNCIA

Logar

FIGURA 62 - DIAGRAMA DE SEQUÊNCIA: LOGAR


125

Gerenciar Usuários

FIGURA 63 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR USUÁRIOS


126

Criar Usuário

FIGURA 64 - DIAGRAMA DE SEQUÊNCIA: CRIAR USUÁRIO


127

Editar Usuário

FIGURA 65 - DIAGRAMA DE SEQUÊNCIA: EDITAR USUÁRIO


128

Tela Principal

FIGURA 66 - DIAGRAMA DE SEQUÊNCIA: TELA PRINCIPAL

Filtrar Tarefas

FIGURA 67 - DIAGRAMA DE SEQUÊNCIA: FILTRAR TAREFAS


129

Tarefas

FIGURA 68 - DIAGRAMA DE SEQUÊNCIA: TAREFAS


130

Gerenciar Sub-Tarefas

FIGURA 69 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR SUB-TAREFAS


131

Menu

FIGURA 70 - DIAGRAMA DE SEQUÊNCIA: MENU


132

Gerenciar Tarefa Raiz

FIGURA 71 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR TAREFA RAIZ


133

Criar Tarefa Raiz

FIGURA 72 - DIAGRAMA DE SEQUÊNCIA: CRIAR TAREFA RAIZ

Editar Tarefa Raiz

FIGURA 73 - DIAGRAMA DE SEQUÊNCIA: EDITAR TAREFA RAIZ


134

Gerar Relatório

FIGURA 74 - DIAGRAMA DE SEQUÊNCIA: GERAR RELATÓRIO


135

Gerenciar Tipos

FIGURA 75 - DIAGRAMA DE SEQUÊNCIA: GERENCIAR TIPOS


136

Criar Tipo

FIGURA 76 - DIAGRAMA DE SEQUÊNCIA: CRIAR TIPO


137

Editar Tipo

FIGURA 77 - DIAGRAMA DE SEQUÊNCIA: EDITAR TIPO


138

Perfil

FIGURA 78 - DIAGRAMA DE SEQUÊNCIA: PERFIL


139

APÊNDICE C – MODELO FÍSICO DO BANCO DE DADOS

CREATE SEQUENCE "tcc"."seq_idtarefa" INCREMENT 1 START 1


MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
CREATE SEQUENCE "tcc"."seq_idtipo" INCREMENT 1 START 1
MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
CREATE SEQUENCE "tcc"."seq_idusuario" INCREMENT 1 START 1
MAXVALUE 9223372036854775807 MINVALUE 1 CACHE 1;
CREATE TABLE "tcc"."usuario" (
"id_usuario" int8 NOT NULL PRIMARY KEY,
"nome" varchar(60) NOT NULL,
"email" varchar(60) NOT NULL,
"senha" varchar(40) NOT NULL,
"telefone" varchar(13) NOT NULL,
"status_usuario" char(1) NOT NULL,
"logado" char(1) NOT NULL,
"nivel_acesso" char(1) NOT NULL,
"id_supervisor" int8 REFERENCES "tcc"."usuario"("id_usuario")
);
CREATE TABLE "tcc"."tipo" (
"id_tipo" int8 NOT NULL PRIMARY KEY,
"nome_tipo" varchar(100) NOT NULL,
"descricao_tipo" varchar(1000) NOT NULL
);
CREATE TABLE "tcc"."historico_acesso" (
"id_usuario" int8 NOT NULL REFERENCES
"tcc"."usuario"("id_usuario"),
"data_logon" timestamp(6) NOT NULL,
"data_logoff" timestamp(6),
"ip" varchar(15) NOT NULL,
"key" varchar(40) NOT NULL,
PRIMARY KEY ("id_usuario", "data_logon")
);
140

CREATE TABLE "tcc"."tarefa" (


"id_tarefa" int8 NOT NULL PRIMARY KEY,
"titulo" varchar(60) NOT NULL,
"descricao" varchar(10000) NOT NULL,
"status" char(1) NOT NULL,
"prioridade" char(1) NOT NULL,
"data_sug_inicio" timestamp(6) NOT NULL,
"data_inicio" timestamp(6),
"data_limite" timestamp(6) NOT NULL,
"data_final" timestamp(6),
"data_modificacao" timestamp(6) NOT NULL,
"anexo" varchar(10000),
"comentarios" varchar(10000) NOT NULL,
"id_usuario_criador" int8 NOT NULL REFERENCES
"tcc"."usuario"("id_usuario"),
"id_usuario_resp" int8 NOT NULL REFERENCES
"tcc"."usuario"("id_usuario"),
"id_tipo_tarefa" int8 NOT NULL REFERENCES "tcc"."tipo"("id_tipo"),
"id_super_tarefa" int8 REFERENCES "tcc"."tarefa"("id_tarefa")
);
141

APÊNDICE D – DOCUMENTAÇÃO DA API

*Atenção: todas as requisições necessitam dos parâmetros “email_key” e da


“key”, retornada pelo método UsuarioREST::login_json, a exceção da própria
requisição de login. Por este motivo, estes parâmetros, embora necessários, não
serão listados na descrição de todas as requisições.

1 USUÁRIO

1.1 UsuarioREST::login_json
Descrição:
Loga um usuário no sistema, iniciando sua sessão e criando a
chave identificadora.

Parâmetros adicionais:
email_key
senha

Retorno:
Sucesso – {nivel_acesso, key}
Parâmetros incorretos – {erro: 1}
Falha no banco – {erro: 2}
Usuário ou senha incorreto – {erro: 3}
Usuário já está logado – {erro: 8}

1.2 UsuarioREST::getAllUsers_json
Descrição:
Retorna um JSON com alguns dados de todos os usuários
cadastrados no banco de dados.
142

Parâmetros adicionais:

Retorno:
Sucesso - [0..n] {id_usuario, nome, email, nivel_acesso,
status_usuario}
Falha no banco – {erro: 2}

1.3 UsuarioREST::changeUserStatus_json
Descrição:
Altera o status de um usuário no banco de dados. De ativo para
inativo e vice versa.

Parâmetros adicionais:
id_usuario

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}

1.4 UsuarioREST::newUser_json
Descrição:
Adiciona um usuário no banco de dados.

Parâmetros adicionais:
nome
email
senha
telefone
nivel_acesso
id_supervisor

Retorno:
Sucesso - {erro: 0}
143

Parâmetros incorretos – {erro: 1}


Falha no banco - {erro: 2}

1.5 UsuarioREST::getUser_json
Descrição:
Retorna os dados de um usuário a partir de seu id.

Parâmetros adicionais:
id_usuario

Retorno:
Sucesso - {id_usuario, nome, email, telefone, nivel_acesso,
id_supervisor}
Parâmetros incorretos - {erro: 1}
Falha no banco - {erro: 2}

1.6 UsuarioREST::updateUser_json
Descrição:
Atualiza os dados de um determinado usuário.

Parâmetros adicionais:
id_usuario
nome
email
senha
telefone
nivel_acesso
id_supervisor

Retorno:
Sucesso – {erro: 0}
Parâmetros incorretos - {erro: 1}
Falha no banco - {erro: 2}
144

1.7 UsuarioREST::logoff_json
Descrição:
Desloga um usuário do sistema, salvando a data de logoff e
destruindo a chave de sessão.

Parâmetros adicionais:

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco – {erro: 2}

1.8 UsuarioREST::changeLoginStatusToNo_json
Descrição:
Muda o campo ‘logado’ de um determinado usuário para 0,
“destravando-o”.

Parâmetros adicionais:
id_usuario

Retorno:
Sucesso – {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco – {erro: 2}

1.9 UsuarioREST::changePassword_json
Descrição:
Altera a senha do usuário atualmente logado.

Parâmetros adicionais:
senha_atual
nova_senha
145

Retorno:
Sucesso – {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco – {erro: 2}
Senha atual incorreta – {erro: 3}

1.10 UsuarioREST::getLoginHistory_json
Descrição:
Pega o histórico de login do usuário atualmente logado.

Parâmetros adicionais:

Parâmetros opcionais:
query_offset (define quantos registros já foram retornados
anteriormente)

Retorno:
Sucesso – [0..n] {id_usuario, data_logon, data_logoff, ip}
Erro no banco – {erro: 2}

1.11 UsuarioREST::getSubordinatedUsers_json
Descrição:
Pegar todos os usuários subordinados de um determinado
usuário.

Parâmetros adicionais:
id_usuario

Retorno:
Sucesso – [0..n] {id_usuario, nome}

1.12 UsuarioREST::checkEmail_json
Descrição:
Verificar se um e-mail pode ser cadastrado no sistema.
146

Parâmetros adicionais:
email

Retorno:
Pode – {erro: 0}
Parâmetros Inválidos – {erro: 1}
Não pode – {erro: 2}

2 TIPO

2.1 TipoREST::newTipo_json
Descrição:
Adicionar um tipo ao sistema.

Parâmetros adicionais:
nome_tipo
descricao_tipo

Retorno:
Sucesso – {erro: 0}
Parâmetros Inválidos – {erro: 1}
Erro no Banco – {erro: 2}

2.2 TipoREST::getTipo_json
Descrição:
Pegar os demais dados de um determinado tipo.

Parâmetros adicionais:
id_tipo
147

Retorno:
Sucesso – {id_tipo, nome_tipo, descrição_tipo}
Parâmetros inválidos – {erro: 1}
Erro no Banco – {erro: 2}

2.3 TipoREST::getAllTipos_json
Descrição:
Pegar os demais dados de um determinado tipo.

Parâmetros adicionais:

Retorno:
Sucesso – [0..n]{id_tipo, nome_tipo, descrição_tipo}
Parâmetros inválidos – {erro: 1}
Erro no Banco – {erro: 2}

2.4 TipoREST::updateTipo_json
Descrição:
Atualizar os dados de um determinado tipo.

Parâmetros adicionais:
id_tipo
nome_tipo (novo valor do campo)
descricao_tipo (novo valor do campo)

Retorno:
Sucesso – {erro: 0}
Parâmetros Inválidos – {erro: 1}
Erro no Banco – {erro: 2}
148

3 TAREFA

3.1 TarefaREST::addRootTask_json
Descrição:
Cria uma nova tarefa raiz.

Parâmetros adicionais:
titulo
descricao
prioridade
data_sug_inicio (no formato: 2013-06-24 00:00:00)
data_limite (no formato: 2013-06-24 00:00:00)
id_usuario_criador
id_usuario_resp
id_tipo_tarefa

Parâmetros opcionais:
anexos[]

Retorno:
Sucesso – {erro: 0}
Parâmetros Inválidos – {erro: 1}
Erro no Banco - {erro: 2}
Erro nos anexos - {erro: 4}

3.2 TarefaREST::addSubTask_json
Descrição:
Cria uma sub-tarefa.

Parâmetros adicionais:
titulo
descrição
prioridade
149

data_sug_inicio (no formato: 2013-06-24 00:00:00)


data_limite (no formato: 2013-06-24 00:00:00)
id_usuario_criador
id_usuario_resp
id_tipo_tarefa
id_super_tarefa

Retorno:
Sucesso – {erro: 0}
Parâmetros Inválidos – {erro: 1}
Erro no Banco - {erro: 2}
Erro nos anexos - {erro: 4}

3.3 TarefaREST::getAllUserFilteredTasks_json
Descrição:
Retorna as tarefas de um determinado usuário de acordo com o
filtro estabelecido, ordenadas por data_limite e prioridade.

Parâmetros adicionais:
id_usuario

Parâmetros opcionais:
query_offset (quantos tarefas já foram retornadas anteriormente,
tendo em vista que o método retorna 10 tarefas por vez)
somente_tarefas (se setado com qualquer valor, o método não
lista subtarefas ou a supertarefa).
filtro_titulo (tarefa contém este texto no nome)
filtro_tipo (id do tipo)
filtro_data (no formato 2013-06-26)
filtro_prioridade (1, 2 ou 3)
filtro_status (0, 1, 2, 3 ou 4)
(se nenhum filtro for definido, o método retornará todas as
tarefas)
150

Retorno:
Sucesso – [0..n]{anexo, comentarios, data_final, data_inicio,
data_limite, data_modificacao, data_sug_inicio, descricao, id_super_tarefa,
id_tarefa, id_tipo_tarefa, id_usuario_criador, id_usuario_resp, opacidade, prioridade,
status, titulo}
[‘subs’][0..n]{<os mesmos campos listados acima>}
[‘super’]{ <os mesmos campos listados acima>}
}
Parâmetros Inválidos – {erro: 1}
Erro no Banco - {erro: 2}
Nenhuma tarefa encontrada – {erro: 4}

3.4 TarefaREST::getTask_json
Descrição:
Retorna todos os dados de uma tarefa.

Parâmetros adicionais:
id_tarefa

Retorno:
Sucesso - {anexo, comentarios, data_final, data_inicio, data_limite,
data_modificacao, data_sug_inicio, descricao, id_super_tarefa, id_tarefa,
id_tipo_tarefa, id_usuario_criador, id_usuario_resp, opacidade, prioridade, status,
titulo}
Parâmetros Inválidos – {erro: 1}
Erro no Banco - {erro: 2}

3.5 TarefaREST::getAllUserCreatedRootTasks_json
Descrição:
Retorna todas as tarefas raiz criadas por um usuário, com as
mais novas primeiro.

Parâmetros adicionais:
id_usuario
151

Parâmetros opcionais:
query_offset (quantos tarefas já foram retornadas anteriormente,
tendo em vista que o método retorna 10 tarefas por vez)
filtro_titulo (tarefa contém este texto no nome)
filtro_tipo (id do tipo)
filtro_data (no formato 2013-06-26)
filtro_prioridade (1, 2 ou 3)
filtro_status (0, 1, 2, 3 ou 4)
(se nenhum filtro for definido, o método retornará todas as
tarefas)

Retorno:
Sucesso – [0..n]{ anexo, comentarios, data_final, data_inicio,
data_limite, data_modificacao, data_sug_inicio, descricao, id_super_tarefa,
id_tarefa, id_tipo_tarefa, id_usuario_criador, id_usuario_resp, opacidade, prioridade,
status, titulo}
Parâmetros Inválidos – {erro: 1}
Erro no Banco – {erro: 2}
Nenhuma tarefa encontrada – {erro: 4}

3.6 TarefaREST::removeDraft_json
Descrição:
Remove uma tarefa em rascunho do banco.

Parâmetros adicionais:
id_tarefa

Retorno:
Sucesso -> {erro: 0}
Parâmetros Inválidos – {erro: 1}
Erro no Banco - {erro: 2}
152

3.7 TarefaREST:: editTask_json


Descrição:
Edita os dados de uma tarefa e altera a data de modificação para a data
atual.

Parâmetros adicionais:
id_tarefa, titulo, descricao, prioridade, data_sug_inicio, data_limite,
id_usuario_resp, id_tipo_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
Erro ao anexar arquivo – {erro: 4}

3.8 TarefaREST:: addComment_json


Descrição:
Salva o comentário adicionado, sobrescrevendo o anterior, e altera a data
de modificação.

Parâmetros adicionais:
comentarios, id_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}

3.9 TarefaREST:: changeStatusToStandBy_json


Descrição:
Altera o status da tarefa de Rascunho(1) para Em Espera(2), quando a
atividade está pronta para ser passada ao responsável, e altera a data de
modificação.
153

Parâmetros adicionais:
id_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}

3.10 TarefaREST:: changeStatusToOnGoing_json


Descrição:
Altera o status da tarefa de Em Espera(2) para Em Execução(3), quando a
atividade é iniciada pelo responsável, e altera a data de modificação.

Parâmetros adicionais:
id_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}

3.11 TarefaREST:: changeStatusToFinished_json


Descrição:
Altera o status da tarefa de Em Execução(3) para Finalizada(4), quando a
atividade é concluida pelo responsável; e altera a data de modificação.

Parâmetros adicionais:
id_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
154

3.12 TarefaREST:: changeStatusToCanceled_json


Descrição:
Altera o status da tarefa de qualquer status para Cancelada(0), altera
também os status das subs-tarefas para Cancelada; e altera a data de modificação.

Parâmetros adicionais:
id_tarefa.

Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}

Você também pode gostar