Diagrama de Classes de Domínio - agleizer/ProjSoft_PRJ GitHub Wiki

diagramaDeClassesDeDominioEditavel_1019_1902

# TODO: atualizar dicionário com base na v4 do diagrama

Dicionário do Modelo

  • Aluno: Representa um estudante, com informações sobre a quantidade de aulas assistidas.
  • Professor: Representa um professor, com atributos que indicam sua aprovação e a quantidade de aulas ministradas.
  • Aula: Representa uma aula ministrada, com dados como matéria, data da aula, check-in, check-out, duração, avaliação e link.
  • Pagamento: Representa o pagamento de uma aula, com detalhes sobre valor, data de solicitação, data realizada e data limite.
  • Agendamento: Representa o agendamento de uma aula, com dados de confirmação e data.
  • Avaliacao: Representa uma avaliação feita, com nota e comentário.
  • Cancelamento: Representa o cancelamento de uma aula, com detalhes sobre valor de reembolso e prazos.
  • CatálogoAula: Representa um catálogo de aulas, contendo a lista de matérias, valores e a possibilidade de desconto.
  • Notificação: Representa uma notificação enviada, com conteúdo, data de envio e data de recebimento.
  • Agenda: Representa uma agenda, com datas disponíveis para aulas e lista de compromissos.
  • Cliente: Representa um cliente que pode acessar o sistema, com informações como nome, email, data de nascimento, avaliação e status de bloqueio.

Associações entre as Classes

  • Aluno e Agendamento: Um aluno pode realizar zero ou mais agendamentos, e cada agendamento pertence a um único aluno.

    • Multiplicidade: Aluno 1 - 0..* Agendamento
  • Professor e Aula: Um professor pode ministrar uma ou mais aulas, e cada aula tem um único professor.

    • Multiplicidade: Professor 1 - 0..* Aula
  • Aula e Avaliacao: Uma aula pode receber zero ou mais avaliações, e cada avaliação refere-se a uma única aula.

    • Multiplicidade: Aula 1 - 0..* Avaliacao
  • Aluno e Avaliacao: Um aluno pode enviar zero ou mais avaliações, e cada avaliação pertence a um único aluno.

    • Multiplicidade: Aluno 1 - 0..* Avaliacao
  • Agendamento e Aula: Um agendamento marca uma única aula, e cada aula pode ter zero ou mais agendamentos.

    • Multiplicidade: Agendamento 1 - 1 Aula
  • Pagamento e Aula: Um pagamento refere-se a uma única aula, e cada aula pode ter zero ou mais pagamentos.

    • Multiplicidade: Pagamento 1 - 0..* Aula
  • Cancelamento e Aula: Um cancelamento refere-se a uma única aula, e cada aula pode ser cancelada uma única vez.

    • Multiplicidade: Cancelamento 0..1 - 1 Aula
  • Notificação e Cliente: Uma notificação pode ser enviada para um ou mais clientes, e um cliente pode receber várias notificações.

    • Multiplicidade: Notificação 0..* - 1 Cliente
  • Cliente e Aula: Um cliente pode participar de zero ou mais aulas, e cada aula pode ter um ou mais clientes.

    • Multiplicidade: Cliente 0..* - 0..* Aula

Atributos das Classes

  • Aluno

    • Quantidade de Aulas Assistidas (Int)
  • Professor

    • Aprovado (Boolean)
    • Quantidade de Aulas Dadas (Int)
  • Aula

    • Matéria (String)
    • Data da Aula (Date)
    • Check-in (Boolean)
    • Check-out (Boolean)
    • Duração (Time)
    • Avaliação (Float)
    • Link da Aula (String)
  • Pagamento

    • Valor (Float)
    • Data de Solicitação (Date)
    • Data Realizada (Date)
    • Data Limite (Date)
  • Agendamento

    • Data de Agendamento (Date)
    • Confirmado (Boolean)
  • Avaliacao

    • Nota (Float)
    • Comentário (String)
  • Cancelamento

    • Valor de Reembolso (Float)
    • Data de Solicitação (Date)
    • Prazo Válido (Boolean)
    • Data Realizada (Date)
  • CatálogoAula

    • Lista de Matérias (String)
    • Lista de Valores (Float)
    • Desconto de Pacote (Boolean)
    • Multiplicador de Desconto (Float)
  • Notificação

    • Conteúdo (String)
    • Data de Envio (Date)
    • Data de Recebimento (Date)
  • Agenda

    • Matriz de Datas Disponíveis (Date)
    • Lista de Compromissos (String)
    • Data Realizada (Date)
    • Data Limite (Date)
  • Cliente

    • Nome (String)
    • Email (String)
    • Data de Nascimento (Date)
    • Avaliação (Float)
    • Bloqueado (Boolean)
    • Senha (String)