Desarrollo del Proyecto

  • 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