ÑI H≈C QU»C GIA HÀ NÀI
Tr˜Ìng §i hÂc Công nghª
Lê HÁng Anh
Ph˜Ïng pháp mô hình hóa và ki∫m ch˘ng các hª
thËng h˜Óng s¸ kiªn
Tóm t≠t lu™n án ti∏n sˇ ngành công nghª thông tin
Chuyên ngành: Công nghª ph¶n m∑m
Mã sË: 62.48.10.01
Hà NÎi, 2014
Công trình ˜Òc hoàn thành t§i Khoa Công nghª thông tin, Tr˜Ìng §i hÂc Công nghª, §i hÂc
QuËc Gia Hà NÎi.
Ng˜Ìi h˜Óng d®n khoa hÂc:
PGS. TS Tr˜Ïng Ninh Thu™n
PGS. TS Ph§m B£o SÏn
Ph£n biªn 1:
Ph£n biªn 2:
Ph£n biªn 3:
Có th∫ tìm hi∫u lu™n án t§i
- Th˜ viªn QuËc gia Viªt Nam
-Trungtâmthôngtinth˜viên,§ihÂcQuËcgiaHàNÎi
Chẽng 1. Tng quan v lun ỏn
1.1 L do láa chn ti
Mụ hỡnh húa l mẻt trong cỏc cỏch thc hiêu quÊ quÊn l ẻ phc tĐp trong
phỏt trin phản mm, nú cho phộp thit k v ỏnh giỏ cỏc yờu cảu ca hê thậng.
Mụ hỡnh húa khụng chứ cung còp cỏc nẻi dng mẻt cỏch trác quan m cũn cÊ cỏc
nẻi dung k tá. Cỏc k thut kim th cú th ềc s dng trong phỏt trin phản
mm thụng thèng kim tra liêu mẻt phản mm thác thi cú tha món yờu cảu
ca ngèi dựng. Tuy nhiờn, kim th l cỏch xỏc thác khụng ảy vỡ nú chứ cú
th phỏt hiên ềc lẩi trong mẻt vi trèng hềp nhng khụng Êm bÊo ềc hê
thậng chĐy ỳng trong mi trèng hềp. Kim chng phản mm l mẻt trong nhng
phẽng phỏp mĐnh hiêu quÊ tỡm ra lẩi hoc chng minh khụng cú lẩi mẻt cỏch
toỏn hc. Mẻt vi k thut ó ềc xuòt cho kim chng phản mm nh kim
chng mụ hỡnh, chng minh nh l , v phõn tớch chẽng trỡnh. Trong cỏc k thut
ny, chng minh nh l cú u im vỡ cú khÊ nng kim chng cỏc chẽng trỡnh
cú kớch cễ lển v suy din qui nĐp. Tuy nhiờn, chng minh nh l thèng sinh ra
nhiu cỏc chng minh phc tĐp v khú hiu. Trờn khớa cĐnh khỏc, kin trỳc phản
mm l mẻt khỏi niêm ềc xuòt xõy dáng cỏc hê thậng phản mm mẻt cỏch
hiêu quÊ. Mẻt dĐng kin trỳc hoc kiu thit k thèng cú cỏc phẽng phỏp mụ
hỡnh húa v kim chng phự hềp khỏc nhau. Kin trỳc hểng sá kiên l mẻt trong
nhng kin trỳc ph bin trong phỏt trin phản mm cung còp cẽ ch gi dch v
khụng trác tip. Mẩi thnh phản ca kin trỳc ny cú th sinh ra cỏc sá kiên, sau
ú hê thậng s gi cỏc th tc ó ng k vểi cỏc sá kiên ny. õy l mẻt kin
trỳc ảy ha hàn vỡ nú cho phộp phỏt trin v mụ hỡnh cỏc hê thậng ớt rng buẻc
nhau v lềi ớch ca nú ó ềc cụng nhn rẻng rói trong khoa hc v ng dng. Cú
nhiu loĐi hê thậng hểng sá kiên bao gm cỏc hê thậng giao êndiên ngèi dựng
cho phộp s dng cỏc sá kiên thác thi lênh ca ngèi dựng, cỏc hê thậng sinh
ra lut s dng trong trớ tuê nhõn tĐo khi xÊy ra mẻt iu kiên no ú, hay cỏc
ậi tềng hoĐt ẻng khi thay i giỏ tr ca cỏc thuẻc tớnh thỡ kớch hoĐt mẻt sậ
hnh ẻng [11]. Trong kin trỳc hểng sá kiên, cỏc lun dĐng ECA ềc xuòt
nh mẻt cỏc tip cp c tÊ cỏc quan hê khi cỏc sá kiên xÊy ra mẻt iu kiên
nh trểc. Lut ECA cú dĐng: On Event IF conditions DO actions cú nghổa l
khi sá kiên Event xÊy ra trong mẻt iu kiên conditions thỡ thác thi actions.Ta
cng cú th biu din cỏc lut ny mẻt cỏch khụng hỡnh thc băng cỏc lut if-then,
nghổa l if Events xÊy ra trong iu kiên condition, then thác thi action. Cỏc u
im ca phẽng phỏp ny ó ềc ng dng v tớch hềp trong nhiu lổnh vác
khỏc nhau nh hê thậng CSDL, cỏc ng dng cÊm ng cÊnh. ó cú nhiu nghiờn
cu v phõn tớch cỏc hê thậng hểng sá kiên cng nh l hỡnh thc húa cỏc lut
ECA. Tuy nhiờn, cỏc phẽng phỏp mụ hỡnh húa v kim chng cỏc hê thậng hểng
sá kiên tng quỏt l cha vỡ trờn thác t ta thèng phỏt trin mẻt dĐng c
trng ca hê thậng hểng sá kiên cú s dng cỏc lut ECA. Hẽn na cỏc nghiờn
cu hiên tĐi ca kim chng phản mm ch yu tõp trung vo phõn tớch cỏc mụ
1
2 Tng quan v lun ỏn
tÊ chớnh xỏc v chc nng v hnh vi ca hê thậng. Chớnh vỡ nhng l do trờn,
cỏc phẽng phỏp mụ hỡnh húa v kim chng phự hềp cho cỏc hê thậng ny l cản
thit. Nu ta cú th kim chng cỏc tớnh chòt quan trng ca hê thậng sểm thỡ s
tit kiêm ềc chi phớ phỏt trin. Cỏc phẽng phỏp ny vỡ th nu giÊm ềc ẻ
phc tĐp trong chng minh thỡ s cú khÊ nng ỏp dng vo thác t cao. Lun ỏn
xuòt cỏc phẽng phỏp mểi Đt ềc cỏc yờu cảu trờn băng s dng phẽng
phỏp hỡnh Event-B. Event-B ềc dáa trờn l thuyt tp hềp v phự hềp cho mụ
hỡnh húa cỏc hê thậng lển v phÊn ng. Tớnh nhòt quỏn ca mụ hỡnh Event-B ềc
bÊo Êm bi cỏc chng minh hỡnh thc. Cỏc cụng c hẩ trề ềc chung còp cho
c tÊ v chng minh Event-B trờn nn tÊng Rodin. Vỡ võy, s dng Event-B lm
phẽng phỏp hỡnh thc mụ hỡnh húa v kim chng cỏc hê thậng hểng sá kiên
cú ròt nhiu u im.
1.2 Mc tiờu
Lun ỏn a ra mẻt cỏch tip cn khỏc so vểi cỏc nghiờn cu hiên tĐi. Thay vỡ
phõn tớch mẻt hê thậng hểng sá kiên tng quỏt, chỳng tụi tp trung vo s dng
Event-B mụ hỡnh húa cỏc hê thậng hểng sá kiên c trng nh cỏc hê thậng
CSDL, cỏc hê thậng cÊm ng cÊnh. Lun ỏn xuòt cỏc phẽng phỏp hiêu khụng
chứ mụ hỡnh húa cỏc hnh vi ềc biu din băng cỏc lut If-Then m cũn hỡnh
thc húa cỏc tớnh chòt quan trng băng cỏc thnh phản Event-B. Tớnh ỳng n
ca cỏc tớnh chòt ny ềc chng minh mẻt cỏch toỏn hc băng viêc chng minh
cỏc mênh cản chng minh ềc sinh ra bi Event-B. Cụng c Rodin ềc s
dng trong hẩ trề quỏ trỡnh mụ hỡnh húa v chng minh tá ẻng. Lun ỏn cú mc
tiờu phõn tớch cỏc hê thậng hểng sá kiên ềc mụ tÊ băng cỏc yờu cảu khụng
chớnh xỏc. Lun ỏn giểi thiêu phẽng phỏp mểi dáa trờn lm mn mụ hỡnh húa
v kim chng tớnh chòt an ton v tớnh hoĐt ẻng ca hê thậng.
1.3 úng gúp mểi ca lun ỏn
Cỏc nghiờn cu úng gúp ca lun ỏn bao gm
1. Lun ỏn xuòt mẻt phẽng phỏp mụ hỡnh húa v kim chng cỏc hê thậng
CSDL cú thnh phản trigger s dng Event-B. Phẽng phỏp ny giểi thiêu cỏc
bểc chi tit chuyn i cỏc khỏi niêm trong CSDL sang cỏc k hiêu Event-B.
Quỏ trỡnh chuyn i dáa trờn sá tẽng tá gia còu trỳc ca triggers v Event-B
event. Vểi phẽng phỏp xuòt, tớnh chòt bÊo ton cỏc rng buẻc ềc kim
chng v cỏc vũng lp vụ hĐn sinh ra bi cỏc trigger cú th ềc phỏt hiên băng
cỏc chng minh hỡnh thc. Cỏc phỏt hiên ny s úng gúp lm giÊm chi phớ phỏt
trin. Mẻt cụng c hẩ trề chuyn ậi bỏn tá ẻng cng ềc phỏt trin.
2. Lun ỏn tip tc nghiờn cu u im ca cẽ ch hoĐt ẻng tẽng tá gia cỏc
lut ECA v Event-B event xuòt phẽng phỏp mụ hỡnh húa v kim chng
cỏc hê thậng cÊm ng cÊnh. Lun ỏn phỏt hiên ra u im ca cẽ ch lm mn
trong Event-B lm cho phẽng phỏp xuòt phự hềp vểi mụ hỡnh húa tng
bểc. Cỏc tớnh chòt quan trng nh l bÊo ton rng buẻc ng cÊnh cú th ềc
kim chng tá ẻng băng s dng cụng c Rodin.
Hỡnh 1.1: Còu trỳc lun ỏn
3. Lun ỏn x l trèng hềp mẻt hê thậng ềc mụ tÊ băng cỏc yờu cảu khụng
chớnh xỏc. Cỏc hnh vi ca hê thậng ny ềc biu din dể i dĐng lut If-Then
mè. Lun ỏn giểi thiêu mẻt biu din mểi ca cỏc thut ng mè băng cỏc tp
hềp v a ra mẻt tp lut chuyn i cỏc lut If-Then mè thnh cỏc phản
t Event-B. Chỳng tụi cng a ra mẻt khỏi niêm m rẻng lut If-Then mè thèi
gian mụ hỡnh húa cỏc hê thậng ềc nh thèi.
4. Lun ỏn k tha tớnh lm mn ca Event-B, dáa trờn phẽng phỏp mụ hỡnh húa
cỏc lut If-Then mè v mẻt sậ phẽng phỏp suy din phõn tớch mẻt sậ tớnh
chòt quan trng ca cỏc yờu cảu khụng chớnh xỏc nh tớnh an ton v tớnh hoĐt
ẻng.
1.4 Còu trỳc lun ỏn
Lun ỏn ềc t chc nh Hỡnh 1.1. Chẽng 2 cung còp cỏc kin thc nn tÊng
cho lun ỏn. Chẽng 3 giểi thiêu phẽng phỏp mụ hỡnh húa v kim chng cỏc hê
thậng CSDL. Chẽng 4 tp trung vo vòn mụ hỡnh húa v kim chng cỏc hê
thậng cÊm ng cÊnh. Trong Chẽng 5,lunỏnxuòtmẻtphẽngphỏpmụhỡnh
húa cho cỏc hê thậng hểng sá kiên ềc mụ tÊ bỉng cỏc lut If-Then mè. Chẽng
6 giểi thiê u phẽng phỏp kim chng tớnh chòt an ton v hoĐt ẻng ca cỏc yờu
cảu khụng chớnh xỏc. Chẽng 7 tng kt lun ỏn v a ra hểng phỏt trin.
Chẽng 2. Kin th c cẽ s
2.1 Temporal logic
Propositional temporal logic (PTL) l sá m rẻng ca logic mênh trong ú mụ
tÊ mẻt chuẩi cỏc trĐng thỏi nhng khoÊng thèi gian khỏc nhau gi l thèi im
tc thèi. Mẻt thnh phản cẽ bÊn PTL l mẻt cụng thc logic bc 1 ềc xõy
dáng t cỏc nguyờn tậ v t,cỏc phộp lềng húa 9, 8 ;cỏctoỏnt^, _ ,ơ;vcỏc
3
4
toỏn t thèi gian (always), (eventually), v (next), U (until"). Cỳ phỏp
ca mẻt cụng thc PTL ềc mụ tÊ nh trong BÊng 2.1
BÊng 2.1: Cỳ phỏp ca cụng thc PTL
hformulai ::= htermi {_ htermi}
htermi > ::= hfactori {^ hfactori}
hfactori > ::= hprimaryi {U hprimaryi}
hprimaryi > ::= hatomc propositioni >
|ơhprimaryi >
|hprimaryi >
| hprimaryi >
| hprimaryi >
2.2 L thuyt tp hềp
Tp hềp l cỏc ậi tềng cẽ bÊn ềc s dng nh nghổa cỏc khỏi niêm khỏc
trong toỏn hc. Ngụn ng ca l thuyt tp hềp dáa trờn cỏc quan hê cẽ bÊn gi
l thnh viờn. A l mẻt thnh viờn ca B (A 2 B), cú nghổa l B cha A nh mẻt
phản t ca nú [14]. Cú nhiu nh nghổa cẽ bÊn khỏc ca l thuyt tp hềp nh
l tp m, quan hê, hm, biu din lamda, vv
2.3 Tp mè v lut If-Then mè
Trong phỏt trin ng dng trờn thác t, cỏc hê thậng thèng khụng ềc mụ tÊ
mẻt cỏch chớnh xỏc. Cỏc stakeholders thèng s dng cỏc thut ng mè nh ròt
tật", núng", x l cỏc hê thụgns ềc khú ềc biu din băng cỏc mụ tÊ
chớnh xỏc Zadeh [16]ógiểithiêumẻtkhunglmviêclogickhụngphÊillogichai
giỏ tr truyn thậng m l a giỏ tr hay ềc biờn dch bi cỏc tp mè. Mẻt tp
mè F ềc nh nghổa trờn mẻt tp X l mẻt tp, m mẩi phản t l mẻt cp:
A = {(x, ) à
A
(x)}, x 2 X (2.1)
trong ú à
A
(x):X ! [0, 1] ềc nh nghổa nh mẻt hm thuẻc ca mẻt phản t
x trong A.
Mẻt fuzzy hedge l mẻt toỏn t bin i tp mè F (x) sang tp mè F (hx). Cỏc
hedges l cỏc hm sinh ra mẻt tp lển hẽn cỏc giỏ tr cho cỏc bin. Vớ d, s dng
hedge very vểi not trờn t tall cú th sinh ra very tall or not very tall. Cỏc lut
If-Then mè ềc vit dểi dĐng ẽn giÊn: If a is A then b is B", úng mẻt vai trũ
quan trng trong l thuyt tp mè. Nú l cỏch tip cn phõn tớch cỏc yờu cảu
khụng chớnh xỏc ca hê thậng. Ta thèng s dng cỏc lut ny mụ tÊ hnh vi
ca cỏc hê thậng vểi yờu cảu khụng chớnh xỏc.
2.4 Cỏc phẽng phỏp hỡnh thc
Cỏc phẽng phỏc hỡnh thc ềc s dng c tÊ v kim chng cỏc hê thậng
mẻt cỏch toỏn h c. Mẻt phẽng phỏp l hỡnh thc nu nú ềc cú inh nghổa cẽ
s dểi dĐng toỏn hc thèng ềc a ra bi mẻt ngụn ng hỡnh thc [13]. Cỏc
phẽng phỏp kim chng hỡnh thc tr nờn ph bin trong cụng nghiêp v ngy
cng cú cỏc yờu cảu ng dng chỳng. Cú hai cỏch tip cn ph bin trong kim
Chẽng 2 Kin thc cẽ s
chng l kim chng mụ hỡnh v chng minh nh l . Lun ỏn ny s dng phẽng
phỏp Event-B mụ hỡnh húa v kim chng cỏc sá kiên, vỡ vy trong phản ny
trểc khi trỡnh by v Event-B chỳng tụi s giểi thiêu mẻt sậ phẽng phỏp liờn
quan nh VDM [8], Z [12], B [2].
2.4.1 VDM
VDM l vit tt ca The Vienna Development Method" bao gm mẻt nhúm cỏc
k thut cho c tÊ hỡnh thc v phỏt trin ca cỏc hê tớnh toỏn. VDM l mẻt
phẽng phỏp dáa trờn mụ hỡnh mụ tÊ cỏc hê thậng phản mm thnh cỏc mụ hỡnh
[8]. Cỏc mụ hỡnh ny ềc c tÊ nh cỏc ậi tềng v cỏc hnh ẻng trờn cỏc ậi
tềng trong ú cỏc ậi tềng biu din cỏc trĐng thỏi input, output v bờn trong
ca hê thậng. VDM cú ngụn ng c tÊ VDM-SL bao gm mụ hỡnh toỏn hc ềc
xõy dáng t cỏc d liêu cẽ bÊn nh tp hềp, danh sỏch v ỏnh xĐ cựng vểi cỏc
hnh ẻng thay i trĐng thỏi ca mụ hỡnh. VDM-SL cú nh nghổa hỡnh thc dáa
trờn Logic of Partial Functions (LPF).
2.4.2 Phẽng phỏp Z
c tÊ Z dáa trờn l thuyt tp hềp v tớnh toỏn v t bc 1. Mẩi ậi tềng cú
mẻt kiu riờng, ềc biu din bi mẻt tp các Đi trong c tÊ hiên tĐi. Mẻt khớa
cĐnh ca Z l s dng ngụn ng tá nhiờn. Z s dng toỏn hc a ra vòn ,
tỡm ra cỏc giÊi phỏp v chng minh thit k láa chn phự hềp vểi c tÊ. Z cung
còp cẽ ch lm mn xõy dáng hê thậng dản dản. Mẻt ti liêu c tÊ Z bao gm
cỏc oĐn hỡnh thc v phi hỡnh thc [12].
2.4.3 Phẽng phỏp B
BlmẻtphẽngphỏpctÊ,thitkvvitmóchocỏchêthậngphảnmm.
tng chớnh ca B l bt ảu băng mẻt mụ hỡnh ròt tru tềng, sau ú thờm dản
cỏc chi tit vo cỏc mụ hỡnh c th tip theo [2]. B a ra cỏc khỏi niêm v mỏy
tru tềng úng gúi cỏc thnh phản toỏn hc, hăng, tp hềp, bin v mẻt tp hềp
cỏc hnh ẻng trờn cỏc bin ny. Cỏc thnh phản ny ềc cha trong cỏc mụdun
cú tờn cú th ềc s dng cỏc mụdun khỏc.
2.5 Event-B
Event-B [3]lmẻtphẽngphỏphỡnhthcmụhỡnhhúavphõntớchmcmụhỡnh.
c tớnh ch chật ca Event-B l s dng l thuyt tõp hềp lm k hiêu mụ tÊ, s
dng cẽ ch lm mn biu din cỏc hê thậng cỏc mc tru tềng khỏc nhau v
s dng cỏc chng minh toỏn hc kim chng sá ng nhòt gia cỏc mc lm
mn. Mẻt còu trỳc mụ hỡnh Event-B cẽ bÊn bao gm mẻt mỏy v ng cÊnh.
Ng cÊnh Event-B mụ tÊ phản tổnh trong ú cỏc tớnh chòt liờn quan v cỏc giÊ
thuyt. Mẻt ng cÊnh cú th bao gm cỏc tp hềp, hăng v cỏc giÊ thit. Tp mang
s ềc biu din bi tờn v khỏc rẩng. Cỏc tp mang cú tờn khỏc thỡ hon ton ẻc
lp nhau. Hăng c ềc xỏc nh bi cỏc giÊ thit P(s, c),cỏcgiÊthitnycng
ph thuẻc vo tp mang s.
Mỏy Event-B ềc xỏc nh băng mẻt tp cỏc mênh bao gm cỏc bin, bòt bin,
nh l v sá kiên. Bin v biu din trĐng thỏi ca mụ hỡnh. Bòt bin I (v) sinh ra
6
cỏc lut Êm bÊo cỏc bin v luụn tha món. Cỏc lut ny ềc hỡnh thc húa
băng cỏc v t biu din bi tớnh toỏn v t bc mẻt ềc m rẻng bi Equality bi
l thuyt tp hềp. Mẩi sá kiên cú dang evt = any x where G(x, v) then A(x, v, v
0
)
end trong ú x l cỏc bin cc bẻ ca sá kiên, G( x, v) l iu kiên xÊy ra sá kiàn
v A(x, v, v
0
) l hnh ẻng ca sá kiên. Mẻt sá kiên ềc kớch hoĐt nu iu kiên
ca nú thoÊ món. Mẻt hnh ẻng ca sá kiên cú th cú nhiu phộp gỏn. Mẩi phộp
gỏn cú th l (1) phộp gỏn ẽn nh (x := E(t, v)), (2) phộp gỏn rẩng (skip), hoc
(3) phộp gỏn khụng ẽn nh (x :| P(t, v, x
0
)). giÊi quyt sá phc tĐp khi mụ
hỡnh húa hê thậng, Event-B cung còp cẽ ch lm mn cho phộp xõy dáng hê thậng
tng bểc băng viêc thờm vo cỏc chi tit Đt ềc mụ hỡnh chớnh xỏc hẽn. Mẻt
mỏy lm mn thèng cú nhiu bin hẽn mỏy tru tềng vỡ ta cú nhiu bin biu
din mụ hỡnh chi tit hẽn. Trong lm mn chng, cỏc bin tru tềng vđn tn tĐi
trong mỏy lm mn, trong lm mn theo chiu dc cỏc bin tru tềng ềc thay
th bi cỏc bin c th. Kt nậi gia bin tru tềng v v bin c th w ềc biu
din băng cỏc bòt bin J(v, w). kim tra xem mẻt mỏy Event-B cú tha món
mẻt tp cỏc tớnh chòt khụng, Event-B nh nghổa ra cỏc mênh cản chng minh.
Mẻt vi mênh cản chng minh liờn quan n lun ỏn l invariant preservation
(INV), convergence (VAR), deadlock-freeness (DLF).
2.6 Rodin tool
Lun ỏn s dng cụng c Rodin phiờn bÊn 2.8 [1] l mụi trèng Eclipse mụ hỡnh
húa v chng minh trong Event-B. Nú ềc xõy dáng trờn nn tÊng ca Eclipse
bao gm cỏc cụng c hẩ trề mụ hỡnh húa plug-ins. Rodin cú giao diên phong phỳ
bao gm cỏc ca s nh proving, Event-B editor
Ca s Proving: Cung còp tòt cÊ cỏc mênh ềc sinh ra mẻt cỏch tá ẻng cho
cỏc mỏy Event-B. Cỏc mờnh ny ềc chng minh tá ẻng hoc tẽng tỏc
thụng qua cỏc ca s mênh v mc tiờu.
Ca s Event-B: Bao gm cỏc giao diên cho phộp chứnh sa cỏc mỏy v ng cÊnh.
Nu ngèi s dng mó húa khụng chớnh xỏc, ca s problem s hiên th thụng
bỏo lẩi.
2.7 Cỏc hê thậng hểng sá kiên
Cú nhiu loĐi hê thậng hểng sá kiên nh giao diên ca phản mm, cỏc hê thậng
sinh lut ềc s dng trong trớ tuê nhõn tĐo khi iu kiên ỳng thỡ thác thi mẻt
hnh ẻng, hay trong cỏc ậi tềng hoĐt ụng khi thay i giỏ tr hay thuẻc tớnh
ca ậi tềng [11]. Trong lun ỏn ny, chỳng tụi xột n hai ng dng ú l cỏc
hê thậng CSDL v cÊm ng cÊnh. CÊ hai hê thậng ny u s dng cỏc lut dĐng
ECA biu din cỏc hnh vi.
2.7.1 Hê thậng CSDL v triggers
Mẻt hê thậng CSDL quan hê dáa trờn mụ hỡnh quan hê gia cỏc ậi tềng v cỏc
quan hê, hnh ẻng cho thao tỏc d liêu v tonton vàn d liêu. Cỏc hê thậng
CSDL quan hê hiên Đi s dng cỏc lut hoĐt ẻng nh trigger CSDL ỏp ng
lĐi cỏc sá kiên xÊy ra bờn trong v b ờn ngoi ca CSDL. Trigger l mẻt oĐn mó
tá ẻng thác thi khi cú mẻt sá kiên xỏc nh xÊy ra trong CSDL. Sá kiên thèng
liờn quan n viêc thao tỏc d trong CSDL. Trigger thèng ềc s dng trong
cỏc trèng hềp: kim soỏt tin trỡnh, tá ẻng thác thi cỏc hnh ẻng hoc cỏc
lut nghiêp v phc tĐp. Còu trỳc ca mẻt trigger cú dĐng ECA : rule name::
Event(e) IF condition DO action. Trigger CSDL phản lển cú th chia thnh hai
loĐi: Data Manipulation Language(DML) vv Data Definition Language (DDL)
triggers. LoĐi ảu tiờn ềc thá thi khi thao tỏc vểi d liờu, loĐi th hai ềc kớch
hoĐt khi cú cỏc sá kiên DDL xÊy ra nh tĐo bÊng hoc login, commit, roll-back
2.7.2 Cỏc hê thậng cÊm ng cÊnh
Thut ng cÊm ng cÊnh" ềc a ra lản ảu tiờn b i Bill Schilit [10], tỏc giÊ ó
nh nghổa ng cÊnh l v trớ, l nh danh ca cỏc ậi tềng v sá thay i ca
cỏc ậi tềng ny sau ú lm cho chẽng trỡnh thớch nghi vểi ng cÊnh. Cú nhiu
nghiờn cu ó tp trung vo nh nghổa cỏc thut ng cÊm ngh cÊnh. Lun ỏn
tp trung vo cỏc hê thậng cÊm ng cÊnh s dng d liêu ng cÊnh mẻt cỏch trác
tip t cỏc cÊm bin vt l. Hê thậng cú th cÊm nhn ềc nhiu loĐi ng cÊnh
trong mụi trèng nú hoĐt ẻng nh v trớ, ẻ tng tậc, nhiêt ẻ, ẻ Êm, thèi thit
V viêc x l ca hê thậng ny l ph thuẻc vo ngng cÊnh tc l phÊn ng vểi
cỏc thay i ca ng cÊnh.
Chẽng 3. Mụ hỡnh húa v kim chng cỏc hê thậng CSDL
3.1 Giểi thiêu
Mẻt trigger l mẻt oĐn mó cú cu phỏp, khụng mó húa nhng khụng cú ng nghổa.
Chớnh vỡ vy, ta chứ cú th kim tra liêu mẻt trigger hoĐt ẻng cú dđn n xung
ẻt rng buẻc d liêu hay cỏc triggers cú th dđn n cỏc vũng lp vụ hĐn khụng
băng cỏch thác thi chỳng hoc iu tra tng bểc mẻt. Vỡ nhng l do ny, cỏc
nghiờn cu v mẻt khung lm viêc hỡnh thc cho mụ hỡnh húa v kim chng cỏc
triggers CSDL l cản thit. Thờm vo ú, nu ta cú th chứ ra răng thác thi ca
cỏc trigger l ỳng thèi im thit k thỡ nú cú th lm giÊm chi phớ phỏt trin
cỏc ng dng CSDL. Trong chẽng ny, chỳng tụi xuòt mẻt phẽng phỏp mểi
mụ hỡnh húa v kim chng hê thậng CSDL cú trigger s dng Event-B giai
oĐn thit k. tng chớnh ca phẽ ng phỏp xuòt phỏt t sá tẽng ng vố cẽ
ch hoĐt ẻng ca trigger v sá kiên Event-B. ảu tiờn, chỳng tụi xuòt mẻt tp
lut chuyn i mẻt hê thậng CSDL cú trigger sang mụ hỡnh Event-B, sau ú
kim tra mẻt cỏch hỡnh thc liêu hê thậng cú tha món rng buẻc d liêu v phỏt
hiên cỏc vũng lp vụ hĐn băng viêc chng minh cỏc mờnh cản chng minh ca
mỏy Event-B. u im ca phẽng phỏp l hê thậng CSDL cú th chuyn ậi sang
mụ hỡnh Event-B mẻt cỏch trác tip. Cỏc tớnh chòt quan trng ềc chng minh
mẻt cỏch toỏn hc thụng qua chng minh mênh cản chng minh vỡ vy tớnh
ỳng n ca cỏc tớnh chòt ny ềc Êm bÊo. Phẽng phỏp ny cú giỏ tr vỡ nú
Êm bÊo ềc hê thậng trỏnh ềc mẻt sậ lẩi nghiờm trng thèi im thit k.
Ngoi ra, vểi cụng c hẩ trề Rodin thỡ cỏc vòn s ềc chng minh tá ẻng, nú
s lm giÊm bểt ẻ phc tĐp so vểi chng minh th cụng. Phẽng phỏp ny cng
cú th d dng ỏp dng thác thi mẻt cụng c hẩ trề mụ hỡnh húa bỏn tá ẻng
7
8
mÎt CSDL sang Event-B. i∑u này cÙng kh≠c phˆc nh˜Òc i∫m v∑ Î ph˘c t§p
khi mô hình hóa cıa các ph˜Ïng pháp hình th˘c khi∏n chúng tr nên khó áp dˆng
trong phát tri∫n ph¶n m∑m.
3.2 Mô hình hóa và ki∫m ch˘ng hª thËng triggers
3.2.1 Mô hình hóa hª thËng CSDL
MÎt hª thËng CSDL th˜Ìng ˜Òc thi∏t k∏ bi các ph¶n t˚ nh˜ b£ng, khung nhìn vÓi
các ràng buÎc và các triggers. Khi ng˜Ìi dùng th¸c thi các câu lªnh Insert, Delete
và Update, nh˙ng s¸ thay Íi này có th∫ làm kích ho§t triggers Áng thÌi cÙng
ph£i tuân theo các ràng buÎc ‡nh tr˜Óc. Các qui t≠c chuy∫n Íi mÎt hª CSDL
sang Event-B ˜Òc tÍng k∏t B£ng 3.1.
B£ng 3.1: Qui t≠c chuy∫n Íi gi˙a CSDL và Event-B
Database definitions Event-B concepts
Rule 1. db = hT , C , Gi DB M , DB C
Rule 2 t = hr
1
, ,r
m
i T = TYPE
1
⇥ TYPE
2
⇥ TYPE
n
Rule 3 r
i
= hf
i1
, ,f
in
i t 2 T
Rule 4 Primary key constraint f : TYPE
1
77! T
Rule 5 Constraint C Invariant I
Rule 6 Trigger E Event Evt
3.2.2 Hình th˘c hóa triggers
B£ng 3.2 mô t£ cách chuy∫n mÎt trigger sang mÎt s¸ kiªn Event-B trong ó i∑u
kiªn cıa s¸ kiªn là hÒp cıa lo§i trigger và i∑u kiªn trigger x£y ra. Ph¶n th¸c thi
cıa trigger ˜Òc chuy∫n Íi thành ph¶n thân cıa s¸ kiªn Event-B. Ta xét tr˜Ìng
hÒp Ïn gi£n là thân chø ch˜a các câu lªnh DML Ïn. Mã hóa nÎi dung cıa trigger
˜Òc mô t£ trong B£ng 3.3
B£ng 3.2: Hình th˘c hóa mÎt trigger
IF (e)
ON (c) WHEN (e ^ condition)
ACTION (a) THEN (a) END
3.2.3 Ki∫m ch˘ng các tính chßt cıa hª thËng
Sau khi chuy∫n Íi, vÓi các ∞c i∫m cıa Event-B và công cˆ hÈ trÒ, ta có th∫ ki∫m
ch˘ng ˜Òc các tính chßt sau:
B£ng 3.3: Mã hóa hành Îng cıa trigger
ANY r
INSERT INT O T WHEN (r 2 T ^ e ^ c)
VALUES (va l u e 1 , . . , va l u e n ) THEN T := T [ r
END
ANY v
DELETE FROM T WHEN (v 2 TYPE
1
^ e ^ c)
WHERE hcolumn 1=some valuei THEN t := t f (v)
END
ANY v 1, v2
UPDATE T WHEN v 1 2 TYPE
1
^ v2 2 TYPE
2
^ e ^ c
SET column1=value, column2=value2 THEN t := {1 7! value1, 2 7! value2}t
WHERE hcolumn 1=some valuei END
Chẽng 3 Mụ hỡnh húa v kim chng cỏc hê thậng CSDL
Vũng lp vụ hĐn: Vỡ mẻt trigger cú th kớch hoĐt trigger khỏc, nờn nú cú th
dđn n vũng lp vụ hĐn. Tỡnh trĐng ny cú th xÊy ra khi sau mẻt chuẩi cỏc sá
kiên thỡ trĐng thỏi ca hê thậng khụng thay i. Cú hai cỏch phỏt hiên tớnh
chòt ny sau khi mụ hỡnh húa băng phẽng phỏp ó xuòt. Cỏc th nhòt, ta
chng minh mênh cản chng minh deadlock-freeness (DLKF), mờnh ny
l hềp ca cỏc iu kiên ca cỏc sá kiên Event-B, biu din mẻt cỏch hỡnh thc:
I (v), P(c) ` G
1
(v) _ _ G
n
(v),trongtrongúv l bin, I (v) l bòt bin, G
i
(v)
ll iu kiên ca sá kiên. Trong mẻt sật rèng hềp, mênh DLKF khụng suy
din ềc t tp cỏc bòt bin I (v) v hăng rng buẻc, ta s chng minh tĐi mẻt
thèi im luụn cú 1 sá kiên ềc kớch hoĐt băng chng minh hẻi ca cỏc iu
kiên luụn ỳng trểc v sau khi thác thi event, tc l chngs minh mênh cản
chng minh INV (bao gm cÊ sá kiờn INITIALISATION ).
BÊo ton rng buẻc: Vểi phẽng phỏp chuyn i xuòt, mẻt trigger khụng vi
phĐm cỏc luõt ny nu I (v), G(w, v), S(w, v, v
0
) ` I (v
0
).õycngchớnhlmênh
cản chng minh INV ca mỏy Event-B.
3.3 Case study: Hê thậng quÊn l nhõn sá
3.3.1 Mụ tÊ
Trong mẻt hê thậng CSDL cho ng dng quÊn l nhõn sá cú hai bÊng EMPLOYEES
(gm hai trèng id v level) vv bÊng BONUS (gm hai trèng id v amount).
ng dng cú yờu cảu rng buẻc v d liêu nh sau.: Trèng amount ca BONUS
>=10 nu level ca nhõn viờn >5. . Hê CSDL ny ềc thit kt hai triggers thác
hiên nhiêm v sau:
Trigger 1. Nu bÊng nhõn viờn employee ềc cp nhõt thỡ bonus tng lờn 10 .
Trigger 2. Nu trèng amount ca nhõn viờn BONUS ềc tng >=10 thỡ level
ca nhõn viờn tng lờn 1.
3.3.2 Mụ hỡnh húa
Mẻt phản c tÊ Event-B ca vớ d ềc th hiên Hỡnh 3.1,Hỡnh3.2 v Hỡnh 3.3.
CONTEXT TRIGGER C
SETS
TYPES
TABLE NAMES
CONSTANTS
TBL EMPL
TBL BONUS
AXIOMS
axm1 : partition(TYPES, {insert}, {update}, {delete})
axm2 : TBL EMPL {1 7! N, 2 7! N}
axm3 : TBL BONUS {1 7! N, 2 7! N}
axm4 : partition(TABLE NAMES, {employees}, {bonus})
END
Hỡnh 3.1: Ng cÊnh Event-B
10
MACHINE TRIGGER M
SEES TRIGGER C
VARIABLES
bonus
empl
f bonus
f empl
type
INVARIANTS
inv1 : bonus 2P(TBL BONUS)
inv2 : empl 2P(TBL EMPL)
inv3 : type 2 TYPES
inv4 : f bonus 2 N 77!N
inv5 : f empl 2 N 77!N
SYS CTR : 8 eid.eid 2 dom(empl) ^ pk empl(eid) > 5 ) pk bonus(eid) > 10
INF LOOP : (type = update ^ table = BONUS) _ (type = update ^ table = EMPL)
END
Hình 3.2: Máy Event-B
Event trigger1 b=
any
eid
when
grd1 : type = update
grd2 : table = EMPL
grd3 : eid 2 dom(empl)
then
act1 : type := update
act3 : table := BONUS
act5 : bonus := {eid 7! (pk bonus(eid)+10)}bonus
act5 : pk bonus(eid):=pk bonus(eid)+10
end
Event trigger2 b=
any
eid
when
grd1 : type = update
grd2 : table = BONUS
grd3 : pk bonus(eid) 10
then
act1 : type := update
act2 : table := EMPL
act3 : empl := {eid 7! (pk empl(eid)+1)}empl
end
Hình 3.3: Mã hóa trigger
3.3.3 Ki∫m ch˘ng các thuÎc tính
• B£o toàn ràng buÎc: Tính chßt này ˜Òc hình th˘c hóa b i bßt bi∏n SYS CTR :
8 eid.eid 2 dom( empl) ^ pk empl(eid) > 5 ) pk bonus(eid) > 10.
Ta c¶n ch˘ng minh bßt bi∏n này b£o toàn tr˜Óc và sau khi các s¸ kiªn th¸c thi,
mªnh ∑ c¶n ch˘ng minh t˜Ïng ˘ng cıa trigger1 ˜Òc mô t£ nh˜ B£ng 3.4.Hai
s¸ kiªn Trigger 1 và Trigger 2 cıa máy DB M sinh ra các mªnh ∑ c¶n ch˘ng
minh t˜Ïng ˘ng là trigger1/SYS CTR/INV, trigger2/SYS CTR/INV.
BÊng 3.4: INV PO of event trigger1.
8 nid.nid 2 dom(empl rec) ^ pk empl(nid) > 5 ) pk bonus(nid) > 10
emplid 2 dom(empl rec)
type = update trigger1/
table = EMPL SYS CTR/
` INV
8 nid.nid 2 dom(empl rec) ^ pk empl(nid) > 5
) (pk bonus {emplid 7! pk bonus(emplid) + 10})(nid) > 10
Vũng lp vụ hĐn: mc 3.2.3,bòtbinINF LOOP l mênh tuyn ca cỏc
iu kiên ca sá kiên ềc s dng phỏt hiên vũng lp vụ hĐn. Nu bòt bin
ny bÊo ton vểi hai sá kiên thỡ thác thi ca hai triggers s dđn n vũng lp vụ
hĐn. Mênh cản chng minh ca tớnh chòt ny ềc th hiên BÊng 3.5.
BÊng 3.5: Mênh cản chng minh INV ca trigger 1
8 nid.(nid 2 dom( empl rec) ^
type = update ^ table = BONUS ^
pk bonus(nid) > 10) _ (type = update ^ table = EMPL)) ^
emplid 2 dom(bonus rec )
table = BONUS ^ pk bonus(emplid) > 10 trigger1
` /INF LOOP
8 nid.(nid 2 dom( {emplid 7! pk empl(emplid)+1}empl rec ) ^ /INV
update = update ^ EMPL = BONUS ^
pk bonus(nid) > 10) _
(update = update ^ EMPL = EMPL)
3.4 Ci t
T phẽng phỏp xuòt Mc 3.2,chỳngtụiócicmẻtcụngcTrigger2B
hẩ trề mụ hỡnh húa v kim chng mẻt hê thậng CSDL cú trigger. Cụng c ny
cú th sinh ra cỏc file dểi nh dĐng XML cú th s dng lm ảu vo cho cỏc
cụng c hẩ trề khỏc ca Event-B nh Rodin. Kin trỳc ca cụng c ềc mụ tÊ
nh Hỡnh 3.4.
Hỡnh 3.4: Architecture of Trigge r2B tool
Chẽng 4. Mụ hỡnh húa v kim chng cỏc hê thậng cÊm ng
cÊnh
4.1 Giểi thiêu
CÊm ng canh ca mẻt ng dng liờn quan tểi khÊ nng ỏp ng, phÊn hi v
ẻ nhĐy cÊm ca ng dng vểi cỏc thay i ca ng cÊnh [5]. Theo nghổa hàp thỡ
mẻt hê thậng cÊm ng cÊnh cú th xem nh mẻt hê thậng hểng sá kiên nghổa
l nú nhn cỏc sá kiên gi khi cú sá thay i v ng cÊnh v phÊn hi lĐi cỏc sá
11
12
kiên ny vểi cỏc tri thc v ng cÊnh ang cú. Hnh vi ca cỏc hê thậng cÊm ng
cÊnh thèng l phc tĐp v khụng chc chn. ó cú nhiu kt quÊ nghiờn cu vểi
nhiu cỏch tiêp cn khỏc nhau nh mụ hỡnh húa vai trũ ậi tềng, mụ hỡnh húa dáa
trờn ontology, mụ hỡnh húa dáa trờn logic [5]. Mẻt sậ nghiờn cu cng ềc ra cỏc
khung lm viêc cho mụ hỡnh húa ng cÊnh. Tuy nhiờn, theo quan im ca chỳng
tụi, cha cú mẻt cỏch tip cn no mụ hỡnh húa cÊm ng cÊnh trờn mẻt vi khớa
cĐnh nh sá kiên ca mụi trèng, cỏc lut ng cÊnh v tớnh khụng chc chn. Hẽn
th na, mụ hỡnh Đt ềc cú th ềc kim chng Êm bÊo tớnh ỳng n ca
hê thậng. Trong chẽng ny, chỳng tụi xuòt s dng Event-B mụ hỡnh húa v
kim chng cỏc hê thậng cÊm ng cÊnh. Cỏc úng gúp ca xuòt ny l (1) Biu
din tá nhiờn cỏc hê thậng cÊm ng cÊnh băng cỏc thnh phản Event-B. xuòt
mẻt tp lut nh nghổa cỏc thnh phản cÊm ng cÊnh mẻt cỏch hỡnh thc. õy l
phẽng phỏp dáa trờn lm mn cho phộp xõy dáng hê thậng theo tng bểc. (2)
Sau khi hỡnh thc húa, cỏc tớnh chòt quan trng ca hê thậng ềc kim chng
qua cỏc mênh cản chng minh ca cẽ ch lm mn m khụng qua bểc chuyn
i trung gian no.
4.2 Hỡnh thc húa tớnh chòt cÊm ng cÊnh
4.2.1 Mụ hỡnh húa hê thậng cÊm ng cÊnh
Cỏc lut chuyn i gia mẻt hê thậng cÊm ng cÊnh v mụ mẻt mụ hỡnh Event-B
ềc trỡnh by BÊng 4.1
BÊng 4.1: Chuyn i gia cỏc mụ hỡnh cÊm ng cÊnh v thnh phản Event-B
Context-aware concepts Event-B notations
Rule 1 Context data CD Sets, Constants
Rule 2 Context rules r = he, c, ai Events
Rule 3 Environments triggers E Events
Rule 4 Context constraints CC Invariants
4.2.2 Mụ hỡnh húa tng dản s dng lm mn
Trờn thác t, phỏt trin cỏc hê thậng cÊm ng thèng ềc xõy dáng t cỏc yờu
cảu cẽ bÊn, sau ú ềc xõy dáng dản khi cú thờm cỏc yờu cảu v cỏc thác th ng
cÊnh v tri thc suy din. Vớ d, hê thậng b sung thờm cỏc bẻ cÊm bin lòy
thờm nhiu loĐi d liêu ng cÊnh . Hê thậng cng cú thờm cỏc lut ng cÊnh x
l cỏc d liêu ny. Lỳc ny, hê thậng mểi vđn phÊi tha món nhng rng buẻc ó
ềc thit lp. Vỡ vy, ta cản cú mẻt phẽng phỏp mụ hỡnh húa phự hềp cho qui
trỡnh phỏt trin tin húa ny. Hỡnh 4.1 mụ tÊ mẻt phẽng phỏp mụ hỡnh húa tin
húa dáa trờn phẽng phỏp ó xuòt Mc 4.2.1.
Cẽ ch lm mn cho phộp mụ hỡnh húa cỏc hê thậng cÊm ng cÊnh theo tng bểc.
Event-B cú hai cẽ ch lm mn chng v lm mn theo chiu dc. Trong ú cẽ ch
th hai, cỏc bin tru tềng vđn tn tĐi trong cỏc mỏy c th cựng vểi cỏc bin
b sung. Chớnh vỡ vy phẽng phỏp dáa trờn cẽ ch ny phự hềp vểi mẻt hê thậng
cÊm ng cÊnh ềc m rẻng băng viêc b sung cỏc cÊm bin.
Chẽng 4 Mụ hỡnh húa v kim chng cỏc hê thậng cÊm ng cÊnh
Hỡnh 4.1: Mụ hỡnh húa tin húa s dng lm mn
Phản d liêu tổnh: khi mẻt cÊm bin ềc thờm vo hê thậng, ta cú th s phÊi
giÊi quyt vểi cỏc kiu d liêu khỏc. Phẽng phỏp xuòt mụ hỡnh húa nú nh
mẻt ng cÊnh mểi m rẻng t cỏc ng cÊnh mụ hỡnh tru tềng.
Phản ẻng: Ta bt ảu băng mụ hỡnh húa cỏc hnh vi chung ca hê thậng khi
mểi bt ảu, sau ú lm mn cỏc mỏy ny băng cỏc mỏy c th. Trong cỏc mỏy
ó lm mn cỏc bin mểi ềc thờm cú th tham chiu n cỏc thnh phản d
liêu ng cÊnh. Cỏc sá kiên ca mẻt mỏy lm mn cú th k tha cỏc sá kiên ca
mỏy tru tềng.
4.3 Case study: Hê thậng Adaptive Cruise Control
4.3.1 Mụ tÊ ban ảu
Hê thậng ACC iu khin tậc ẻ ca ụtụ dáa trờn iu kiên lĐi xe ng thèi ềc
cú chc nng cÊm ng cÊnh nh nhn bit vt cÊn phớa trểc nhè s dng cÊm
bin trểc xe. ễ tụ cú tậc ẻ ậi a v ềc thit lp khi bt ảu khi ẻng xe.
Nu khụng phỏt hiên vt cÊn phớa trểc thỡ s tng v giÊm tậc ẻ. Nu xe dng
v khụng cú vt cÊn thỡ tậc ẻ xe lĐi ềc thit lp l tậi a.
Hê thậng ACC luụn tha món rng buẻc ng cÊnh l tậc ẻ luụn trong khoÊng an
ton tc l khụng vềt quỏ tậc ẻ cho phộp.
4.3.2 Mụ hỡnh húa hê thậng ACC
Trong kch bÊn ny, hê thậng cú ba cÊm bin, theo phẽng phỏp ềc xuòt
Mc4.2,chỳngtactÊhêthậngbanảuvểimẻtmỏyvngcÊnhlACC M 0
v Target (Hỡnh 4.2).
4.3.3 Lm mn: B sung cÊm bin thèi tit v ẻ nhặn mt èng
Hai cÊm bin ny ềc gng vểi hê thậng tẽng tá nh cÊm bin phỏt hiên chểng
ngĐi vt,gi d liêu v hê thậng. Cỏc lut ng cÊnh ềc m rẻng x l cỏc sá
kiên gi d liêu v hai cÊm bin ny nh sau: Khi mẻt ụtụ di chuyn trong iu
kiên trèi ma hoc mt èng khụng tật thỡ ACC giÊm tậc ẻc ụtụ". Vểi hê thậng
mểi ny, hê thậng cản Êm bÊo trong iu kiên thèi tit hoc èng xòu thỡ tậc ẻ
nh hẽn tậc ẻ tậi a.
CONTEXT Target
CONSTANTS
TARG ET DETECTION
MAX SPEED
INC
AXIOMS
axm1 : TARGET DETECTION = BOOL
axm2 : MAX SPEED 2 N
axm3 : INC < MAX SPEED
axm4 : INC 2 N
END
EVENTS
Event TargetDetected b=
when
grd1 : target det = TRUE
grd2 : speed > INC
then
act1 : speed := speed INC
end
Event TargetUndetected b=
when
grd1 : target det = FALSE
grd2 : speed < MAX SPEED INC
then
act1 : speed := speed + INC
end
END
Hỡnh 4.2: c tÊ Event-B cho hê thậng ban ảu
Mụ hỡnh lm mn: Dáa trờn phẽng thc ó giểi thiêu 4.2.2,ngcÊnhWeather Road
m rẻng ng cÊnh Target biu din d liêu ng cÊnh ca cỏc cÊm bin mểi. Ta
thờm hai sá kiên cho mỏy lm mn. Sá kiên th nhòt biu din lut mểi v khụng
lm m sá kiên no mỏy tru tềng. Nú biu din hnh vi ca hê thậng khi cỏc
cÊm bin gi d liêu biu din trĐng thỏi thèi tit cú ma hay èng xòu. Trong
khi sá kiên TargetUndetected lm mn sá kiên ca mỏy tru tềng. Rng buẻc ng
cÊnh ề c hỡnh thc húa thnh bòt bin cxt ct (Hỡnh 4.3).
4.3.4 Kim chng cỏc tớnh chòt ca hê thậng
Cỏc rng buẻc ng cÊnh ềc chuyn i thnh cỏc mênh bòt bin. Vỡ vy, ta
cú th chng minh tớnh ỳng n ca hê thậng băng chng minh cỏc mênh cản
chng minh INV.
BÊng 4.2: Chng minh tớnh bÊo ton ng cÊnh
target det = TRUE ) speed < MAX SPEED
target det = TRUE
speed > INC TargetDetected/ctx ct1/INV
`
target det = TRUE ) speed INC < MAX SPEED
Cỏc mênh cản chng minh cho cỏc bòt bin ca cÊ mỏy tru tềng l lm mn
nh sau:
Machine ACC M 0:TargetDetected/ctx ct1/INV "(Hỡnh4.2)andTargetUnde-
tected/ctx ct1/INV "
Machine ACC M 1:TargetUndetected/ctx ct/INV "andRainSharp/ctx ct/INV "
Chẽng 5. Mụ hỡnh húa cỏc yờu cảu khụng chớnh xỏc
5.1 Giểi thiêu
Cỏc phẽng phỏp hỡnh thc l cỏc k thut toỏn hc s dng mụ tÊ cỏc tớnh
chòt mụ hỡnh hê thậng. Nhng phẽng phỏp ny a ra cỏc khung lm viêc c
14
Chẽng 5 Mụ hỡnh húa cỏc yờu cảu khụng chớnh xỏc
CONTEXT Weather Road
EXTENDS Target
CONSTANTS
RAINING
SHARP
AXIOMS
axm1 : RAINING = BOOL
axm2 : SHARP = BOOL
END
MACHINE ACC M1
REFINES ACC M0
SEES Weather Road
VARIABLES
isRain
speed
target det
isSharp
INVARIANTS
inv1 : isRain 2 RAINING
cxt ct : isRain = TRUE _ isSharp = TRUE ) speed <
MAX SPEED
inv3 : isSharp 2 SHARP
EVENTS
Event TargetUndetected b=
extends TargetUndetected
when
grd1 : target det = F ALSE
grd2 : speed < MAX SPEED INC
grd3 : isRain = FALSE
grd4 : isSharp = FALSE
then
act1 : speed := speed + INC
end
Event RainSharp b=
when
grd1 : isRain = TRUE _ isSharp = TRUE
then
act1 : speed := speed INC
end
END
Hỡnh 4.3: Mụ hỡnh lm mn ca hê thậng ACC
tÊ v kim chng tớnh ỳng n ca cỏc hê thậng núi chung v cỏc hê thậng hểng
sá kiên núi riờng thèng ũi hi cỏc yờu cảu mụ tÊ chớnh xỏc. Tuy nhiờn, chỳng
ta thèng phÊi ậi mt vểi nhng mụ tÊ khụng chớnh xỏc cú cỏc thut ng khụng
rừ rng, nhp nhăng hay khụng chc chn nh ròt lĐnh" , xa", hoc kộm quan
trng", bi vỡ nhng ngèi tham gia phỏt trin phản mm thèn g khụng quan tõm
nhiu n mụ tÊ cỏc hê thậng mẻt cỏch chớnh xỏc. Chớnh vỡ vy, nhng khung lm
viêc hỡnh thc cú th s dng phõn tớch v biu din cỏc yờu cảu khụng chớnh
xỏc l cản thit. Phẽng phỏp vểi tp mè ềc xuòt bi Zadeh [16]lmẻttrong
nhng khung lm viêc nh vy, trong ú cỏc lut Fuzz If-Then ềc s dng
biu din cỏc yờu cảu khụng chớnh xỏc. Mẻt cỏch tng quỏt, cỏc yờu cảu hê thậng
bao gm cỏc c tÊ chc nng cú th ềc kim tra cựng mc tru tềng trểc
khi bt ảu cỏc bểc phỏt trin tip theo. Cỏc yờu cảu ny ềc biu din dểi
dĐng cỏc lut If-Then mè cú th l biu din nhng vđn cú yờu cảu cỏc k thut
tip theo kim chng cỏc tớnh chòt mẻt cỏch hỡnh thc trờn nhiu khớa cĐnh
16
phỏt hiên v giÊi quyt cỏc xung ẻt. Cỏc lut If-Then mè ềc chuyn sang cỏc
khung lm viêc hỡnh thc khỏc nh PetriNet [7, 15]hockhiêuZ[9].
Chẽng ny s dng lềi th ca cẽ ch lm mn Event-B mụ hỡnh húa cỏc hê
thậng hểng sá kiên ềc mụ tÊ bi cỏc tp lut If-Then mè. úng gúp ca chẽng
l (1) a ra mẻt tp lut chuyn i t cỏc lut If-Then mè sang mụ tÊ Event-B
(2) s dng cẽ ch lm mn ca Event-B hỡnh thc húa cỏc lut If-Then mè.
5.2 Mụ hỡnh húa v kim chng cỏc yờu cảu m s dng Event-B
Trong phản ny, lun ỏn giểi thiêu mẻt cỏch tip cn biu din cỏc thut ng
mè băng l thuyt tp hềp c in. Dáa trờn cỏc biu din ny, chỳng tụi xuỏt
mẻt tp lut chuyn i cỏc lut If-Then mè sang Event-B. Sau ú s dng cẽ
ch lm m mụ hỡnh húa cỏc hê nh thèi.
5.2.1 Biu din cỏc thut ng mè băng tp hềp c in
Corollary 5.1. Mẻt tp cỏc yờu cảu mè ềc nh nghổa rừ rng cú th ềc c
tÊ băng cỏc tp hềp c in.
Chng minh.GiÊscỏcyờucảumècamẻthêthậngềcctÊbiFR =
{FR
i
}, FR
i
= {x
i
, m
i
,
i
,à
s
, Y
i
, P
i
}, i = 1, n.Tathòyx
i
, m
i
ềc xem nh cỏc
bin trong c tÊ, P
i
ềc mụ tÊ băng cỏc tp giỏ tr. Ta xột nu
i
Y
i
cú th
ềc c tÊ băng mẻt tp c in trong ú
i
l mẻt hedge, Y
i
l mẻt bẻ sinh ca
mẻt generator ca mênh mè. Vỡ FR l mẻt tp hu hĐn cỏc lut nờn hedges v
generators trong hê thậng ềc thit lp bi cỏc tp khỏc nhau vv Y ,tẽng
ng. Theo nh nghổa 4 v 5
i
Y
i
l Y ,trongúà
s
l mẻt hm t tp N tểi .
Vỡ vy, mẩi phản t ca FR cú th ềc c tÊ bi cỏc tp hềp c in.
5.2.2 Mụ hỡnh hoỏ cỏc trĐng thỏi rèi rĐc ca cỏc yờu cảu khụng chớnh xỏc
vnMẻt hê thậng bao gm mẻt tp cỏc yờu cảu FR
i
, i = 1, n ềc mụ hỡnh húa bi
mẻt mụ hỡnh Event-B FR
B
= hFR C , FR M i,trongúFR C vv FR M l ng
cÊnh v mỏy Event-B tẽng ng. Chỳng tụi xuòt mẻt phản cỏc lut ềc s
dng ỏnh xĐ cỏc yờu cảu khụng chớnh xỏc vo cỏc phản t Evemt-B. Nguyờn
tc quan trng l vểi phẽng phỏp ny ta cú th bÊo ton còu trỳc v biu din
ton b ẻ cỏc yờu cảu mè s dng k hiêu Event-B. Cỏc lut chuyn i:
Lut 1. hedges
i
,generatorsY
i
v giỏ tr P
i
trong mẻt tp cỏc yờu cảu cú th
ềc chuyn i thnh ba tp hềp tẽng ng , Y ,andP. Cỏc tp ny ềc a
ra trong ng cÊnh FR C .
Lut 2. Cỏc bin x
i
, m
i
trong mẩi FR
i
ềc ỏnh xĐ n cỏc bin x
i
, m
i
ca mỏy
Event-B FR M .
Lut 3. Mẩi bin x
i
ềc biu din thnh Y ,trongúm
i
2 P (Corollary
5.1).
Lut 4. Mẩi yờu cảu FR
i
ềc mụ hỡnh húa bi mẻt sá kiờn ev
i
trong mỏy Event-B
FR M
Lu l òy chứ l cỏc qui tc bin i mẻt phản, ta cản thờm vo nhiu thnh
phản khỏc Đt ềc c tÊ Event-B hon chứnh(Hỡnh 5.1).
Ch˜Ïng 5 Mô hình hóa các yêu c¶u không chính xác
CONTEXT FR C
SETS
P
Y
END
MACHINE FR M
SEES FR C
VARIABLES
x i
m i
INVARIANTS
inv1 : x
i
2P( ⇥ Y)
inv2 : m
i
2P( ⇥ P)
inv3 : I
EVENTS
Event FR
i
b=
when
grd1 : x
i
= {
i
7! Y
i
}
then
act1 : m
i
:= {
i
7! P
i
}
act2 : x
i
:= {
j
7! Y
j
}
end
END
Hình 5.1: ApartofEvent-Bspecificationfordiscretetransitionsmodeling
5.2.3 Mô hình hóa các hª mÌ
Tr˜Óc tiên ta ‡nh nghæa các lu™t If-Then mÌ ‡nh thÌi có d§ng nh˜ sau: IF x(t)
is A THEN y(t) is B. Ti∏p tˆc ph˜Ïng pháp ˜Òc giÓi thiêu trong [4], n∏u mÎt
yêu c¶u mÌ FR i ch˘a mÎt bi∏n phˆ thuÎc thÌi gian nào ó, thì ta s≥ làm m‡n s¸
kiªn t˜Ïng ˘ng cıa máy tr¯u t˜Òng (Mˆc 5.2.2,Lu™t5).ÁngthÌi,tacÙngãgiÓi
thiªu trong Lu™t 4 là n∏u mÎt bi∏n x ˜Òc ∞c t£ nh˜ mÎt thành viên cıa ⇥ Y ,
trong ó là mÎt t™p hÒp cıa các fuzzy hedges, Y là mÎt t™p mÌ. T˜Ïng t¸, ta
thêm các bi∏n liên tˆc x
c
cıa máy làm m‡n ˜Òc khai báo nh˜ sau x
c
2 R 7! ⇥ P.
Lu™t án giÓi thiªu hai lu™t cho mô hình hóa các tr§ng thái liêu tˆc phˆ thuÎc thÌi
gian cıa yêu c¶u nh˜ sau:
• Lu™t 6: N∏u mÎt bi∏n x i or m i (trong mÎt yêu c¶u mÌi FR i)g≠nvÓitrˆc
thÌi gian, thì s¸ kiªn t˜Ïng ˘ng s≥ ˜Ò c làm m‡n. MÎt bi∏n t.t 2 R ∫ bi∫u diπn
thÌi gian s≥ ˜Òc thêm vào máy làm m‡n.
• Rule 7: Các bi∏n phˆ thuÎ c thÌi gian (trong Rule 1) ˜Òc thay th∏ b i các hàm
thÌi gian và bßt bi∏n ràng buÎc trong máy làm m‡n.
5.3 Case study: Container Crane Control
5.3.1 Mô t£
C¶n c©u container ˜Òc s˚ dˆng ∫ nhßc và th£ hàng ˜Òc s˚ dˆng trong các c£ng.
MÎt t™p hÒp các yêu c¶u mÌ mô t£ hª thËng nh˜ sau:
• FR
1
N∏u c¶n c©u ang v‡ tr‡ ban ¶u, thì tËc Î m˘c nhanh.
• FR
2
.N∏ukho£ngcácht¯c¶nc©u∏ncontainerxa,thìtËcÎm˘ctrungbình.
• FR
3
.N∏ukho£ngcách∏ncontainerlàtrungbìnhthìtËcΘÒci∑uchønh
m˘c thßp.
• FR
4
.N∏ukho£ngcáchlàg¶nthìtËcÎlàrßtch™m.
FR
5
.Nucảncâutrờncontainerthỡtậcẻbăng0.
5.3.2 Mụ hỡnh húa hê thậng Container Crane Control
Mụ hỡnh húa cỏc hnh vi rèi rĐc:
p dng cỏc lut chuyn i ó trỡnh by trong Mc 5.2.2,tpcỏcyờucảucahê
thậng ề c chuyn i sang mụ hỡnh Event-B nh sau:
p dng Lut 1 :Fuzzyhedges,generatorsvcỏcgiỏtrtrongtpcỏcyờucảu
ềc chuyn thnh cỏc tp HEDGES, DISTANCE v POWER trong ng cÊnh
Event-B Crane C 0.
p dng Lut 2: Cỏc hm thuẻc ca hedges vv giỏ tr mè ềc biu din nh
cỏc hm sậ nguyờn. Vớ d: h deg : HEDGES ! N.Tacúaxiomchogiỏtrny
nh sau h deg(very)=3^ h deg(quite)=2^ h deg(precise)=1.
Ta tip tc hỡnh thc húa phản ẻng ca mụ hỡnh vểi cỏc chuyn i.
p dng Lut 3 : Cỏc bin trong yờu cảu ềc chuyn thnh cỏc thnh phản
Event-B nh distance and power. Kiu ca hai bin ny ềc biu din nh cỏc
bòt bin inv1 and inv2.
p dng Lut 5 : Mẩi yờu cảu khụng chớnh xỏc FR
i
ca hê thậng ềc chuyn
thnh mẻt sá kiờn evt
i
, i = 1, 5.
Mụ hỡnh húa cỏc hnh vi liờn tc:
Ta lm mn mụ hỡnh chuyn i mc trểc băng viêc xem xột hê thậng mẻt cỏch
chi tit v c th hẽn. Trờn thác t, mẩi di chuyn ca cản câu gn vểi trc thèi
gian vỡ nú di chuyn mẻt c ỏch liờn lc trong khi tậc ẻ thỡ ềc iu chứnh rèi rĐc.
Ta ỏp dung cỏc lut ềc a ra trong mc 5.2.3 nh sau:
p dng Lut 6:NmsákiênềclmmntrongmỏylmmCrane M 1,bin
m thèi gian t cng ềc b sung.
Apply Rule 7 :Replacedis by dis
c
(the distance which is time-dependent). The
new variable of refined machine dis
c
and one of abstract machine dis have a gluing
variant (inv3).
Chẽng 6. Kim chng cỏc yờu cảu hê thậng khụng chớnh xỏc
6.1 Giểi thiêu
Cỏc phẽng phỏp hỡnh thc ềc s dng khụng chứ c tÊ m cũn phỏt hiên v
giÊi quyt cỏc xung ẻt ca yờu cảu hê thậng. Trong Chẽng 5,lunỏnxuòt
mẻt phẽng phỏp mểi mụ hỡnh húa cỏc yờu cảu hê thậng khụng chớnh xỏc ềc
mụ tÊ băng cỏc phản t Event-B. Tuy nhiờn, kim chng cỏc thuẻc tớnh quan trng
ca cỏc hê thậng ny cha ềc cp n. Cỏc tớnh chòt ph bin ca cỏc hê
thậng l tớnh an ton v tớnh hoĐt ẻng. Tớnh an ton bÊo Êm hê thậng khụng
rẽi vo trĐng thỏi xòu trong khi cỏc tớnh chòt hoĐt ẻng Êm bÊo mẻt trĐng thỏi
tật ca hê thậng (tớnh dng, hoĐt ẻng, tin trỡnh). Chẽng 6 ca lun ỏn s giểi
thiêu mẻt phẽng phỏp dáa trờn lm mn mểi mụ hỡnh húa v kim chng cÊ
18
Chẽng 6 Kim chng cỏc yờu cảu hê thậng khụng chớnh xỏc
hai tớnh chòt an ton v hoĐt ẻng. Theo nh hiu bit ca chỳng tụi thỡ õy l
nhng kt quÊ c th ảu tiờn trong kim chng cỏc tớnh chòt ny ca cỏc yờu cảu
khụng chớnh xỏc. Cỏc úng gúp ca chẽng c th l (1) cung còp mẻt tp lut
chuyn i hỡnh thc húa tớnh hoĐt ụng sang Event-B, phẽng phỏp ny s
dng cỏc tip cn mụ hỡnh húa lm mn m Event-B hẩ trề (2) th hiên viêc s
dng cụng c Rodin kim chng cỏc tớnh chòt ny.
6.2 Tớnh hẻi t trong Event-B
Tớnh chòt hẻi t ca mỏy Event-B l sá hẻi c cỏc sá kiên. Tc l mẻt tp cỏc sá
kiên khụng th chĐy khụng ngng. iu ú cú nghổa l cú sá kiên khỏc s xÊy ra.
Nhng sá kiên nh vy gi l sá kiên hẻi t. chng minh tớnh chòt ny, Event-B
a ra cẽ ch s dng variant V ỏnh xĐ n mẻt bin trĐng thỏi v n mẻt sậ
nguyờn, cỏc sá kiên ny ềc chng minh l giÊm giỏ tr ca bin v. Chi tit hẽn,
e l mẻt sá kiên hẻi t, v v v
0
l trĐng thỏi trểc/sau khi thác hiên e,tachng
minh răng V (v
0
) < V ( v).Haimênhcảnchngminhnyềcsinhrachomẩi
sá kiên hẻi t trong ú mênh cản chng minh VAR bÊo Êm giỏ tr variant s
giÊm v NAT Êm bÊo l variant l mẻt sậ nguyờn sau khi thác thi sá kiên.
6.3 Phõn tớch tớnh an ton v hoĐt ẻng trong Event-B
Event-B cung còp mẻt cỏch biu din cỏc thuẻc tớnh an ton mẻt cỏch trác tip
băng cỏc bòt bin. Vỡ vy, ta cú th chng minh tớnh ỳng n ca cỏc tớnh chòt
ny băng chng minh mênh INV . Event-B khụng hẩ trề c tÊ cỏc tớnh chòt
hoĐt ẻng mẻt cỏch trác tip nhng ta cú th thác thi theo phẽng phỏp suy
din trong bi bỏo [6]kimchngcỏctớnhchòtnhexistence (P), progress
((P
1
) P
2
)), persistence (P), trong ú P l mẻt cụng thc logic bc mẻt,
v l cỏc toỏn t chuân ca Linear Temporal Logic (LTL).
6.4 Mụ hỡnh húa cỏc tớnh chòt ca yờu cảu khụng chớnh xỏc
6.4.1 Mụ hỡnh húa tớnh an ton
Corollary 6.1. Vểi cỏc lut chuyn i ó xuòt, cỏc tớnh chòt an ton ềc bÊo
ton bi cỏc hnh ẻng trong yờu cảu hê thậng khụng chớnh xỏc.
6.4.2 Mụ hỡnh húa tớnh hoĐt ẻng
Lun ỏn xuòt mẻt phẽng phỏp dáa trờn lm mn vểi viêc b sung thờm cỏc
lut m rẻng ng cÊnh v lm mn mỏy Event-B nh sau:
Lut 6. Giỏ tr mè P, Y vv hedges ềc chuyn thnh cỏc hm tẽng ng
deg
P
! N, deg
y
Y : Y ! N, deg
H
: ! N.
Lut 7: Thờm mẻt a variant ỏnh xĐ tểi bin cú xuòt hiên trong biu thc thuẻc
tớnh hoĐt ụng Q.
Lut 8. Lm mn cỏc sá kiên biu din cho cỏc yờu cảu If-Then băng hai sá kiên:
sá kiên thèng v sá kiên hẻi t.
Lut 9. Thờm mênh ơQ(x
i
) vo cỏc iu kiên ca mẩi sá kiên hẻi t v mênh
Q(x
i
) vo sá kiên thèng.
Rule 10. Tớnh chòt Deadlock-free ềc mó húa nh mẻt theorem ca mỏy Event-
B.
20
Definition 6.2 (Tớnh hẻi t). Cỏc lut mè l hẻi t t mẻt trĐng thỏi Q(x) nu
mẩi lut lm giÊm giỏ tr ca bin x. Tinh hẻi t ềc nh nghổa hỡnh thc nh
sau:
FR
i
, Q(x) ` x
0
< x,trongúx
0
l giỏ tr sau khi thác hiên lut FR
i
.
Definition 6.3 (Deadlock-freeness). Cỏc lut mè l deadlock-free trĐng thỏi Q(x)
nu luụn cú mẻt mênh IF ca mẻt lut tha món. nh nghổa mẻt cỏch hỡnh
thc l:
Q(x) )
n
W
i=1
(9 x
i
.x
i
= Y
i
)
Corollary 6.4. Vểi cỏc lut chuyn i ó xuòt, nu mẻt tp lut If-Then mè
l hẻi t v deadlock-free t mẻt biu thc logic trĐng thỏi Q(x) trong ú x l mẻt
bin thỡ thuẻc tớnh trĐng thỏi ơQ(x) s luụn xÊy ra. Mẻt cỏch hỡnh thc, ta cú
{FR}`ơQ(x).
6.5 Kim chng hê thậng Container Crane Control
Hê thậng cú mẻt thuẻc tớnh an ton Êm bÊo tậc ẻ ca motor khụng tậc ẻ
cao khi khoÊng cỏch khụng (I). ng thèi hê thậng cng cản tha món tớnh chòt
t v trớ ban ảu, mẻt lỳc no ú cản câu s trờn container(Q). Biu din mẻt
cỏch hỡnh thc, ta cản kim chng {FR}`I v {FR}`Q.
6.5.1 Lm mn: Mụ hỡnh húa tớnh chòt hoĐt ẻng
Ta thác hiên chin lềc lm mn nh ó trỡnh by Mc 6.4.2 mụ hỡnh húa
tớnh chòt hoĐt ẻng mong muận. ảu tiờn, ta ỏp dng Rule 6 m rụng ng cÊnh
CraneCtrl C 0 thnh CraneCtrl C1 băng viêc a thờm ba hm ỏnh xĐ cỏc tp
mè sang cỏc giỏ tr sậ. c tÊ ca ng cÊnh ềc mụ tÊ mẻt phản nh sau:
CONTEXT CraneCtrl C1
EXTENDS CraneCtrl C0
CONSTANTS
deg HED, deg POWER, d DIS
AXIOMS
axm4 : deg HED : HEDGES ! N
axm5 : deg HED(very)=3 ^ deg HED(quite)=2
^ deg HED(precise)=1
END
Tip theo, ta lm min mỏy Crane M0 cú Crane M1 vểi 05 sá kiên hẻi t v 05
sá kiên thèng (Lut 8). oĐn mó Event-B dểi õy mụ tÊ cho sá kiên evt4.
MACHINE Crane M1
REFINES Crane M0
Ch˜Ïng 6 Ki∫m ch˘ng các yêu c¶u hª thËng không chính xác
SEES Crane C1
VAR IA BL ES
d
VAR IA NT
d
INVARIANTS
inv1 : d 2 N
DELF : d = 0 ) ran(dist)={start}_ran(dist)={far}_
ran(dist)={medium}_ran(dist)={close}_ran(dist)={above}
EVENTS
Event evt4 CE b=
Status convergent
extends evt
4
when
grd1 : distance =
{precise 7! close}
grd2 : d =
deg
DIS(close)
grd3 : ¬d =
deg DIS(above)
then
act1 : power :=
{very 7! slow}
act2 : distance :=
{precise 7! above}
act2 : d :=
deg DIS(above)
end
Event evt4 OE b=
Status ordinary
extends evt
4
when
grd1 : distance =
{precise 7! close}
grd2 : d =
deg
DIS(close)
grd3 : d =
deg DIS(above)
then
act1 : power :=
{very 7! slow}
act2 : distance :=
{precise 7! above}
act2 : d :=
deg DIS(above)
end
6.5.2 Ki∫m ch˘ng thuÎc tính
Hª thËng có mÎt tính chßt ã ˜Òc hình th˘c hóa thành mÎt bßt bi∏n
inv4:ran(dist)={close})¬ran(power )={fast}. MÈi mªnh ∑ c¶n ch˘ng minh
này ˜Òc sinh ra cho mÈi s¸ kiªn cıa máy Crane M 0.B£ng6.1 th∫ hiªn mªnh ∑
c¶n ch˘ng minh inv4 cıa s¸ kiªn evt4
B£ng 6.1: INV PO of event evt4
ran(dis)={close})¬ran(speed)={fast}
dis = {precise 7! close} evt4/inv4/INV
`
ran ({precise 7! above})={close})¬ran ({very 7! slow})={fast}
Ta c¶n ph£i ch˘ng minh c¶n c©u s≥ ∏n v‡ trí phía trên container, có nghæa là
Crame M 1 ` ⇤⌃(d = deg DIS(above)). Tính chßt deadlock-free cıa máy ˜Òc
bi∫u diπn hành mÎt theorem DELF in Crane M 1.
BÊng 6.2: Deadlock free PO of machine Crane M 1
d = deg DIS(above)
)
d = deg DIS(start) _ d = deg DIS (far) DELF/THM
d = deg DIS(medium) _ d = deg DIS(close)
d = deg DIS(above)
kim tra tớnh hẻi t, ta chng minh cỏc mênh cản chng minh cho cỏc sá
kiên hẻi t, c th l evt
i
/NAT v evt
i
/VAR.BÊng6.3 l mênh cản chng minh
sá kiên evt4 ca mỏy Crame M 1 giÊm giỏ tr ca variant d.
BÊng 6.3: VAR PO of event evt4
dis = {precise 7! close}
ơd = deg DIS (close)
d = deg DIS(close) evt4 CE/VAR
`
d (deg DIS(close) deg DIS(above)) < d
Chẽng 7. Kt lu n
7.1 Kt lun
Trong phản ảu tiờn ca lun ỏn, thay vỡ lm viêc trờn mẻt mụ hỡnh tham chiu
ca kin trỳc hểng sá kiên m tru tềng hẽn v mụ tÊ mẻt lểp lển hẽn ca hê
thậng, lun ỏn tp trung vo cỏc ng dng c trng l hê thậng cẽ s d liêu bao
gm cỏc triggers v cÊm ng cÊnh. Hai ng dng ny cú tớnh chòt v chc nng
cung còp riờng. Tuy nhiờn trong hai hê thậng, trigger nờn v cỏc quy tc ng cÊnh
cú còu trỳc tẽng tá hỡnh thc nh dĐng ECA. Phẽng phỏp xuòt ca chỳng
tụi ềc dáa trờn cẽ ch lm viêc tẽng tá gia lut ECA v mẻt sá kiên Event-B.
Vỡ l do ny, quỏ trỡnh xõy dáng mụ hỡnh l tá nhiờn v d dng. Hẽn na, lun
ỏn s dng Event-B hỡnh thc húa hê thậng, chỳng ta khụng cản bòt k bểc
trung gian no kim th tớnh ỳng n ca hê thậng.
Trong phản th hai, lun ỏn cng úng gúp lển vo viêc phõn tớch hê thậng hểng
sá kiên theo quy nh ca yờu cảu khụng chớnh xỏc. Mc dự yờu cảu khụng chớnh
xỏc thèng ềc tỡm thòy trong quỏ trỡnh phỏt trin phản mm, nhng nhng
nghiờn cu ch yu giÊi quyt vòn mụ hỡnh v kim chng cỏc yờu cảu chớnh
xỏc. Phản ny trỡnh by phẽng phỏp mểi dáa trờn qui tc lm mn, trong ú cỏc
yờu cảu ềc mụ phng bi If-Then mè. Cỏc quy tc ó ềc chuyn i sang mẻt
tp hềp cỏc sá kiên Event-B. Lun ỏn cng xuòt phẽng phỏp d áa trờn lm mn
cú th kim chng tớnh chòt an ton v hoĐt ẻng ca hê thậng.
7.2 HĐn ch
Bờn cĐch cỏc kt quÊ ó Đt ềc, lun ỏn vđn cũn mẻt sậ hĐn ch
Phẽng phỏp xuòt cho mụ hỡnh v kim chng cỏc hê thậng cẽ s d liêu
khụng hẩ trề cho suy din trác tip v thuẻc tớnh kt thỳc, trong khi nú l mẻt
trong nhng c tớnh mong muận m ngèi phỏt trin phản mm muận kim tra.
22
Chẽng 7 Kt lun
Phẽng phỏp x l cỏc trèng hềp ẽn giÊn ca mẻt chuẩi cỏc cõu lênh DML
khụng cha lng nhau v cỳ phỏp trigger ảy .
Do thiu sá hẩ trề kiu d liêu nguyờn thy trong Event-B, lun ỏn chứ cú th
lm phong phỳ thờm mụ hỡnh d liêu ng cÊnh băng cỏch kt hềp vểi cỏc Plug-in
mểi. Bậi cÊnh l d liêu thè ng ròt phc tĐp v cú nhiu loĐi d liêu. Hẽn na,
mẻt ng dng cÊm ng cÊnh thác thèng cha d liêu thèi gian cú liờn quan.
Tuy nhiờn, Event-B khụng hẩ trề logic thèi gian, do ú mụ hỡnh v kim chng
cỏc ng dng nh vy s phÊi ậi mt vểi mẻt sậ vòn . Phẽng phỏp xuòt
cản phÊi ềc m rẻng mụ hỡnh bin ph thuẻc thèi gian.
Phẽng phỏp mụ hỡnh húa v kim chng yờu cảu hê thậng khụng chớnh xỏc cÊ
hai trèng hềp hnh vi rèi rĐc v liờn tc ca hê thậng. Tuy nhiờn, do mẻt sậ
hĐn ch ca Rodin, lun ó giểi thiêu mẻt loĐi xòp xứ s dng mathbbN thay
vỡ mathbbR.Hẽnna,cỏcthuẻctớnhliờnquannthèigiankhụngềcthÊo
lun n. Mụ tÊ hnh vi ca hê thậng băng cỏc lut If-Then mè l cha cho
mi trèng hềp. Bờn cĐnh ú tớnh tỡnh huậng, cú mẻt sậ c tớnh liveness l cản
thit ềc kim tra Êm bÊo tớnh chớnh xỏc ca hê thậng nh progress,
persistence cha ềc phõn tớch.
7.3 Hểng phỏt trin
Mẻt trong nhng hểng nghiờn cu lun ỏn ang phỏt trin mẻt cụng c Plugin
Rodin mụ hỡnh húa cỏc hê thậng cẽ s d liêu. Chỳng tụi cng s x l cỏc
triggers phc tĐp hẽn vểi nhiu cõu lênh DML lng nhau kt hềp vểi vũng lp.
Trong trèng hềp lênh phc hềp lng nhau, chỳng tụi cú th cản phÊi ỏp dng cỏc
k thut t hềp mụ hỡnh thnh phản l cỏc sá kiên phc hềp. Suy din v tớnh
dng ca cỏc trigger v cỏc loĐi trigger khỏc cng s ềc xem xột trong cỏc nghiờn
cu tip theo.
Chỳng tụi s m rẻng phẽng phỏp mụ hỡnh húa cỏc hê thậng cÊm ng cÊnh băng
cỏch s d ng cỏc plugin Theory cho phộp tĐo ra v xỏc nh ng nghổa cho cỏc
loĐi d liêu khỏc nhau ca bậi cÊnh thèng xuyờn ềc s dng nh: thèi gian, a
im. Phẽng phỏp xuòt s ềc m rẻng mụ hỡnh húa mậi quan hê phc
tĐp hẽn gia bậi cÊnh. Hiên nay, cú mẻt sậ khung lm viêc mụ tÊ cỏc hê thậng
cÊm ng cÊnh. Chỳng tụi dá nh trác tip bin i cỏc ngụn ng c tÊ ng cÊnh
ny sang Event-B.
Cụng viêc tẽng lai ca chỳng tụi theo hểng ny s tp trung vo phõn tớch thuẻc
tớnh liờn quan n thèi gian ca cỏc hê thậng cÊm ng cÊnh v m rẻng cỏc kiu
d liêu ng cÊnh cho phong phỳ hẽn băng viêc tớch hềp cỏc plug-in.
Cỏc phẽng phỏp hiên tĐi chng minh tớnh liveness ềc thác hiên quỏ trỡnh
lm mn cuậi cựng. Vỡ vy, mẻt cÊi tin m lm phẽng phỏp cú th chng
minh tớnh liveness mi giai oĐn lm mn cng l mẻt mc tiờu. Hẽn na, nn
tÊng l thuyt suy din v liveness trong Event-B cng cản phÊi ềc m rẻng cho
trèng hềp tng quỏt bao gm sá cụng băng giÊ nh. iu ú cng lm cho nú cú
th xỏc minh cỏc thuẻc tớnh liveness quan trng khỏc nh persistence, progress.