Lógica aplicada a la verificación del software y optimización

Curso 2007-2008

Programa de Máster en Ingeniería del Software, Métodos Formales y Sistemas de Información

DEPARTAMENTO DE SISTEMAS INFORMÁTICOS Y COMPUTACIÓN (DSIC)




OBJETIVO

La lógica no es sólo un concepto filosófico o matemático. A lo largo de la historia distintos tipos de lógicas se han utilizado en prácticamente todos los campos relacionados con la informática. El objetivo de esta asignatura es que el alumno conozca y sepa distinguir las posibles aplicaciones de distintos tipos de lógicas en el ciclo de vida del desarrollo de software. Al final de curso el alumno debe ser capaz de identificar qué tipo de aproximación es adecuada para un problema específico.


Los contenidos de este seminario pueden ser usados con distintos objetivos finales y en distintos procesos de la ingeniería del software, dando lugar a métodos ágiles, parciales, optimizados y/o automáticos de técnicas de verificación, modelado, etc. No nos vamos conformar con dar a conocer las distintas lgicas que han sido definidas a lo largo de los años, sino que también pretendemos mostrar cuáles son las lógicas que podemos aplicar en cada momento dependiendo del propósito final (modelado, verificación, etc.) y del marco de trabajo en el que se tenga que integrar  (programación declarativa, visual, bases de datos, etc.).

Además de profundizar en la aplicabilidad de las distintas lógicas, otro objetivo principal de este seminario es el de conocer dos técnicas de optimización básicas que pueden ser integradas, de nuevo, en las distintas áreas y niveles de la ingeniería del software. Se trata de las representaciones simbólicas (especialmente útiles en las técnicas de verificación para compactar el espacio de búsqueda) y de la interpretación abstracta (que puede ser el mecanismo para hacer posible el manejo de problemas con dominios infinitos, por ejemplo para la verificación de programas con un
número infinito de estados).

Para mostrar la aplicabilidad tanto de las lógicas como de las técnicas de optimización, introduciremos un modelo concurrente con el que podemos especificar software complejo, como pueden ser los sistemas reactivos, protocolos de comunicación, sistemas empotrados, etc.




TEMARIO

1. Introducción
2. Lógicas y sus aplicaciones
   
Historia
     Lógica modal
     Lógica temporal
     Lógica dinámica
     Lógica epistémica
     Lógica difusa
3. Técnicas de optimización asociadas
4. Caso de estudio


BIBLIOGRAFÍA BÁSICA
Lógicas

Complementaria

Última actualización: Julio de 2007