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)
- 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).
- 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.
- 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).
- 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.
- 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».
- 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.
- 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.
- 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)
- 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».
- 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).
- 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.
- 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.
- 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.
- Viviendas y Habitaciones: Diseñar un sistema inmobiliario. Una Casa está tiene Habitaciones. Una habitación tiene uno o varios Mueble.
- 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)
- 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.
- 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.
- 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.
- 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).
- 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