View
213
Download
0
Tags:
Embed Size (px)
Citation preview
A Study on the Formalization of Structures Analysis by Means of a Process Algebra +Time
Preparado para las VII Jornadas de Tiempo Real’045-6 Febrero 2004. Málaga.
Por Manuel I. Capel-Tuñón,Juan Antonio Holgado.
Universidad de Granada.{mcapel,jholgado}@ugr.es
y José Ramón Balsas Almagro.Universidad de Jaé[email protected]
Resumen–Formalización de entidades RT/SA mediante un álgebra de procesos con descripción explícita del tiempo
–Un procedimiento de transformación sistemático de las entidades de análisis estructurado en términos de procesos de CSP+T
–Obtención de criterios de diseño que permitan el desarrollo de sistemas de control basados en eventos discretos con propiedades de tiempo real
Indice
Introducción
Objetivos
Método
Ejemplo Inicial
Caso práctico de diseño: la celda de producción
Seguridad vs. Rendimiento
Conclusiones
Trabajo futuro
Referencias
IntroducciónRT/SA
Características como método de especificación,
– Lenguaje de especificación orientado a procesos muy
utilizado, aún sin semántica formal aceptada
– Notación gráfica muy intutiva. Hace fácil el proceso de
especificación de STRs, con un mínimo entrenamiento
– Muy restrictiva en cuanto a capacidad descriptiva de
restricciones temporales
– Fracasan los intentos de formalización
IntroducciónEspecificación Formal de Sistemas
Las restricciones temporales se
especifican en una fase
posterior a la del diseño del
sistema objetivo
Ninguna especificación formal
de transformaciones de datos
Tampoco se realiza ninguna de
los tipos de datos
Las restricciones temporales
especificadas junto con los
requisitos funcionales
Se realiza una especificación
formal del comportamiento de
cada uno de los procesos
Es compatible con
especificaciones formales de
datos: Z, algebráicas, etc.
Métodos de Análisis Estructurado Especificación Formal con CSP+T
IntroducciónDe la especificación al diseño: un enfoque integrado
Método de desarrollo sistemático bottom-up,
–Proporciona al ingeniero una notación gráfica de diseño
–Desambiguación de las entidades RT/SA
–Notación compacta basada en términos de procesos TCSP
que incluye descripción de restricciones temporales
–Desarrollo sistemático que asigna una semántica a RT/SA
preservada hasta el diseño detallado
–Asumible por entornos de desarrollo formal basados en CSP
Métodos de Análisis Estructurado + CSP+T Especificación Formal
IntroducciónSistemas controlados por eventos discretos
“The production cell processes metal blanks that are conveyed to a press by a feed belt. The first robot arm takes each blank from the feed belt and places it in the press. Because the belt and the robot are different heights, there is an elevating rotaring table which is designed to give blanks to the robot. The press forges a new metal blank and opens again. Forged metal plates are taken out of the press and put on a deposit belt by a second robot arm. A possible configuration of the production cell uses a traveling crane to return plates to the feed belt…”
El Problema de la Celda de Producción
Objetivos:
Traer los procedimientos de la Ingeniería del Software al desarrollo formal de los sistemas de tiempo-real
Obtener un diseño de sistema correcto-por-construcción mediante la transformación sistemática de esquemas de alto nivel de abstracción
Utilizar la tecnología actual sobre timed process algebras-una manera prometedora de cerrar el gap entre especificaciones y programas ejecutables-
MétodoElementos de RT/SA
Data/Control Stores
one-on-one zero-or-many divides into
The entity relations
Flows
TransformationProcesses
Terminators
SystemContext Diagram
Transformation
Scheme
TransformationScheme
ProcessSpecification
(PSPEC)
StateTransitionDiagram
(STD)
is a
Data Flow Diag. Jerarquía de esquemas de transformación denominada Modelo Esencial
Describe requisitos del sistema independientes de su operación
Produce una especificación del sistema de arriba-abajo. Aplica refinamiento sucesivo
MétodoCommunicating Sequential Processes -CSP-
Process A Process B
datawriter reader
thread A thread B
Communication:
Synchronization:
PA
data flow
PB
PA! d || PB ? x
d
dPendingmessage
Método inspirado por la teoría de procesos comunicantes de C.A.R. Hoare: Theory of CSP
La comunicación encapsula sincronización, planificación y transferencia de datos,
–Ausencia de buffer, proporciona un mecanismo “rendez-vous” de sincronización entre procesos,
– Implementación muy eficiente en multicomputadores.
Método´Paralelismo´ desde el análisis al diseño
Análisis identificación de procesos
Diseño Modelos Paralelos (paradigmas)
ImplementaciónLenguaje Paralelo
oLenguaje secuencial + multithreading
Multithreading no garantiza programas bien
estructurados
En Programación Paralela, el concepto de
proceso es más seguro que el de hilo
(“thread”)
Programas paralelos estructurados en
procesos: más escalables y transportables a
multicomputadores TCSP: una estrategia formal de diseño para
problemas de deadlock, livelock y process starvation
-identificación-nombre-descripción
-paralelismo geométrico-estructura comunicac.-interfaz entre procesos
MétodoDiseño con CSP+T
P’ = 1. a STOP
< >
< 1. , t.a >
< 1. >
t [1, )
Evento de instanción de procesos :–Los procesos necesitan ser instanciados antes de ejecución
–Aparición del evento está referida a un tiempo global
Captura de tiempo: oper. –Registra el tiempo de observación de un evento
–Definición de dependencias temporales respecto de un evento anterior
P’ = 1. {u,v,x,y}avSTOP
< 1. >
ta [1, )
Las variables marcadoras capturan el tiempo asociado a los eventos:
< 1. , ta.a >
<>
u = v = x = y = 1
v = ta
MétodoEspecificación de plazos de tiempo
< 1. , v.a, s.b >
P’ = 1. avbE.c STOP E= {t / rel (3,v) t rel(5,v)}
< >
< 1. , ta.a > v= ta
< 1. >
s ]ta + 5, )
s [ta+3, ta + 5]
STOP
< 1. , v.a, s.b, u.c >
STOP
Mientras dure el intervalo de habilitación E el proceso es capaz de implicarse en el evento
Estos intervalos se definen para un conjunto de variables marcadoras
Su utilización modifica la orden de composición paralela de procesos
MétodoEsquema de transformación RT/SA CSP+T
1) Preparar los esquemas RT/SA para transformar
2) Transformar los esquemas de nivel inferior a términos de procesos CSP+T
3) Construir un término de procesos para cada DS, CS, DTP, CTP or flujo de datos contínuo
4) Definir término procesos modelador del esquema
5) Repetir pasos (3) y (4) hasta obtener un término de procesos modelador del Diagrams de Contexto
Ejemplo inicial de aplicaciónCálculo de la interfaz de un término de procesos
DO1
O2
f
f
Aplicando Regla 1 .1.a
{Interface (pr(O1))} U {f ! x}
{Interface (pr(O2))} U {f ! x}
{Interface (pr(D))} U {f ? x}
Ejemplo inicial de aplicaciónCálculo de la interfaz de un término de procesos
DO1
O2
f
f
C1
event
Aplicando Regla 1 .1.a
{Interface (pr(O1))} U {f ! x}
{Interface (pr(O2))} U {f ! x}
{Interface (pr(D))} U {f ? x}
Aplicando Regla 1.1.b
{Interface (pr(D))} U {event}
{Interface (pr(C1))} U {event}
Ejemplo inicial de aplicaciónModelado de DTE
qi
qk
conditionaction
Qi= c (a Qk)
Qk
c
a
Regla 3.a
Sustituir c por I(e).c o a por I(e).a
si c o a son eventos restringidos
Regla Para Fijar Plazos Temporales
Regla 3.b
Sustituir c por cmc o a por ama
si c o a son eventos marcadores
Opening_Tweezers= DropBlankPos tdisable_WTB Move_motor; BlankRob1_Empty; StandBy
..
.
.
StandBy_Poss= BlankRob1_Empty
I1(takeoutPressRob1, t).Height_movement(x1); DescendingRob1
Ejemplo: Movimiento en Altura Robot 1
// compute x1 = f(arm_position, tpos)
Ejemplo inicial de aplicaciónModelado de Transformaciones de Control y Datos
R Q
enable/disable
Incluir señales de control aplicando Regla 6:
pr(Q) = enable Q ^ DIS
DIS = disable pr(Q)
pr(R) = enable R ^ DIS
DIS = disable pr(R)
Regla 5:
1) Pre-calcular pr(T) mediante la aplicación ode las reglas de cálculo de la interfaz
Ejemplo de aplicación de regla
2) Escribir pr(T) = T \ {(T) - interface(pr(P))}C
R Q
T
Ejemplo inicial de aplicaciónModelado de Flujos de Datos Contínuos
P Q
f Regla 1.2:
pr(f) = f ? x S
S = f ? x S | f ! x S
pr(f)
f ? x
S
SS
f ? x f ! x
Ejemplo del proceso de control de movimiento del robot en altura
SYNC0 = GetArmPosRob1’ ? x U1
U1 = (GetArmPosRob1’ ? x | GetArmPosRob1 ! x U1)
SYNC0
GetArmPosRob1’
GetArmPosRob1
Caso prácticoEspecificación: Celda de Producción
Robot 1
Robot 2
Robot 3
Cinta transportadora 2
Cinta transportadora 1
Prensa
DFD de 1º nivel
FeedBeltControl
Robot 3Control
Robot 2Control
DepositBeltControl
PressControl
Robot 1ControlPositionsRob1
PositionsRob2
PositionsRob3
EndFeedBelt
BlankRob3
BlankRob2
BlankRob1
PressPress
Press
Pressing
Pressing
BeginFeedBeltbarrierlightfeedbelt
feedbelt commands
barrierlight depositbelt
BlankRob2
StopSwitchStatusRob1StopSwitchStatusRob1
StopSwitchStatusRob2
StopSwitchPress
StopSwitchStatusRob3
Press commands
Deposit commandsEndDepositBelt
BeginDepositBelt
Rob1 commands
Rob2 commands
Rob3 commands
PressStatus
DFD 2ºnivel Control del Robot 1
Robot TweezersControl
Robot ArmControl
Robot TurnControl
Robot HeightControl
StopSwitchStatusRob1
HeightPosRob1
EndFeedBelt
EndFeedBeltArmPosRob1
Press
EndFeedBelt
StopSwitchStatusRob1
StopSwitchStatusRob1TweezersPosRob1
TurnPosRob1
RetractionPosRob1
HeightPosRob1
Rob1commands
Rob1commands
Rob1commands TurnPosRob1
Rob1BlankStatus
RobotPresetPositions
Aplicación del métodoTransformación DTE a términos de procesos
StandByGrippingTweezers
Aplicando 3 A Gripping_Tweezers = ( PickBlankPos_true t_blankfullrob1 Action(StandBy); StandBy| GetTweezersPosRob1 ? x if(x=PickBlankPos) then PickBlankPos_true elseif (x=DropBlankPos) then DropBlankPos_true else NILL end )
StandByGrippingTweezers
Tweezers_ _ Pos Rob1 =PickBlankPos
A: MoveMotorTweezers (Stop)Blank Rob1 = full
t blankfullrob1 = getTime ()_
_ Tweezers Rob1_ _Pos GetTweezersPosRob1=
Criterios de diseñoDecisiones que mejoran el rendimiento
Modularizar el control en procesos de control RT/SA independientes
Minimizar el número de estados de espera en DTEs
Minimizar el número de condiciones en las transiciones de salida de estados de espera
Utilizar condiciones de sincronización en las transiciones sólo en caso de peligro de violación de propiedad de seguridad
En otro caso, definir plazos de tiempo antes de la entrada en un nuevo estado de un DTE
Caso prácticoAlgunas propiedades de seguridad
Para que el brazo del robot 1 pueda recoger un objeto de la cinta transportadora, tiene que fijar la posición de la altura y el giro antes de extender el brazo.
Peligro de Colisión
Cuando se ha cogido el objeto de la cinta transportadora, el brazo del robot debe elevar el brazo en altura antes de retraer y girarlo.
Peligro de Colisión
Definiendo plazos de tiempo antes de la entrada en un nuevo estado
•En el DTE del movimiento horizontal la transiciónse dispara en cuando el objeto ha sido agarrado En CSP solo se especifica en un proceso dentrodel ámbitoStandBy_Pos1= Blank_Robt_Full t_blankfullrob1 -> actions(Elevating_Rob1) ElevatingCCW
•En el DTE del grado de libertad de extensión/Retracción no puede extender hasta que no sehaya elevado. No podemos utilizar condiciones, solo restricciones temporalesEn CSP no hay que añadir más procesos:StandByPos2= Blank_Rob1_Full_true I(D_takeoutfeedrob1, t_blankfullrob1); Action(Retracting_Arm_Rob1); Retracting_Arm_Rob1
StandByPos2
StandByPos2
ElevatingRob1
Retracting armRob1
BlankRob1= full
BlankRob1= full & now - t blankfullrob1 > D takeoutrob1_ _
A: MoveMotor (Up)
A: MoveMotor (Up)
CONTROL DE ALTURA
DEL BRAZO
CONTROL DE EXTENSIONDEL BRAZO
Esperando coger objeto de la cintatransportadora Se captura
el tiempo
Esperando coger objeto de la cintatransportadora
Conclusiones Método de derivación de diseño de sistemas de
tiempo-real correcto por construcción
Posible semántica formal para las entidades RT/SA, con flexibilidad para adaptar el comportamiento de los procesos al mejor modelo posible de términos TCSP
El método está orientado hacia la ingeniería y puede ser utilizado en el desarrollo de herramientas de verificación de programas, generación de código, animación de especificaciones, etc.
Trabajo futuro Integración en entornos de Ingeniería de Software
Automatizados Desarrollo de una herramienta software basada en Java
y bibliotecas de programación CSP Exploración de nuevos esquemas de transformación
para dotar de una semántica formal y suficientemente flexible a las entidades RT/SA
Ampliación de las capacidades descriptivas del álgebra utilizada para que incluya modelos de procesos con semántica de fallos -selección no-determinista, etc.-
Referencias Baresi, Pezze. Towards Formalising Structural Analysis. ACM
TSEM, pp.80-107,1998.
Capel, M.I. Mathematical Modeling of Technical Processes. 2000
Capel, J.R.Balsas. A Transformational Approach to Systematic Design of Real-Time Systems. 16th ECRTS (pendiente)
Fencott et al. Formalising the Semantics of Ward-Mellor SA/RT … Using Process Algebra. FME, pp.681-702. LNCS 873, 1994
Felder, Pezze. A Formal Design Notation for Real-Time Systems. ACM TOSEM, pp.149-190, 2002
Zic. Time-Constrained Buffer Specifications in CSP+T and Timed CSP. ACM TOPLAS, pp.1661-1674, 1994.