Un portátil con una bombilla y diversos engranajes alrededor.

Ejercicios sobre diagramas de clases

Cuando estudias programación, practicar la elaboración de diagramas de clases es esencial si te planteas crear tus propias aplicaciones. Con estos ejercicios deberás modelar clases, comportamientos, multiplicidades y tipos de relaciones. Están ordenados de menos a más dificultad.

Ejercicios fáciles (Clases base, atributos y relaciones simples)

  1. Sistema de Microblogging: Modelar una red social simplificada donde un Usuario puede publicar muchos Mensajes. Cada mensaje tiene un contenido y una fecha. Se debe reflejar la relación de autoría y cómo un usuario puede seguir a otros usuarios (relación recursiva).
  2. Gestión de una Biblioteca Municipal: Diseñar el esquema para una biblioteca. Existe la clase Libro y la clase Autor. Un libro tiene un único autor, pero un autor puede haber escrito muchos libros. Puede haber Socios que pueden solicitar préstamos de libros concretos.
  3. Catálogo de Componentes de PC: Vamos a representar una tienda de informática. Para ello, consideramos que un Ordenador está formado por una PlacaBase, un Procesador y varios módulos de MemoriaRAM. Es fundamental distinguir aquí qué componentes son esenciales (composición) y cuáles podrían existir de forma independiente (agregación).
  4. Registro de Mascotas en Veterinaria: Diseñar un sistema donde un Dueño tiene una lista de Mascotas. Cada mascota tiene un nombre, especie y edad. El diagrama debe mostrar la relación 1:N y cómo el dueño contacta con la clínica.
  5. Sistema de Biblioteca Escolar: Modelar la relación entre Libro y Ejemplar. Un libro (título, ISBN) puede tener múltiples ejemplares físicos (código de barras, estado de conservación). Los alumnos deben entender la diferencia entre el concepto de «obra» y el objeto «físico».
  6. Gestión de Aparcamiento: Un Parking tiene muchas Plazas. Cada plaza puede estar ocupada por un Vehículo (matrícula, modelo). Se debe reflejar la asociación simple y los atributos necesarios para saber si una plaza está libre.
  7. Lista de Reproducción Musical: Modelar una Playlist que contiene muchas Canciones. Cada canción pertenece a un Álbum. El diagrama debe mostrar la navegación: de la Playlist a la Canción, y de la Canción al Álbum.
  8. Pedidos de Restaurante: Una Mesa tiene un Pedido. El pedido contiene una lista de Platos. Cada plato tiene un nombre y un precio. Es un ejercicio ideal para practicar la multiplicidad y la agregación básica.

Nivel Intermedio (Herencia y multiplicidad)

  1. Plataforma de Streaming de Vídeo: Diseñar un sistema con ContenidoMultimedia. Un contenido puede ser Película (duración) y Serie (número de temporadas). Una serie contiene muchos Episodios. Los usuarios pueden marcar contenidos como «Favoritos».
  2. Centro Educativo (DAM): Modelar la relación entre Ciclo, Modulo y Profesor. Un ciclo tiene muchos módulos. Un profesor puede impartir varios módulos, y un módulo puede ser impartido por varios profesores (relación N:M).
  3. Concesionario de Vehículos: Representar una jerarquía de herencia. De la clase Vehiculo (marca, motor) derivan Coche (nº puertas) y Motocicleta (cilindrada). El concesionario tiene un inventario de ambos. Aquí se practica la herencia de atributos comunes sin usar clases abstractas.
  4. Sistema de Facturación Simple: Una Factura se compone obligatoriamente de varias LineasDeFactura. Cada línea hace referencia a un Producto. Si la factura se elimina, sus líneas desaparecen, pero los productos permanecen en el catálogo.
  5. Gestión de Hospital (Personal): Modelar la clase Persona. Son personas tanto el Paciente (historial médico) como el Sanitario (especialidad). Debe haber Citas que un Paciente pueda solicitar con un Sanitario en una fecha concreta.
  6. Viviendas y Habitaciones: Diseñar un sistema inmobiliario. Una Casa está tiene Habitaciones. Una habitación tiene uno o varios Mueble.
  7. Torneo de Fútbol: Un Equipo tiene un nombre y una ciudad. Está formado por Jugadores. El equipo tiene un Entrenador y juega Partidos en los que hay dos equipos (local y visitante) y registra el resultado.

Ejercicios Avanzados (Lógica de negocio compleja, clases abstractas, interfaces y polimorfismo)

  1. Simulador de Figuras Geométricas: Crear un diagrama donde exista Figura. Clases como Círculo, Cuadrado y Triángulo son figuras. El diagrama debe mostrar cómo una clase Lienzo agrupa diversas figuras para calcular el área total.
  2. Sistema de Gestión de Empleados: Modelar una empresa con Empleados. Un empleado puede ser Comercial (con atributo comisión) o Repartidor (con atributo zona). El diagrama debe incluir una clase Empresa que gestione una lista de empleados y métodos abstractos para calcular el salario.
  3. Sistema de Reservas Aéreas: Modelar un sistema complejo: un Vuelo tiene un Avión asignado, una Ruta y una lista de Pasajeros. Existen diferentes tipos de Asiento (Turista, Business, Primera). Se debe representar la relación entre el billete, el pasajero y el asiento específico asignado.
  4. Gestión de un Taller Mecánico: Un Vehículo (que puede ser Coche o Moto) entra al taller. Se genera una OrdenDeReparacion. Esta orden contiene una lista de Piezas sustituidas y una lista de Mecanicos que han intervenido. Se debe reflejar la trazabilidad del coste total (mano de obra + piezas).
  5. Motor de Videojuego RPG: Diseñar el esquema de un combate. Un Personaje tiene un Inventario (composición). El inventario contiene Items, que pueden ser Armas o Pociones (herencia). El personaje puede pertenecer a un Gremio. Se debe modelar cómo el personaje usa un ítem contra un Enemigo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.