Documento de conferencia

Ingeniería inversa aplicada a software numérico: modelos climáticos

| | | |
Resumen

Los objetivos perseguidos fueron: recuperar el diseño del software que implementa al modelo; redocumentar las subrutinas incluidas en los niveles superiores del árbol de invocaciones y especificar los aspectos metodológicos que puedan ser utilizados para efectuar ingeniería inversa de otros modelos de simulación basados en el lenguaje Fortran. Se emplearon las técnicas de ingeniería inversa que se aplican para el análisis de software científico. Los principales resultados obtenidos fueron: a) Un conjunto de reglas para depuración de código quitando comentarios innecesarios y código anulado; b) La definición y aplicación de métricas para evaluar el volumen y la eficiencia de la depuración efectuada; c) La redocumentación del sistema mediante la generación de árboles de invocaciones partiendo de distintas subrutinas del sistema; d) La recopilación de información sobre el intercambio de datos entre subrutinas (uso de bloques common y pasaje de parámetros).\nEl modelo de referencia es en realidad el acoplamiento de un modelo atmosférico y un modelo oceánico. Estructuralmente el modelo acoplado es el encargado de invocar a rutinas de ambos modelos: atmosférico y oceánico, todo programado en Fortran 77. Se trata de un software heredado (legacy code) del que se contó con muy poca documentación sobre su diseño. Esta situación es bastante usual en el campo de los modelos numéricos, habitualmente implementados en programas de varios miles de líneas de código. Esto por supuesto dificulta las tareas de mantenimiento y cambios de funcionalidades, por lo que es muy conveniente la aplicación de ingeniería inversa para recuperar información del diseño del software.

Palabras clave
base de datos
SOFTWARE ENGINEERING
ingeniería inversa
software heredado
modelado climático
http://creativecommons.org/licenses/by/4.0/

Esta obra se publica con la licencia Creative Commons Attribution 4.0 International (BY 4.0)

item.page.license
Imagen en miniatura