
法医
Beato
等人
/
理论计算机科学电子笔记
127
(
2005
)
3
卡赫 罗 恩 托 尔 诺
<<signal>>introPin
()
<
?
XML version ='1.0'
encoding ='ISO -8859-
1'
?
>
<
!
DOCTYPE XMI SYSTEM 'file
:
/D
:
/documentos/Valladolid/UML-
XMI/pru ebas/ejemp losConRati
onal/UM LX13.dtd'>
<XMI.h eader>
<XMI.ex porter>Uni sys.JCR.2/ XMI.exp
orter>
</XMI. header
<XMI.co ntent>
<
模型
_
管理
.
模型
xmi.id
='G.0'>e.Mo delEle me
nt.name >
<Foundation.Core.ModelElement.name>/
Foundation.Core.ModelElement.name
>
cajero}{3FBF234E0028}.
(角 色
1
)
[
关联 结
束
] =-->
<XMI xmi.vers ion ='1.0'
timestamp ='Mo n Dec 01 19
:
11
:
47
2003'>
<<signal>>pulsarAceptar
()
<XMI.
文档
>
<XMI.exporterVersion>1.3.4
/XMI.exporterVersion>
<XMI.metamod el xmi.name
='UML' xmi.ve rsion
='1.3'/>
<
!
-- == ejemplo1 Modificado1
[
模型
]
<Foundation.Core.ModelElement.name>e
jemplo1Modificado1/Foundation.Cor
<Foundation.Core.ModelElement.visi
bility xmi.value =
“
public
”
/>
<Foundation.Core.GeneralizableElem
ent.isRoot xmi.value =
“
false
”
/>
<Foundation.Core.GeneralizableElemen
t.isAbstract xmi.value =
“
false
”
/>
<
基础
.
核心
.
空间
.
所有 元 素
>
<
!
-- ==
<
基金 会
.
核心
.
协会
xmi.id ='G.14'>
<Foundation.Core.ModelElement.
isSpecification xmi.value =
<Foundation.Core.Generalizable
Element.isRoot xmi.value =
<Foundation.Core.Generalizabl
eElement.isLeaf xmi.value =
<Foundation.Core.GeneralizableE
lement.isAbstract xmi.value =
<
基金 会
.
核心
.
协会 结束
xmi.id
='G.15'>
/actualizarSaldoCajero
State diagram
[
校正 后
的
Ps
>=2]
活动图
静止图
不活 动的 内 塔
列塔
输 入
/
cajero.contError=0
]
introPin[
R=
3
埃斯 佩拉
平
rr
o
nt
阿利滕西 亚
全球 >( P)
R之 前 !R W
(P! 右 )
Univers alida d
全球 []( P)
R之 前 <>R ->( P U R )
Q之 后 [](Q -> []( P ))
在Q 和R 之 间 [](( Q !
R>R ) -> (P U R) )在 Q 之后
直到 R [](Q !R ->( P
W R) )
/****** ********** **********
******* ********** *******/
/**
主模 块
*/
/**** ***** **** ***** *** **** ***** *** **
***** ***** **** */
/**** ***** **** ***** *** **** ***** *** **
***** ***** **** */
/*/int roTarj eta
:
boole an;
inpu tPin
:
boole an;
pinCorrecto
:
boolean;er r
orPi n
:
bool ean;
expu lsarTa rj eta
:
bool ean;actu aliz
arSaldoCajer o
:
/**** ***** **** ***** *** **** ***** *** **
***** ***** **** */
/*
属性
*/
publi c voi d run
( )
{
/*
信号 声 明
*/
prop1_6
:
assert G
(目标 实
例
.en_operativa intro Pin
~retenida -> X
(
TarjetaInstancia.en_
identificarTarjeta
))
;
prop2_6
:
assert G
(
pinCorrecto -> F
prop3_6
:
assert G
(
TarjetaInstancia.en_compro
barPin
botonOperaci o
n
:
boolean;
pulsarCancel a
r
:
boolean;
/**
类实 例
*/
G
(
TarjetaInstancia.en_obte
nerPinAlmacenado->
TarjetaInstancia.en_obt
enerPinIntroducido
)
; G
(
TarjetaInstancia.en_i
dentificarTarjeta -> F
(
TarjetaInstancia.en_obt
enerPinAlmacenado&
TarjetaInstancia.en_obte
nerPinIntroducido
))
;pro
p6_6
:
assertF
X F
->
(
~TarjetaInstancia.
en_compararPines
/*
类 的 实 例 :
Tarje ta
*/TarjetaI nstancia
:
Tarjeta
(
finTratamien toError
,
/**** ***** **** ***** *** **** *****
***** ***** **** ***** */
X
(
~TarjetaInstancia
.en_compararPines
(
Tarj etaIns ta ncia .en_id en
tifi carTar je ta
) )
;
X
(
cajeroInstancia.
en_comprobar
))
;
cajeroInstancia.
en_esperaPin
)
;
X F
TarjetaInsta ncia.en_obte ne
rPinIntroduc ido
))
;
prop6_6
:断 言
F
(
TarjetaInstan cia.en_
compararPines
)
->
cajeroInstancia.est_comproba
rErrores= DontKnow
)
;
(
~Tar jetaIn st anci a.en
_com pararP in es U
X
(
~TarjetaInst ancia.en_c
ompararPines U
~TarjetaInst ancia.en
_compararPin es&
tarjet aInstancia .en_decod
ificar PinAlmacen ado
)
;
.smv
要检查的属
性
Paraponer a prueba la util idad
de la transfor mación real izada
,
as ícomo su validez
,
es
pruario ver ificar la
specifi cación de unsist ema que
recoja todas las
characterístic as de UML
,
y que
concluir que la transform ación
en SMV
,
del comporta miento
activo deuna spec ificació n
realiza da en UML
,
es cor recta.
最后,这一融合体现 了进步的形式,它代表了一个深
刻而独特的使命体系,它包 含了转型中的一个方面。
Pudiénd ose llegar a laconclusión
que el comportamiento activo
reflejado en la specificaciónen
UML se corr espond e con el
refleja do en SMV. Para
realiza r estacomprobación se
elegirán propiedades temporales
adecuadas que propionale asegurar
la correcció n de la
specificació n. La spec ificación
en SMV obte nida para cada uno
de los sist emas pu ede
encontr arse en el
apéndic e~\ref{smv Ejemplos}.
由于
punto de part ida se util iza
un sist ema conoci do que ref leja
el comporta miento de un cajero
automático.
这一系统是一个独特的系统,它的
细节是一个小细节,它的特点是最完 整的,它的结论是
系统的细节。
El objetivo que se
persigue
,
es que la mayo ría de
los comportamientos que pueden
reflejarse en una specific ación
en UML
,
se encuentre n también en
alguno de los casos de ej emplo.
为了你 ,我 用自 动驾驶系统,介绍了一个允许正确 使
用历史数据的自动驾驶系统。
所有 这些 的核查 都没 有特别的 限制,因 为它 不影响
SMV
实现 转 换 的 验 证 。 现在 我们 还没有认识到,
这个问题的主要目标是将形 式化的工具(
SMV
) 与一
种半正 式 的工具 (
UML
)相结合,这种工具是使用
和重新认识的。在 软件开发的初始阶段,允许 实现系
统的形式化,在软件开发的 初始阶段,允许检测错
误,在实现系统的具体化和 程序的具体化的过程中,
允许实现系统的形式化。
(自然语言)
好
反例迹
Fig. 1. 工具架构
该工具利用
UML
和所研究系统的知识,自动地从
XMI
的文本表示中获得
SMV
的形式化表示。平行, 一个向导帮助编写使用
LTL
(
线性时序逻
辑
)验证的属性,此外,如果属性不满足,该工具会显示一个反例跟
踪。
本文的其余部分通过案例研究展示了该工具的功能。 它是根据两个
主要方面进行分析, 工具:如何从
UML
图中获得正式规范,以及助手
如何帮助和指导验证属性。 这之后是 回顾了文献中相同领域的工
作,最后提出了结论以及未来可能的工作。