"Ingeniería del Software Automática"

Dra. María Alpuente Frasnedo
Dpto de Sistemas Informáticos y Computación
Universidad Politécnica de Valencia



Resumen

Los sistemas informáticos desempeñan un papel esencial en la Sociedad de la Informacion.
A medida que la sociedad se implica más en tales sistemas
(a través de la creciente avalancha originada por Internet, las redes de
telecomunicaciones, etc), y crece su dependencia hacia ellos,
la necesidad de asegurar la corrección de su comportamiento se hace
patente. Los usuarios de las nuevas tecnologías, trabajando en un contexto global
donde cada vez más gente y organizaciones entran en contacto, cooperan y comercian,
encuentran cada vez más frustrantes las consecuencias derivadas de los
fallos de software (como el tener que reiniciar el equipo para recuperar un
comportamiento estable del sistema), por no hablar de las repercusiones que pueden
tener estos fallos en las áreas donde la seguridad es crítica.

Por su naturaleza, las técnicas y herramientas automáticas deben
descansar en fundamentos sólidos que permitan al usuario de los mismos
(ingeniero de requisitos, programador, o gestor) confiar en la aplicacion bajo
cualquier circunstancia. Esta es la perspectiva que guía
la aplicacion de los métodos formales en la ingeniería del software.
La charla se centra en técnicas formales, y las correspondientes
herramientas automáticas asociadas,
que dan soporte sistemático y racional al desarrollo del software.
Para mejorar los resultados de la aplicacion de los metodos formales
nuestro enfoque apuesta por una aproximacion lightweight
('peso ligero', que 'pesa poco' y 'pega fuerte'..) que,
en contraste con otros métodos más tradicionales que promueven un
formalizacion excesiva y que requiere una formacion matematica poco
habitual en los usuarios finales,
se basa en una seleccion precisa y focalizada de los metodos, lenguajes,
etc, que integra una variedad de lenguajes, técnicas formales y herramientas
automáticas que resulta mas beneficiosa en la practica: por ejemplo, tecnología
para soportar el análisis, especificación, verificación, depuración, certificación,
síntesis y transformación de código,
con aplicaciones en minería de datos, sistemas automatizados para la
toma de decisiones, o tecnología de componentes, por poner algunos ejemplos.