Formalizaciones para Sistemas Abiertos y Basados en Componentes - PowerPoint PPT Presentation

1 / 38
About This Presentation
Title:

Formalizaciones para Sistemas Abiertos y Basados en Componentes

Description:

Se enfrentan a los problemas habituales m s propiedades espec ficas ... Standford (Messeguer y otros -espa oles) Permite definir m dulos con tipos y clases. ... – PowerPoint PPT presentation

Number of Views:63
Avg rating:3.0/5.0
Slides: 39
Provided by: juanjosmor
Category:

less

Transcript and Presenter's Notes

Title: Formalizaciones para Sistemas Abiertos y Basados en Componentes


1
Formalizaciones para Sistemas Abiertos y Basados
en Componentes
  • Juan José Moreno Navarro
  • Curso de Doctorado Software Basado en Componentes
    (junto a M. Collado)

2
Formalizaciones Sistemas Abiertos
  • Se enfrentan a los problemas habituales más
    propiedades específicas (viveza, seguridad, ...)
  • Se usan modelos habituales en concurrencia.
  • Extienden estos con nuevas características o
    formalizan nuevos elementos en ellos.
  • Deben tratar problemas novedosos y complicados.

3
Formalizaciones Sistemas Abiertos - Problemas
  • Composición tardía y extensibilidad.
  • La reutilización es clave, luego el razonamiento
    debe de basarse en propiedades composicionales y
    no del sistema en conjunto.
  • Evolución de componentes y reconfiguración
    dinámica.
  • Errores y retrasos en las comunicaciones.
  • Falta de visión global.

4
Formalizaciones Sistemas Abiertos - Historia
  • Turing ya verificaba programas.
  • Floyd - Pre y postcondiciones condiciones de
    terminación.
  • Lógica de Hoare Pre Sentencia Post
  • Owicki y Gries Extensión a concurrencia
  • P1S1Q1, ..., PnSnQn
  • P1 ? ... ? Pn cobegin S1 ... Sn coend Q1
    ? ... ? Qn

5
Formalizaciones Sistemas Abiertos - Historia
  • Lamport Concepto de invariante propiedad que se
    cumple en todos los estados de la ejecución.
  • Extensiones para CSP, Ada, etc.
  • Complejidad formal y algorítmica inmanejable para
    razonar sobre programas reales.

6
Lógica Temporal
  • Pnuelli 77 Añade a la lógica proposicional
    tiempo discreto y lineal. Extiende lógicas
    modales.
  • Semántica Estados S por los que atraviesa el
    programa - Asignaciones de valores a las
    variables de un programa.
  • Comportamientos C Secuencias infinitas de
    estados
  • (s0, s1, ...) - Una ejecución
  • Terminación Repetición infinita.
  • Operador siempre ? Comprueba la validez de una
    fórmula en todos los estados futuros por los que
    pasará un programa.

7
Lógica Temporal
  • Valoración de un predicado básico P P -
    Función que asocia a cada estado un valor lógico.
  • Semántica de una fórmula lógica F
  • F C ? Bool
  • P (s0, s1, ...) P (s0)
  • F op G (s0, s1, ...)
  • F (s0, s1, ...) op G (s0, s1, ...)
  • ? F (s0, s1, ...) ? n? N F (sn, sn1,
    ...)
  • F es cierto y siempre lo será

8
Lógica Temporal
  • Otros operadores
  • ? alguna vez ?F ? F
  • F es cierta ahora o lo será en el futuro
  • ? conlleva F?G ? (F ?? G)
  • si F es alguna vez cierta, entonces G
  • también lo será bien ahora o en futuro
  • variable ahora

9
Lógica Temporal
  • Semántica de un programa ? ? Conjunto de
    comportamientos.
  • ? F si F(?) es cierto para todos los
  • comportamientos ? de ?
  • Regla de invariancia (Lamport)
  • ?S operación atómica de ? ISI
  • ? I ? ? I
  • Propiedades de viveza y seguridad fáciles de
    expresar

10
Lógica Temporal
  • Múltiples variantes
  • Tiempo lineal, ramificado, discreto, continuo,
    con pasado, con intervalos, ...
  • Operadores adicionales.
  • Unity y CC Chandy y Misra con la select de
    Dijkstra.
  • Temporal Logic of Actions, Lamport Programas,
    especificaciones y propiedades en el mismo
    lenguaje.
  • Razonamiento potente, pero lejos de los programas
    reales No se razona sobre planificación o
    selección de recursos.

11
Lenguajes de Especificación
  • Una especificación es una forma abstracta de
    definir el comportamiento correcto que debe
    observar el programa.
  • Independiente de detalles irrelevantes.
  • Permite comprobar que un programa satisface una
    especificación.
  • Especificación Colección de propiedades que
    debe cumplir un programa.
  • Dos grandes familias basadas en modelos
    abstractos y especificaciones algebraicas (o
    axiomáticas).

12
Modelos abstractos Z
  • Los estados aceptables de un cómputo se
    especifican usando modelos matemáticos
    predefinidos (conjuntos, secuencias, etc.)
  • Los estados aceptables se indican por medio de
    pre y postcondiciones.
  • Esquemas Permiten especificar (modularmente)
    elementos software tanto estáticos como dinámicos.

13
Modelos abstractos Z
  • Esquemas
  • Estados que puede alcanzar el sistema.
  • Invariantes que se conservan en las transiciones.
  • Operaciones.
  • Relaciones entre las entradas y salidas.
  • Cambios de estado cómo y cuándo se producen.
  • Pre y postcondiciones explícitas.

14
Modelos abstractos Z
  • Resultado ok nocabe error

InsertarGen Insertar ?
InsertarConError
15
Modelos abstractos Z
  • Lógica subyacente - W
  • Serias limitaciones para
  • Falta de modularidad / Orientación a objetos
  • Sistemas reactivos, tiempo real, concurrencia,
    ...
  • Se puede plantear un método completo de
    derivación de programas a partir de las
    especificaciones.
  • Utilizado en desarrollos industriales.

16
Modelos abstractos Z
  • Extensión orientada a objetos de Z.
  • Clases con operaciones definidas mediante
    esquemas.
  • Herencia simple.
  • Genericidad.
  • Invariantes de clase.
  • Operador paralelo
  • Operador composicional secuencias
  • Operador de selección nodeterminista

17
Modelos abstractos Z
ColaAcotada
18
Especificaciones axiomáticas
  • El sistema se especifica como una serie de tipos
    abstractos de datos.
  • Las operaciones de estos son funciones
    matemáticas, normalmente definidas en función de
    otras.
  • El comportamiento se define independientemente de
    la representación concreta del tipo.
  • Permiten su ejecución
  • Prototipos
  • Comprobación de las propiedades.
  • OBJ, FOOPS, Maude / Lógica de reescritura.

19
Maude
  • Standford (Messeguer y otros -españoles)
  • Permite definir módulos con tipos y clases.
  • Mecanismos típicos de orientación a objetos
    (agregación, herencia, polimorfismo).
  • Teorías Polimorfismo paramétrico basado en
    axiomas.
  • Reescritura módulo conmutatividad, asociatividad,
    idempotencia.

20
Maude
  • fmod

21
Maude
  • Las ecuaciones se evalúan en paralelo de forma no
    determinista, lo que permite la concurrencia y
    especificar sistemas reactivos.
  • Lenguaje reflexivo (permite expresar el lenguaje
    en si mismo - potencial SBCs)
  • Genera prototipos ejecutables.
  • Eficiencia más que aceptable.
  • Especificaciones muy algoritmicas, lo que lo hace
    inmanejable en algunos casos prácticos.

22
Álgebras de Procesos
  • CCS (Milner)
  • Paso de mensajes acción de salida a(x) (envio),
    acción de entrada a(x) (recepción). a es un
    canal.
  • Composición secuencial ?.P, con ? acción y P
    proceso (? de entrada, salida o interna ?).
  • Composición alternativa no determinista
  • ?.P ?.Q Decisión global si ?,? comunicación
  • Decisión interna, si ?
  • Alternativa determinista if then else

23
Álgebras de Procesos
  • CCS (Milner)
  • Composición paralela P Q
  • Restricción de ámbito de un canal (privado)
    P\a
  • Agente inactivo 0
  • Memoria(i,o) i(x).o(x).Memoria(i,o)
  • Buffer(in, out) (Memoria(in,m)
    Memoria(m,out))\m
  • Trazas
  • in(a).?.out(a) ... in(a).?.in(b).?.out(a).out(b)
    ...
  • in(a).?.in(b).?.out(a).in(c).?.out(b)...

24
Álgebras de Procesos
  • CSP (Hoare)
  • Concebido como un lenguaje de programación.
  • Álgebra muy rica y compleja.
  • Ha dado lugar a lenguajes de programación Occam
  • También a lenguajes de especificación LOTOS,
    estándar OSI para especificar sistemas abiertos.
  • Procesos básicos STOP (interbloqueo), SKIP
    (éxito), RUN (divergencia).

25
Álgebras de Procesos
  • CSP (Hoare)
  • Composición secuencial acciónproceso a?P,
    procesoproceso PQ
  • Comunicación/Sincronización
  • Envío a!x?P Recepción a?x ?Q (a canal)
  • Composición alternativa
  • Elección n.d. Decisión global ?
  • Decisión local ?
  • Composición paralela
  • Sincronización Entrelazado

26
Álgebras de Procesos
  • CSP (Hoare)
  • Pila Pilaltgt
  • Pila ltgt push?x Pilaltxgt
  • Pilaltxgt pop!x ? SKIP ?
  • push?y ? StackltygtStackltxgt
  • Trazas Secuencias de acciones en ls que el
    proceso
  • puede sincronizarse.
  • ltpush.x, pop.x, ? gt,
  • ltpush.x, push.x, pop.y, pop.x, ? gt, ...

27
Cálculo ?
  • Milner. Simplifica las álgebras de procesos (más
    libertad) para que sean dinámicas.
  • Procesos (agentes) que interactúan por medio de
    enlaces o nombres ? canales bidireccionales
    compartidos por varios procesos.
  • No hay distinción entre canales y datos (todos
    son nombres), lo que facilita la movilidad y la
    configuración dinámica.
  • Un proceso que recibe un nombre puede enviar
    después por él reconfiguración dinámica.

28
Cálculo ?
  • Proceso inactivo 0
  • Transiciones silenciosas ?.P (modelan acciones
    internas, tarde o temprano evoluciona a P).
  • x y.P Se envía los nombres y (secuencia) por el
    nombre x y después se comporta como P.
  • x(w).Q Se reciben los nombres y por el nombre x
    y después se comporta como Qy/w
  • P Q Composición paralela.
  • xzP Comprobación (matching). Si x es igual a
    z se comporta como P, sino como 0.

29
Cálculo ?
  • Composición alternativa
  • Decisión local (... ?.P ?.Q ...) ?? P ó
    Q
  • Decisión global (... x y.P x (w).Q ...) ??
    P Q y/w
  • Nombres privados (x)P
  • Crea un nombre x privado al proceso P. Otros
    procesos pueden comunicarse por x pero P debe
    comunicarselo antes.
  • Replicación !P
  • Crea tantas réplicas de P en paralelo como sea
    necesario
  • ? (P !P)
  • A(w) P, permite definir nuevos procesos pueden
    ser recursivos.

30
Cálculo ?
  • Valores y estructuras de datos
  • False(x) x FALSE.0 Nil(x) x NIL.0
  • True(x) x TRUE.0 Cons(x) x CONS. x h . x
    t.0
  • TRUE, FALSE CONS (TRUE, CONS (FALSE, NIL))
  • (l1, l2, l3, v1, v2)( Cons (l1, v1, l2)
  • Cons (l2, v2, l3)
  • Nil (l3)
  • True (v1)
  • True (v2) )

31
Cálculo ?
  • Movilidad
  • a(x).x(z) Recibe por a el nombre x y lo utiliza
  • para enviar otro mensaje.

P (x, y) x y.P(x) Q (x) x(z).Q(x, z)
P(x,y) Q(x) R(y) P(x) Q(x, z)y/z
R(y)
32
Cálculo ?
  • Sistema de Transiciones (cálculo)
  • P ?? P P realiza la acción ? y se convierte
    en P

33
Cálculo ?
  • Sistema de Transiciones (cálculo)

34
Cálculo ?
  • Sistema de Transiciones (cálculo)

35
Cálculo ?
  • ELAN Implementaciones para prototipado por medio
    de un interprete de reescritura.
  • Cálculo ? asíncrono (menos expresivo).
  • Pict Lenguaje de programación basado en el
    cálculo ? asíncrono.
  • Nepi Lenguaje de programación distribuido basado
    en el cálculo ?? (versión equivalente más apta
    para la implementación distribuida).
  • Piccola Lenguaje para sistemas concurrentes y
    distribuidos especificados por medio de scripts,
    basado en el cálculo L? (versión asíncrona).

36
Otros formalismos
  • Máquinas de estado comunicantes permiten
    describir máquinas de estado que se comunican por
    paso de mensajes. Lenguajes completos (creación y
    destrucción de procesos, estructuras de datos,
    control). SDL, Estelle, Promela.
  • Redes de Petri Sistemas de transiciones de
    estado. Usa concurrencia real. No hay procesos y
    el sistema se ve como un todo. Apropiado para
    telefonía y tiempo real.

37
Otros formalismos
  • Máquina química abstracta (CHAM)
  • Interacción y sincronización de acuerdo al
    funcionamiento de las moléculas químicas.
    Elementos Moléculas, soluciones y reglas.
  • ltG, C, Rgt
  • G Gramática
  • C Moléculas (lenguaje generado por G)
  • R Reglas - condición ? inbag(C) ? outbag (C)
  • Reglas paralelas en distintas moléculas
    (concurrencia y nodeterminismo)
  • Finalmente se obtiene una solución (bag (C)

38
Otros formalismos
  • B AMN Lenguaje y sistema B (Abrial) da soporte a
    todo el desarrollo (formal) de una aplicación.
    Basado en pre/postcondiciones.
  • La máquina abstracta de B AMN orientada a
    objetos con soporte para sistemas reactivos y
    distribuidos.
  • Utilizada con éxito en desarrollos industriales.
  • (Línea 14 del metro de Paris totalmente
    automátizada
  • 100.000 l. Especificación 87.000 l. Ada
    27.000 pruebas
  • Ningún error al validarlo con técnicas
    convencionales
Write a Comment
User Comments (0)
About PowerShow.com