- Feb 27, 2019 – Creación del repositorio en Git Hub y elicitamos los requisitos. El lenguaje será Java y el entorno Netbeans. Vamos a necesitar una Base de Datos para guardar las asignaturas y sus horarios, lo ideal sería usar las de la Universidad de Huelva, pero por ahora diseñaremos unas tablas propias y las guardaremos una BD local con MySQL.
Tarea 1: Coinciden Asignaturas
- Tarea 1.1 – Creación de clases Java
- Mar 3, 2019 – Diseño del diagrama entidad – relación. Creamos las clases Java y sus atributos.
- Problema – La clase Date es muy engorrosa para guardar una fecha en formato 10:00. Optamos por LocalTime en vez de Date, como tipo para representar la hora de inicio y fin de una clase magistral.
- Tarea 1.2 – Coinciden dos Horas
- Mar 3, 2019 – Se definen las funciones que nos diran si coinciden varias clases en sus horarios.
- Tarea 1.3 – Coinciden Horarios de Teoria
- Mar 5, 2019 – Las asignaturas tienen su horario de teoría y de prácticas. Cuando el alumno inserte un conjunto de asginaturas, primero se mira si coinciden sus horas de teoría, segundo si coinciden sus horas de prácticas y por último, si las teorías coinciden con las demás prácticas.
- El sistema busca si las asignaturas coinciden en sus horarios de teoría. Se testea y funciona.
- Tarea 1.4 – Coinciden Horarios de Prácticas
- Apr 1, 2019 – El alumno tienen que elegir uno de los grupos de prácticas después de matricularse en una asignatura. Esta fución tiene una dificil implementación comparada con las demás.
- El sistema busca si las asignaturas coinciden en sus horarios de prácticas. No se testea.
- Apr 14, 2019 – Se testea pero se opta por una implementación recursiva, mas fácil de entender.
- Tarea 1.5 – Coinciden Horarios de Teoría con los de prácticas
- Apr 1, 2019 – El sistema busca si las asignaturas coinciden en sus horarios de prácticas con los de teoría de las otra asignaturas. No se testea.
- Apr 14, 2019 – Se testea y corrigen errores.
- Test
- Problema – Queremos testear nuestras funciones pero el crear pruebas en el main es tedioso y lento
- Problema – Vamos a usar JUnit para testear pero nuestro proyecto no es un proyecto Maven
- Apr 14, 2019 – Se pasa a proyecto maven y se añaden las dependencias de JUnit, Hibernate y MySQL.
- Apr 14, 2019 – Se crean las baterías de pruebas con JUnit. Las funciones no testeadas fallan.
Tarea 2 – Ver Asignaturas
- Tarea 2.1 – Mostrar Asignaturas
- Apr 12, 2019 – El sistema puede mostrar una lista con todas las asignaturas distonibles
- Tarea 2.2 – Tablas Base de Datos
- Apr 13, 2019 – A partir del diagrama entidad- relación creamos un script con las tablas y valores necesarios para probar nuestro programa
- Tarea 2.3 – Mapear BD y Hibernate
- Apr 15, 2019 – Usamos Hibernate para mapear nuestra BD y crear nuestras clases entidad usando ingeniería inversa.
- Problema – Las clases entidad ( Asignatura y Hora ) que antes teníamos definidas no son iguales a las que Hibernate nos ha creado. Si modificamos sus campos tendremos errores.
- Añadimos metodos nuevos, llamados como los antes definidos y adaptamos el código.
- Tarea 2.4 – Consultar BD
- Apr 15, 2019 – Para ello se crea una clase nueva que se encargará de todas las operaciones con la BD
- Test
- Apr 15, 2019 – Hacemos una batería de pruebas tanto para los metodos nuevos como los que su codigo fue adaptado.
- Tarea 2.5 – Crear Main()
- Apr 19, 2019 – Creamos un sencillo menu usando la consola.
- Apr 22, 2019 – codigo main() adaptado.
Tarea 3: Crear Horario
- Tarea 3.1 – getHorario
- Apr 20, 2019 – Cuando no coincida ninguna asignatura saca un horario. Sin testear
- Apr 22, 2019 – Testeado y corregido
- Test
- Apr 21, 2019 – Se testea la aplicación hasta este punto y se corrigen todos los errores.
- Problema – Las dependencias de maven dan problemas en distintos equipos. Se temina resolviendo.
- Problema – El .jar creado ha partir de los plugins de Maven, tiene un bug. Cuando se hace la conexión con la BD falla hibernate. Desde Netbeans no aparece ese problema
- April 22, 2019 – Nuevas baterías de pruebas, todas son aceptadas.
- Tarea 3.2 – Crear Horarios
- Pendiente. El sistema será capaz de mostrar un horario compatibles a partir de cualquier conjunto de asignaturas.
- Tarea 3.3 – Generar Interfaz Gráfica
- Apr 22, 2019 – Creamos una interfaz gráfica sencilla
- Tarea 3.4 – Usar Patrones de Programación
- Apr 21, 2019 – Uso del patrón Singleton
- Apr 22, 2019 – Reestructuramos el codigo y aplicamos el patrón en las nuevas clases
Final – Release del .jar
- Apr 21, 2019 – creamos nuestro primer realease
- Apr 22, 2019 – editamos el realease con la nueva build