Estudo de Caso - Sistema de Controle de Ponto (Estudo de caso retirado do livro "Análise de Pontos de Função - Medição, Estimativas e Gerenciamento de Projetos de Software", Vasquez, Carlos E. et al, Editora Érica, 1 ed., 2003.) Descrição do Sistema Em um sistema de controle de pontos, um trabalhador registra suas entradas e saídas do ambiente de trabalho. Nos casos em que se esquece de fazê-lo, ele justifica tal ocorrência. Além diss, ele pode acompanhar a sua presença com os totais de horas trabalhadas em um determinado período. Cada trabalhador pode ter acesso apenas às suas informações. Por outro lado, o gerente pode emitir um relatório com as informações de presença de todos os funcionários. Lista de Atores Trabalhador Gerente Casos de Uso Identificados 1. 2. 3. 4. 5. Registrar Presença Registrar Justificativa (caso de uso de extensão) Acompanhar Presença Emitir Relatório de Presença Efetuar Logon Diagrama de Caso de Uso Trabalhador Acompanhar Presença Gerente Efetuar Logon Registrar Presença Registrar Justificativa Emitir Relatório de Presença Especificação do Caso de Uso - Registrar Presença A. Ator Relacionado Trabalhador B. Objetivo Este caso de uso permite ao trahalhador inscrir, excluir ou alterar informaçoes de entrada ou saída em uma determinada data. Sempre que o trabalhador chega ou sai do ambiente de trabalho ele deve registrar a sua entrada e saída. Nas ocasiões em que ele se esquecer de fazer o registro, ele pode fazer posteriormente, registrando nesses casos também uma justificativa. C. Pre-condição O trabalhador deve ter efetuado logon no sistema. D. Fluxo de Eventos Principal Passo I : O trabalhador escolhe a opção "Registrar Presença" na tela principal do sistema e a tela de registro de presença é apresentada. Passo 2: O trabalhador escolhe uma das opções na tela: "Data Atual", "Data Passada" ou "Cancelar". Ao escolher "Data Passada", o trabathador deve informar uma data válida. Passo 3: O sistema recupera todos os registros de entrada e saída que foram feitos na data escolhida e os apresenta numa lista na tela juntamente com a data informada (E1). Caso nenhum reglstro exista na data, o sistema apenas passa para o pr6ximo passo. Passo 4: O trabalhador escolhe uma das opções na tela: "Entrada", "Saída" ou "Cancelar". Passo 5: Se o trabalhador escolher "Cancelar", o caso de uso é encerrado e volta à tela principal, senão segue para o próximo passo. Passo 6: O trabalhador escolhe uma das opções na tela: "Incluir", "Excluir", "Alterar" ou "Cancelar". a) Incluir (para data atual): Caso o trabalhador tenha escolhido a data atual, o sistema verifica se é possivel inserir (E3) a entrada/saida desejada e, caso seja possível, ele insere automaticamente um registro de entrada/saída para o trabalhador, com a data e horário atuais (do sistema). Em seguida o sistema emlte uma mensagem de inclusão efetuada com sucesso (E2). b) Incluir (para data passada): Caso o trabalhador tenha escolhido uma data passada, ele informa também o horário e uma justificativa (extend: Registrar justificativa) (E6). O sistema verifica se é possível inserir (E3) a entrada/saída desejada e, caso seja possível, ele insere o registro de entrada/saída para o trabalhador, com a data e horário desejados e a justificativa. Em seguida o sistema emite uma mensagem de inclusão efetuada com sucesso (E2). c) Excluir: Nesse caso o sistema exclui todos os registros de apontamento e justificativa da data informada. Antes verifica se é possível excluir (E4) os registros desejados e, caso seja possível, solicita a confirmação de exclusão. Se o trabalhador não confirmar a exclusão, o sistema volta ao passo 7; senão ele exclui os registros e emite uma mensagem de exclusão efetuada com sucesso (E2). d) Alterar: Nesse caso o trabalhador informa um horário de entrada ou saída existente e em seguida informa o novo horário desejado e uma justificativa (extend: Registrar justificativa) (E6). O sistema verifica se é possível alterar (E5) no horário atual para o horário desejado e, caso seja possível, ele solicita uma confirmação de alterarção. Se o trabalhador não confirmar a alteração, o sistema volta ao passo 7; senão ele grava o novo horário e a justificativa, e emite uma mensagem de alteração efetuada com sucesso (E2). e) Cancelar: Nessa opção o caso de uso é encerrado e o sistema volta à tela principal. Passo 7: O sistema questiona se o trabalhador deseja registrar nova presença ou encerrar. Se o trabalhador escolher "Registrar Nova Presençaa", o sistema volta ao passo 3, senão o caso de uso é encerrado e o sistema retorna à tela principal. E. Fluxos de Exceção El: Caso não seja possível recuperar os registros, o sistema emite uma mensagem de erro explicando o problema e retorna ao passo 3. E2: Caso a operação em questão não seja bem sucedida, o sistema emite uma mensagem de erro explicando o problema e retorna ao passo 7. E3: O sistema não deve permitir inserir uma entrada sem que exista uma saída anterior (a menos que seja este o primeiro registro de entrada no sistema para o trabalhador em questão); da mesma forma o sistema não deve permitir inserir uma saída sem que exista uma entrada anterior. Caso isso ocorra, o sistcma deve emitir uma mensagem de alerta explicando o problema ; retornando ao passo 7. E4: O sistema não deve permitir excluir uma entrada que possua uma saída cadastrada em seqüência, sem que essa saída também seja excluida (nesse caso o trabalhador deve escolher excluir também a saída em seqüência). Da mesrna forma o sistema não deve permitir excluir uma saída que possua uma uma entrada cadastrada em seqüência, sem que essa entrada também seja excluida (nesse caso o trabalhador deve escolher excluir também a entrada em seqüência). Caso isso ocorra , o sisterna deve emitir uma mensagem de alerta explicando o problema e retornar ao passo 7. E5: O sistema não deve permitir que uma entrada seja registrada entre uma entrada e saída já registradas anteriormente. Da mesma forrna, o sistema não deve permitir que uma. saída seja registrada entre uma entrada e saída já registradas anteriormente. Caso isso ocorra, o sistema deve emitir uma mensagem de alerta explicando o problema e retornar ao passo 7. E6: Caso uma justificativa não tenha sido escolhida, o sistema deve emitir uma mensagem de alerta explicando o problema e retornar ao passo,7. Especificação de Caso de Uso - Registrar Justificativa A. Ator Relacionado Trabalhador (Através do caso de uso "Registrar Presença"). B. Objetivo Este caso de uso permite ao trabalhador inserir uma justificativa para um horário de entrada e saída e é iniciado a partir dos pontos de extensão no caso de "Registrar Presença" C. Fluxo de Eventos Principal Passo 1: O sistema abre uma tela para que o trabalhador possa digitar livremente um texto para a justificativa. Passo 2: Após fechar a janela o sistema volta ao passo de onde esse caso de uso foi chamado. Especificação do Caso de Uso - Acompanhar Presença A. Ator Relacionado Trabalhador. B. Objetivo Este caso de uso permite ao trabalhador acompanhar seus registros de presença em um determinado período escolhido. C. Pre-condiçao O trabalhador deve ter efetuado logon no sistema. D. Fluxo de Eventos Principal Passo 1: O trabalhador escolhe a opção "Acompanhar Presença" na tela principal do sistema e a tela de acompanhamento de presença é apresentada. Passo 2: O trabalhador escolhe uma data inicial e uma data final para o período que deseja consultar. Passo 3: O sistema recupera todos os dados de apontamento e de justificativas que foram feitos entre as datas escolhidas, junto com o total de horas do período e o nome do trabalhador, e os apresenta na tela (E1). Caso nenhum registro exista entre as datas, o sistema emite uma mensagem ao trabalhador informando este fato. Passo 4: O trabalhador escolhe uma das opções na tela: "Acompanhar Novo Período" ou "Cancelar". Passo 5: Se o trabalhador escolher "Cancelar", o caso de uso é encerrado e volta à tela principal; senão vai para o passo 3. E. Fluxos de Exceção E1: Caso não seja possível recuperar os registros, o sistema emite uma mensagem de erro explicando o problema e retoma ao passo 3. Especificaçao do Caso de Uso - Emitir Relatório de Presença A. Ator Relacionado Gerente B. Objetivo Este caso de uso permite ao gerente acompanhar o registro de presença dos trabalhadores em urn determinado período escolhido. C. Pré-condição O gerente deve ter efetuado logon no sistema. D. Fluxo de Eventos Princippal Passo 1: O gerente escolhe a opção "Emitir Relatório de Presença" na tela principal do sistema e a tela de emissão do relatório de presença é apresentada. Passo 2: O gerente escolhe uma data inicial e uma data final para o período que deseja consultar. Passo 3: O sistema recupera os dados de apontamentos e justificativa que foram feitos entre as datas escolhidas para todos os trabalhadores e os apresenta na tela (E1) da seguinte forma: matrícula, nome, total de horas e número de justificativas. Ao final do relatório é exiido o total de horas para todos os trabalhadores. Caso nenhum registro exista entre as datas, o sistema emite uma mensagem ao gerente informando este fato. Passo 4: O gerente escolhe uma das opções na tela: "Imprimir Relatório", "Acompanhar Novo Período" ou "Cancelar". Passo 5: Se o gerente escolher "Cancelar", o caso de uso é encerrado e volta à tela principal; se ele escolher "Imprimir Relatório", o relatório é impresso (E2); senão vai para o passo 3. E. Fluxos de Execeção E1: Caso não seja possível recuperar os registros, o sistema emite uma mensagem de erro explicando o problema e retorna ao passo 3. E2: Caso não seja possível imprimir o relatório, o sistema emite uma mensagem de erro explicando o problema e retorna ao passo3. Especificação do Caso de Uso - Efetuar Logon A. Ator Relacionado Trabalhador e Gerente, ambos chamados de usuário para facilitar a especificação deste caso de uso. B. Objetivo Este caso de uso permite ao usuário efetuar o seu logon no sistema e, a partir daí, escolher as opções disponíveis para ele: Registrar Presença, Acompanhar Presença ou Emitir Relatório de Presença, dependendo do tipo de usuário. C. Fluxo de Eventos Principal Passo 1: O sistema apresenta a tela de logon ao usuário. Passo 2: O usuário informa sua matrícula e senha. Passb 3: O sistema verifica se esse usuário esta cadastrado (E1). Passo 4: O sistema verifica se a senha para esse usuário esta correta (E2). Passo 5: O sistema apresenta a tela principal do sistema com as opções habilitadas para cada tipo de usuário que efetuar logon. a) Se o usuário é do tipo trabalhador, o sistema habilita as opções "Registrar Presença", "Acompanhar Presença" e "Cancelar". b) Se o usuario é do tipo gerente, o sistema habilita as opções "Emitir Relatório de Presenças" e "Cancelar". Passo 6: Se o usuário escolher "Cancelar", o sistema volta ao passo 1; senão o sistema vai para o caso de uso correspondente à escolha do usuário. D. Fluxos de Exceção E1: Se o usuário não estlver cadastrado, o sistema emite uma mensagem de erro explicando o problema e volta ao passo 1. E2: Se a senha não estiver correta, o sistema emite uma mensagem de erro explicando o problema e retorna ao passo 1. Diagrama de Classes O diagrama de classes seguinte apresenta uma modelagem do caso de uso descrito anteriormente. Observe que a classe Pessoa faz parte de outra aplicação (controle de segurança) e a aplicaçao de controle de ponto apenas faz referência a ela. Ponto Data Horário de Entrada 0..* Horário de Saída Bate Pessoa (Controle de Segurança) 1 Senha Nome Tipo 1 Documenta Justificativa 0..* Data Justificativa Modelo de Entidades e Relacionamentos O modelo físico de dados apresentado em seguida é o que será utilizado para a implementação do banco de dados do sistema. Observe que a classe Justificativa do modelo de classes foi mapeada para duas tabelas: Justificativa e Linhas. Essa decisão de projeto foi motivada pelo fato de o sistema gerenciador de banco de dados utilizado não suportar campos do tipo memo (texto de tamanho indefinido) e ser um requisito do usuário poder escrever uma justificativa de tamanho arbitrário. Justificativa #Matrícula Data Linhas #Matrícula Data #Linha Texto O Pessoa #Matrícula Nome Senha Tipo Apontamento #Matrícula O Data Horário Entrada Horário Saída Detalhamento dos Campos e Arquivos Referenciados Origem Logon Registro de Ponto Consulta Apontamento Diário Exclusão de Apontamento Alteração de Apontamento Acompanhar Presença Emitir Relatório de Presença Entradas Matrícula Senha Mensagens Comando Indicador de entrada ou saída Mensagens Comando Data do Ponto Horário de Entrada Horário de Saída Mensagens Comando Mensagens Comando Horário Anterior Horário Novo Justificativa Mensagens Comando Data Inicial Data Final Total de Horas do Período Nome do Traalhador Data do Ponto Horário do Ponto Indicador de Entrada ou Saída Justificativa Mensagens Comando Data Inicial Data Final Matrícula Nome Total de Horas do Trabalhador Número de Justificativas Total de Horas Geral Mensagens Comando Saídas Pessoa Apontamento Apontamento Justificativa Apontamento Justificativa Apontamento Justificativa Apontamento Justificativa Pessoa Apontamento Justificativa Pessoa Contagem de Pontos de Função Não-Ajustados Utilize o quadro abaixo para identificação e classificação das funcionalidades a partir dos requisitos apresentados. Descrição Tipo* Tipo Dado Qtde. Arquivos Referenciados Qtde. Tipos de Registro Complexidade * Classificação de funcionalidade (ALI, AIE, EE, SE ou CE) Utilize o quadro abaixo e, a partir dos valores obtidos, calcule os Pontos de Função Não-Ajustados: Tipo Função EE SE CE ALI AIE Quantidade Complexidade Funcional Baixa Média Alta Baixa Média Alta Baixa Média Alta Baixa Média Alta Baixa Média Alta Pontos de Função 3 4 6 4 5 7 3 4 6 7 10 15 5 7 10 Total de Pontos de Função Não-Ajustados Totais por Complexidade Total por Tipo de Função