Post on 23-Feb-2016
description
1
• Pesquisar- Consultar lista de tarefas
• Detalhes
- Consultar detalhes de uma tarefa- Adicionar tarefa- Apagar tarefa- Alterar dados tarefa- Registar tarefa
- Associar Aviso- Associar Anomalia
- Alterar registo da tarefa
• Imprimir
Casos de uso
2
Prioritária - Vigilante -
Descrição da tarefa:
Observações da tarefa:
NãoSim NãoSim
Criar Tarefa
Tarefa ÚnicaHoje Amanha Outro dia:
Hora:
Tarefa Periódica
2ª 3ª 4ª 5ª 6ª SAB DOM De:Até:
Hora:
Titulo: “Criar Nova Tarefa”
3
Prioritária - Vigilante -
Descrição da tarefa:
Observações da tarefa:
NãoSim NãoSim
Criar Tarefa
Tarefa ÚnicaHoje Amanha Outro dia:
Hora:
Tarefa Periódica
2ª 3ª 4ª 5ª 6ª SAB DOM De:Até:
Hora:
Divisão dos elementosFORM PART 1
FORM PART 2
FORM PART 3
FORM PART 4
FORM PART 5
4
Form Principal: “Form_Task_New”
Session_start();
Include (‘Form_Part_Task_PrioritySecurity’);
SlideToggle(Single, Periodic):
{
toggle
Include (‘Form_Part_Task_New_Single’);
toggle
Include (‘Form_Part_Task_New_Periodic’);
}
Include (‘Form_Part_TaskDetails_DescriptionObservation’);
$buttons = getTaskButtons(Task_register, NULL);
Include (‘Form_Part_Buttons’);
Form_Part_1: “Form_Part_Task_PrioritySecurity”
• Sub-script que carrega os formulários de escolha a prioridade e a atribuição de tarefas a seguranças.
Form_Part_2: “Form_Part_Task_New_Single”
• Sub-script que carrega o formulário para criação de uma tarefa única.
Form_Part_5: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
• Ao clicar no botão -> newTask($task)
Form_Part_3: “Form_Part_Task_New_Periodic”
• Sub-script que carrega o formulário para criação de uma tarefa periodica.
Form_Part_4: “Form_Part_Task_DescriptionObservation”
• Sub-script que carrega o formulário para criação de uma tarefa única.
5
Titulo da pagina: “Tarefas Correntes”
Tarefas Semana Tarefas Mês Imprimir Histórico
.
.
.
.
.
.
.
.
.
Todas Vigilantes
Prioridade Descrição Data
Hoje
.
.
.
.
.
.
.
.
.
Todas Vigilantes
Prioridade Descrição Data
Atrasadas
6
.
.
.
.
.
.
.
.
.
Todas Vigilantes
Prioridade Descrição Data
.
.
.
.
.
.
.
.
.
Todas Vigilantes
Prioridade Descrição Data
FORM PART 1 FORM PART 1
FORM PART 2 FORM PART 2
FORM PART 3
Divisão dos elementos
7
Form Principal: “form_task_list”
• Script que gera a pagina consulta de lista de tarefas.
Session_Start();
$filters = $_SESSION[‘filters’];
$list_type = ‘Hoje’;
$task_list = getTaskList( $list_type, $filters);
Include (‘Form_Part_TaskList_Filters’);
Include (‘Form_Part_TaskList_Display’);
$list_type = ‘Atrasadas’;
$task_list = getTaskList($list_type,$filters);
Include (‘Form_Part_TaskList_Filters’);
Include (‘Form_Part_TaskList_Display’);
$buttons = getButtons(Task_list, NULL);
Include (‘Form_Part_Buttons’);
Function getbuttons()
arrayButtons.add(‘Tarefas_mês, viewTaskMonth.php);
arrayButtons.add(‘Tarefas_mês, viewTaskMonth.php);
~
Form_Part: “Form_Part_TaskList_Filters”
• Sub-script que faz o “print” aos filtros para a listagem
• Os filtros estão guardados numa variável de sessão $_SESSION[‘filters’] que é usada para “carregar” a lista de tarefas adequada.
• Exemplo: $filters[‘Hoje’]=‘Todas’
$filters[‘Atrasadas’]=‘Vigilante’
• Ao clicar no botão do filtro, a variável de sessão é actualizada e a pagina recarregada.
Form_Part: “Form_Part_TaskList_Display”
• Sub-script que faz o “print” para o ecrã da lista de tarefas carregada na variável $task_list.
• A descrição da tarefa na lista é uma hiperligação para a pagina de detalhes da tarefa
• O ID da tarefa é passado pelo método GET no url.
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
8
Funções da camada de acesso a base de dados necessárias:
- getTaskList( $list_type ,$filters)
• Recebe como argumentos: - o tipo de lista apresentar: ‘Hoje’; ‘Atrasadas’; ‘Mês’; ‘Semana’- o filtro para a lista: ‘Todas’ ; ’Vigilante’
• Retorna um array multidimensional com a lista de tarefas:
$task_list[id_task]=> array ( task_priority, task_state, task_description, task_date)
- getActionList( $id_user)
• Recebe como argumento:- o ID do user autentificado no sistema
• Retorna array com a lista de acções que este pode efectuar no sistema.
Exemplo:
$action_list[1]= ‘Alterar Tarefa’
$action_list[2]= ‘Criar Tarefa’
…
9
Funções auxiliares:- getTaskButtons( $buttons_select, $task_state)
• Recebe como argumentos: - qual o “FORM” que vamos fazer “display”
‘Task_list’; ‘Task_list_week’; ‘Task_list_month’; ‘Task_details’; ‘Task_edit’; ‘Task_new’
- o estado da tarefa ( no caso da consulta de detalhes)
• Retorna um array com a lista de botões que o user tem permissões para ver nesse “FORM”
Exemplo:
‘Task_list’; NULL • Nova Tarefa• Tarefas Da Semana• Tarefas Do Mês• Impressão• Histórico
‘Task_details’; ‘Planeada’ • Registar Tarefa• Alterar Tarefa• Apagar Tarefa• Arquivar Tarefa• Imprimir
10
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Não Registada (Planeada)
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
Tarefa por executar.
Alterar Tarefa Apagar Tarefa Registar Tarefa Imprimir
11
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Sim
Anomalia associada
Observações sobre a execução da tarefa:
Alterar Tarefa Apagar Tarefa Imprimir
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada (Executada)
12
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Não
Aviso associado
Anomalia associada
Observações sobre a execução da tarefa:
Alterar Tarefa Apagar Tarefa Imprimir
Titulo: “Detalhes da Tarefa” (Consulta) – Estado Registada (Não Executada/Parcialmente Executada)
13
Divisão dos elementos• É possível verificar por simples inspecção que dentro de todos os estados possíveis
na consulta de detalhes que existem elementos que se repetem:
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Sim
Anomalia associada
Observações sobre a execução da tarefa:
Alterar Tarefa Apagar Tarefa Imprimir
FORM PART 1 (PLANEAMENTO)
FORM PART 2 (EXECUÇÃO/REGISTO)
FORM PART 3 (BOTÕES)
14
Form Principal: “Form_TaskDetails”
• Script que gera a pagina de consulta de detalhes de uma tarefa especifica.
Session_start();
$id_task = $_GET [‘id_task’];
$task = getTaskById( $id_task);
$warning = getTaskWarning($id_task);
$anomalie = getTaskAnomalie($id_task);
$_SESSION[‘current_task’] = $task;
Include (‘Form_Part_TaskDetails_Planning’);
Include (‘Form_Part_TaskDetails_State’);
$buttons = getTaskButtons(Task_details, $task[task_state]);
Include (‘Form_Part_Buttons’);
Form_Part: “Form_Part_TaskDetails_Planning”
• Sub-script que faz o “print” dos dados de planeamento da tarefa.
• Utiliza os dados contidos no array $task
Form_Part: “Form_Part_TaskDetails_State”
• Sub-script que faz o “print” do estado da tarefa e dos detalhes de execução (registo), apresenta avisos e/ou anomalias associados a tarefa.
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
• Os dados da tarefa sobre a qual se esta a trabalhar são passados por variável de sessão entre paginas (evitar acessos desnecessários a B.D.), caso “Registar Tarefa”, “Alterar Tarefa”.
$_SESSION[‘task’]= $task;
$_SESSION[‘warning’]= $warning;
$_SESSION[‘anomalie’]= $anomalie;
15
Funções da camada de acesso a base de dados necessárias:
- getTaskById( $id_task)
• Recebe como argumento: - Id da tarefa
• Retorna um array com os dados da tarefa:
$task=> array ( id_task, task_priority, task_state, task_description, task_date, task_author… )-getTaskWarning($id_task)
• Recebe como argumento: – Id a tarefa
• Retorna um array com os dados do aviso associados a tarefa:
$warning=> array (id_warning, warning_description, Warning_priority, warning_security…#id_task)
- getTaskAnomalie($id_task)
• Recebe como argumento: - Id da tarefa
• Retorna um array com os dados da anomalia associada a tarefa:
$anomalie=> array (id_anomalie, anomalie_description, anomalie_TT, #id_task)
16
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Executei Parte NãoSim
Observações sobre a execução da tarefa:
Alguma anomalia? NãoSim
Confirmar
Titulo: “Detalhes da Tarefa” (Registar - Executada)
17
Titulo: “Detalhes da Tarefa” (Registar – Não Executada/Parcialmente Executada)
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Executei Parte NãoSimPorque?
Pretende colocar um aviso? NãoSim
Alguma anomalia? NãoSim
Confirmar
18
Confirmar
Elementos comunsPrioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Executei Parte NãoSimPorque?
Pretende colocar um aviso? NãoSim
Alguma anomalia? NãoSim
FORM PART 1 (PLANEAMENTO)
FORM PART 2 (EXECUÇÃO/REGISTO)
FORM PART 3 (BOTÕES)
19
Form Principal: “Form_TaskDetails_Register”
• Script que gera a pagina de consulta de detalhes de uma tarefa especifica.
Session_start();
$task = $_SESSION[‘task’];
Include (‘Form_Part_TaskDetails_Planning’);
Include (‘Form_Part_TaskDetails_Register’);
$buttons = getTaskButtons(Task_register, NULL);
Include (‘Form_Part_Buttons’);
Form_Part_1: “Form_Part_TaskDetails_Planning”
• Sub-script que faz o “print” dos dados de planeamento da tarefa.
• Utiliza os dados contidos no array $task
Form_Part_2: “Form_Part_TaskDetails_Register”
• Sub-script que carrega os formularios de registo da tarefa.
• Dentro deste sub-script vai ser invocado outros sub-scripts (se necessário, ‘Form_Warnings_New’ ‘Form_Anomalies_New’)
• “Call” a função updateTask($task)
Form_Part_3: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
20
Funções da camada de acesso a base de dados necessárias:
- updateTask( $task)
• Recebe como argumento: - Array com os dados da tarefa
Faz o “update” substituindo os campos na B.D. da tarefa com ‘id_task’==$task[id_task] pelos do array $task.
- newWarning( $warning)
• Recebe como argumento:- Array com os dados do aviso.
Faz um “insert” na B.D de um novo aviso-newAnomalie( $anomalie)
• Recebe como argumento:- Array com os dados da anomalia.
Faz um “insert” na B.D de uma nova anomalia
21
Titulo: “Alterar Tarefa” – Não Registada (Planeada)
Prioritária - Vigilante - Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
NãoSim NãoSim
Guardar Alterações Cancelar
22
Cancelar
Titulo: “Alterar Tarefa” - Registada (Executada) *
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Executei Parte NãoSim
Anomalia
Observações sobre a execução da tarefa:
Guardar AlteraçõesAlterar
23
Cancelar
Titulo: “Alterar Tarefa” - Registada (Não Executada/Parcialmente Executada) *
Guardar Alterações
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso?
Aviso associado
Anomalia associada
Observações sobre a execução da tarefa:
Executei Parte NãoSim
Alterar
Alterar
24
Divisão do elementos
Prioritária - SIM Vigilante -Sim Data Hora
Descrição da tarefa:
Observações da tarefa:
Autor: Criada em:
A tarefa executada com sucesso? Sim
Anomalia associada
Observações sobre a execução da tarefa:
Alterar Tarefa Apagar Tarefa Imprimir
FORM PART 1 (PLANEAMENTO)
FORM PART 2 (EXECUÇÃO/REGISTO)
FORM PART 3 (BOTÕES)
25
Analise dos elementos• O Form_Part_1 vai depender do tipo de “user” que está a tentar alterar a tarefa,
não existe necessidade de desassociar edição dos dados da edição do registo, logo quando um “user” com permissões para tal esta a editar uma tarefa pode editar os dados da tarefa bem como o seu registo, por outro lado um user sem permissões pode apenas alterar o registo. Logo:
Form_Part_TaskDetails_Planning ou Form_Part_TaskDetails_Planning_Edit
• O Form_Part_2 vai ser acessível por todos os users, tendo umas pequenas nuances em que:
1. É possível editar os dados de registo da tarefa.
2. Visualiza-se os dados ,caso existam, do aviso/ anomalia associada e existe a possibilidade de alterar os dados do aviso/anomalia nesse mesmo formulário.
26
Form Principal: “Form_TaskDetails_Edit”
Session_start();
$task = $_SESSION[‘task’];
$action_list = $_SESSION[‘action_list’];
if ( array_key_exist(‘Alterar Tarefa’, $action_list)
Include (‘Form_Part_TaskDetails_Planning_Edit’);
Else
Include (‘Form_Part_TaskDetails_Planning’);
Include (‘Form_Part_TaskDetails_Register_Edit’);
$buttons = getTaskButtons(Task_register, NULL);
Include (‘Form_Part_Buttons’);
Form_Part: “Form_Part_TaskDetails_Planning_Edit”
• Sub-script carrega os dados da tarefa em formulários editáveis.
• Utiliza os dados contidos no array $task
Form_Part: “Form_Part_TaskDetails_Register_Edit”
• Sub-script que carrega os formularios de registo da tarefa.
• Dentro deste sub-script vai ser invocado outros sub-scripts (se necessário, ‘Form_Warnings_Edit’ ‘Form_Anomalies_Edit’)
• “Call” a função updateTask($task)
Form_Part: “Form_Part_Buttons”
• Sub-script que recebe um array com os botões adequados e os dispõem no ecrã.
27
Funções da camada de acesso a base de dados necessárias:
- updateWarning( $warning)
• Recebe como argumento: - Array com os dados do aviso.
Faz o “update” substituindo os campos na B.D. pelos do array $warning.
- updateAnomalie( $anomalie)
• Recebe como argumento:- Array com os dados da anomalia.
Faz o “update” substituindo os campos na B.D. da anomalia pelos do array $warning.
28
TAREFAS:
• getTaskList( $list_type ,$filters)
• getTaskById( $id_task)
• updateTask( $task)
• deleteTask($id_task)
• arquiveTask($id_task)
• newTask($task)
Funções da camada de acesso a base de dados:
AVISOS:
• getWarningsList()
• getWarningById( $id_warning)
• updateWarning( $warning)
• newWarning( $warning)
• deleteWarning( $id_warning)
Outras:
• getTaskAnomalie($id_task)
• getTaskWarning($id_task)
Users:
• getActionList( $id_user)
• updateUser($user)
• deleteUser($id_user)
• newUser($user)
Anomalias:
• getAnomalieList()
• getAnomalieById( $id_anomalie)
• updateAnomalie( $id_anomalie)
• newAnomalie( $anomalie)
• deleteAnomalie( $id_anomalie)
29
$_SESSION[‘filters’] – Guarda o estado dos filtros actualmente seleccionados, na lista de tarefas.
$_SESSION[‘task’] – Guarda os dados da tarefa sobre a qual se esta a trabalhar no momento.
$_SESSION[‘warning’] – Guarda os dados sobre o aviso o qual se esta a trabalhar no momento.
$_SESSION[‘anomalie’] – Guarda os dados sobre a anomalia a qual se esta a trabalhar no momento.
$_SESSION[‘action_list’] – Guarda a lista de acções que o user autentificado no sistema tem acesso.
$_SESSION[‘user’] – Guarda os dados do user autentificado no sistema.
Variáveis de Sessão:
30
• Form_Part_Buttons
• Form_Task_New
Forms e Form_Parts:
• Form_Part_Buttons
• Form_Part_TaskDetails_Planning• Form_Part_TaskDetails_State”• Form_TaskDetails
• Form_TaskDetails_Register
• Form_Part_TaskDetails_Planning_Edit• Form_Part_TaskDetails_Register_Edit• Form_TaskDetails_Edit
• Form_Part_Task_New_Periodic• Form_Part_Task_New_Single
Form: Form_Part:• Form_Part_Task_PrioritySecurity
• Form_Part_TaskDetails_DescriptionObservation
• Form_Part_TaskDetails_Planning• Form_Part_TaskDetails_Register• Form_Part_Buttons
• Form_Part_Buttons
• Form_Part_TaskList_Filters• Form_Part_TaskList_Display• Form_TaskList
• Form_Part_Buttons