Intermedio
Unas 24 horasProyecto 2 de 4Gestión de una clínica veterinaria
Una clínica veterinaria quiere controlar sus pacientes (perros, gatos y animales exóticos), sus propietarios, las citas y los tratamientos. Cada tipo de animal tiene reglas distintas: vacunas obligatorias, cálculo de la dosis según el peso y precio de la consulta. Diseña el modelo orientado a objetos y una aplicación de consola para gestionarlo.
Java 21POOColeccionesPlantUML
Tu avance0/18 · 0 %
Objetivos de aprendizaje
- •Modelar un dominio con clases, herencia, clases abstractas e interfaces
- •Aplicar polimorfismo para evitar condicionales sobre el tipo
- •Encapsular datos y validar invariantes en constructores y setters
- •Usar listas y mapas con objetos propios (equals, hashCode, Comparator)
Requisitos mínimos
Fases sugeridas
- 1
Modelo
- 2
Clases del dominio
- 3
Servicio y colecciones
- 4
Interfaz de consola
Qué entregar
- Código fuente organizado en paquetes (modelo, servicio, app)
- Diagrama de clases (.puml e imagen) actualizado al código final
- Documento breve con las decisiones de diseño
Para ir más allá
- Persistencia en ficheros CSV al salir y al arrancar
- Factura de una consulta con descuentos por propietario frecuente
- Pruebas JUnit de las reglas de cada animal
Rúbrica de evaluación
| Criterio | Peso | Para la máxima nota |
|---|---|---|
| Diseño orientado a objetos | 35 % | Herencia solo donde hay «es un», composición donde hay «tiene un» y ningún switch sobre el tipo de animal |
| Encapsulación y validación | 20 % | Ningún objeto puede quedar en un estado inválido |
| Colecciones | 20 % | Colección adecuada a cada uso y equals/hashCode coherentes |
| Funcionalidad | 15 % | Todas las operaciones y listados funcionan |
| Documentación | 10 % | Diagrama fiel al código y decisiones justificadas |
Úsala para autoevaluarte antes de entregar. Tu profesorado puede usar otros criterios.
Consejos y errores típicos
- Si escribes if (animal instanceof Perro) para calcular algo, ese cálculo debería ser un método redefinido.
- Diseña antes de programar: cambiar el diagrama cuesta minutos; cambiar el código, horas.