Desarrollo Formal de Software Construir Modelos
Transcripción
Desarrollo Formal de Software Construir Modelos
Desarrollo Formal de Software Construir Modelos Profesor: Camilo Rueda 1 1 Universidad Javeriana-Cali PUJ 2012 () PUJ 2012 1 / 16 Introduction what will be learned Obligaciones de prueba La especificación consta de: El contexto, o parte constante, que contiene: los tipos, que se prepresentan mediante conjuntos diferidos las constantes del sistema los axiomas que definen propiedades de las constantes y conjuntos El modelo abstracto (o máquina), que contiene: Las variables del sistema el invariante que expresa propiedades de las variables La parte dinámica del sistema: los eventos () PUJ 2012 2 / 16 Introduction what will be learned Obligaciones de prueba (2) La especificación debe probarse: pruebas de consistencia supuestos probar que los axiomas los valores iniciales cumplen el invariante los axiomas, el invariante, los nuevos valores asignados y la guarda del evento cumplen el invariante prueba de ausencia de bloqueos supuestos probar que los axiomas y el invariante la disyunción de las guardas se cumple () PUJ 2012 3 / 16 Introduction what will be learned Reglas de inicialización Sea v := K la inicialización. Regla de factibilidad: ` ∃v.v = K FIS Regla de inicialización de invariante: ` I(v = K) () INI INV PUJ 2012 4 / 16 Introduction what will be learned Reglas: preservar el invariante Sean: un sistema con variable v e invariante I(v) un evento con guarda G(v) y acción R(v) Factibilidad de la acción I(v) G(v) FIS ` ∃v 0 .v0 = R(v) mantener el invariante I(v) Gi (v) Ev/inv/INV ` I(R(v)) Ausencia de deadlock I(v) ` G1 (v) ∨ . . . ∨ Gn (v) () DLF PUJ 2012 5 / 16 Introduction what will be learned Obligaciones de prueba de refinamiento supuestos los axiomas supuestos los axiomas, el invariante de la abstracción, el invariante de encadenamiento, a guarda de ev () prueba de inicialización probar que existen valores iniciales de la abstracción tales que el invariante de encadenamiento se cumple para ellos con los valores iniciales del refinamiento prueba de un evento ev probar que en la abstracción existen valores asignados a ev tales que el invariante de encadenamiento se cumple para ellos con los valores asignados en el evento ev del refinamiento PUJ 2012 6 / 16 Introduction what will be learned Refinamiento: obligaciones, inicialización Propiedades de las constantes ⇒ IN I IN V REF Invariante concreto modificado () PUJ 2012 7 / 16 Introduction what will be learned Refinamiento: fortalecimiento de guarda Propiedades de las constantes Invariante abstracto Invariante concreto GRD REF guarda concreta ⇒ guarda abstracta () PUJ 2012 8 / 16 Introduction what will be learned Refinamiento: obligaciones Los eventos nuevos refinan uno implı́cito, sin guarda, con acción skip Para todo evento, nuevo o refinado: Propiedades de las constantes Invariante abstracto Invariante concreto guarda concreta IN V REF ⇒ Invariante concreto modificado () PUJ 2012 9 / 16 Introduction what will be learned Refinamiento: no divergencia Para eventos nuevos Propiedades de las constantes Invariante abstracto Invariante concreto guarda concreta W F D REF 1 ⇒ Variante ∈ N () PUJ 2012 10 / 16 Introduction what will be learned Estrategia global de prueba de un modelo 1 Escribir el modelo abstracto 2 Asegurarse de tener una correcta formalización (invariantes) Observar el resultado de la prueba automática. Si existen obligaciones por probar, 3 Chequear rápidamente en ProB que sean ciertas. Si alguna es falsa, corregir el modelo abstracto 4 Escribir el refinamiento. Repetir los pasos 2 y 3. 5 Si quedan pruebas por hacer, hacerlas con los probadores interactivos () PUJ 2012 11 / 16 Introduction what will be learned Estrategia global de prueba de un modelo 1 Escribir el modelo abstracto 2 Asegurarse de tener una correcta formalización (invariantes) Observar el resultado de la prueba automática. Si existen obligaciones por probar, 3 Chequear rápidamente en ProB que sean ciertas. Si alguna es falsa, corregir el modelo abstracto 4 Escribir el refinamiento. Repetir los pasos 2 y 3. 5 Si quedan pruebas por hacer, hacerlas con los probadores interactivos Solo se debe continuar con pruebas interactivas después de esta etapa de adaptación () PUJ 2012 11 / 16 Introduction what will be learned Los probadores de Rodin: newPP Técnica de prueba: Lenguaje: resolución lógica de primer orden más el predicado ∈ Fortalezas: Guarda hipótesis usadas en la prueba algo de soporte para razonamiento ecuacional Debilidades No hay soporte para aritmética ej: descarga 1 = 1, pero no 1 + 1 = 2 No incluye algunos axiomas de teorı́a de conjuntos ADVERTENCIA: newPP es inconsistente En particular para “well-definedness” () PUJ 2012 12 / 16 Introduction what will be learned Los probadores de Rodin: PP Técnica de prueba: Lenguaje: PP resolución lógica de primer orden más teorı́a ecuacional Hay tres variantes: P0 , P1 , P P P0 : hipótesis seleccionadas y objetivo se pasan al probador P P P1 : se traen hipótesis con “lazo” y se pasan al probador P P P P : toda hipótesis disponible se pasa a P P Fortalezas: soporte (limitado) para razonamiento aritmético y ecuacional Debilidades No guarda hipótesis usadas en la prueba Faltan algunos axiomas de teorı́a de conjuntos Algunos problemas con “well-definedness” hipótesis innecesarias pueden impedir encontrar prueba () PUJ 2012 13 / 16 Introduction what will be learned Los probadores de Rodin: ML Técnica de prueba: Lenguaje: Probador Mono-Lemma reglas de deducción hacia atrás y adelante, reglas de reescritura lógica de primer orden más aritmética Fortalezas: Incluye aritmética y razonamiento ecuacional Lo afectan menos las hipótesis innecesarias Debilidades No guarda hipótesis usadas en la prueba No incluye todos los axiomas () PUJ 2012 14 / 16 Introduction what will be learned Fuerza de los probadores Algunos probadores pueden indicar la “fuerza”, por ejemplo m2 o p1 . La fuerza expande el lı́mite de la exploración. Su desempeño relativo se muestra en la tabla: Fuerza 0 1 2 () Tiempo aproximado Siempre menos de 10 segundos hasta 2 minutos hasta varias horas desempeño 70 % +1 % +3 % PUJ 2012 15 / 16 Introduction what will be learned Probar obligaciones: guı́a general Agregar P0 y M L a las “auto-tácticas” (es valor por defecto) Invoque siempre primero las auto-tácticas si la auto-táctica falla, Elimine hipótesis innecesarias Crear distinción de casos (dc) Instanciar cuantificadores aplicar ae para remplazar expresiones complicadas si lo anterior falla, probar haciendo “click” en items rojos () PUJ 2012 16 / 16 Introduction what will be learned Probar obligaciones: garantizar “buena definición” La “buena definición” de expresiones (“well-definedness”) es lo primero que se debe chequear. Posibles problemas: card(E) cuando E no es un conjunto finito max(E), min(E) cuando E es vacı́o, o no hay máximo o mñimo expresiones f (x) cuando x no pertenece al dominio, o cuando f no es función potenciales divisiones por cero () PUJ 2012 17 / 16
Documentos relacionados
Desarrollo Formal de Software Construir Modelos
La especificación consta de: El contexto, o parte constante, que contiene: los tipos, que se prepresentan mediante conjuntos diferidos las constantes del sistema los axiomas que definen propiedade...
Más detalles