Software TCC Task Creator Controller
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
CURITIBA
2013
AGRADECIMENTOS
Aos nossos parentes e amigos, que sempre nos apoiaram nos momentos
difíceis e sempre nos motivaram quando necessário.
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.
1 INTRODUÇÃO
1.1 CONTEXTUALIZAÇÃO
1.2 OBJETIVOS
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
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
3.1.1 Scrum
3.1.2 UML
3.1.3 SQL
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
3.1.6 JavaScript
3.1.7 Java
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
3.1.9 Objective-C
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.
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.
3.3 RESPONSABILIDADES
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 3 - CONTATOS
36
3.5.2 Reuniões
TABELA 4 - REUNIÕES
4 DESENVOLVIMENTO DO PROJETO
A partir do modelo lógico foi desenvolvido o modelo físico do banco de dados, que é
apresentado no apêndice C.
46
Tabela%usuario%
Tabela%historico_acesso%
NULL%
Tabela%tipo%
% % Tabela%tarefa%
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.2 Aplicativos
executá-lo pela primeira vez, deverá ser inserido o endereço do host a ser utilizado,
que será salvo.
5.2 USUÁRIO
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
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.
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
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.
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
Na tela de listagem de tarefa raiz são listadas 10 tarefas raiz por página, é
status, que permite que o usuário identifique facilmente quais tarefas estão perto da
data de finalização.
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
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 ...”.
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.6 RELATÓRIOS
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
6 CONSIDERAÇÕES FINAIS
REFERÊNCIAS
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).
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.
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
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.
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
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
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
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.
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
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
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.
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.
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
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
Descrição
Este caso de uso é iniciado quando um gerente clica no item de menu
“Relatórios”, podendo assim gerar relatórios desejados.
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.
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
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.
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
Descrição
Este caso de uso permite que o usuário altere sua senha e veja o seu
histórico de acesso.
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.
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
Logar
Gerenciar Usuários
Criar Usuário
Editar Usuário
Tela Principal
Filtrar Tarefas
Tarefas
Gerenciar Sub-Tarefas
Menu
Gerar Relatório
Gerenciar Tipos
Criar Tipo
Editar Tipo
Perfil
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
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
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
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}
Parâmetros adicionais:
comentarios, id_tarefa.
Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
Parâmetros adicionais:
id_tarefa.
Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
Parâmetros adicionais:
id_tarefa.
Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
Parâmetros adicionais:
id_tarefa.
Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}
154
Parâmetros adicionais:
id_tarefa.
Retorno:
Sucesso - {erro: 0}
Parâmetros incorretos – {erro: 1}
Falha no banco - {erro: 2}