Desarrollo Formal de Programas Clase 3

Anuncio
Working Hypothesis
Desarrollo Formal de Programas
Clase 3
Camilo Rueda 1
1 Universidad
Javeriana-Cali
PUJ 2007
Working Hypothesis
Oz
Refinamiento
Detallar un modelo no implica construir uno totalmente
nuevo
Los detalles definen cosas adicionales para observar
Las observaciones adicionales implican en general nuevas
variables
Para las nuevas variables se establecen propiedades
deben especificarse relaciones entre las variables
viejas (modelo abstracto) y las nuevas (refinamiento)
Working Hypothesis
Oz
Ejemplo: refinamientodel partido de fútbol
Se observan los jueces y dos equipos
Los jueces no juegan en los equipos
Un jugador de un equipo no juega en el otro
Cada equipo es de 17 jugadores
Hay tres jueces de campo, más un cuarto juez
en la cancha hay máximo 11 jugadores de cada equipo
Working Hypothesis
Oz
Ejemplo: refinamientodel partido de fútbol (cont)
Qué es constante?
El conjunto de jueces de campo
El cuarto juez
El conjunto de jugadores de cada equipo
Qué es variable?
Qué jugadores de cada equipo hay en la cancha
Qué jugadores de cada equipo hay afuera
Qué jugadores de cada equipo hay expulsados
Working Hypothesis
Oz
Ejemplo: refinamientodel partido de fútbol (Rodin)
(Ver futbol-refin1.zip)
Note el invariante de encadenamiento
Observe que las variables de la abstracción se remplazan
Note que un evento (por ejemplo, entra) se puede refinar
con varios eventos
Working Hypothesis
Oz
Refinamiento de un modelo
Relación del modelo abstracto y el concreto: Invariante de
encadenamiento
Un evento C refina un evento A:
Cuando la guarda de C es más fuerte que la de A
Cuando el invariante de encadenamiento se preserva en la
acción conjunta de A y C
Propiedad global:
El modelo refinado no debe bloquearse con mayor
frecuencia que su abstracción
Working Hypothesis
Oz
Consistencia de refinamiento(1)
xxx=
xxx=
when
P(v )
then
S(v )
end
when
Q(v , w)
then
T (v , w)
end
Obligación de prueba
I(v ) ∧ J(v , w) ∧ Q(v , w) ⇒ (P(v ) ∧ J(S(v ), T (v , w)))
Working Hypothesis
Oz
Consistencia de refinamiento(2)
xxx=
xxx=
any x where
P(x, v )
then
v := E(x, v )
end
any y where
Q(y , w)
then
w := F (y, w)
end
I(v ) ∧ J(v , w) ∧ Q(y , w) ⇒ ∃x .(P(x, v ) ∧ J(E(x, v ), F (y , w)))
Working Hypothesis
Oz
Limitación de deadlocks
Para cada evento abstracto:
xxx=
any x where
P(x, v )
then
v := E(x, v )
end
I(v ) ∧ J(v , w) ∧ P(x, v ) ⇒ disyunción de guardas concretas
(Si un evento abstracto puede dispararse, también uno
concreto)
Descargar