Reingeniería

Índice

Notas generales:

A la vez que se ha hecho uso de ingeniería durante el proyecto, ha tenido también sus fases de reingeniería (posiblemente a causa de Xtreme-Programming para tener una aplicación-demo para que el cliente (profesor) viera el progreso de la aplicación). La reingeniería usada se puede dividir en los siguientes puntos:

Traducción de código fuente:

No partimos de ningún sistema creado, pero la migración de código fuente JAVA de una versión de JDK a otra (causa de la no actulización de los equipos a los que iba destinado la aplicación) supuso la traducción y modificación de código fuente en JAVA JDK 1.6 a código en JAVA JDK 1.4. Sólamente tuvo que migrarse los proyectos destinados a la parte del cliente de la aplicación ya que los navegadores estaban configurados a Java JDK 1.4.

Ingeniería inversa:

En más de una ocasión, el código se adelantó al diseño. Esto nos condujo a que el diseño se realizara después del código (diagramas UML, diagramas de secuencia…). Además, esos diseños obligaron a reestructuraciones del código ya escrito por lo que muchas veces el diseño fue en paralelo con la implementación. Un ejemplo claro puede tratarse del cargador de módulos el cual su implementación se adelantó al diseño y el cual fue reestructurado completamente tras realizar el diseño del mismo.

Re-estructuración de programas:

Ésta parte de reingeniería practicamente se ha realizado conjuntamente con las revisiones realizadas por los componentes del grupo. En las cuales se revisaba que el código cumpliera el control de calidad y no tuviese una lógica farragosa.

Modularización de programas:

En cuanto a la modularización de la aplicación, se ha seguido muy estrictamente el nombramiento de paquetes propuesto en el siguiente esquema jerárquico. Se puede apreciar facilmente la diferencia entre módulos y juegos los cuales implementan su parte de cliente y servidor. Sólamente añadir que el paquete IStation.Servidor se refiere al cargador de los módulos de la aplicación.