scieee AI-readable full text Open interactive document viewer

Diagnosis basada en modelos para la depuración de software mediante técnicas simbólicas.

Ceballos Guerrero, Rafael; Martínez Gasca, Rafael; Valle Sevillano, Carmelo del; Toro Bonilla, Miguel

Abstract

En la programación es esencial tener herramientas para la diagnosis del software que ayuden al pro­gramador y al ingeniero de desarrollo a localizar los errores. En este trabajo, proponemos una nueva aproximación que permite identificar los posibles errores en programas software usando técnicas simbóli­cas(Bases de Grobner). Esta técnica permite generar, a partir la estructura y semántica del programa original, un modelo más simple del programa para llevar a cabo la diagnosis. Se tienen en cuenta las especificaciones formales y el código fuente del programa, y es a partir de ellos como se detecta la sentencia o el conjunto de sentencias que contienen el error al emplear un caso de test determinado. La metodología comienza eliminando las variables no observables y obtiene nuevos asertos referidos a grupos de sentencias del programa. A partir de ahí construimos una red de contextos formada por estos grupos de sentencias y sus correspondientes asertos como nodos, y por último obtenemos la diagnosis mínima utilizando un algoritmo estándar.

Full text

Sistemas Cualitativos y Diagnosis Diagnosis basada en modelos para la depuración de software mediante técnicas simbólicas. R. Ceballos, R. M. Gasea, Carmelo Del Valle y Miguel Toro Departamento de Lenguajes y Sistemas Informáticos, Universidad de Sevilla Escuela Superior de Ingeniería Informática, Avenida Reina Mercedes s/n 41012 Sevilla(Spain) Resumen En la programación es esencial tener herramientas para la diagnosis del software que ayuden al pro gramador y al ingeniero de desarrollo a localizar los errores. En este trabajo, proponemos una nueva aproximación que permite identificar los posibles errores en programas software usando técnicas simbóli cas(Bases de Grobner). Esta técnica permite generar, a partir la estructura y semántica del programa original, un modelo más simple del programa para llevar a cabo la diagnosis. Se tienen en cuenta las especificaciones formales y el código fuente del programa, y es a partir de ellos como se detecta la sentencia o el conjunto de sentencias que contienen el error al emplear un caso de test determinado. La metodología comienza eliminando las variables no observables y obtiene nuevos asertos referidos a grupos de sentencias del programa. A partir de ahí construimos una red de contextos formada por estos grupos de sentencias y sus correspondientes asertos como nodos, y por último obtenemos la diagnosis mínima utilizando un algoritmo estándar. l. Introducción El desarrollo de programas introduce errores que son la causa de paradas y pérdidas de tiem po en la producción de software. La diagnosis permite identificar las partes del programa que no se comportan de la forma esperada. La may oría de las aproximaciones aparecidas en la últi ma década para realizar diagnosis de software se han basado en el uso de modelos (DBM). La formalización de la diagnosis basada en modelos se presentó en (DeKleer&Williams87] y IReiter87], donde se propuso una teoría general para el problema de explicar las discrepancias ntre los comportamientos observados y correc tos de los mecanismos. Apoyándose en ella, la mayoría de las aproximaciones de DBM para componentes caracterizan la diagnosis de un 23 sistema como una colección de conjuntos míni mos de componentes fallando, que explican los comportamientos observados. El Proyecto JADE lleva varios años investi gando sobre la diagnosis basada en modelos aplicada al software, o más concretamente en la depuración basada en modelos (MB Debug ging). Usa un modelo de dependencias basado en el código fuente del programa. Se trata de representar las sentencias y expresiones como si fuesen componentes y las variables como si fuesen las conexiones, realizando un mapeo de constructos Java™ a componentes. Las asig naciones, condiciones, bucles, etc; tienen su cor respondiente método de transformación. Por ejemplo los bucles son transformados en senten cias selectivas anidadas. Para mayor concreción puede consultarse [Mateis99) y [MateisOOJ.