Ingeniería inversa aplicada a software numérico: modelos climáticos - Cajaraville, Pedro G. (2008)
En este proyecto se aplicarán las estrategias y métodos de ingeniería inversa al software que implementa un modelo numérico del clima. El producto final es una documentación de la estructura general y la forma en que se comunican los modelos involucrados. Más específicamente, en principio este trabajo incluirá la documentación de las rutinas de mayor nivel de abstracción, hasta el segundo nivel del árbol de invocación. El modelo climático (numérico) es en realidad la composición o acoplamiento de dos modelos casi independientes: el modelo atmosférico y el modelo oceánico. Justamente se parte de lo que se denomina el modelo acoplado, que consta del programa principal encargado de invocar a rutinas de ambos modelos: atmosférico y oceánico (primer nivel de rutinas). En el segundo nivel de rutinas se encuentran las invocaciones directas desde las rutinas de estos dos últimos modelos. Además del propio programa en código fuente Fortran 77 Lamentablemente se cuenta con muy poca documentación, la mayor parte de la cual corresponde más al área numérica de los procesos físicos del clima que de ingeniería de software aplicada o usada para el desarrollo de la aplicación. En este sentido, es bastante usual en el campo de los modelos numéricos el punto de partida: software heredado (legacy code) en la forma de un programa de varios miles de líneas que se considera la implementación directa de un modelo numérico. Esto por supuesto dificulta las tareas de mantenimiento, cambios de funcionalidades y aún la utilización misma de la aplicación, todas tareas que se intentan simplificar con la aplicación de ingeniería inversa para recuperar información de desarrollo/ingeniería de software.