1. Trang chủ
  2. » Luận Văn - Báo Cáo

Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện

27 486 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 724,82 KB

Nội dung

Ch˜Ïng 1. TÍng quan vΣ lu™n án 1.1 L˛ do l¸a chÂn Σ tài Mô hình hóa là mÎt trong các cách th˘c hiªu qu£ %∫ qu£n l˛ %Î ph˘c t§p trong phát tri∫n ph¶n mΣm, nó cho phép thiΠt kΠ và %ánh giá các yêu c¶u cıa hª thËng. Mô hình hóa không chø cung cßp các nÎi dˆng mÎt cách tr¸c quan mà còn c£ các nÎi dung k˛ t¸. Các kˇ thu™t ki∫m th˚ có th∫ %˜Òc s˚ dˆng trong phát tri∫n ph¶n mΣm thông th˜Ìng %∫ ki∫m tra liªu mÎt ph¶n mΣm th¸c thi có th‰a mãn yêu c¶u cıa ng˜Ìi dùng. Tuy nhiên, ki∫m 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 vài tr˜Ìng hÒp nh˙ng không %£m b£o %˜Òc hª thËng ch§y %úng trong mÂi tr˜Ìng hÒp. Ki∫m ch˘ng ph¶n mΣm là mÎt trong nh˙ng ph˜Ïng pháp m§nh hiªu qu£ %∫ tìm ra lÈi ho∞c ch˘ng minh không có lÈi mÎt cách toán hÂc. MÎt vài kˇ thu™t %ã %˜Òc %Σ xußt cho ki∫m ch˘ng ph¶n mΣm nh˜ ki∫m ch˘ng mô hình, ch˘ng minh %‡nh l˛, và phân tích ch˜Ïng trình. Trong các kˇ thu™t này, ch˘ng minh %‡nh l˛ có ˜u %i∫m vì có kh£ n´ng ki∫m ch˘ng các ch˜Ïng trình có kích cÔ lÓn và suy diπn qui n§p. Tuy nhiên, ch˘ng minh %‡nh l˛ th˜Ìng sinh ra nhiΣu các ch˘ng minh ph˘c t§p và khó hi∫u. Trên khía c§nh khác, kiΠn trúc ph¶n mΣm là mÎt khái niªm %˜Òc %Σ xußt %∫ xây d¸ng các hª thËng ph¶n mΣm mÎt cách hiªu qu£. MÎt d§ng kiΠn trúc ho∞c ki∫u thiΠt kΠ th˜Ìng có các ph˜Ïng pháp mô hình hóa và ki∫m ch˘ng phù hÒp khác nhau. KiΠn trúc h˜Óng s¸ kiªn là mÎt trong nh˙ng kiΠn trúc phÍ biΠn trong phát tri∫n ph¶n mΣm cung cßp cÏ chΠ gÂi d‡ch vˆ không tr¸c tiΠp. MÈi thành ph¶n cıa kiΠn trúc này có th∫ sinh ra các s¸ kiªn, sau %ó hª thËng s≥ gÂi các thı tˆc %ã %´ng k˛ vÓi các s¸ kiªn này. Eây là mÎt kiΠn trúc %¶y h˘a hμn vì nó cho phép phát tri∫n và mô hình các hª thËng ít ràng buÎc nhau và lÒi ích cıa nó %ã %˜Òc công nh™n rÎng rãi trong khoa hÂc và ˘ng dˆng. Có nhiΣu lo§i hª thËng h˜Óng s¸ kiªn bao gÁm các hª thËng giao ªndiªn ng˜Ìi dùng cho phép s˚ dˆng các s¸ kiªn %∫ th¸c thi lªnh cıa ng˜Ìi dùng, các hª thËng sinh ra lu™t s˚ dˆng trong trí tuª nhân t§o khi x£y ra mÎt %iΣu kiªn nào %ó, hay các %Ëi t˜Òng ho§t %Îng khi thay %Íi giá tr‡ cıa các thuÎc tính thì kích ho§t mÎt sË hành %Îng 11. Trong kiΠn trúc h˜Óng s¸ kiªn, các lu™n d§ng ECA %˜Òc %Σ xußt nh˜ mÎt các tiΠp c™p %∫ %∞c t£ các quan hª khi các s¸ kiªn x£y ra  mÎt %iΣu kiªn %‡nh tr˜Óc. Lu™t 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 %iΣu kiªn conditions thì th¸c thi actions. Ta cÙng có th∫ bi∫u diπn các lu™t này mÎt cách không hình th˘c b¨ng các lu™t ifthen, nghæa là if Events x£y ra trong %iΣu kiªn condition, then th¸c thi action. Các ˜u %i∫m cıa ph˜Ïng pháp này %ã %˜Òc ˘ng dˆng và tích hÒp trong nhiΣu lænh v¸c khác nhau nh˜ hª thËng CSDL, các ˘ng dˆng c£m ng˙ c£nh. Eã có nhiΣu nghiên c˘u vΣ phân tích các hª thËng h˜Óng s¸ kiªn cÙng nh˜ là hình th˘c hóa các lu™t ECA. Tuy nhiên, các 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Íng quát là ch˜a %ı vì trên th¸c tΠ ta th˜Ìng phát tri∫n mÎt d§ng %∞c tr˜ng cıa hª thËng h˜Óng s¸ kiªn có s˚ dˆng các lu™t ECA. HÏn n˙a các nghiên c˘u hiªn t§i cıa ki∫m ch˘ng ph¶n mΣm chı yΠu tâp trung vào phân tích các mô

Trang 1

ÑI H≈C QU»C GIA HÀ NÀI Tr˜Ìng §i hÂc Công nghª

Trang 2

Ng˜Ìi h˜Óng d®n khoa hÂc:

Có th∫ tìm hi∫u lu™n án t§i

- Th˜ viªn QuËc gia Viªt Nam

- Trung tâm thông tin th˜ viên , §i hÂc QuËc gia Hà NÎi

Trang 3

Ch˜Ïng 1 TÍng quan v∑ lu™n án

Mô hình hóa là mÎt trong các cách th˘c hiªu qu£ ∫ qu£n l˛ Î ph˘c t§p trongphát tri∫n ph¶n m∑m, nó cho phép thi∏t k∏ và ánh giá các yêu c¶u cıa hª thËng

Mô hình hóa không chø cung cßp các nÎi dˆng mÎt cách tr¸c quan mà còn c£ cácnÎi dung k˛ t¸ Các kˇ thu™t ki∫m th˚ có th∫ ˜Òc s˚ dˆng trong phát tri∫n ph¶nm∑m thông th˜Ìng ∫ ki∫m tra liªu mÎt ph¶n m∑m th¸c thi có th‰a mãn yêu c¶ucıa ng˜Ìi dùng Tuy nhiên, ki∫m 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 vài tr˜Ìng hÒp nh˙ng không £m b£o ˜Òc hªthËng ch§y úng trong mÂi tr˜Ìng hÒp Ki∫m ch˘ng ph¶n m∑m là mÎt trong nh˙ngph˜Ïng pháp m§nh hiªu qu£ ∫ tìm ra lÈi ho∞c ch˘ng minh không có lÈi mÎt cáchtoán hÂc MÎt vài kˇ thu™t ã ˜Òc ∑ xußt cho ki∫m ch˘ng ph¶n m∑m nh˜ ki∫mch˘ng mô hình, ch˘ng minh ‡nh l˛, và phân tích ch˜Ïng trình Trong các kˇ thu™tnày, ch˘ng minh ‡nh l˛ có ˜u i∫m vì có kh£ n´ng ki∫m ch˘ng các ch˜Ïng trình

có kích cÔ lÓn và suy diπn qui n§p Tuy nhiên, ch˘ng minh ‡nh l˛ th˜Ìng sinh ranhi∑u các ch˘ng minh ph˘c t§p và khó hi∫u Trên khía c§nh khác, ki∏n trúc ph¶nm∑m là mÎt khái niªm ˜Òc ∑ xußt ∫ xây d¸ng các hª thËng ph¶n m∑m mÎt cáchhiªu qu£ MÎt d§ng ki∏n trúc ho∞c ki∫u thi∏t k∏ th˜Ìng có các ph˜Ïng pháp môhình hóa và ki∫m ch˘ng phù hÒp khác nhau Ki∏n trúc h˜Óng s¸ kiªn là mÎt trongnh˙ng ki∏n trúc phÍ bi∏n trong phát tri∫n ph¶n m∑m cung cßp cÏ ch∏ gÂi d‡ch vˆkhông tr¸c ti∏p MÈi thành ph¶n cıa ki∏n trúc này có th∫ sinh ra các s¸ kiªn, sau

ó hª thËng s≥ gÂi các thı tˆc ã ´ng k˛ vÓi các s¸ kiªn này ây là mÎt ki∏ntrúc ¶y h˘a hµn vì nó cho phép phát tri∫n và mô hình các hª thËng ít ràng buÎcnhau và lÒi ích cıa nó ã ˜Òc công nh™n rÎng rãi trong khoa hÂc và ˘ng dˆng Cónhi∑u lo§i hª thËng h˜Óng s¸ kiªn bao gÁm các hª thËng giao ªndiªn ng˜Ìi dùngcho phép s˚ dˆng các s¸ kiªn ∫ th¸c thi lªnh cıa ng˜Ìi dùng, các hª thËng sinh

ra lu™t s˚ dˆng trong trí tuª nhân t§o khi x£y ra mÎt i∑u kiªn nào ó, hay các

Ëi t˜Òng ho§t Îng khi thay Íi giá tr‡ cıa các thuÎc tính thì kích ho§t mÎt sËhành Îng [11] Trong ki∏n trúc h˜Óng s¸ kiªn, các lu™n d§ng ECA ˜Òc ∑ xußtnh˜ mÎt các ti∏p c™p ∫ ∞c t£ các quan hª khi các s¸ kiªn x£y ra  mÎt i∑u kiªn

‡nh tr˜Óc Lu™t 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 i∑u kiªn conditions thì th¸c thi actions TacÙng có th∫ bi∫u diπn các lu™t này mÎt cách không hình th˘c b¨ng các lu™t if-then,nghæa là if Events x£y ra trong i∑u kiªn condition, then th¸c thi action Các ˜ui∫m cıa ph˜Ïng pháp này ã ˜Òc ˘ng dˆng và tích hÒp trong nhi∑u lænh v¸ckhác nhau nh˜ hª thËng CSDL, các ˘ng dˆng c£m ng˙ c£nh ã có nhi∑u nghiênc˘u v∑ phân tích các hª thËng h˜Óng s¸ kiªn cÙng nh˜ là hình th˘c hóa các lu™tECA Tuy nhiên, các ph˜Ïng pháp mô hình hóa và ki∫m ch˘ng các hª thËng h˜Óngs¸ kiªn tÍng quát là ch˜a ı vì trên th¸c t∏ ta th˜Ìng phát tri∫n mÎt d§ng ∞ctr˜ng cıa hª thËng h˜Óng s¸ kiªn có s˚ dˆng các lu™t ECA HÏn n˙a các nghiênc˘u hiªn t§i cıa ki∫m ch˘ng ph¶n m∑m chı y∏u tâp trung vào phân tích các mô

1

Trang 4

t£ chính xác v∑ ch˘c n´ng và hành vi cıa hª thËng Chính vì nh˙ng l˛ do trên,các ph˜Ïng pháp mô hình hóa và ki∫m ch˘ng phù hÒp cho các hª thËng này là c¶nthi∏t N∏u ta có th∫ ki∫m ch˘ng các tính chßt quan trÂng cıa hª thËng sÓm thì s≥ti∏t kiªm ˜Òc chi phí phát tri∫n Các ph˜Ïng pháp này vì th∏ n∏u gi£m ˜Òc Îph˘c t§p trong ch˘ng minh thì s≥ có kh£ n´ng áp dˆng vào th¸c t∏ cao Lu™n án

∑ xußt các ph˜Ïng pháp mÓi ∫ §t ˜Òc các yêu c¶u trên b¨ng s˚ dˆng ph˜Ïngpháp hình Event-B Event-B ˜Òc d¸a trên l˛ thuy∏t t™p 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 cıa mô hình Event-B ˜Òcb£o £m bi các ch˘ng minh hình th˘c Các công cˆ hÈ trÒ ˜Òc chung cßp cho

∞c t£ và ch˘ng minh Event-B trên n∑n t£ng Rodin Vì vây, s˚ dˆng Event-B làmph˜Ïng pháp hình th˘c ∫ mô hình hóa và ki∫m ch˘ng các hª thËng h˜Óng s¸ kiªn

có rßt nhi∑u ˜u i∫m

Lu™n án ˜a ra mÎt cách ti∏p c™n khác so vÓi các nghiên c˘u hiªn t§i Thay vìphân tích mÎt hª thËng h˜Óng s¸ kiªn tÍng quát, chúng tôi t™p trung vào s˚ dˆngEvent-B ∫ mô hình hóa các hª thËng h˜Óng s¸ kiªn ∞c tr˜ng nh˜ các hª thËngCSDL, các hª thËng c£m ng˙ c£nh Lu™n án ∑ xußt các ph˜Ïng pháp hiªu khôngchø mô hình hóa các hành vi ˜Òc bi∫u diπn b¨ng các lu™t If-Then mà còn hìnhth˘c hóa các tính chßt quan trÂng b¨ng các thành ph¶n Event-B Tính úng ≠ncıa các tính chßt này ˜Òc ch˘ng minh mÎt cách toán hÂc b¨ng viªc ch˘ng minhcác mªnh ∑ c¶n ch˘ng minh ˜Òc sinh ra bi Event-B Công cˆ Rodin ˜Òc s˚dˆng trong hÈ trÒ quá trình mô hình hóa và ch˘ng minh t¸ Îng Lu™n án có mˆctiê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ôngchính xác Lu™n án giÓi thiªu ph˜Ïng pháp mÓi d¸a trên làm m‡n ∫ mô hình hóa

và ki∫m ch˘ng tính chßt an toàn và tính ho§t Îng cıa hª thËng

Các nghiên c˘u óng góp cıa lu™n án bao gÁm

1 Lu™n án ∑ xußt mÎt ph˜Ïng pháp ∫ mô hình hóa và ki∫m ch˘ng các hª thËngCSDL có thành ph¶n trigger s˚ dˆng Event-B Ph˜Ïng pháp này giÓi thiªu cácb˜Óc chi ti∏t ∫ chuy∫n Íi các khái niªm trong CSDL sang các k˛ hiªu Event-B.Quá trình chuy∫n Íi d¸a trên s¸ t˜Ïng t¸ gi˙a cßu trúc cıa triggers và Event-Bevent VÓi ph˜Ïng pháp ∑ xußt, tính chßt b£o toàn các ràng buÎc ˜Òc ki∫mch˘ng và các vòng l∞p vô h§n sinh ra bi các trigger có th∫ ˜Òc phát hiªn b¨ngcác ch˘ng minh hình th˘c Các phát hiªn này s≥ óng góp làm gi£m chi phí pháttri∫n MÎt công cˆ hÈ trÒ chuy∫n Ëi bán t¸ Îng cÙng ˜Òc phát tri∫n

2 Lu™n án ti∏p tˆc nghiên c˘u ˜u i∫m cıa cÏ ch∏ ho§t Îng t˜Ïng t¸ gi˙a cáclu™t ECA và Event-B event ∫ ∑ xußt ph˜Ïng pháp mô hình hóa và ki∫m ch˘ngcác hª thËng c£m ng˙ c£nh Lu™n án phát hiªn ra ˜u i∫m cıa cÏ ch∏ làm m‡ntrong Event-B ∑ làm cho ph˜Ïng pháp ∑ xußt phù hÒp vÓi mô hình hóa t¯ngb˜Óc Các tính chßt quan trÂng nh˜ là b£o toàn ràng buÎc ng˙ c£nh có th∫ ˜Òcki∫m ch˘ng t¸ Îng b¨ng s˚ dˆng công cˆ Rodin

Trang 5

4 Lu™n án k∏ th¯a tính làm m‡n cıa Event-B, d¸a trên ph˜Ïng pháp mô hình hóacác lu™t If-Then mÌ và mÎt sË ph˜Ïng pháp suy diπn ∫ phân tích mÎt sË tínhchßt quan trÂng cıa các yêu c¶u không chính xác nh˜ tính an toàn và tính ho§tÎng.

Lu™n án ˜Òc tÍ ch˘c nh˜ Hình 1.1 Ch˜Ïng 2 cung cßp các ki∏n th˘c n∑n t£ngcho lu™n án Ch˜Ïng 3 giÓi thiªu ph˜Ïng pháp mô hình hóa và ki∫m ch˘ng các hªthËng CSDL Ch˜Ïng 4 t™p trung vào vßn ∑ mô hình hóa và ki∫m ch˘ng các hªthËng c£m ng˙ c£nh Trong Ch˜Ïng 5, lu™n án ∑ xußt mÎt ph˜Ïng pháp mô hìnhhóa cho các hª thËng h˜Óng s¸ kiªn ˜Òc mô t£ bØng các lu™t If-Then mÌ Ch˜Ïng

6 giÓi thiªu ph˜Ïng pháp ki∫m ch˘ng tính chßt an toàn và ho§t Îng cıa các yêuc¶u không chính xác Ch˜Ïng 7 tÍng k∏t lu™n án và ˜a ra h˜Óng phát tri∫n

Ch˜Ïng 2 Ki∏n th˘c cÏ s

Propositional temporal logic (PTL) là s¸ m rÎng cıa logic mªnh ∑ trong ó môt£ mÎt chuÈi các tr§ng thái  nh˙ng kho£ng thÌi gian khác nhau gÂi là thÌi i∫mt˘c thÌi MÎt thành ph¶n cÏ b£n  PTL là mÎt công th˘c logic b™c 1 ˜Òc xâyd¸ng t¯ các nguyên tË v‡ t¯,các phép l˜Òng hóa 9, 8; các toán t˚ ^, _ ,¬; và các

3

Trang 6

toán t˚ thÌi gian ⇤ (“always”),⌃ (“eventually”), và (“next”), U (“until") Cú phápcıa mÎt công th˘c PTL ˜Òc mô t£ nh˜ trong B£ng 2.1

B£ng 2.1: Cú pháp cıa công th˘c PTL

hformulai ::= htermi {_ htermi}

htermi > ::= hfactori {^ hfactori}

hfactori > ::= hprimaryi {U hprimaryi}

hprimaryi > ::= hatomc propositioni >

mÌ F ˜Òc ‡nh nghæa trên mÎt t™p X là mÎt t™p, mà mÈi ph¶n t˚ là mÎt c∞p:

Các ph˜Ïng phác hình th˘c ˜Òc s˚ dˆng ∫ ∞c t£ và ki∫m ch˘ng các hª thËngmÎt cách toán hÂc MÎt ph˜Ïng pháp là hình th˘c n∏u nó ˜Òc có inh nghæa cÏs d˜Ói d§ng toán hÂc th˜Ìng ˜Òc ˜a ra bi mÎt ngôn ng˙ hình th˘c [13] Cácph˜Ïng pháp ki∫m ch˘ng hình th˘c tr nên phÍ bi∏n trong công nghiªp và ngàycàng có các yêu c¶u ˘ng dˆng chúng Có hai cách ti∏p c™n phÍ bi∏n trong ki∫m

Trang 7

Ch˜Ïng 2 Ki∏n th˘c cÏ s

ch˘ng là ki∫m ch˘ng mô hình và ch˘ng minh ‡nh l˛ Lu™n án này s˚ dˆng ph˜Ïngpháp Event-B ∫ mô hình hóa và ki∫m ch˘ng các s¸ kiªn, vì v™y trong ph¶n nàytr˜Óc khi trình bày v∑ Event-B chúng tôi s≥ giÓi thiªu mÎt sË ph˜Ïng pháp liênquan nh˜ VDM [8], Z [12], B [2]

VDM là vi∏t t≠t cıa “The Vienna Development Method" bao gÁm mÎt nhóm các

kˇ thu™t cho ∞c t£ hình th˘c và phát tri∫n cıa các hª tính toán VDM là mÎtph˜Ïng pháp d¸a trên mô hình mô t£ các hª thËng ph¶n m∑m thành các mô hình[8] Các mô hình này ˜Òc ∞c t£ nh˜ các Ëi t˜Òng và các hành Îng trên các Ëit˜Òng trong ó các Ëi t˜Òng bi∫u diπn các tr§ng thái input, output và bên trongcıa hª thËng VDM có ngôn ng˙ ∞c t£ VDM-SL bao gÁm mô hình toán hÂc ˜Òcxây d¸ng t¯ các d˙ liªu cÏ b£n nh˜ t™p hÒp, danh sách và ánh x§ cùng vÓi cáchành Îng thay Íi tr§ng thái cıa mô hình VDM-SL có ‡nh nghæa hình th˘c d¸atrên Logic of Partial Functions (LPF)

2.4.2 Ph˜Ïng pháp Z

∞c t£ Z d¸a trên l˛ thuy∏t t™p hÒp và tính toán v‡ t¯ b™c 1 MÈi Ëi t˜Òng cómÎt ki∫u riêng, ˜Òc bi∫u diπn bi mÎt t™p c¸c §i trong ∞c t£ hiªn t§i MÎt khíac§nh cıa Z là s˚ dˆng ngôn ng˙ t¸ nhiên Z s˚ dˆng toán hÂc ∫ ˜a ra vßn ∑,tìm ra các gi£i pháp và ch˘ng minh thi∏t k∏ l¸a chÂn phù hÒp vÓi ∞c t£ Z cungcßp cÏ ch∏ làm m‡n ∫ xây d¸ng hª thËng d¶n d¶n MÎt tài liªu ∞c t£ Z bao gÁmcác o§n hình th˘c và phi hình th˘c [12]

2.4.3 Ph˜Ïng pháp B

B là mÎt ph˜Ïng pháp ∞c t£, thi∏t k∏ và vi∏t mã cho các hª thËng ph¶n m∑m fit˜ng chính cıa B là b≠t ¶u b¨ng mÎt mô hình rßt tr¯u t˜Òng, sau ó thêm d¶ncác chi ti∏t vào các mô hình cˆ th∫ ti∏p theo [2] B ˜a ra các khái niªm v∑ máytr¯u t˜Òng óng gói các thành ph¶n toán hÂc, h¨ng, t™p hÒp, bi∏n và mÎt t™p hÒpcác hành Îng trên các bi∏n này Các thành ph¶n này ˜Òc ch˘a trong các môdun

có tên ∫ có th∫ ˜Òc s˚ dˆng  các môdun khác

Event-B [3] là mÎt ph˜Ïng pháp hình th˘c mô hình hóa và phân tích m˘c mô hình

∞c tính chı chËt cıa Event-B là s˚ dˆng l˛ thuy∏t tâp hÒp làm k˛ hiªu mô t£, s˚dˆng cÏ ch∏ làm m‡n ∫ bi∫u diπn các hª thËng  các m˘c tr¯u t˜Òng khác nhau vàs˚ dˆng các ch˘ng minh toán hÂc ∫ ki∫m ch˘ng s¸ Áng nhßt gi˙a các m˘c làmm‡n MÎt cßu trúc mô hình Event-B cÏ b£n bao gÁm 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£thuy∏t MÎt ng˙ c£nh có th∫ bao gÁm các t™p hÒp, h¨ng và các gi£ thi∏t T™p mang

s ˜Òc bi∫u diπn bi tên và khác rÈng Các t™p mang có tên khác thì hoàn toàn Îcl™p nhau H¨ng c ˜Òc xác ‡nh bi các gi£ thi∏t P (s, c), các gi£ thi∏t này cÙngphˆ thuÎc vào t™p mang s

Máy Event-B ˜Òc xác ‡nh b¨ng mÎt t™p các mªnh ∑ bao gÁm các bi∏n, bßt bi∏n,

‡nh l˛ và s¸ kiªn Bi∏n v biπu diπn tr§ng thái cıa mô hình Bßt bi∏n I (v ) sinh ra

Trang 8

các lu™t ∑ £m b£o các bi∏n v luôn th‰a mãn Các lu™t này ˜Òc hình th˘c hóab¨ng các v‡ t¯ bi∫u diπn bi tính toán v‡ t¯ b™c mÎt ˜Òc m rÎng bi Equality bil˛ thuy∏t t™p hÒp MÈi s¸ kiªn có dang evt = any x where G(x , v ) then A(x , v , v0)end trong ó x là các bi∏n cˆc bÎ cıa s¸ kiªn, G(x , v ) là i∑u kiªn x£y ra s¸ kiµn

và A(x , v , v0) là hành Îng cıa s¸ kiªn MÎt s¸ kiªn ˜Òc kích ho§t n∏u i∑u kiªncıa nó tho£ mãn MÎt hành Îng cıa s¸ kiªn có th∫ có nhi∑u phép gán MÈi phépgán có th∫ là (1) phép gán Ïn ‡nh (x := E (t, v )), (2) phép gán rÈng (skip), ho∞c(3) phép gán không Ïn ‡nh (x :| P(t, v, x0)) ∫ gi£i quy∏t s¸ ph˘c t§p khi môhình hóa hª thËng, Event-B cung cßp cÏ ch∏ làm m‡n cho phép xây d¸ng hª thËngt¯ng b˜Óc b¨ng viªc thêm vào các chi ti∏t ∫ §t ˜Òc mô hình chính xác hÏn MÎtmáy làm m‡n th˜Ìng có nhi∑u bi∏n hÏn máy tr¯u t˜Òng vì ta có nhi∑u bi∏n biπudiπn mô hình chi ti∏t hÏn Trong làm m‡n chÁng, các bi∏n tr¯u t˜Òng v®n tÁn t§itrong máy làm m‡n, trong làm m‡n theo chi∑u dÂc các bi∏n tr¯u t˜Òng ˜Òc thayth∏ bi các bi∏n cˆ th∫ K∏t nËi gi˙a bi∏n tr¯u t˜Òng v và bi∏n cˆ th∫ w ˜Òc bi∫udiπn b¨ng các bßt bi∏n J (v , w ) ∫ ki∫m tra xem mÎt máy Event-B có th‰a mãnmÎt t™p các tính chßt không, Event-B ‡nh nghæa ra các mªnh ∑ c¶n ch˘ng minh.MÎt vài mªnh ∑ c¶n ch˘ng minh liên quan ∏n lu™n án là invariant preservation(INV), convergence (VAR), deadlock-freeness (DLF)

Lu™n án s˚ dˆng công cˆ Rodin phiên b£n 2.8 [1] là môi tr˜Ìng Eclipse ∫ mô hìnhhóa và ch˘ng minh trong Event-B Nó ˜Òc xây d¸ng trên n∑n t£ng cıa Eclipsebao gÁm các công cˆ hÈ trÒ mô hình hóa plug-ins Rodin có giao diªn phong phúbao gÁm các c˚a sÍ nh˜ proving, Event-B editor

• C˚a sÍ Proving: Cung cßp tßt c£ các mªnh ∑ ˜Òc sinh ra mÎt cách t¸ Îng chocác máy Event-B Các mênh ∑ này ˜Òc ch˘ng minh t¸ Îng ho∞c t˜Ïng tácthông qua các c˚a sÍ mªnh ∑ và mˆc tiêu

• C˚a sÍ Event-B: Bao gÁm các giao diªn cho phép chønh s˚a các máy và ng˙ c£nh.N∏u ng˜Ìi s˚ dˆng mã hóa không chính xác, c˚a sÍ problem s≥ hiªn th‡ thôngbáo lÈi

Có nhi∑u lo§i hª thËng h˜Óng s¸ kiªn nh˜ giao diªn cıa ph¶n m∑m, các hª thËngsinh lu™t ˜Òc s˚ dˆng trong trí tuª nhân t§o khi i∑u kiªn úng thì th¸c thi mÎthành Îng, hay trong các Ëi t˜Òng ho§t ông khi thay Íi giá tr‡ hay thuÎc tínhcıa Ëi t˜Òng [11] Trong lu™n án này, chúng tôi xét ∏n hai ˘ng dˆng ó là các

hª thËng CSDL và c£m ng˙ c£nh C£ hai hª thËng này ∑u s˚ dˆng các lu™t d§ngECA ∫ bi∫u diπn các hành 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ª gi˙a các Ëi t˜Òng và cácquan hª, hành Îng cho thao tác d˙ liªu và toàntoàn vµn d˙ liªu Các hª thËngCSDL quan hª hiªn §i s˚ dˆng các lu™t ho§t Îng nh˜ trigger CSDL áp ˘ngl§i các s¸ kiªn x£y ra bên trong và bên ngoài cıa 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

Trang 9

liên quan ∏n viªc thao tác d˙ trong CSDL Trigger th˜Ìng ˜Òc s˚ dˆng trongcác tr˜Ìng hÒp: ki∫m soát ti∏n trình, t¸ Îng th¸c thi các hành Îng ho∞c cáclu™t nghiªp vˆ ph˘c t§p Cßu trúc cıa mÎt trigger có d§ng ECA : rule name::Event(e) IF condition DO action Trigger CSDL ph¶n lÓn có th∫ chia thành hailo§i: Data Manipulation Language(DML) vàvà 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íchho§t khi có các s¸ kiªn DDL x£y ra nh˜ t§o b£ng ho∞c login, commit, roll-back 2.7.2 Các hª thËng c£m ng˙ c£nh

Thu™t 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 cıa các Ëi t˜Òng và s¸ thay Íi cıacác Ëi t˜Òng này sau ó làm cho ch˜Ïng trình thích nghi vÓi ng˙ c£nh Có nhi∑unghiên c˘u ã t™p trung vào ‡nh nghæa các thu™t ng˙ c£m ngh˙ c£nh Lu™n ánt™p trung vào các hª thËng c£m ng˙ c£nh s˚ dˆng d˙ liªu ng˙ c£nh mÎt cách tr¸cti∏p t¯ các c£m bi∏n v™t l˛ Hª thËng có th∫ c£m nh™n ˜Òc nhi∑u lo§i ng˙ c£nhtrong môi tr˜Ìng nó ho§t Îng nh˜ v‡ trí, Î t´ng tËc, nhiªt Î, Î £m, thÌi thi∏t

Và viªc x˚ l˛ cıa hª thËng này là phˆ thuÎc vào ng˙ng˙ c£nh t˘c là ph£n ˘ng vÓicác thay Íi cıa ng˙ c£nh

Ch˜Ïng 3 Mô hình hóa và ki∫m ch˘ng các hª thËng CSDL

∫ mô hình hóa và ki∫m ch˘ng hª thËng CSDL có trigger s˚ dˆng Event-B  giaio§n thi∏t k∏ fi t˜ng chính cıa ph˜Ïng pháp xußt phát t¯ s¸ t˜Ïng Áng vè cÏch∏ ho§t Îng cıa trigger và s¸ kiªn Event-B ¶u tiên, chúng tôi ∑ xußt mÎt t™plu™t ∫ chuy∫n Íi mÎt hª thËng CSDL có trigger sang mô hình Event-B, sau óki∫m tra mÎt cách hình th˘c liªu hª thËng có th‰a mãn ràng buÎc d˙ liªu và pháthiªn các vòng l∞p vô h§n b¨ng viªc ch˘ng minh các mênh ∑ c¶n ch˘ng minh cıamáy Event-B ◊u i∫m cıa ph˜Ïng pháp là hª thËng CSDL có th∫ chuy∫n Ëi sang

mô hình Event-B mÎt cách tr¸c ti∏p Các tính chßt quan trÂng ˜Òc ch˘ng minhmÎt cách toán hÂc thông qua ch˘ng minh mªnh ∑ c¶n ch˘ng minh vì v™y tínhúng ≠n cıa các tính chßt này ˜Òc £m b£o Ph˜Ïng pháp này có giá tr‡ vì nó

£m b£o ˜Òc hª thËng tránh ˜Òc mÎt sË lÈi nghiêm trÂng  thÌi i∫m thi∏t k∏.Ngoài ra, vÓi công cˆ hÈ trÒ Rodin thì các vßn ∑ s≥ ˜Òc ch˘ng minh t¸ Îng, nós≥ làm gi£m bÓt Î ph˘c t§p so vÓi ch˘ng minh thı công Ph˜Ïng pháp này cÙng

có th∫ dπ dàng áp dˆng ∫ th¸c thi mÎt công cˆ hÈ trÒ mô hình hóa bán t¸ Îng

7

Trang 10

mÎt CSDL sang Event-B i∑u này cÙng kh≠c phˆc nh˜Òc i∫m v∑ Î ph˘c t§pkhi 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ˆngtrong phát tri∫n ph¶n m∑m.

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 ri = hf i1 , , fini t 2 T Rule 4 Primary key constraint f : TYPE1 7 7! TRule 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∑ukiª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 thicıa trigger ˜Òc chuy∫n Íi thành ph¶n thân cıa s¸ kiªn Event-B Ta xét tr˜ÌnghÒ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

VALUES (value1, ,valuen) THEN T := T [ r

END

ANY v DELETE FROM T WHEN (v 2 TYPE 1 ^ e ^ c) WHERE hcolumn1 = some valuei THEN t := t f (v )

END

ANY v 1, v 2 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

Trang 11

Ch˜Ïng 3 Mô hình hóa và ki∫m ch˘ng các hª thËng CSDL

• Vòng l∞p 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 l∞p vô h§n Tình tr§ng này có th∫ x£y ra khi sau mÎt chuÈi các s¸kiªn thì tr§ng thái cıa hª thËng không thay Íi Có hai cách ∫ phát hiªn tínhchßt này sau khi mô hình hóa b¨ng ph˜Ïng pháp ã ∑ xußt Các th˘ nhßt, tach˘ng minh mªnh ∑ c¶n ch˘ng minh deadlock-freeness (DLKF), mênh ∑ này

là hÒp cıa các i∑u kiªn cıa các s¸ kiªn Event-B, bi∫u diπn mÎt cách hình th˘c:

I (v ), P (c) ` G1(v ) _ _ Gn(v ), trongtrong ó v là bi∏n, I (v ) là bßt bi∏n, Gi(v )làlà i∑u kiªn cıa s¸ kiªn Trong mÎt sËt r˜Ìng hÒp, mªnh ∑ DLKF không suydiπn ˜Òc t¯ t™p các bßt bi∏n I (v ) và h¨ng ràng buÎc, ta s≥ ch˘ng minh t§i mÎtthÌi i∫m luôn có 1 s¸ kiªn ˜Òc kích ho§t b¨ng ch˘ng minh hÎi cıa các i∑ukiªn luôn úng tr˜Óc và sau khi th¸c thi event, t˘c là ch˜ngs minh mªnh ∑ c¶nch˘ng minh INV (bao gÁm c£ s¸ kiên INITIALISATION )

• B£o toàn ràng buÎc: VÓi ph˜Ïng pháp chuy∫n Íi ∑ xußt, mÎt trigger không viph§m các luât này n∏u I (v ), G(w , v ), S (w , v , v0) ` I (v0) ây cÙng chính là mªnh

∑ c¶n ch˘ng minh INV cıa máy Event-B

3.3.1 Mô t£

Trong mÎt hª thËng CSDL cho ˘ng dˆng qu£n l˛ nhân s¸ có hai b£ng EMPLOYEES(gÁm hai tr˜Ìng id và level) vàvà b£ng BONUS (gÁm hai tr˜Ìng id và amount).Ÿng dˆng có yêu c¶u ràng buÎc v∑ d˙ liªu nh˜ sau.: Tr˜Ìng amount cıa BONUS

>=10 n∏u level cıa nhân viên >5 Hª CSDL này ˜Òc thi∏t k∏t hai triggers th¸chiªn nhiªm vˆ sau:

Trigger 1 N∏u b£ng nhân viên  employee ˜Òc c™p nhât thì bonus t´ng lên 10 Trigger 2 N∏u tr˜Ìng amount cıa nhân viên  BONUS ˜Òc t´ng >=10 thì levelcıa nhân viên t´ng lên 1

3.3.2 Mô hình hóa

MÎt ph¶n ∞c t£ Event-B cıa ví dˆ ˜Òc th∫ hiªn  Hình 3.1, Hình 3.2 và Hình 3.3

CONTEXT TRIGGER C SETS

TYPES TABLE NAMES

CONSTANTS

TBL EMPL TBL BONUS

Trang 12

MACHINE TRIGGER M

SEES TRIGGER C

VARIABLES

bonus empl

f bonus

f empl type

INVARIANTS

inv1 : bonus 2 P (TBL BONUS) inv2 : empl 2 P (TBL EMPL) inv3 : type 2 TYPES inv4 : f bonus 2 N 7 7! N inv5 : f empl 2 N 7 7! 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 trigger 1 ˜Òc mô t£ nh˜ B£ng 3.4 Hais¸ kiªn Trigger 1 và Trigger 2 cıa máy DB M sinh ra các mªnh ∑ c¶n ch˘ngminh t˜Ïng ˘ng là trigger1/SYS CTR/INV, trigger2/SYS CTR/INV

Trang 13

B£ng 3.4: INV PO of event trigger 1.

8 nid.nid 2 dom(empl rec) ^ pk empl(nid) > 5 ) pk bonus(nid) > 10

emplid 2 dom(empl rec)

8 nid.nid 2 dom(empl rec) ^ pk empl(nid) > 5

) (pk bonus {emplid 7! pk bonus(emplid) + 10})(nid) > 10

• Vòng l∞p vô h§n: – mˆc 3.2.3, bßt bi∏n INF LOOP là mªnh ∑ tuy∫n cıa cáci∑u kiªn cıa s¸ kiªn ˜Òc s˚ dˆng ∫ phát hiªn vòng l∞p vô h§n N∏u bßt bi∏nnày b£o toàn vÓi hai s¸ kiªn thì th¸c thi cıa hai triggers s≥ d®n ∏n vòng l∞p vôh§n Mªnh ∑ c¶n ch˘ng minh cıa tính chßt này ˜Òc th∫ hiªn  B£ng 3.5

B£ng 3.5: Mªnh ∑ c¶n ch˘ng minh INV cıa 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

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)

T¯ ph˜Ïng pháp ∑ xußt  Mˆc 3.2, chúng tôi ã cài ∞c mÎt công cˆ Trigger2B

∫ hÈ trÒ mô hình hóa và ki∫m ch˘ng mÎt hª thËng CSDL có trigger Công cˆ này

có th∫ sinh ra các file d˜Ói ‡nh d§ng XML ∫ có th∫ s˚ dˆng làm ¶u vào cho cáccông cˆ hÈ trÒ khác cıa Event-B nh˜ Rodin Ki∏n trúc cıa công cˆ ˜Òc mô t£nh˜ Hình 3.4

Hình 3.4: Architecture of Trigger2B tool

Ch˜Ïng 4 Mô hình hóa và ki∫m ch˘ng các hª thËng c£m ng˙

c£nh

C£m ng˙ canh cıa mÎt ˘ng dˆng liên quan tÓi kh£ n´ng áp ˘ng, ph£n hÁi và

Î nh§y c£m cıa ˘ng dˆng vÓi các thay Íi cıa 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ó nh™n các s¸ kiªn g˚i khi có s¸ thay Íi v∑ ng˙ c£nh và ph£n hÁi l§i các s¸

11

Ngày đăng: 25/11/2014, 10:35

HÌNH ẢNH LIÊN QUAN

Hỡnh 1.1: Còu trỳc lu™n ỏn - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
nh 1.1: Còu trỳc lu™n ỏn (Trang 5)
BÊng 3.2: Hỡnh th˘c húa mẻt trigger - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
ng 3.2: Hỡnh th˘c húa mẻt trigger (Trang 10)
Mẻt phản ∞c tÊ Event-B cıa vớ dˆ ˜ềc th∫ hiên  Hỡnh 3.1, Hỡnh 3.2 và Hỡnh 3.3. - 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 phản ∞c tÊ Event-B cıa vớ dˆ ˜ềc th∫ hiên  Hỡnh 3.1, Hỡnh 3.2 và Hỡnh 3.3 (Trang 11)
Hình 3.3: Mã hóa trigger - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
Hình 3.3 Mã hóa trigger (Trang 12)
Hình 3.2: Máy Event-B - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
Hình 3.2 Máy Event-B (Trang 12)
Hình 3.4: Architecture of Trigger2B tool - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
Hình 3.4 Architecture of Trigger2B tool (Trang 13)
Hình 4.1: Mô hình hóa ti∏n hóa s˚ dˆng làm m‡n - Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện
Hình 4.1 Mô hình hóa ti∏n hóa s˚ dˆng làm m‡n (Trang 15)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w