Detección de problemas en el software relacionados con el uso de memoria y recursos del sistema

El software adquiere cada día mayor importancia y presencia en la vida cotidiana, por lo que exigir y garantizar el buen comportamiento de los sistemas software se ha convertido en una necesidad. Uno de los aspectos que provoca más fallos en los sistemas es el uso de memoria y de los recursos del sistema. Para comprobar la buena gestión de estos recursos, suelen llevarse a cabo pruebas que, normalmente, no garantizan la ausencia total de errores ya que son capaces de comprobar sólo un subconjunto de las posibles ejecuciones del sistema. En nuestro caso analizamos (estáticamente) propiedades del sistema relacionadas con aspectos que, en caso de mal funcionamiento, hacen vulnerable el software y por tanto el sistema. Además, la respuesta de este análisis es segura, lo que implica una garantía total de buen (o mal) funcionamiento del aspecto particular analizado. Los análisis que podemos hacer están relacionados con el uso de memoria y/o de recursos del sistema, aunque es extensible a otros posibles factores potencialmente peligrosos. En resumen, mediante nuestro análisis podemos garantizar que el software se comporta según las propiedades analizadas, pudiendo detectar a tiempo problemas que siguen causando en el presente grandes catástrofes. Las herramientas y técnicas que se aplican se basan en el análisis estático, es decir, en un análisis anterior a la ejecución del programa y que abarca todas las posibles ejecuciones del software. Otras técnicas hacen un análisis parcial, no pudiendo garantizar el resultado obtenido de forma segura. Como ya hemos mencionado, en nuestro caso se hace un análisis completo garantizando así el resultado (positivo o negativo) obtenido.

Aplicaciones

  • Detección de overflow de memoria.
  • Detección de clusters de memoria.
  • Detección de problemas de uso de recursos.

Ventajas técnicas

  • Mayor fiabilidad en los resultados del análisis y en los errores detectados.

Beneficios que aporta

  • Aumento del nivel de garantía y fiabilidad del producto.
  • Confiabilidad en el resultado del análisis.

Experiencia relevante

  • El grupo ELP, creado en 1989, está identificado en el registro de grupos de investigacion consolidados de la Generalitat Valenciana desde Octubre de 2000 (clave GR-00143). La actividad del grupo se ha relacionado principalmente con los lenguajes de programación multiparadigma y los métodos rigurosos para el desarrollo del software, focalizando su investigación en la programación basada en reglas y el uso de técnicas de interpretación abstracta y técnicas de transformación para la optimización de la ejecución de los programas. Los lenguajes basados en reglas han sido también la base para la programación inductiva y para la representación de modelos complejos, pero a su vez, comprensibles, resultantes de la extracción de conocimiento a partir de datos (minería de datos). El grupo ELP ha participado en más de 30 proyectos competitivos financiados con fondos europeos, nacionales y comunitarios. Su actividad investigadora se ha desarrollado a menudo en conexión con grupos afines radicados en universidades extranjeras, incluyendo Alemania (RWTH Aachen, U. de Kiel), Australia (Monash U.), Austria (Technische Universitat Wien), Estados Unidos (U. of Illinois at Urbana-Champaign, National Research Laboratory, Portland State U., Washington, Stanford), Francia (-'Ecole Polytechnique, U. Grenoble, U. Niza, U. de Paris Sud), Italia (U. di Pisa, U. di Siena, U. di Udine) y Reino Unido (U. Bristol). El grupo ha participado en diversos proyectos con empresas donde se ha transferido el conocimiento del grupo o se ha desarrollado tecnología específica. El abanico de sectores en los que el grupo ha trabajado incluye, lógicamente, empresas de informática y consultoría, pero también empresas que van desde del ámbito de la distribución a la gestión hospitalaria. // The group ELP, created in 1989, was recognized as a consolidated group of the Valencian Government in October 2000 (reference GR-00143). The group's activities have mainly focused on multi-paradigm programming languages and rigurous methods for software development, with particular focus on rule--based programming, and the use of abstract interpretation and program transformation techniques for the optimization of program execution. Rule-based languages have been also used for inductive programming and complex model representation that are also comprehensible as a result of knowledge discovering (data mining). The ELP group has participated in more than 30 competitive research projects funded by the EU, the Spanish Research Funding Agency, and other European foundations. The group keeps a good record of international collaborations. Including Germany (RWTH Aachen, U. Kiel), Australia (Monash U.), Austria (Technische Universit-"at Wien), USA (U. of Illinois at Urbana-Champaign, National Research Laboratory, Portland State U., Washington, Stanford), France (-'Ecole Polytechnique, U. Grenoble, U. Niza, U. Paris Sud), Italy (U. di Pisa, U. di Siena, U. di Udine) and UK (U. Bristol). The Group also keeps a good record of collaboration with industry, including IT companies as well as hospital management and distribution companies.