Profesor: Camilo Rueda 1 -...
-
Upload
nguyenkhuong -
Category
Documents
-
view
220 -
download
0
Transcript of Profesor: Camilo Rueda 1 -...
Working Hypothesis
Desarrollo Formal de Software
Profesor:Camilo Rueda 1
1Universidad Javeriana-Cali
PUJ 2010
Working Hypothesis Oz
Proposito
Construir modelos formalesde sistemas
Verificar sistemas de softwareya construidos
Dar reflexiones sobre modelamiento y metodos formalesMostrar que el modelamiento formal puede resultarpracticoIlustrar la metodologıa con muchos ejemplosComprender las herramientas de apoyo al modelamientoformal
Contraste: Depuración
Working Hypothesis Oz
Lo que aprendera en el curso
Modelar (en lugar de programar)Las nociones de abstraccion y de refinamientoAlgunas tecnicas matematicas (para estructuras de datos)La practica de probar propiedades de sistemas yprogramas mecanicamenteEl uso de herramientas automaticas de modelamiento yverificacion de sistemas
Working Hypothesis Oz
Las Clases
Introduccion y motivacion mediante ejemplos pequenos, 2clasesEjemplos de desarrollo formal de programas secuenciales:2 clasesEjemplos de desarrollo formal de programas distribuidos: 2clasesEjemplos de desarrollo formal de programas concurrentes:1 claseRefrescar nociones de logica, teorıa de conjuntos, prueba,probadores: 2 clasesEjemplos de sistemas completos: 4 clasesPractica de uso de herramientas de modelamiento: 1 clase
Working Hypothesis Oz
Por que y cuando usar las tecnicas del curso?
Porque a veces no hay nada mejor que se pueda usar...Cuando el riesgo es muy altoCuando los usuarios ya han sufrido suficientementeCuando la gente se cuestiona sus procesos de desarrollode sistemasCuando el costo de mantenimiento se ha vuelto muy alto
Porque ha llegado a la conclusion de que lacomputacion deberıa ser tambien unaingenierıa
Working Hypothesis Oz
Para que le servira en su vida practica?
Para orientar mejor la concrecion de los requerimientos deun sistemaPara hacer mejores especificacionesPara identificar cuando un diseno entra en conflicto con laespecificacionpara verificar (sin depurar) un programa ya construidopara garantizar que un software cumple ciertaspropiedades fundamentalesPara al menos disenar mejores estrategias de depuracion
Para estar al tanto de un area estrategicade la computacion: premio Turing
Working Hypothesis Oz
Requisitos
Que debe saber antes?programarMatematica basica: funciones, relaciones
Que es bueno saber antes?algo de teorıa de conjuntosalgo de logicaalgo de diseno de softwareprogramar en algun lenguaje
Working Hypothesis Oz
Supuestas dificultades sobre tema del curso
Tiene que ser matematicoEl formalismo es difıcil de entenderNo es suficientemente visual (no hay cajas, flechas, etc.)Una persona cualquiera no puede realizar las pruebas quese requieren
Working Hypothesis Oz
Dificultades reales
Se debe pensar mucho antes de ecribir codigoIncorporacion en el proceso de desarrolloModelar es una actividad arduaLa tecnologıa de pruebas debe mejorarRealizar pruebas presupone criterios de disenoBaja calidad de los documentos de diseno
Working Hypothesis Oz
Datos en la industria (Abrial)
– A ojo:
n lıneas de codigo implican n/3 pruebas90 % de las pruebas son automaticas10 % de las pruebas son interactivas400 pruebas interactivas por hombre-mes
– 60,000 lıneas de codigo 20,000 pruebas 2,000 pruebasinteractivas– 2,000 pruebas interactivas 2,000/400 = 5 meses-hombre– Menos caro que tests exhaustivos
Working Hypothesis Oz
En otras disciplinas
Disciplinas de ingenierıa madurasAvionicaAeroespacialIngenierıa civilIngenierıa mecanicaConstruccion de barcos
Hay estrategias similares a metodos formales?Si, los planos:
Cierta representacion del futuro sistemasin la base (no se puede manejar el plano de un carro)permiten razonar sobre el sistema antes de construirlo
Working Hypothesis Oz
En otras disciplinas
Disciplinas de ingenierıa madurasAvionicaAeroespacialIngenierıa civilIngenierıa mecanicaConstruccion de barcos
Hay estrategias similares a metodos formales?Si, los planos:
Cierta representacion del futuro sistemasin la base (no se puede manejar el plano de un carro)permiten razonar sobre el sistema antes de construirlo
Working Hypothesis Oz
Razonar sobre el futuro sistema
Definir y calcular su comportamiento (lo que hace)Incorporar restricciones (lo que no puede hacer)Establecer su arquitecturabasandose en teorıas apropiadas
resistencia de materialesmecanica de fluidosgravitacion, etc.
Working Hypothesis Oz
Tecnicas para construir planos
Utilizar convenciones pre-definidas (usualmentecomputarizadas)Las convenciones deben facilitar el razonamientoAgregar detalles en versiones mas exactasPosponer escogencias dejando opciones abiertasDescomponer un plano en variosReutilizar planos (con pequenos cambios)
Working Hypothesis Oz
Que hacer ANTES de los planos
Definir objetivos principales del futuro sistemaEstudiar factibilidad
Definir Requerimientos
Working Hypothesis Oz
El ciclo de desarrollo clasico
Estudios del sistemaDocumento de requerimientosEspecificacion tcnicaDisenoCodificacionTests
Working Hypothesis Oz
Dificultades
Asegurar consistencia entre fasesMetodos formales pueden ayudar (en ultimas fases)Pero siguen dificultades en primeras fasesParte mas debil: el documento de requisitos
Working Hypothesis Oz
Acerca del documento de requerimientos
Importancia de este documento (dado el sitio en el ciclo dedesarrollo)Obtener un buen documento de requerimientos no es facil
cosas que se dejan de ladoDemasiado especıfico
Los documentos son en general difıciles de explotarPosiblemente existan guıas que permitan hacerlo
Working Hypothesis Oz
Acerca del documento de requerimientos (cont)
A menudo es necesario reescribirloCuesta una cantidad significativa de tiempo y dineroEl famoso sındrome de cambio de especificacion podrıadesaparecer
Working Hypothesis Oz
Reglas de estructuracion
Dos textos separados en el mismo documentotexto de explicacion: el por quetexto de referencia: el que
Incluir el texto de referencia en el de explicacionAnalogıa: los textos de matematicasEl texto de referencia se convierte eventualmente en eldocumento oficialdeben firmarlo las personas involucradas
Working Hypothesis Oz
El texto de referencia
Contiene las propiedades del futuro sistemaConstruido a partir de breves “fragmentos” etiquetados(trazabilidad)Debe ser facil de leer (tipo de caracteres diferente) y facilde identificar (enmarcado en caja)
Working Hypothesis Oz
Requerimientos: ejemplo del MIO
Determinar cuidadosamente los actores del sistema, que seincluiran en la forma de un cierto numero de conjuntos
P1: El sistema se compone de buses y estaciones
Working Hypothesis Oz
Requerimientos (cont)
El sistema controla la llegada y salida de buses de lasestaciones
P2: En cada estacion puede haber como maximo un bus
Working Hypothesis Oz
Requerimientos (cont)
El sistema identifica estaciones que tienen un bus
D1: El sistema registra buses parqueados en estaciones
Working Hypothesis Oz
Las variantes del desarrollo formal de sistemas
principio fundamentalSi el modelo de un sistema computacionaltiene una cierta propiedadentonces el sistema real tambien la tiene
Disenar para garantizarque las propiedadesse cumplen
metodo B
Disenar y luego chequearque las propiedadesse cumplen
model checking
verificar las propiedadesde un software ya construido
metodo JML
Working Hypothesis Oz
Metodo B: idea general
Modelar mediante sistemas de transicion de estadosEstado: observaciones del sistema en un momento dadoTransicion: ocasionada por un evento u operacion
Parte estatica parte dinamicaconstantes, operacionesvariables
Working Hypothesis Oz
Metodo B: idea general (cont)
constantes,variables
propiedades,invariante
operaciones guarda,sustitución
Working Hypothesis Oz
Eventos
Un evento es una transicion que se puede observarConsta de dos partes: una guarda y una accionLa guarda establece cuando puede ocurrir el evento
Esta formada por varias condicionesLa accion explica como se modifican las variables
Esta formada por varias asignaciones simples
Working Hypothesis Oz
Eventos: ejemplo
abrir =when
cerradas > 0then
cerradas, abiertas := cerradas − 1, abiertas + 1end
cerrar =when
abiertas > 0then
cerradas, abiertas := cerradas + 1, abiertas − 1end
Working Hypothesis Oz
Eventos(2)
Notacion
when < guarda > then < accion > end
Caso especial cuando la guarda es true
begin < accion > end
Working Hypothesis Oz
Eventos no determinısticos
xxx=any x , y , z, ... where
P(x , y , ..., v , w , ...)thenS(x , y , ..., v , w , ...)end
cerrar=any p where
p ∈ abiertasthenabiertas := abiertas\{p} ‖ceradas := cerradas ∪ {p}end
Working Hypothesis Oz
Sistema MIO
Hay una cierta cantidad de busesHay una cierta cantidad de estacionesEn un momento dado, en una estacion puede estar un busSe observa la llegada y salida de buses de las estaciones
Working Hypothesis Oz
Sistema MIO: componentes estaticos. Contexto
Constante n : numero total de busesConstante m : numero total de estaciones
Para estas constantes se definen axiomas, que establecen suspropiedades
variable tipon n ∈ N1m m ∈ N1
constantes, conjuntos y sus propiedades forman elcontexto del sistema
Working Hypothesis Oz
Sistema MIO: componentes estaticos. Contexto enRODIN
CONTEXT buses estacionesCONSTANTS
nm
AXIOMSaxm1 : m : N1axm2 : n : N1
END
Working Hypothesis Oz
Sistema MIO: componentes estaticos: abstraccion
Variable be: numero de buses en estacionesPropiedades (tipo) de la variable:
be ∈ N
Observaciones de be obedecen a un invariante
be ≤ n ∧ be ≤ m
Working Hypothesis Oz
Sistema MIO: componentes estaticos: abstraccion
Variable be: numero de buses en estacionesPropiedades (tipo) de la variable:
be ∈ N
Observaciones de be obedecen a un invariante
be ≤ n ∧ be ≤ m
Working Hypothesis Oz
Sistema MIO: componentes dinamicos)
Inicializacionbe := 0Entra un bus a una estacion
when be < n ∧ be < m then be := be + 1 end
Sale un bus de una estacion
when be > 0 then be := be − 1 end
Working Hypothesis Oz
MIO: especificacion en RODIN
MACHINE especSEES buses estacionesVARIABLESbe
INVARIANTinv1 : be : Ninv2 : be ≤ ninv3 : be ≤ m
...
Working Hypothesis Oz
MIO: especificacion en RODIN(cont)
EVENTSinitialisation
beginact1 : be := 0
end
Working Hypothesis Oz
MIO: especificacion en RODIN(cont)
...llega
whengrd11 : be < n
thenact11 : be := be + 1
endsale
whengrd11 : be > 0
thenact11 : be := be − 1
endEND
Working Hypothesis Oz
Obligaciones de prueba
La especificacion consta de:El contexto, o parte constante, que contiene:
los tipos, que se prepresentan mediante conjuntos diferidoslas constantes del sistemalos axiomas (“properties”) que definen propiedades de lasconstantes y conjuntos
El modelo abstracto (o maquina), que contiene:Las variables del sistemael invariante que expresa propiedades de las variablesLa parte dinamica del sistema: los eventos u operaciones
Working Hypothesis Oz
Obligaciones de prueba (2)
La especificacion debe probarse:
pruebas de consistenciasupuestos probar que
los axiomas los valores inicialescumplen el invariante
los axiomas, el invariante, los nuevos valores asignadosy la guarda del evento cumplen el invariante
prueba de ausencia de bloqueossupuestos probar que
los axiomas y el invariante la disyuncion de lasguardas se cumple
Working Hypothesis Oz
Reglas de inicializacion
Sea v := K la inicializacion.
Regla de factibilidad: ` ∃v .v = K FIS
Regla de inicializacion de invariante: ` I(v = K) INI INV
Working Hypothesis Oz
Reglas de inicializacion: ejemplo
Factibilidad: ` ∃parq.parq = 0 FIS
Satisfaccion del invariante:
` 0 ∈ N ∧ 0 ≤ nest ∧ 0 ≤ nbus INI INV