Documento de Arquitetura - FranP2/Projeto-keys GitHub Wiki

Introdução

1.1 Finalidade

Este documento possui como finalidade a elucidação das questões relacionadas à implementação arquitetural do projeto Controle das Chaves, desenvolvido nas disciplinas de Análise e Projeto de Sistemas, que possui como cliente principal a diretoria da escola.

1.2 Escopo

Este artefato documenta assuntos relacionados a visões de casos de uso e de lógica do projeto.

2. Visão dos Casos de Uso

fran2 drawio

2.1 Atores de Casos de Uso

Ator Descrição
Usuário É o perfil comum de acesso ao sistema: alunos e terceirizados.
Servidor Docentes e Técnicos Administrativos.
Vigilante Perfil responsável por gerenciar posse das chaves.

2.2 Descrições de Casos de Uso

Caso de Uso Descrição
Autorizar a posse da chaves Conceder permissão para que alguém tenha as chaves..
Solicitar autorização Pedir autorização para pegar as chaves..
Transferir posse da chave Requisitar a mudança de posse das chaves.
Cadastrar posse da chave Anotar a data e hora em que uma chave foi entregue..
Retirar posse da chaves Finalizar o cadastro e registrar a retirada..
Consultar posse da chaves Identificar o usuário que está com a posse das chaves.
Manter posse da chaves Incluir, remover ou atualizar informações sobre a posse das chaves.

3.visão lógica

Diagrama sem nome drawio(3)

3.1 Classe

3.2 Colobração entre Classes

  • O objetivo deste tópico é apresentar as principais colobração entre as classes para executar suas funções dentro do sistema.

3.2.1 Cartão CRC

Captura de tela de 2024-08-20 16-10-13

3.2.2 LOGÍCA DAS RESPONSABILIDADES

Classe:Possse Responsabilidade:cadastrar()- Cadastrar a posse de uma chave para o usuário.

  • verificar se o usuário (matrícula)existe.
  • Criar objeto usuário .
  • verificar se a chave (código)existe.
  • criar um objeto chave.
  • verificar se a chave está disponível.
  • verificar se o usuário tem autorização.
  • Add data de entrega da chave.
  • mudar a chave para indisponível.
  • validar o usuário com senha.

Responsabilidade:devolver()- retirar a posse da chave de um usuário.

  • pesquisar a posse da chave.
  • data e hora da devolução da chave.
  • mudar a status da posse da chave para disponivel
  • pesquisar quem autorizou a posse da chave.
  • se a chave existe.

Responsabilidade:pesquisar()- pesquisar a posse da chave.

  • verifica se existe uma posse registrada com essa chave
  • recebe a instância da chave.
  • retorna a posse correspondente ou nulo se nao encontrar

Responsabilidade:emAberto()- verificar se esta em aberto a posse da chave

  • procura por posse que nao tem uma data de devolução registrada.
  • retornar uma lista com todos as posses em aberto.

Responsabilidade:notificar()- notificar a posse da chave .

  • verificar todas as posse em aberto.
  • compara a data atual com o limite de devolução
  • notificar os usuários das posses que estão proximas ou que ultrapassaram o limite.

Responsabilidade:transferir()- transferir a posse da chave para um usuário para outro usuário.

  • certificar-se de que a chave esta sob posse de um usuário.
  • garantir a transferencia posse da chave para o usuário.
  • alterar a posse da chave para o novo usuário.
  • informar o novo usuário sobre a posse da chave, e informar o usuário anterior sobre a transferencia se necessario.