Pular para conteúdo

Exemplo Biblioteca Digital

Problema de Modelagem

Você foi contratado para desenvolver um sistema para gerenciar uma biblioteca de livros digitais. O sistema permitirá que os usuários façam login, procurem livros, reservem livros, e baixem cópias para leitura offline. A biblioteca também oferece assinatura premium, onde os usuários podem acessar livros exclusivos e ganhar vantagens especiais, como reservas antecipadas e downloads ilimitados.


Caso de Uso

Título: Usuário Reserva um Livro

  1. Ator Principal: Usuário autenticado
  2. Atores Secundários: Sistema de pagamento (para verificação de status de assinatura)
  3. Pré-condições:
  4. O usuário deve estar autenticado.
  5. O livro desejado deve estar disponível para reserva.
  6. Fluxo Principal:
  7. O usuário navega na biblioteca e seleciona um livro disponível.
  8. O sistema verifica se o usuário é um assinante premium.
    • Se sim, permite a reserva imediata.
    • Se não, verifica se o número de reservas permitidas não foi excedido.
  9. O sistema realiza a reserva do livro e informa o prazo máximo para retirada.
  10. O sistema atualiza o status do livro como "Reservado" e o associa ao usuário.
  11. Fluxos Alternativos:
  12. Se o livro não estiver disponível para reserva, o sistema informa ao usuário que o livro está indisponível.
  13. Se o usuário excedeu o limite de reservas, o sistema informa que não é possível realizar mais reservas.
  14. Pós-condições:
  15. O livro é reservado com sucesso e o status é atualizado.
  16. O usuário é notificado do prazo para retirar o livro.

Pontos para Modelagem

A partir deste caso de uso, você pode definir os seguintes objetos e suas interações:

  1. Usuário:
  2. Atributos: nome, email, status de assinatura, número de reservas.
  3. Métodos: autenticar(), reservarLivro(), cancelarReserva().

  4. Livro:

  5. Atributos: título, autor, status (disponível, reservado, indisponível), prazo de retirada.
  6. Métodos: verificarDisponibilidade(), reservar(), liberarReserva().

  7. Biblioteca:

  8. Atributos: catálogo de livros, usuários cadastrados.
  9. Métodos: buscarLivro(), registrarReserva(), verificarLimiteReservas().

  10. Assinatura:

  11. Atributos: tipo (premium, básico), limite de reservas.
  12. Métodos: verificarBenefícios().

Esse cenário pode ser expandido com novos casos de uso, como o gerenciamento de downloads ou renovação de assinaturas.