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

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