Skip to content

Explicação detalhada das classes e processos:

  • Usuário (abstract)

  • Classe base para todos os usuários (Aluno, Monitor, Professor).

  • Atributos comuns: id, nome, email, senhaHash.

  • Métodos básicos: autenticar (login), editarPerfil.

2 Alunos

  • Herda de Usuario.

  • Pode solicitar agendamento com monitores.

  • Visualiza monitorias disponíveis.

  • Envia mensagens para monitores.

3. Monitor

  • Herda de Usuario.

  • Pode aceitar agendamentos solicitados pelos alunos.

  • Registra presença do aluno na monitoria.

  • Responde mensagens recebidas.

4. Professor

  • Herda de Usuario.

  • Cadastra disciplinas no sistema.

  • Atribui monitores às disciplinas.

  • Gera relatórios com dados das monitorias.

5. Disciplina

  • Representa uma matéria ou curso com monitoria.

  • Possui nome, código, descrição.

  • Relaciona-se com vários monitores.

  • Permite obter agendamentos para acompanhamento.

6. Agendamento

  • Marca um encontro entre aluno e monitor.

  • Atributos: dataHora do atendimento, status (Pendente, Confirmado, Cancelado).

  • Pode ser confirmado ou cancelado.

7. Presença

  • Registra se o aluno compareceu ao atendimento.

  • Atributo “presente” (sim/não).

  • Associada a um agendamento.

8. Mensagem

  • Comunicação entre usuários (aluno, monitor, professor).

  • Guarda conteúdo e data/hora.

  • Tem remetente e destinatário (do tipo Usuario).

  • Pode ser enviada e respondida.

9. Relatório

  • Criado pelo professor para avaliar o desempenho das monitorias.

  • Contém dados resumidos de agendamentos e presenças.

  • Ajuda na gestão e tomada de decisão.

  • Relacionamentos principais:

  • Herança: Aluno, Monitor e Professor são tipos de Usuario.

Associações:

  • Aluno faz vários Agendamentos com Monitores.

  • Monitor gerencia os Agendamentos.

  • Presença é ligada a um Agendamento.

  • Professor cadastra várias Disciplinas.

  • Disciplina tem vários Monitores.

  • Mensagem conecta dois Usuarios.

  • Relatório pertence a um Professor.

Mapa mental Monitoria

Diagramaclasse

@startuml
skinparam monochrome true
skinparam ArrowColor #000000
skinparam NodeFontSize 14

' Classe abstrata base para os usuários do sistema
abstract class Usuario {
  - id: 
  - nome: 
  - email: 
  - senhaHash: 
  + autenticar(email, senha): 
  + editarPerfil()
}

' Subclasses específicas de usuários
class Aluno {
  + solicitarAgendamento(dataHora, monitor): Agendamento
  + visualizarMonitorias(filtros): List<Disciplina>
  + enviarMensagem(destinatario, conteudo): Mensagem
}

class Monitor {
  + aceitarAgendamento(agendamento: Agendamento)
  + registrarPresenca(aluno: Aluno, agendamento: Agendamento)
  + responderMensagem(mensagem: Mensagem)
}

class Professor {
  + cadastrarDisciplina(nome, codigo, descricao): Disciplina
  + atribuirMonitor(disciplina: Disciplina, monitor: Monitor)
  + gerarRelatorio(disciplina: Disciplina): Relatorio
}

' Classes principais do domínio
class Disciplina {
  - id: 
  - nome: 
  - codigo: 
  - descricao: 
  + listarMonitores(): List<Monitor>
  + obterAgendamentos(): List<Agendamento>
}

class Agendamento {
  - id: 
  - dataHora: DateTime
  - status: 
  + confirmar()
  + cancelar()
}

class Presenca {
  - id: 
  - presente: 
  + registrar(presente: Boolean)
}

class Mensagem {
  - id: 
  - conteudo: 
  - dataHora: DateTime
  + enviar()
  + responder(conteudo: String)
}

class Relatorio {
  - id: 
  - conteudo: String
  + gerarResumo()
}

' Herança
Usuario <|-- Aluno
Usuario <|-- Monitor
Usuario <|-- Professor

' Relacionamentos
Aluno "1" -- "0..*" Agendamento : solicita >
Monitor "1" -- "0..*" Agendamento : gerencia >
Agendamento "1" -- "0..1" Presenca : registra >
Professor "1" -- "0..*" Disciplina : cadastra >
Disciplina "1" -- "0..*" Monitor : possui >
Mensagem "1" -- "1" Usuario : remetente >
Mensagem "1" -- "1" Usuario : destinatario >
Relatorio "1" -- "1" Professor : pertence >
@enduml