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 485 0
Phương pháp mô hình hóa và kiểm chứng các hệ thống hướng sự kiện

Đ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

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ô

Đ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 kim chng cỏc thậng hểng sá kiên Túm tt lu™n án ti∏n sˇ ngành cơng nghª thơng tin Chun ngnh: Cụng nghê phản mm Mó sậ: 62.48.10.01 H Nẻi, 2014 Cụng trỡnh ềc hon thnh tĐi Khoa Cụng nghê thụng tin, Trèng 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 hiu lun ỏn tĐi - Th viên Qc gia Viªt Nam - Trung tâm thơng tin th˜ viờn , Đi hc Quậc gia H Nẻi Đi hc Cụng nghê, Đi hc Chẽng Tng quan v lun án 1.1 L˛ l¸a chÂn ∑ tài Mơ hình húa l mẻt cỏc cỏch thc hiêu quÊ quÊn l ẻ phc tĐp phỏt trin phản mm, cho phép thi∏t k∏ ánh giá yêu cảu ca thậng Mụ hỡnh húa khụng 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˚ dˆng phát tri∫n ph¶n mm thụng thèng kim tra liêu mẻt phản mm thác thi cú tha yờu cảu ca ngèi dựng Tuy nhiờn, kim th l cỏch xỏc thác khụng ảy ı chø có th∫ phát hiªn ˜Ịc lÈi mỴt vài tr˜Ìng hỊp nh˙ng khơng £m b£o ˜Ịc thậng chĐy ỳng mi trèng hềp Kim chng phản mm l mẻt nhng phẽng phỏp mĐnh hiêu qu£ ∫ tìm lÈi ho∞c ch˘ng minh khơng có lÈi mỴt cách tốn hÂc MỴt vài kˇ thu™t ã ềc xuòt cho kim chng phản mm nh kim ch˘ng mơ hình, ch˘ng minh ‡nh l˛, phân tích ch˜Ïng trình Trong kˇ thu™t này, ch˘ng minh ‡nh l˛ có ˜u i∫m có kh£ n´ng ki∫m ch˘ng ch˜Ïng trình có kích cƠ lĨn suy diπn qui n§p Tuy nhiên, ch˘ng minh ‡nh l˛ th˜Ìng sinh nhi∑u ch˘ng minh ph˘c t§p khó hi∫u 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 thậng phản mm mẻt cỏch hiêu quÊ Mẻt dĐng kin trúc ho∞c ki∫u thi∏t k∏ th˜Ìng có ph˜Ïng pháp mơ hình hóa ki∫m ch˘ng phù hỊp khác Kin trỳc hểng sá kiên l mẻt nhng kin trỳc ph bin phỏt trin phản mm 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 có th∫ sinh sá kiên, sau ú 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 hàn vỡ nú cho phép phát tri∫n mơ hình hª thËng ràng bc lỊi ích cıa ã ˜Ịc cơng nh™n rỴng rãi khoa hÂc ˘ng dˆng Cú nhiu loĐi thậng hểng sá kiên bao gm 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, hª thËng sinh lu™t s˚ dˆng trớ tuê nhõn tĐo xÊy mẻt iu kiên no ú, hay cỏc ậi tềng hoĐt ẻng 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 ti∏p c™p ∫ ∞c t£ quan hª cỏc sá kiên xÊy mẻt iu kiên nh tr˜Ĩc Lu™t ECA có d§ng: On Event IF conditions DO actions cú nghổa l sá kiên Event xÊy mẻt iu kiên conditions thỡ thác thi actions Ta cÙng có th∫ bi∫u diπn lu™t mỴt cách khụng hỡnh thc băng cỏc lut if-then, nghổa l if Events xÊy iu kiên condition, then thác thi action Các ˜u i∫m cıa ph˜Ïng pháp ã ˜Òc ˘ng dˆng tích hỊp nhi∑u lỉnh v¸c khác nh˜ hª thËng CSDL, ˘ng dˆng c£m ng˙ c£nh ã có nhi∑u nghiên c˘u v∑ phân tích thậng hểng sá kiên cng nh l hỡnh thc hóa lu™t ECA Tuy nhiên, ph˜Ïng pháp mơ hỡnh húa v kim chng cỏc 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 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 m∑m chı y∏u tâp trung vào phân tích mơ TÍng quan v∑ lu™n án t£ xác v∑ ch˘c n´ng hành vi cıa hª thËng Chính nh˙ng l˛ trên, ph˜Ïng pháp mơ hình hóa ki∫m ch˘ng phù hỊp cho hª thËng c¶n thi∏t N∏u ta có th∫ ki∫m chng cỏc tớnh chòt quan trng ca thậng sểm s≥ ti∏t kiªm ˜Ịc chi phí phát tri∫n Các ph˜Ïng pháp th∏ n∏u gi£m ˜Ịc Ỵ ph˘c t§p ch˘ng minh s≥ có kh£ n´ng á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 l˛ thuy∏t t™p hỊp phù hỊp cho mơ hình hóa hª thËng lĨn ph£n ˘ng Tính nhßt qn cıa mơ hình Event-B ˜Ịc b£o £m bi ch˘ng minh hình th˘c Các cơng cˆ hÈ trỊ ˜Ịc chung cßp cho ∞c t£ ch˘ng minh Event-B n∑n t£ng Rodin Vì vây, s˚ dˆng Event-B làm ph˜Ïng pháp hình th˘c ∫ mơ hình hóa ki∫m chng cỏc thậng hểng sá kiên cú ròt nhiu ˜u i∫m 1.2 Mˆc tiêu Lu™n án ˜a mỴt cách ti∏p c™n khác so vĨi nghiên c˘u hiªn tĐi Thay vỡ phõn tớch mẻt thậng hểng sá kiªn tÍng qt, chúng tơi t™p trung vào s˚ dˆng Event-B mụ hỡnh húa cỏc thậng hểng sá kiªn ∞c tr˜ng nh˜ hª thËng CSDL, hª thËng c£m ng˙ c£nh Lu™n án ∑ xußt ph˜Ïng pháp hiªu khơng chø mơ hình hóa hành 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 bi Event-B Cơng cˆ Rodin ˜Ịc s˚ dˆng hÈ trỊ q trình mơ hình hóa ch˘ng minh t¸ Ỵng Lu™n án có mˆc tiêu phân tích 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 làm m‡n ∫ mơ hình hóa kim chng tớnh chòt an ton v tớnh hoĐt ẻng cıa hª thËng 1.3 óng góp mĨi cıa lu™n án Các nghiên c˘u óng góp cıa lu™n án bao gÁm Lun ỏn xuòt mẻt phẽng phỏp mụ hình hóa ki∫m ch˘ng hª thËng CSDL có thành ph¶n trigger s˚ dˆng Event-B Ph˜Ïng pháp giĨi thiªu b˜Ĩc chi ti∏t ∫ chuy∫n Íi khái niªm CSDL sang k˛ hiªu Event-B Q trình chuyn i dáa trờn sá tẽng tá gia còu trỳc cıa triggers Event-B event VĨi ph˜Ïng pháp ∑ xt, tớnh chòt bÊo ton cỏc rng buẻc ềc kim chng vịng l∞p vơ h§n sinh bi trigger cú th ềc phỏt hiên băng cỏc chng minh hình th˘c Các phát hiªn s≥ óng góp làm gi£m chi phí phát tri∫n MỴt cơng cˆ hÈ trỊ chuyn ậi bỏn tá ẻng cng ềc phỏt trin Lu™n án ti∏p tˆc nghiên c˘u ˜u i∫m cıa cÏ ch hoĐt ẻng tẽng tá gia cỏc lut ECA v Event-B event ∫ ∑ xt ph˜Ïng pháp mơ hình hóa ki∫m ch˘ng hª thËng c£m ng˙ c£nh Lu™n án phát hiªn ˜u i∫m cıa cÏ ch∏ làm m‡n Event-B ∑ làm cho ph˜Ïng pháp ∑ xußt phù hỊp vĨi mơ hình hóa t¯ng 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 dˆng cơng cˆ Rodin Hình 1.1: Cßu trúc lu™n ỏn Lun ỏn x l trèng hềp mẻt thậng ềc mụ tÊ băng cỏc yờu cảu khụng chớnh xác Các hành vi cıa hª thËng ˜Ịc bi∫u 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 t™p hỊp ˜a mỴt t™p lu™t ∫ chuy∫n Íi lu™t If-Then mÌ thành ph¶n t˚ Event-B Chỳng tụi cng a mẻt khỏi niêm m rỴng lu™t If-Then mÌ thÌi gian ∫ mơ hình hóa hª thËng ˜Ịc ‡nh thÌi Lu™n án k∏ th¯a tính làm m‡n cıa Event-B, d¸a ph˜Ïng pháp mơ hình hóa lu™t If-Then mÌ mỴt sË ph˜Ïng pháp suy diπn ∫ 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 lu™n án Lu™n án ˜Ịc tÍ ch˘c nh˜ Hình 1.1 Ch˜Ïng cung cßp ki∏n th˘c n∑n t£ng cho lu™n án Ch˜Ïng giĨi thiªu ph˜Ïng pháp mơ hình hóa ki∫m ch˘ng hª thËng CSDL Ch˜Ïng t™p trung vào vßn ∑ mơ hình hóa ki∫m ch˘ng hª thËng c£m ng˙ c£nh Trong Ch˜Ïng 5, lun ỏn xuòt mẻt phẽng phỏp mụ hỡnh húa cho cỏc thậng hểng sá kiên ềc mụ t£ bØng lu™t If-Then mÌ Ch˜Ïng giĨi thiªu phẽng phỏp kim chng tớnh chòt an ton v hoĐt Ỵng cıa u c¶u khơng xác Ch˜Ïng tÍng k∏t lu™n án ˜a h˜Ĩng phát tri∫n Ch˜Ïng Ki∏n th˘c cÏ s 2.1 Temporal logic Propositional temporal logic (PTL) l sá m rẻng ca logic mênh ú mụ tÊ mẻt chuẩi cỏc trĐng thỏi  nh˙ng kho£ng thÌi gian khác gÂi thÌi im tc thèi Mẻt thnh phản cẽ bÊn PTL l mẻt cụng thc logic bc ềc xõy dáng t¯ ngun tË v‡ t¯,các phép l˜Ịng hóa 9, 8; tốn t˚ ^, _ ,¬; tốn t˚ thÌi gian ⇤ (“always”),⌃ (“eventually”), (“next”), U (“until") Cú pháp cıa mỴt cơng th˘c PTL ˜Ịc mô t£ nh˜ B£ng 2.1 B£ng 2.1: Cú pháp cıa công th˘c PTL hformulai htermi > hfactor i > hprimaryi > ::= htermi {_ htermi} ::= hfactor i {^ hfactor i} ::= hprimaryi {U hprimaryi} ::= hatomc propositioni > | ¬ hprimaryi > | hprimaryi > | ⌃ hprimaryi > | ⇤ hprimaryi > 2.2 L˛ thuy∏t t™p hÒp T™p hÒp Ëi t˜Òng cÏ b£n ˜Òc s˚ dˆng ∫ ‡nh nghỉa khái niªm khác tốn hÂc Ngơn ng˙ cıa l˛ thuy∏t t™p hỊp d¸a quan hª cÏ b£n gÂi thành viên A mỴt thành viên cıa B (A B ), cú nghổa l B cha A nh mẻt phản t cıa [14] Có nhi∑u ‡nh nghỉa cÏ b£n khác cıa l˛ thuy∏t t™p hÒp nh˜ t™p mÙ, quan hª, hàm, bi∫u diπn lamda, vv 2.3 T™p mÌ lu™t If-Then mÌ Trong phát tri∫n ˘ng dˆng th¸c t, cỏc thậng thèng khụng ềc mụ tÊ mẻt cách xác Các stakeholders th˜Ìng s˚ dˆng thu™t ng˙ mÌ nh˜ “rßt tËt", “nóng", ∫ x˚ l˛ thụgns ềc khú ềc biu din băng cỏc mụ tÊ chớnh xỏc Zadeh [16] ó giểi thiêu mẻt khung làm viªc logic khơng ph£i logic hai giá tr‡ truy∑n thËng mà a giá tr‡ hay ˜Òc biên d‡ch bi t™p mÌ MỴt t™p mÌ F ˜Ịc ‡nh nghỉa mỴt t™p X mỴt t™p, mà mẩi phản t l mẻt cp: A = {(x , ) µA (x )}, x X (2.1) ó µA (x ) : X ! [0, 1] ˜Òc ‡nh nghổa nh mẻt hm thuẻc ca mẻt phản t x A MỴt fuzzy hedge mỴt tốn t˚ bi∏n Íi t™p mÌ F (x ) sang t™p mÌ F (hx ) Các hedges hàm sinh mỴt t™p lĨn hÏn giá tr‡ cho bi∏n Ví dˆ, s˚ dˆng hedge very vÓi not t¯ tall có th∫ sinh very tall or not very tall Các lu™t If-Then mÌ ˜Ịc vi∏t d˜Ĩi d§ng Ïn gi£n: “If a is A then b is B ", óng mỴt vai trị quan trÂng l˛ thuy∏t t™p mÌ Nó cách ti∏p c™n ∫ phân tích u cảu khụng chớnh xỏc ca thậng Ta thèng s dˆng lu™t ∫ mô t£ hành vi cıa cỏc thậng vểi yờu cảu khụng chớnh xỏc 2.4 Các ph˜Ïng pháp hình th˘c Các ph˜Ïng phác hình th˘c ˜Òc s˚ dˆng ∫ ∞c t£ ki∫m ch˘ng thậng mẻt cỏch toỏn hc Mẻt phẽng phỏp l hình th˘c n∏u ˜Ịc có inh nghỉa cÏ s dểi dĐng toỏn hc thèng ềc a bi mẻt ngơn ng˙ hình th˘c [13] Các ph˜Ïng pháp ki∫m ch˘ng hình th˘c tr nên phÍ bi∏n cơng nghiªp ngày có u c¶u ˘ng dˆng chúng Có hai cách ti∏p c™n phÍ bi∏n ki∫m Ch˜Ïng Ki∏n th˘c cÏ s ch˘ng ki∫m ch˘ng mơ hình ch˘ng minh ‡nh l˛ Lu™n án s˚ dˆng ph˜Ïng pháp Event-B ∫ mơ hình hóa ki∫m ch˘ng cỏc sá kiên, vỡ vy phản ny trểc 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 vi∏t t≠t cıa “The Vienna Development Method" bao gÁm mỴt nhóm kˇ thu™t cho ∞c t£ hình th˘c phát tri∫n cıa tớnh toỏn VDM l mẻt phẽng phỏp dáa trờn mụ hỡnh mụ tÊ cỏc thậng phản mm thnh mơ hình [8] Các mơ hình ˜Ịc ∞c t£ nh˜ Ëi t˜Ịng hành Ỵng Ëi t˜Ịng ó Ëi t˜Ịng bi∫u diπn cỏc trĐng thỏi input, output v bờn ca thËng VDM có ngơn ng˙ ∞c t£ VDM-SL bao gÁm mơ hình tốn hÂc ˜Ịc xây d¸ng t¯ d˙ liªu cÏ b£n nh˜ t™p hỊp, danh sách ánh xĐ cựng vểi cỏc hnh ẻng thay i trĐng thỏi cıa mơ hình VDM-SL có ‡nh nghỉa hình th˘c d¸a Logic of Partial Functions (LPF) 2.4.2 Ph˜Ïng pháp Z ∞c t£ Z d¸a l˛ thuy∏t t™p hỊp tính tốn v‡ t¯ b™c MÈi Ëi t˜Ịng có mẻt kiu riờng, ềc biu din bi mẻt Đi c tÊ hiên tĐi Mẻt khớa cĐnh ca Z s˚ dˆng ngơn ng˙ t¸ nhiên Z s˚ dˆng tốn hÂc ∫ ˜a vßn ∑, tìm gi£i pháp ch˘ng minh thi∏t k∏ l¸a chÂn phù hỊp vĨi ∞c t£ Z cung cßp cÏ ch∏ lm mn xõy dáng thậng dản dản Mẻt ti liêu c tÊ Z bao gm cỏc oĐn hỡnh th˘c phi hình th˘c [12] 2.4.3 Ph˜Ïng pháp B B mỴt ph˜Ïng pháp ∞c t£, thi∏t k∏ vit mó cho cỏc thậng phản mm 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 vào mơ hình cˆ th∫ ti∏p theo [2] B ˜a khái niªm v∑ máy tr¯u t˜Ịng óng gúi cỏc thnh phản toỏn hc, hăng, hềp, bin mỴt t™p hỊp hành Ỵng bi∏n Các thành ph¶n ˜Ịc ch˘a mơdun có tên ∫ có th∫ ˜Ịc s˚ dˆng  mơdun khác 2.5 Event-B Event-B [3] mỴt ph˜Ïng pháp hình th˘c mơ hình hóa phân tích m˘c mơ hình ∞c tính chı chËt cıa Event-B 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 hª thËng  m˘c tr¯u t˜Òng khác s˚ dˆng ch˘ng minh tốn hÂc ∫ ki∫m ch˘ng 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 gÁm mỴt máy ng˙ c£nh Ng˙ c£nh Event-B mơ t£ ph¶n tỉnh ó tính chßt liên quan gi£ thuy∏t MỴt ng˙ c£nh có th∫ bao gÁm t™p hỊp, hăng v cỏc giÊ thit Tp mang s ềc biu diπn bi tên khác rÈng Các t™p mang có tờn khỏc thỡ hon ton ẻc lp Hăng c ˜Òc xác ‡nh bi gi£ thi∏t P (s , c ), gi£ thi∏t cÙng phˆ thc vào mang s Mỏy Event-B ềc xỏc nh băng mẻt 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 cıa mơ hình Bßt bi∏n I (v ) sinh lu™t ∑ £m b£o bi∏n v ln th‰a mãn Các lu™t ˜Ịc hình th˘c hóa băng cỏc v t biu din bi tớnh toỏn v t¯ b™c mỴt ˜Ịc m rỴng bi Equality bi l˛ thuyt hềp Mẩi sá kiên cú dang evt = any x where G (x , v ) then A(x , v , v ) end ó x l cỏc bin cc bẻ ca sá kiên, G (x , v ) l iu kiên xÊy sá kiàn A(x , v , v ) hành ẻng ca sá kiên Mẻt sá kiên ềc kớch hoĐt nu iu kiên ca nú thoÊ Mẻt hnh ẻng ca sá kiên cú th cú nhiu phộp gỏn Mẩi phép gán có th∫ (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 , x )) ∫ giÊi quyt sá phc tĐp mụ hỡnh húa thËng, Event-B cung cßp cÏ ch∏ làm m‡n cho phép xõy dáng thậng tng bểc băng viêc thờm vo chi ti∏t ∫ §t ˜Ịc mơ hình xác hÏn MỴt máy làm m‡n th˜Ìng có nhi∑u bi∏n hÏn máy tr¯u t˜Ịng ta có nhi∑u bi∏n biπu diπn mơ hình chi ti∏t hÏn Trong làm m‡n chÁng, bin tru tềng vđn tn tĐi mỏy lm mn, làm m‡n theo chi∑u dÂc bi∏n tr¯u t˜Òng ˜Òc thay th∏ bi bi∏n cˆ th∫ K∏t nËi gi˙a bi∏n tr¯u t˜Òng v bi∏n cˆ th∫ w ềc biu din băng cỏc bòt bin J (v , w ) ∫ ki∫m tra xem mỴt máy Event-B có tha mẻt cỏc tớnh chòt khụng, Event-B nh nghổa cỏc mênh cản chng minh Mẻt vi mênh cản chng minh liờn quan n lun ỏn invariant preservation (INV), convergence (VAR), deadlock-freeness (DLF) 2.6 Rodin tool Lu™n án s˚ dˆng công cˆ Rodin phiên b£n 2.8 [1] mơi tr˜Ìng Eclipse ∫ mơ hình hóa ch˘ng minh Event-B Nó ˜Ịc xây d¸ng n∑n t£ng cıa Eclipse bao gÁm công cˆ hÈ trỊ mơ hình hóa plug-ins Rodin có giao diªn phong phú bao gÁm c˚a sÍ nh˜ proving, Event-B editor ã Ca s Proving: Cung còp tòt cÊ cỏc mênh ềc sinh mẻt cỏch tá ẻng cho cỏc máy Event-B Các mênh ∑ ˜Ịc ch˘ng minh t¸ Ỵng ho∞c t˜Ïng tác thơng qua c˚a sÍ mªnh ∑ mˆc tiêu • C˚a sÍ Event-B: Bao gÁm giao diªn cho phép chønh s˚a máy ng˙ c£nh N∏u ng˜Ìi s˚ dˆng mã hóa khơng xác, c˚a sÍ problem s≥ hiªn th‡ thơng báo lÈi 2.7 Cỏc thậng hểng sá kiên Cú nhiu loĐi thậng hểng sá kiên nh giao diên ca phản m∑m, hª thËng sinh lu™t ˜Ịc s˚ dˆng trớ tuê nhõn tĐo iu kiên ỳng thỡ thác thi mẻt hnh ẻng, hay cỏc ậi tềng hoĐt ơng thay Íi giá tr‡ hay thc tính cıa Ëi t˜Ịng [11] Trong lu™n án này, chúng tơi xét ∏n hai ˘ng dˆng ó hª thËng CSDL c£m ng˙ c£nh C£ hai hª thËng ∑u s˚ dˆng lu™t d§ng ECA ∫ bi∫u diπn hnh vi 2.7.1 Hê thậng CSDL v triggers Mẻt thậng CSDL quan dáa trờn mụ hỡnh quan 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 thậng CSDL quan 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 bờn v bờn ngoi ca CSDL Trigger l mẻt oĐn mó tá ẻng thác thi cú mẻt sá kiên xỏc nh xÊy CSDL Sá kiên thèng liờn quan n viêc thao tác d˙ CSDL Trigger th˜Ìng ˜Ịc s˚ dˆng 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 thành hai lo§i: Data Manipulation Language(DML) vv Data Definition Language (DDL) triggers LoĐi ảu tiờn ềc thá thi thao tỏc vểi d liờu, loĐi th hai ềc kớch hoĐt cú cỏc sá kiên DDL x£y 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 l¶n ¶u tiên bi Bill Schilit [10], tác gi£ ã ‡nh nghæa ng˙ c£nh v‡ trí, ‡nh danh cıa Ëi t˜Ịng s¸ thay Íi cıa Ëi t˜Ịng sau ó làm cho ch˜Ïng trình thích nghi vĨi ng˙ c£nh Có nhi∑u nghiên c˘u ã t™p trung vào ‡nh nghæa thu™t ng˙ c£m ngh˙ c£nh Lu™n án t™p trung vào hª thËng c£m ng˙ c£nh s˚ dˆng 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 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˛ cıa hª thËng phˆ thc vào ng˙ng˙ c£nh t˘c ph£n ˘ng vĨi thay Íi cıa ng˙ c£nh Ch˜Ïng Mơ hình hóa ki∫m ch˘ng 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 nh˜ng khơng có ng˙ nghỉa Chính v™y, ta 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 triggers có th∫ d®n ∏n vịng l∞p vụ hĐn khụng băng cỏch thác thi chỳng hoc iu tra t¯ng b˜Ĩc mỴt Vì nh˙ng l˛ này, nghiờn cu v mẻt khung lm viêc hỡnh thc cho mơ hình hóa ki∫m ch˘ng triggers CSDL c¶n thi∏t Thêm vào ó, n∏u ta có th∫ chø thác thi ca cỏc trigger l ỳng thÌi i∫m thi∏t k∏ có th∫ làm gi£m chi phí phát tri∫n ˘ng dˆng CSDL Trong ch˜Ïng ny, chỳng tụi xuòt mẻt phẽng phỏp mểi mơ hình hóa ki∫m ch˘ng hª thËng CSDL có trigger s˚ dˆng Event-B  giai o§n thi∏t k∏ fi 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 lut chuyn i mẻt thậng CSDL cú trigger sang mơ hình Event-B, sau ó ki∫m tra mỴt cách hỡnh thc liêu thậng cú tha 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 cıa máy Event-B ◊u i∫m cıa ph˜Ïng pháp hª thËng CSDL có th∫ chuy∫n Ëi sang mơ hình Event-B mẻt cỏch trác tip Cỏc tớnh chòt quan trng ềc ch˘ng minh mỴt cách tốn hÂc thơng qua ch˘ng minh mênh cản chng minh vỡ vy tớnh ỳng n cıa tính chßt ˜Ịc £m b£o Ph˜Ïng pháp có giá tr‡ £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∏ Ngồi ra, vĨi cơng cˆ hÈ trỊ Rodin thỡ cỏc vòn s ềc chng minh tá Ỵng, s≥ làm gi£m bĨt Ỵ ph˘c t§p so vĨi ch˘ng minh thı cơng Ph˜Ïng pháp cÙng 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 mỴt CSDL sang Event-B i∑u cÙng kh≠c phˆc nhềc im v ẻ phc tĐp mụ hỡnh húa cıa ph˜Ïng pháp hình th˘c khi∏n chúng tr nên khó áp dˆng phát tri∫n ph¶n m∑m 3.2 Mơ hình hóa ki∫m ch˘ng hª thËng triggers 3.2.1 Mơ hỡnh húa thậng CSDL Mẻt thậng CSDL thèng ˜Ịc thi∏t k∏ bi ph¶n t˚ nh˜ b£ng, khung nhìn vĨi ràng bc triggers Khi ng˜Ìi dựng thác thi cỏc cõu lênh Insert, Delete v Update, nhng sá thay i ny cú th lm kớch hoĐt triggers Áng thÌi cÙng ph£i tn theo ràng bc nh trểc Cỏc qui tc chuyn i mẻt 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 Event-B Rule Rule Rule Rule Rule Rule 3.2.2 Database definitions db = hT , C , Gi t = hr1 , , rm i ri = hfi1 , , fin i Primary key constraint Constraint C Trigger E Event-B concepts DB M , DB C T = TYPE1 ⇥ TYPE2 ⇥ TYPEn t 2T f : TYPE1 ! T 77 Invariant I Event Evt 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 ú iu kiên ca sá kiên l hềp ca loĐi trigger v iu kiên trigger xÊy Phản thác thi ca trigger ềc chuyn i thnh phản thõn ca sá kiên Event-B Ta xột trèng hỊp Ïn gi£n thân chø ch˜a câu lªnh DML Ïn Mã hóa nỴi dung cıa trigger ˜Ịc mơ t£ B£ng 3.3 B£ng 3.2: Hình th˘c hóa mỴt trigger IF (e) ON (c) ACTION (a) 3.2.3 WHEN (e ^ condition) THEN (a) END Ki∫m ch˘ng tính chßt cıa hª thËng Sau chuy∫n Íi, vĨi ∞c i∫m cıa Event-B cơng cˆ hÈ trỊ, ta có th∫ ki∫m ch˘ng ˜Ịc tính chßt sau: B£ng 3.3: Mã hóa hành Ỵng cıa trigger ANY r INSERT INTO T VALUES (value1, ,valuen) WHEN (r T ^ e ^ c) THEN T := T [ r END ANY v DELETE FROM T WHERE hcolumn1 = some valuei WHEN (v TYPE1 ^ e ^ c) THEN t := t f (v ) END ANY v 1, v UPDATE T SET column1=value, column2=value2 WHERE hcolumn1 = some valuei WHEN v TYPE1 ^ v 2 TYPE2 ^ e ^ c THEN t := {1 7! value1, 7! value2} END t B£ng 3.4: INV PO of event trigger nid nid dom(empl rec) ^ pk empl (nid ) > ) pk bonus(nid ) > 10 emplid dom(empl rec) type = update table = EMPL ` nid nid dom(empl rec) ^ pk empl (nid ) > ) (pk bonus {emplid 7! pk bonus(emplid ) + 10})(nid ) > 10 trigger1/ SYS CTR/ INV ã Vũng lp vụ hĐn: mc 3.2.3, bòt bin INF 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 cıa trigger nid (nid dom(empl rec) ^ type = update ^ table = BONUS ^ pk bonus(nid ) > 10) _ (type = update ^ table = EMPL)) ^ emplid dom(bonus rec) table = BONUS ^ pk bonus(emplid ) > 10 ` nid (nid dom({emplid 7! pk empl (emplid ) + 1} empl rec) ^ update = update ^ EMPL = BONUS ^ pk bonus(nid ) > 10) _ (update = update ^ EMPL = EMPL) trigger /INF LOOP /INV 3.4 Cài ∞t 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 kim chng mẻt thËng CSDL có trigger Cơng cˆ có th∫ sinh file d˜Ĩi ‡nh d§ng XML ∫ có th∫ s˚ dˆng làm ¶u vào cho cơ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 Mơ hình hóa ki∫m ch˘ng hª thËng c£m ng˙ c£nh 4.1 GiĨi thiªu C£m ng˙ canh cıa mỴt ˘ng dˆng liên quan tĨi khÊ nng ỏp ng, phÊn hi v ẻ nhĐy cÊm cıa ˘ng dˆng vĨi thay Íi cıa ng˙ c£nh [5] Theo nghổa hàp thỡ mẻt thậng cÊm ng cÊnh cú th xem nh mẻt thậng hểng sá kiên nghổa l nú nhn cỏc sá kiên gi có s¸ thay Íi v∑ ng˙ c£nh ph£n hÁi lĐi cỏc sá 11 12 kiên ny vểi cỏc tri th˘c v∑ ng˙ c£nh ang có Hành vi cıa thậng cÊm ng cÊnh thèng l phc tĐp v khơng ch≠c ch≠n ã có nhi∑u k∏t qu£ nghiên c˘u vĨi nhi∑u cách tiªp c™n khác nh˜ mơ hình hóa vai trị Ëi t˜Ịng, mơ hình hóa d¸a ontology, mụ hỡnh húa dáa trờn logic [5] Mẻt sậ nghiên c˘u cÙng ˜Ịc khung làm viªc cho mơ hình hóa ng˙ c£nh Tuy nhiên, theo quan i∫m cıa chúng tơi, ch˜a có mỴt cách ti∏p c™n mơ hình hóa c£m ng˙ c£nh mỴt vài khía cĐnh nh sá kiên ca mụi trèng, cỏc lut ng c£nh tính khơng ch≠c ch≠n HÏn th∏ n˙a, mơ hình §t ˜Ịc có th∫ ˜Ịc ki∫m ch˘ng ∫ £m b£o tính úng ≠n cıa hª thËng Trong ch˜Ïng này, chúng tơi ∑ xt s˚ dˆng Event-B ∫ mơ hình hóa ki∫m ch˘ng hª thËng c£m ng˙ c£nh Các óng góp cıa ∑ xt (1) Bi∫u din tá nhiờn cỏc thậng cÊm ng cÊnh băng cỏc thnh phản Event-B xuòt mẻt lut nh nghổa cỏc thnh phản cÊm ng cÊnh mẻt cỏch hỡnh th˘c ây ph˜Ïng pháp d¸a làm m‡n cho phộp xõy dáng thậng theo tng bểc (2) Sau hình th˘c hóa, tính chßt quan trÂng cıa thậng ềc kim chng qua cỏc mênh cản ch˘ng minh cıa cÏ ch∏ làm m‡n mà không qua b˜Ĩc chuy∫n Íi trung gian 4.2 Hình th˘c hóa tớnh chòt cÊm ng cÊnh 4.2.1 Mụ hỡnh húa thËng c£m ng˙ c£nh Các lu™t chuy∫n Íi gi˙a mỴt thậng cÊm ng cÊnh v mụ mẻt mụ hỡnh Event-B ˜Ịc trình bày  B£ng 4.1 B£ng 4.1: Chuy∫n Íi gi˙a mơ hình c£m ng˙ c£nh thành ph¶n Event-B Rule Rule Rule Rule 4.2.2 Context-aware concepts Context data CD Context rules r = he, c, Environments triggers E Context constraints CC Event-B notations Sets, Constants Events Events Invariants Mơ hình hóa t´ng dản s dng lm mn Trờn thác t, phỏt trin cỏc 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 cú thờm cỏc yờu cảu v cỏc thác th∫ ng˙ c£nh tri th˘c suy diπn Ví dˆ, 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 cÙng có thêm lu™t ng˙ c£nh ∫ x˚ l˛ cỏc d liêu ny Lỳc ny, thậng mểi vđn ph£i th‰a mãn nh˙ng ràng bc ã ˜Ịc thi∏t l™p 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 tri∫n ti∏n hóa 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  Mˆc 4.2.1 CÏ ch∏ làm m‡n cho phép mô hình hóa hª thËng c£m ng˙ c£nh theo t¯ng b˜Ĩc Event-B có hai cÏ ch∏ làm m‡n chÁng làm m‡n theo chi∑u dÂc Trong ó cÏ ch∏ th˘ hai, cỏc bin tru tềng vđn tn tĐi cỏc máy cˆ th∫ vĨi bi∏n bÍ sung Chính v™y ph˜Ïng pháp d¸a cÏ ch∏ phù hềp vểi mẻt thậng cÊm ng cÊnh ềc m rẻng băng viêc b sung cỏc cÊm bin Chẽng Mơ hình hóa ki∫m ch˘ng hª thËng c£m ng˙ c£nh Hình 4.1: Mơ hình hóa ti∏n hóa s dng lm mn ã Phản d liêu tổnh: mẻt cÊm bin ềc thờm vo thậng, ta cú th∫ s≥ ph£i gi£i quy∏t vĨi ki∫u d˙ liªu khác Ph˜Ïng pháp ∑ xt mơ hình hóa nh˜ mỴt ng˙ c£nh mĨi m rỴng t¯ 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 thậng 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 ã làm m‡n bi∏n 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ó ch˘c n´ng c£m ng˙ c£nh nh˜ nh™n bi∏t v™t c£n phía tr˜Ĩc nhÌ s˚ dˆng c£m bi∏n tr˜Ĩc xe Ơ tơ có tËc Ỵ Ëi a ˜Ịc thit lp bt ảu ẻng xe Nu khụng phát hiªn v™t c£n phía tr˜Ĩc s≥ t´ng gi£m tËc Ỵ N∏u xe d¯ng khơng có v™t cÊn thỡ tậc ẻ xe lĐi ềc thit lp l tậi a Hê thậng ACC luụn tha rng buẻc ng˙ c£nh tËc Ỵ ln kho£ng an tồn t˘c khơng v˜Ịt q tËc Ỵ cho phép 4.3.2 Mơ hình hóa hª thËng ACC Trong k‡ch b£n này, hª thËng có ba c£m bi∏n, theo ph˜Ïng pháp ˜Ịc xuòt Mc4.2, chỳng ta c tÊ thậng ban ảu vểi mẻt mỏy v ng cÊnh l ACC M Target (Hình 4.2) 4.3.3 Làm m‡n: BÍ sung cÊm bin thèi tit v ẻ nhặn mt èng Hai c£m bi∏n ˜Ịc g≠ng 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 lu™t ng˙ c£nh ˜Ịc m rẻng x l cỏc sá kiên gi d liêu v∑ hai c£m bi∏n nh˜ sau: “Khi mỴt ơtơ di chuy∫n i∑u kiªn trÌi m˜a ho∞c m∞t ˜Ìng khụng tật thỡ ACC giÊm tậc ẻc ụtụ" Vểi thậng mểi ny, thậng cản Êm bÊo iu kiên thèi tit hoc èng xòu thỡ tậc ẻ nh hÏn tËc Ỵ tËi a CONTEXT Target CONSTANTS TARGET DETECTION MAX SPEED INC AXIOMS axm1 : TARGET DETECTION = BOOL axm2 : MAX SPEED N axm3 : INC < MAX SPEED axm4 : INC N END Hình 4.2: 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 ∞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, ng˙ c£nh Weather 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 tr¯u t˜Ịng Nó bi∫u diπn hành vi cıa hª thËng c£m bi∏n g˚i d˙ liªu bi∫u diπn trĐng thỏi thèi tit cú ma hay èng xòu Trong sá kiên TargetUndetected lm mn sá kiên ca mỏy tr¯u t˜Ịng Ràng bc ng˙ c£nh ˜Ịc hình th˘c hóa thành bßt bi∏n cxt ct (Hình 4.3) 4.3.4 Ki∫m ch˘ng cỏc tớnh chòt ca thậng Cỏc rng buẻc ng cÊnh ềc chuyn i thnh cỏc mênh bòt bin Vì v™y, ta có th∫ ch˘ng minh tính úng ≠n ca thậng băng chng minh cỏc mênh cản ch˘ng minh INV B£ng 4.2: Ch˘ng minh tính b£o tồn ng˙ c£nh target det = TRUE ) speed < MAX SPEED target det = TRUE speed > INC ` target det = TRUE ) speed INC < MAX SPEED TargetDetected/ctx ct1/INV Cỏc mênh cản chng minh cho cỏc bòt bi∏n cıa c£ máy tr¯u t˜Òng làm m‡n nh˜ sau: • Machine ACC M 0: “TargetDetected/ctx ct1/INV " (Hình 4.2) and “TargetUndetected/ctx ct1/INV " • Machine ACC M 1: “TargetUndetected/ctx ct/INV " and “RainSharp/ctx ct/INV " Ch˜Ïng Mô hình hóa u c¶u khơng xác 5.1 GiĨi thiªu Các ph˜Ïng pháp hình th˘c kˇ thu™t tốn hÂc s˚ dˆng ∫ mơ t£ tính chßt mơ hình hª thËng Nh˙ng ph˜Ïng pháp ˜a khung làm viªc ∫ ∞c 14 Ch˜Ïng Mơ hình hóa u c¶u khơng 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 RAINING cxt ct : isRain = TRUE _ isSharp = TRUE ) speed < MAX SPEED inv3 : isSharp SHARP EVENTS Event TargetUndetected = b extends TargetUndetected when grd1 : target det = F ALSE grd2 : speed < M AX SP EED IN C grd3 : isRain = FALSE grd4 : isSharp = FALSE then act1 : speed := speed + IN C end Event RainSharp = b when grd1 : isRain = TRUE _ isSharp = TRUE then act1 : speed := speed INC end END Hình 4.3: Mơ hình làm m‡n cıa hª thËng ACC t£ ki∫m ch˘ng tính úng ≠n cıa hª thËng nói chung v cỏc thậng hểng sá kiên núi riờng thèng ịi h‰i u c¶u mơ t£ xác Tuy nhiên, th˜Ìng ph£i Ëi m∞t vĨi nh˙ng mơ t£ khơng xác có thu™t ng˙ khơng rõ rng, nhp nhăng hay khụng chc chn nh ròt lĐnh", “xa", ho∞c “kém quan trÂng", bi nh˙ng ng˜Ìi tham gia phát tri∫n ph¶n m∑m th˜Ìng khơng quan tâm nhi∑u n mụ tÊ cỏc thậng mẻt cỏch chớnh xỏc Chính v™y, nh˙ng khung làm viªc hình th˘c có th∫ s˚ dˆng ∫ phân tích bi∫u diπn u c¶u khơng xác c¶n thi∏t Ph˜Ïng pháp vĨi t™p mÌ ˜Ịc ∑ xt bi Zadeh [16] mẻt nhng khung lm viêc nh vy, ú lu™t Fuzz If-Then ˜Òc s˚ dˆng ∫ bi∫u diπn 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 thậng bao gm cỏc c tÊ ch˘c n´ng có th∫ ˜Ịc ki∫m tra  m˘c tr¯u t˜Ịng tr˜Ĩc b≠t ¶u b˜Ĩc phát tri∫n ti∏p theo Các u c¶u ˜Ịc bi∫u diπn d˜Ĩi d§ng lu™t If-Then mÌ có th∫ ı bi∫u 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 quy∏t xung Ỵt Các lu™t If-Then mÌ ˜Ịc chuy∫n sang khung làm viªc hình th˘c khác nh˜ PetriNet [7, 15] ho∞c k˛ hiªu Z [9] Ch˜Ïng s˚ dˆng lÒi th∏ cıa cÏ ch∏ làm m‡n Event-B mụ hỡnh húa cỏc thậng hểng sá kiên ˜Ịc mơ t£ bi t™p lu™t If-Then mÌ óng góp cıa ch˜Ïng (1) ˜a mỴt t™p lu™t chuy∫n Íi t¯ lu™t If-Then mÌ sang mơ t£ Event-B (2) s˚ dˆng cÏ ch∏ làm m‡n cıa Event-B ∫ hình th˘c hóa lu™t If-Then mÌ 5.2 Mơ hình hóa ki∫m ch˘ng u c¶u m s˚ dng Event-B Trong phản ny, lun ỏn giểi thiêu mẻt cách ti∏p c™n ∫ bi∫u diπn thu™t ng˙ mÌ băng l thuyt hềp c in Dáa trờn cỏc bi∫u diπn này, chúng tơi ∑ xt mỴt t™p lu™t ∫ chuy∫n Íi lu™t If-Then mÌ sang Event-B Sau ó s˚ dˆng cÏ ch∏ làm m‡ ∫ mơ hình hóa hª ‡nh thÌi 5.2.1 Bi∫u diπn thu™t ng mè băng hềp c in Corollary 5.1 Mẻt t™p u c¶u mÌ ˜Ịc ‡nh nghỉa rõ ràng cú th ềc c tÊ băng cỏc hềp c i∫n Ch˘ng minh Gi£ s˚ u c¶u mÌ cıa mẻt thậng ềc c tÊ bi FR = {FRi }, FRi = {xi , mi , i , µs , Yi , Pi }, i = 1, n Ta thßy xi , mi ˜Ịc xem nh˜ bi∏n c tÊ, Pi ềc mụ tÊ băng cỏc giỏ tr‡ Ta xét n∏u i Yi có th∫ ˜Ịc ∞c tÊ băng mẻt c in ú i l mỴt hedge, Yi mỴt bỴ sinh cıa mỴt generator ca mênh mè Vỡ FR l mẻt hu hĐn cỏc lut nờn hedges v generators thậng ˜Òc thi∏t l™p bi t™p khác vàvà Y , t˜Ïng ˘ng Theo ‡nh nghæa i Yi l Y , ú às l mẻt hàm t¯ t™p N tĨi Vì v™y, mÈi ph¶n t˚ cıa FR có th∫ ˜Ịc ∞c t£ bi t™p hỊp cÍ i∫n ⌅ 5.2.2 Mơ hình hố trĐng thỏi rèi rĐc ca cỏc yờu cảu khụng chớnh xỏc vnMẻt thậng bao gm mẻt cỏc yờu c¶u FRi , i = 1, n ˜Ịc mơ hình hóa bi mỴt mơ hình Event-B FRB = hFR C , FR M i, ó FR C vàvà FR M ng˙ c£nh 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 ph¶n t¯ Evemt-B Ngun t≠c quan trÂng vĨi ph˜Ïng pháp ta có th∫ b£o tồn 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 hedges i , generators Yi giá tr‡ Pi mẻt cỏc yờu cảu cú th ềc chuyn Íi thành ba t™p hÒp t˜Ïng ˘ng , Y , and P Các t™p ˜Òc ˜a ng˙ c£nh FR C • Lu™t Các bi∏n xi , mi mÈi FRi ˜Ịc ánh x§ ∏n bi∏n xi , mi cıa máy Event-B FR M • Lu™t MÈi bi∏n xi ˜Ịc bi∫u diπn thành ⇥ Y , ó mi ⇥ P (Corollary 5.1) ã Lut Mẩi yờu cảu FRi ềc mụ hỡnh húa bi mẻt sá kiờn evi mỏy Event-B FR M L˜u ˛ ßy chø 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 hồn chønh(Hình 5.1) Ch˜Ïng Mơ hình hóa u c¶u khơng xác CONTEXT FR C SETS P Y END MACHINE FR M SEES FR C VARIABLES x i m i INVARIANTS inv1 : xi P ( ⇥ Y) inv2 : mi P ( ⇥ P) inv3 : I EVENTS Event FRi = b when grd1 : xi = { i 7! Yi } then act1 : mi := { i 7! Pi } act2 : xi := { j 7! Yj } end END Hình 5.1: A part of Event-B specification for discrete transitions modeling 5.2.3 Mơ hình hóa hª mÌ Tr˜Ĩc tiên ta ‡nh nghỉa 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 [4], n∏u mẻt yờu cảu mè FR i cha mẻt bin ph thc thÌi gian ó, ta s≥ làm m‡n sá kiên tẽng ng ca mỏy tru tềng (Mc 5.2.2, Lu™t 5) Áng thÌi, ta cÙng ã giĨi thiªu Lu™t n∏u mỴt bi∏n x ˜Ịc ∞c t£ nh˜ mỴt thành viên cıa ⇥ Y , ó mỴt t™p hỊp cıa fuzzy hedges, Y mẻt mè Tẽng tá, ta thờm cỏc bin liờn tˆc xc cıa máy làm m‡n ˜Òc khai báo nh˜ sau xc R ! ⇥ P Lu™t án giĨi thiªu hai lu™t cho mơ hình hóa trĐng thỏi liờu tc ph thuẻc thèi gian ca yờu cảu nh sau: ã Lut 6: Nu mẻt bin x i or m i (trong mẻt yờu cảu mèi FR i) gn vểi trc thèi gian, thỡ sá kiên tẽng ˘ng s≥ ˜Ịc làm m‡n MỴt bi∏n t t R ∫ bi∫u diπn thÌi gian s≥ ˜Ịc thêm vào mỏy lm mn ã Rule 7: Cỏc bin ph thuẻc thÌi gian (trong Rule 1) ˜Ịc thay th∏ bi hm thèi gian v bòt bin rng buẻc 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 dng nhòc v th£ hàng ˜Ịc s˚ dˆng c£ng MỴt t™p hềp cỏc yờu cảu mè mụ tÊ thậng nh sau: ã FR1 Nu cản câu ang v tr ban ảu, thỡ tậc ẻ mc nhanh ã FR2 Nu khoÊng cỏch t cản câu n container xa, thỡ tậc ẻ mc trung bỡnh ã FR3 N∏u kho£ng cách ∏n container trung bình tËc ẻ ềc iu chứnh mc thòp ã FR4 Nu khoÊng cỏch l gản thỡ tậc ẻ l ròt chm ã FR5 Nu cản câu trờn container thỡ tậc ẻ băng 5.3.2 Mụ hỡnh húa hª thËng Container Crane Control Mơ hình hóa hành vi rÌi r§c: Áp dˆng lu™t chuy∫n Íi ã trình bày Mˆc 5.2.2, t™p u c¶u cıa hª thËng ˜Ịc chuy∫n Íi sang mơ hình Event-B nh˜ sau: • Áp dˆng Lu™t : Fuzzy hedges, generators giá tr‡ t™p u c¶u ˜Ịc chuy∫n thành t™p HEDGES, DISTANCE POWER ng˙ c£nh Event-B Crane C • Áp dˆng Lu™t : Các hàm thc cıa hedges vàvà giá tr‡ mÌ ˜Ịc bi∫u diπn nh˜ hàm sË ngun Ví dˆ: h deg : HEDGES ! N Ta có axiom cho giá tr‡ nh˜ sau h deg (very ) = ^ h deg (quite ) = ^ h deg (precise ) = Ta ti∏p tˆc hình th˘c húa phản ẻng ca mụ hỡnh vểi cỏc chuyn i • Áp dˆng Lu™t : Các bi∏n yêu c¶u ˜Ịc chuy∫n thành thành ph¶n Event-B nh˜ distance and power Ki∫u cıa hai bi∏n ˜Òc bi∫u diπn nh cỏc bòt bin inv and inv ã Áp dˆng Lu™t : MÈi u c¶u khơng xỏc FRi ca thậng ềc chuyn thnh mẻt sá kiên evti , i = 1, Mơ hình hóa hành vi liên tˆc: Ta làm m‡n mơ hình chuyn i mc trểc băng viêc xem xột thËng mỴt cách chi ti∏t cˆ th∫ hÏn Trên thác t, mẩi di chuyn ca cản câu gn vểi trˆc thÌi gian di chuy∫n mỴt cách liên lˆc tËc Ỵ ˜Ịc i∑u chønh rÌi r§c Ta áp dung lu™t ˜Ịc ˜a mˆc 5.2.3 nh˜ sau: • Áp dˆng Lu™t : Nm sá kiên ềc lm mn mỏy lm m Crane M 1, bi∏n ∏m thÌi gian t cÙng ˜Ịc bÍ sung • Apply Rule : Replace dis by disc (the distance which is time-dependent) The new variable of refined machine disc and one of abstract machine dis have a gluing variant (inv 3) Ch˜Ïng Ki∫m ch˘ng yờu cảu thậng khụng chớnh xỏc 6.1 Giểi thiêu Các ph˜Ïng pháp hình th˘c ˜Ịc s˚ dˆng khơng chø ∞c t£ mà cịn phát hiªn gi£i quy∏t xung ẻt ca yờu cảu thậng Trong Chẽng 5, lun ỏn xuòt mẻt phẽng phỏp mểi mụ hỡnh húa cỏc yờu cảu 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 thËng ch˜a ˜Ịc ∑ c™p ∏n Các tính chßt phÍ bi∏n cıa hª thËng tính an tồn v tớnh hoĐt ẻng Tớnh an ton bÊo Êm thậng khụng rẽi vo trĐng thỏi xòu cỏc tớnh chòt hoĐt ẻng Êm bÊo mẻt trĐng thỏi tật ca thậng (tớnh dng, hoĐt ẻng, tin trỡnh) Chẽng ca lun ỏn s giểi thiêu mẻt phẽng pháp d¸a làm m‡n mĨi ∫ mơ hình hóa ki∫m ch˘ng c£ 18 Ch˜Ïng Ki∫m ch˘ng yờu cảu 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 ây nh˙ng k∏t qu£ cˆ th∫ ¶u tiên ki∫m ch˘ng tính chßt cıa u c¶u khơng xác Các óng góp cıa chẽng c th l (1) cung còp mẻt lut chuy∫n Íi ∫ hình th˘c hóa tính ho§t ơng sang Event-B, ph˜Ïng pháp s˚ dˆng ti∏p c™n mô hình hóa làm m‡n mà Event-B hÈ trỊ (2) th∫ hiªn viªc s˚ dˆng cơng cˆ Rodin ∫ ki∫m ch˘ng cỏc tớnh chòt ny 6.2 Tớnh hẻi t 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 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 Nhng sá kiên nh vy gi l sá kiên hẻi t ch˘ng minh tính chßt này, Event-B ˜a 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 ch˘ng minh gi£m giá tr‡ cıa bi∏n v Chi tit hẽn, e l mẻt sá kiên hẻi tˆ, v v tr§ng thái tr˜Ĩc/sau thác hiên e, ta chng minh V (v ) < V (v ) Hai mênh cản chng minh ny ềc sinh cho mẩi sá kiên hẻi t ú mênh cản chng minh VAR bÊo £m giá tr‡ variant s≥ gi£m NAT £m b£o l variant l mẻt sậ nguyờn sau thác thi sá kiên 6.3 Phõn tớch tớnh an ton v hoĐt Îng Event-B Event-B cung cßp mÎt cách bi∫u diπn cỏc thuẻc tớnh an ton mẻt cỏch trác tip băng bßt bi∏n Vì v™y, ta có th∫ ch˘ng 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 nh˜ng ta có th∫ th¸c thi theo ph˜Ïng pháp suy diπn báo [6] ∫ ki∫m ch˘ng tính chßt nh˜ existence (⇤⌃P ), progress (⇤(P1 ) ⌃P2 )), persistence (⌃⇤P ), ó P mỴt cơng th˘c logic b™c mỴt, ⌃ ⇤ tốn t˚ chu©n cıa 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 tồn Corollary 6.1 VĨi lu™t chuy∫n Íi ã ∑ xt, tính chßt an tồn ˜Ịc b£o tồn bi hành Ỵng u cảu 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 lu™t ∫ m rỴng ng˙ c£nh làm m‡n máy Event-B nh˜ sau: • Lu™t Giá tr‡ mÌ P , Y vàvà hedges ˜Òc chuy∫n thành hàm t˜Ïng ˘ng degP ! N, degy Y : Y ! N, degH : ! N ã Lut 7: Thờm mẻt a variant ỏnh xĐ tểi bin cú xuòt hiên biu thc thuẻc tớnh hoĐt ụng Q ã Lut 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 Thờm mênh ơQ (xi ) vo cỏc iu kiên ca mẩi sá kiên hẻi t v mênh Q (xi ) vo sá kiên thèng ã Rule 10 Tớnh chòt Deadlock-free ềc mó hóa nh˜ mỴt theorem cıa máy EventB 20 Definition 6.2 (Tính hỴi tˆ) Các lu™t mÌ hỴi tˆ t mẻt trĐng thỏi Q (x ) nu mẩi lut làm gi£m giá tr‡ cıa bi∏n x Tinh hỴi tˆ ˜Ịc ‡nh nghỉa hình th˘c nh˜ sau: FRi , Q (x ) ` x < x , ú x l giỏ tr sau thác hiên lu™t FRi Definition 6.3 (Deadlock-freeness) Các lu™t mÌ deadlock-free  tr§ng thái Q (x ) n∏u ln có mẻt mênh IF ca mẻt lut tha nh nghỉa mỴt cách hình th˘c là: n W Q (x ) ) (9 xi xi = Yi ) i =1 Corollary 6.4 VĨi lu™t chuy∫n Íi ã ∑ xt, n∏u mỴt t™p lu™t If-Then mÌ hỴi tˆ deadlock-free t mẻt biu thc logic trĐng thỏi Q (x ) ó x mỴt bi∏n thc tính trĐng thỏi ơQ (x ) s luụn xÊy Mẻt cách hình th˘c, ta có {FR } ` ⇤⌃¬Q (x ) 6.5 Ki∫m ch˘ng hª thËng Container Crane Control Hª thËng có mỴt thc tính an tồn ∫ £m b£o tËc Ỵ cıa motor khơng  tËc Ỵ cao kho£ng cách khơng (I ) Áng thÌi hª thËng cÙng cản tha 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 {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 dˆng Rule ∫ m rông ng˙ c£nh CraneCtrl C thành CraneCtrl C1 băng viêc a thờm ba hm ỏnh xĐ cỏc t™p mÌ sang giá tr‡ sË ∞c t£ cıa 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) = ^ deg HED(quite) = ^ deg HED(precise) = END Ti∏p theo, ta làm máy Crane M0 ∫ có Crane M1 vểi 05 sá kiên hẻi t v 05 sá kiên th˜Ìng (Lu™t 8) o§n mã Event-B d˜Ĩi ây mơ t£ cho sá kiên evt MACHINE Crane M1 REFINES Crane M0 Chẽng Kim chng cỏc yờu cảu thậng khơng xác SEES Crane C1 VARIABLES d VARIANT d INVARIANTS inv1 : d N DELF : d = ) ran(dist) = {start} _ ran(dist) = {far} _ ran(dist) = {medium} _ ran(dist) = {close} _ ran(dist) = {above} EVENTS Event evt4 CE = b Status convergent extends evt4 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 Event evt4 OE = b Status ordinary extends evt4 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 Kim chng thuẻc tớnh Hê thậng cú mẻt tớnh chòt ó ềc hỡnh thc húa thnh mẻt bòt bin inv : ran (dist ) = {close } ) ¬ran (power ) = {fast } Mẩi mênh cản chng minh ny ềc sinh cho mẩi sá kiên ca mỏy Crane M BÊng 6.1 th hiên mênh cản chng minh inv ca sá kiên evt BÊng 6.1: INV PO of event evt4 ran(dis) = {close} ) ¬ran(speed ) = {fast} dis = {precise 7! close} ` ran ({precise 7! above}) = {close} ) ¬ran ({very 7! slow }) = {fast} evt4/inv 4/INV Ta cản phÊi chng minh cản câu s ∏n v‡ trí  phía container, có nghỉa Crame M ` ⇤⌃(d = deg DIS (above )) Tớnh chòt deadlock-free ca mỏy ềc biu din hnh mẻt theorem DELF in Crane M B£ng 6.2: Deadlock free PO of machine Crane M d = deg ) d = deg d = deg d = deg DIS (above) DIS (start) _ d = deg DIS (far ) DIS (medium) _ d = deg DIS (close) DIS (above) DELF/THM ∫ ki∫m tra tính hỴi tˆ, ta ch˘ng minh cỏc mênh cản chng minh cho cỏc sá kiên hẻi t, c th l evti /NAT v evti /VAR BÊng 6.3 l mênh cản chng minh sá kiªn evt cıa máy Crame M gi£m giá tr‡ cıa variant d B£ng 6.3: VAR PO of event evt4 dis = {precise 7! close} ¬d = deg DIS (close) d = deg DIS (close) ` d (deg DIS (close) deg DIS (above)) < d evt4 CE/VAR Ch˜Ïng K∏t lu™n 7.1 K∏t lu™n 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 tr¯u t˜Ịng hÏn mơ t£ mỴt lĨp lĨn hÏn cıa hª thËng, lu™n án t™p trung vào ˘ng dˆng ∞c tr˜ng hª thËng cÏ s d˙ liªu bao gÁm triggers c£m ng˙ c£nh Hai ˘ng dˆng có tính chßt ch˘c n´ng cung cßp riêng Tuy nhiên hai hª thËng, trigger nên 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˛ này, q trình xây d¸ng mơ hình t¸ nhiên dπ dàng HÏn n˙a, lu™n án s˚ dˆng Event-B ∫ hình th˘c hóa hª thËng, khụng cản bòt k bểc trung gian no kim th tớnh ỳng n ca thậng Trong phản th˘ hai, lu™n án cÙng óng góp lĨn vào viªc phõn tớch thậng hểng sá kiên theo quy nh cıa u c¶u khơng xác M∞c dù u c¶u khơng xác th˜Ìng ˜Ịc tìm thßy q trình phát tri∫n ph¶n m∑m, nh˜ng nh˙ng nghiên c˘u chı y∏u gi£i quy∏t vßn ∑ mơ hình ki∫m ch˘ng u c¶u xác Ph¶n trình bày ph˜Ïng pháp mĨi d¸a qui t≠c làm m‡n, ó u c¶u ˜Ịc mơ ph‰ng bi If-Then mÌ Các quy t≠c ã ˜Ịc chuy∫n Íi sang mỴt t™p hỊp sá kiên Event-B Lun ỏn cng xuòt phẽng phỏp d¸a làm m‡n ∫ có th∫ ki∫m ch˘ng tính chòt an ton v hoĐt ẻng ca thậng 7.2 H§n ch∏ Bên c§ch k∏t qu£ ã §t ˜Ịc, lun ỏn vđn cũn mẻt sậ hĐn ch ã Phẽng pháp ∑ xt cho mơ hình ki∫m ch˘ng 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, mỴt nh˙ng ∞c tính mong mn mà ng˜Ìi phát tri∫n ph¶n m∑m mn ki∫m tra 22 Ch˜Ïng K∏t lu™n Ph˜Ïng pháp x˚ l˛ tr˜Ìng hềp ẽn giÊn ca mẻt chuẩi cỏc cõu lênh DML khơng ch˘a lÁng cú pháp trigger ¶y ı ã Do thiu sá hẩ trề kiu d liêu nguyờn thıy Event-B, lu™n án chø có th∫ làm phong phỳ thờm mụ hỡnh d liêu ng cÊnh băng cỏch k∏t hỊp vĨi Plug-in mĨi BËi c£nh 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 ch˘a d˙ liªu thÌi gian có liên quan Tuy nhiên, Event-B khơng hÈ trỊ logic thÌi gian, ó mơ hình ki∫m ch˘ng ˘ng dˆng nh˜ v™y 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 thậng khụng xác c£ hai tr˜Ìng hỊp hành vi rÌi r§c v liờn tc ca thậng Tuy nhiờn, 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ẽn n˙a, thc tính liên quan ∏n thÌi gian khơng ˜Ịc th£o lu™n ∏n Mơ t£ hành vi cıa hª thậng băng cỏc lut If-Then mè l cha cho mÂi tr˜Ìng hỊp Bên c§nh ó tính tình hng, có mẻt sậ c tớnh liveness l cản thit ềc ki∫m tra ∫ £m b£o tính xác cıa hª thËng nh˜ progress, persistence ch˜a ˜Ịc phân tích 7.3 H˜Ĩng phát tri∫n MỴt nh˙ng h˜Ĩng nghiên c˘u lu™n án ang phát tri∫n mỴt cơng cˆ Plugin Rodin ∫ mơ hình hóa hª thËng cÏ s d˙ liªu Chúng tơi cÙng s≥ x˚ l˛ triggers ph˘c t§p hÏn vĨi nhi∑u câu lªnh DML lÁng k∏t hỊp vĨi vịng l∞p Trong tr˜Ìng hỊp lªnh ph˘c hỊp lÁng nhau, chúng tơi có th∫ c¶n ph£i áp dˆng kˇ thu™t tÍ hỊp ∫ mơ hình thành ph¶n sá kiên phc hềp Suy din v tớnh dng ca trigger lo§i trigger khác cÙng s≥ ˜Ịc xem xét nghiên c˘u ti∏p theo Chúng s m rẻng phẽng phỏp mụ hỡnh húa cỏc thậng cÊm ng cÊnh băng cỏch s dng cỏc plugin Theory cho phép ∫ t§o xác ‡nh ng˙ nghổa cho cỏc loĐi d liêu khỏc ca bậi c£nh th˜Ìng xun ˜Ịc s˚ dˆng 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 phc tĐp hẽn gia bậi cÊnh Hiên nay, cú mẻt sậ khung lm viêc ∫ mơ t£ hª thËng c£m ng˙ c£nh Chúng tơi d¸ ‡nh tr¸c ti∏p bi∏n Íi ngơn ng˙ ∞c t£ ng˙ c£nh sang Event-B Cơng viªc t˜Ïng lai cıa chúng tơi theo h˜Ĩng s≥ t™p trung vào phân tích thc tính liên quan ∏n thÌi gian ca cỏc thậng cÊm ng cÊnh v m rẻng ki∫u 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 q trình làm m‡n ci Vì v™y, mỴt c£i ti∏n mà làm ∫ ph˜Ïng pháp có th∫ ∫ ch˘ng minh tính liveness  mÂi giai o§n làm m‡n cÙng mỴt mˆc tiêu HÏn n˙a, n∑n t£ng l˛ thuy∏t suy diπn v∑ liveness Event-B cÙng 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 thc tính liveness quan trÂng khác nh˜ persistence, progress Tài liªu tham kh£o [1] Event-b and the rodin platform http://www.event-b.org, 2012 [2] J.-R Abrial The B-book: Assigning Programs to Meanings Cambridge University Press, New York, NY, USA, 1996 [3] J.-R Abrial Modeling in Event-B: System and Software Engineering Cambridge University Press, New York, NY, USA, 1st edition, 2010 [4] J.-R Abrial, W Su, and H Zhu Formalizing hybrid systems with event-b In Proc ABZ 2012, volume 7316 of LNCS, pages 178–193 2012 [5] M Baldauf, S Dustdar, and F Rosenberg A survey on context-aware systems Int J Ad Hoc Ubiquitous Comput., 2(4):263–277, jun 2007 [6] T Hoang and J.-R Abrial Reasoning about liveness properties in event-b In Formal Methods and Software Engineering, volume 6991 of LNCS, pages 456–471 2011 [7] B Intrigila, D Magazzeni, I Melatti, and E Tronci A model checking technique for the verification of fuzzy control systems In Proc CIMCA-IAWTIC’06 - Volume 01, CIMCA ’05, pages 536–542, Washington, DC, USA, 2005 IEEE Computer Society [8] J S P M H Klein Using the vienna development method (vdm) to formalize a communication protocol Technical report, Software Engineering Institute Carnegie Mellon University, 1998 [9] C Matthews and P A Swatman Fuzzy concepts and formal methods: A fuzzy logic toolkit for z In Proceedings of the First International Conference of B and Z Users on Formal Specification and Development in Z and B, ZB ’00, pages 491–510, London, UK, UK, 2000 Springer-Verlag [10] B Schilit, N Adams, and R Want Context-aware computing applications In In Proceedings of the Workshop on Mobile Computing Systems and Applications, pages 85–90 IEEE Computer Society, 1994 [11] I Sommerville Software Engineering (8th Ed.) Addison Wesley Longman Publishing Co., Inc., Redwood City, CA, USA, 2007 [12] J M Spivey The Z Notation: A Reference Manual Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1989 [13] J M Wing A specifier’s introduction to formal methods Computer, 23(9):8–23, Sept 1990 [14] J Woodcock and J Davies Using Z: Specification, Refinement, and Proof Prentice-Hall, Inc., Upper Saddle River, NJ, USA, 1996 [15] S J H Yang, J J P Tsai, and C.-C Chen Fuzzy rule base systems verification using high-level petri nets IEEE Trans Knowl Data Eng., 15(2):457–473, 2003 [16] L A Zadeh Classification of fuzzy petri nets, and their applications Information and Control, 8(3):338–353, 1965 24 CÁC CƠNG TRÌNH TRÌNH KHOA H≈C CÔNG B» Hong Anh Le, Ninh Thuan Truong: Modeling and Verifying WS-CDL Using Event-B In Proc ICCASA 2012 LNICST Vol 109, pp 290-299, Springer, 2013 Hong Anh Le, Ninh Thuan Truong: Modeling and Verifying DML Triggers Using Event-B, In Proc ACIIDS 2013 LNCS Vol 7083, Vol 2, pp 539-548, Spinger, 2013 Hong Anh Le, Loan Dinh Thi, Ninh Thuan Truong: Modeling and Verifying Imprecise Requirements of Systems Using Event-B In Proc KSE 2013 AISC Vol 244, pp 313-325, Springer, 2013 Hong Anh Le, NinhThuan Truong: Formal Modeling and Verification of Context-Aware Systems Using Event-B In Proc ICCASA 2013 LNICST Vol 128, pp 250-259, Springer 2014 (The best papers award) Hong Anh Le, Ninh-Thuan Truong, Shin Nakajima: Verifying Eventuality Properties of Imprecise System Requirements (Submitted to International workshop on FTSCS, ICFEM 2014) ... phẽng phỏp mơ hình hóa phù hỊp cho qui trình phát tri∫n ti∏n hóa Hình 4.1 mơ t£ mỴt ph˜Ïng pháp mơ hình hóa ti∏n hóa d¸a ph˜Ïng pháp ã ∑ xußt  Mˆc 4.2.1 CÏ ch∏ làm m‡n cho phép mơ hình hóa hª thËng... nghiên c˘u vĨi nhi∑u cách tiªp c™n khác nh˜ mơ hình hóa vai trị Ëi t˜Ịng, mơ hình hóa d¸a ontology, mơ hình hóa d¸a logic [5] MỴt sË nghiên c˘u cÙng ˜Ịc khung làm viªc cho mơ hình hóa ng˙ c£nh Tuy... ch˘ng hª thËng mỴt cách tốn hÂc MỴt ph˜Ïng pháp hình th˘c n∏u ˜Ịc có inh nghỉa cÏ s d˜Ĩi d§ng tốn hÂc th˜Ìng ˜Ịc ˜a bi mỴt ngơn ng˙ hình th˘c [13] Các ph˜Ïng pháp ki∫m ch˘ng hình th˘c tr nên

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

Từ khóa liên quan

Mục lục

  • 1 Tổng quan về luận án

    • 1.1 Lý do lựa chọn đề tài

    • 1.2 Mục tiêu

    • 1.3 Đóng góp mới của luận án

    • 1.4 Cấu trúc luận án

    • 2 Kiến thức cơ sở

      • 2.1 Temporal logic

      • 2.2 Lý thuyết tập hợp

      • 2.3 Tập mờ và luật If-Then mờ

      • 2.4 Các phương pháp hình thức

        • 2.4.1 VDM

        • 2.4.2 Phương pháp Z

        • 2.4.3 Phương pháp B

        • 2.5 Event-B

        • 2.6 Rodin tool

        • 2.7 Các hệ thống hướng sự kiện

          • 2.7.1 Hệ thống CSDL và triggers

          • 2.7.2 Các hệ thống cảm ngữ cảnh

          • 3 Mô hình hóa và kiểm chứng các hệ thống CSDL

            • 3.1 Giới thiệu

            • 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

              • 3.2.2 Hình thức hóa triggers

              • 3.2.3 Kiểm chứng các tính chất của hệ thống

              • 3.3 Case study: Hệ thống quản lý nhân sự

                • 3.3.1 Mô tả

                • 3.3.2 Mô hình hóa

Tài liệu cùng người dùng

Tài liệu liên quan