Khóa luận Đặc tả và kiểm chứng phần mềm sử dụng CafeOBJ

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Phm Ngc Thng  
ĐẶC TVÀ KIM CHNG PHN MM SDNG  
CafeOBJ  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
HÀ NỘI - 2010  
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Phm Ngc Thng  
ĐẶC TVÀ KIM CHNG PHN MM SDNG  
CafeOBJ  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bộ hướng dn: TS. Nguyn Vit Hà  
Cán bộ đồng hướng dn: ThS. Đặng Vit Dũng  
HÀ NỘI - 2010  
Đặc tvà kim chng phn mm sdng CafeOBJ  
Phm Ngc Thng  
Lời cảm ơn  
Em xin bày tlòng cảm ơn sâu sắc ti TS. Nguyn Việt Hà và ThS. Đặng Vit  
Dũng về sự hướng dn, chbo tn tình, cùng vi nhng li khuyên quý giá ca thy  
trong quá trình em hc tp cũng như thực hin khóa lun.  
Em xin gi li cảm ơn tới các thy cô ging dy tại Đại hc Công ngh- Đại hc  
Quc Gia Hà Nội đã trang bcho em nhng kiến thc quý báu trong thi gian em hc  
tại trường. Đó cũng là tiền đề cơ sở để em có ththc hiện được tt khóa lun ca  
mình.  
Em xin gi li cảm ơn tới các thy các cô trong bmôn Công nghphn mềm đã  
tạo điu kiện cho em được làm vic trên bmôn với đầy đủ trang thiết bcho em hc  
tp và làm vic.  
Cảm ơn bạn bè, người thân vsự động viên, giúp đỡ vmt tinh thn cũng như  
vmt vt cht trong thi gian em thc hin khóa lun này.  
nội, tháng 6 năm 2010  
Sinh viên thc hin  
Phm Ngc Thng  
i
Đặc tvà kim chng phn mm sdng CafeOBJ  
Phm Ngc Thng  
Tóm tắt  
Công nghthông tin hin nay là mt trong nhng ngành phát trin mnh mnói  
chung, cùng vi công nghphn mm nói riêng. Nhm to ra nhng sn phm phn  
mềm đảm bo chất lượng và tính chính xác cao. Nên việc đặc tvà kim chng phn  
mm hết sc quan trng trong nhiu lĩnh vực sdng phn mềm, đc bit là các ngành  
công nghệ cao đòi hi schính xác cao ca phn mm. Trong khuôn khca mt bài  
luận văn tốt nghiệp em đi sâu vào phương pháp đặc tvà kim chng phn mm sử  
dng ngôn ngữ CafeOBJ và đặc biệt đã áp dụng phương pháp này cho một hthng lò  
vi sóng. Cùng vi vic hc tp và nghiên cu trong khi làm khóa lun tt nghiệp để  
được tiếp cn vi thc tế em đã thu được mt skết qunhất định. Thông qua đó,  
cùng vi kiến thức cơ sở khi ngi trên ghế nhà trường, em đã tìm hiu thêm vnhng  
tiến btrong vic phát trin phn mm trên thế gii nói chung và Vit Nam nói riêng.  
ii  
Đặc tvà kim chng phn mm sdng CafeOBJ  
Phm Ngc Thng  
Mục lục  
Chương 1. Gii thiu ........................................................................................................1  
1.1 Đặt vấn đ...............................................................................................................1  
1.2 Ni dung nghiên cu ca khóa lun.........................................................................1  
1.3 Cu trúc khóa lun...................................................................................................2  
Chương 2. Phương pháp hình thc....................................................................................3  
2.1 Phân loi .................................................................................................................3  
2.2 Sdng...................................................................................................................4  
2.2.1 Đặc thình thc................................................................................................4  
2.2.2 Phát trin ..........................................................................................................5  
2.2.3 Kim chng ......................................................................................................5  
2.2.3.1 Chng minh của con người.........................................................................5  
2.2.3.1 Chng minh tự đng...................................................................................6  
Chương 3. Ngôn ngCafeOBJ .........................................................................................7  
3.1 Gii thiu................................................................................................................7  
3.2 Đặc tvà kim chng trong CafeOBJ......................................................................9  
3.2.1 Ví d.................................................................................................................9  
3.2.2 Đặc tstnhiên ...........................................................................................10  
3.2.3 Đặc tthuc tính.............................................................................................10  
3.2.4 Kim chng thuc tính....................................................................................10  
Chương 4. Khái quát vOTS và bài toán QLOCK..........................................................13  
4.1 Gii thiu vOTS .................................................................................................13  
4.2 OTS (Observation transition system).....................................................................14  
4.3 Mô tbài toán QLOCK .........................................................................................17  
iii  
Đặc tvà kim chng phn mm sdng CafeOBJ  
Phm Ngc Thng  
4.4 Đặc tQLOCK vi OTS .......................................................................................17  
4.5 Đặc tthuc tính và kim chứng đặc t.................................................................21  
Chương 5. Đặc tvà kim chng hthng lò vi sóng .....................................................24  
5.1 Hthng lò vi sóng ...............................................................................................24  
5.1.1 Mô ththng................................................................................................24  
5.1.2 Mô tcác thuc tính........................................................................................26  
5.2 Mô hình hóa hthng trong OTS/CafeObj ............................................................26  
5.2.1 Mô hình hóa và mô ththng trong OTS......................................................26  
5.2.2 Đặc thình thc hthng trong CafeObj ........................................................28  
5.2.3 Không gian trng thái ca hthống đặc thình thc.......................................29  
5.2.4 Các thuộc tính được mô t..............................................................................29  
5.3 Kim chng bằng phương pháp quy np................................................................33  
5.3.1 Các bưc quy np ...........................................................................................33  
5.3.2 Kim chng bằng phương pháp quy nạp trong CafeOBJ.................................33  
5.4. Kim chng bằng phương pháp tìm kiếm trng thái .............................................33  
Chương 6. Kết lun.........................................................................................................36  
iv  
Đặc tvà kim chng phn mm sdng CafeOBJ  
Phm Ngc Thng  
Danh mục hình vẽ  
Hình 3.1: Mô đun EXAMPLE trong CafeOBJ. .................................................................8  
Hình 3.2: Đặc tca module PNAT cho ví d. .................................................................9  
Hình 3.3: Đặc tthuộc tính cho điều kin (*)..................................................................10  
Hình 3.4: Kim chng quy np vi module ISTEP. ........................................................11  
Hình 3.5: Kim chng quy nạp cho đặc t.......................................................................11  
Hình 4.1: Thut toán ca bài toán QLOCK. ....................................................................17  
Hình 4.2: Kiu biến tổng quát cho hàng đợi QUEUE......................................................18  
Hình 4.3: Hàng đợi QUEUE cho bài toán QLOCK.........................................................19  
Hình 4.4: Đặc tcho hthng QLOCK. .........................................................................20  
Hình 4.5: Hành động try trong hthng QLOCK............................................................20  
Hình 4.6: đun INV và ISTEP dùng để kim chng. ..................................................21  
Hình 4.7: Kim chng với trường hp (1).......................................................................22  
Hình 4.8: Kim chng với trường hp (2).......................................................................22  
Hình 4.9: Kim chng vi bổ đề.....................................................................................23  
Hình 5.1: Cu trúc Kripke ca Lò vi sóng [1]. ................................................................25  
Hình 5.2: Mô hình ca lò vi sóng....................................................................................27  
Hình 5.3: Đặc tca lò vi sóng trong CafeOBJ...............................................................28  
Hình 5.4: đun LABEL trong CafeOBJ......................................................................29  
Hình 5.5: Hình thc hóa không gian trng thái ca hthng...........................................29  
Hình 5.6: Hình thc hóa các thuc tính...........................................................................30  
Hình 5.7: Đặc tcác thuc tính trong CafeOBJ...............................................................31  
Hình 5.8: đun ISTEP trong CafeOBJ........................................................................32  
v
Chương 1: Giới thiu  
Phm Ngc Thng  
Chương 1  
Giới thiệu  
1.1 Đặt vấn đề  
Đặc tvà kim chng hình thc là mt pha quan trng nhằm nâng cao độ tin cy  
và chất lượng ca phn mm sdụng phương pháp hình thức. Đối vi các hthng  
yêu cầu độ tin cậy cao như hệ thống điều khin lò phn ng hạt nhân hay điều khin  
tên lửa, … Các phương pháp đặc tvà kim chng hình thc sẽ được áp dng cho  
nhng hthống này trước khi trin khai chúng. Trong khi vic kim thphn mm  
(software testing) chcó thchra các li phát hiện được nhưng không thể chỉ ra được  
phn mm hoàn toàn không có lỗi, các phương pháp kiểm chng có thể đảm bo hệ  
thng không có lỗi sau khi đã được kim chứng đúng đắn.  
Hiện nay, đã có nhiều phương pháp và công cụ htrcho việc đặc tvà kim  
chng phn mềm như OBJ [14], Maude [14], CafeOBJ [13], SPIN [15], SMV [17],  
NuSMV [16], …. Mỗi phương pháp có những ưu và nhược điểm riêng và bhn chế  
trong mt shthng nhất đnh.  
Mục đích của khóa lun là tìm hiu về phương pháp hình thc (formal method)  
cũng như phương pháp đặc tvà kim chng hình thc phn mm trong CafeOBJ. Từ  
mô tca hthng cn kim chng, chúng ta cần đặc ththng mt cách hình thc  
bng ngôn ngCafeOBJ. Các thuc tính cn kim chng ca hthng cũng được đặc  
tmột cách tương tự. Sdng ngnghĩa cú pháp trong ngôn ngữ CafeOBJ để thhin  
các đặc ththng cũng như các đặc tthuc tính ca hthng cn kim chứng dưới  
dng hình thc tcác phát biu ca ngôn ngtnhiên.  
1.2 Nội dung nghiên cứu của khóa luận  
Bài toán thc hin trong khóa luận là bài toán đặc tvà kim chng hthng lò  
vi sóng sdng ngôn ngCafeOBJ. Đây là một trong hthống điển hình sẽ đưc trình  
bày vquá trình mô hình hóa hthng giúp cho công vic viết đặc tvà kim chng  
các thuc tính của chúng được đơn giản hơn. Nhm kim chng hthng mt trong  
những phương pháp chúng tôi quan tâm là viết đặc tvà kim chng bng CafeOBJ  
1
Chương 1: Giới thiu  
Phm Ngc Thng  
theo tư tưởng quy np toán hc, với phương pháp này chúng ta có thể đặc tvà kim  
chng các hthng vô hn trng thái mt cách chính xác (trong khi vi kim chng  
mô hình (model checking) chkim chng hu hn trng thái ca hthng). Ngoài ra  
CafeOBJ còn htrskim chng bằng phương pháp tìm kiếm (searching) không  
gian trng thái dành cho hthng hu hn trạng thái. Đặc tcho kim chng cùng vi  
đặc ththống và đặc tthuc tính sẽ được sdụng để kim chng hthng. Kết quả  
ca quá trình kim chng scho chúng ta biết được đặc ttha mãn thuc tính cn  
kim chng hay không.  
1.3 Cấu trúc khóa luận  
Các phn còn li ca khóa lun có cấu trúc như sau:  
Chương 2 trình bày lý thuyết về phương pháp hình thc, bao gm các khái nim  
cơ bn, các kthuật cơ bản được sdụng trong đặc tvà kim chng phn mm.  
Chương 3 trình bày ngôn ngCafeOBJ, kthuật đặc tvà kim chng phn  
mm bằng phương pháp hình thức được sdng trong CafeOBJ.  
Chương 4 trình bày phương pháp chuyển dch hthng trc quan (Observation  
transition system), mt trong những phương pháp quan trọng nhằm đơn giản hóa vic  
đặc tvà kim chng phn mm, kèm theo ví dvhthng QLOCK sdung  
OTS/CafeOBJ.  
Chương 5 trình bày v“hthng Lò Vi Sóng” được đặc tvà kim chng sử  
dng OTS/CafeOBJ, vi hai phương pháp kiểm chng khác nhau gm quy np và tìm  
kiếm (searching) các trng thái.  
Chương 6 tóm tắt kết quả đã đạt được, kết lun, nhng hn chế và hướng nghiên  
cu phát triển trong tương lai.  
2
Chương 2: Phương pháp hình thc  
Phm Ngc Thng  
Chương 2  
Phương pháp hình thức  
Trong ngành khoa hc máy tính, phương pháp hình thc là các kthut toán hc  
cho việc đặc t, phát trin và kim chng các hthng phn mm và phn cng. Cách  
tiếp cận này đặc bit quan trọng đối vi các hthng cn có tính toàn vn cao, chng  
hn hthống điều khin lò phn ng hạt nhân hay điều khin tên la, khi an toàn hay  
an ninh có vai trò quan trọng, để góp phần đảm bo rng quá trình phát trin hthng  
skhông có lỗi. Các phương pháp hình thức đặc bit hiu qutại giai đoạn đầu ca  
quá trình phát trin (ti các mc yêu cầu và đặc ththống), nhưng cũng có thể được  
sdng cho mt quá trình phát trin hoàn chnh ca mt hthng.  
2.1 Phân loại  
Các phương pháp hình thc có thể đưc sdng ti nhiu mc:  
Mc 0: Đặc thình thc có thể được thc hin và ri một chương trình được  
phát trin từ đặc tnày mt cách không hình thc. Trong nhiều trường hp, cách này  
có thlà la chn hiu qunht vmt chi phí.  
Mc 1: Sdng phát trin và kim chng hình thức để to ra một chương trình  
theo mt quy trình hình thức hơn. Ví d, có ththc hin các chng minh vcác tính  
cht hoc quá trình tinh chnh từ đặc thình thc ti một chương trình. Đây có thể là  
la chn phù hp nhất đối vi các hthng yêu cu tính toàn vn cao vi các tiêu chí  
vè an toàn và an ninh.  
Mc 2: Sdng các bchứng minh định lý (theorem prover) để thc hin các  
chng minh hình thức hoàn toàn và được kim chng bn máy móc. Vic này có thể  
đòi hi chi phí rt cao và chỉ đáng lựa chn trong thc tin nếu phí tn cho các li sai  
là cc kcao.  
Cùng vi ngnghĩa hình thc ca ngôn nglp trình, các phương pháp hình thc  
có thể đưc phân loại tương đối như sau:  
Ngnghĩa ký hiệu (Denotational semantics), trong đó ý nghĩa của mt hthng  
được biu din bng lý thuyết toán hc vmiền xác định. Lợi điểm ca những phương  
pháp này phthuc vào bn chất được hiu rõ ca các miền xác định để từ đó đem lại  
3
Chương 2: Phương pháp hình thc  
Phm Ngc Thng  
ý nghĩa cho hệ thng; các phê phán chra rng không phi hthng nào cũng có thể  
được nhìn mt cách tnhiên hoc trực quan dưới dng mt hàm s.  
Ngnghĩa hoạt động (Operational semantics), trong đó, ý nghĩa của mt hệ  
thống được biu din bng mt chuổi các hành động ca mt mô hình tính toán (giả  
thiết là) đơn giản hơn. Lợi điểm của phương pháp này là tính đơn giản ca các mô  
hình to nên strong sáng ca biu din.  
Ngnghĩa tiên đề (Axiomatic semantics), trong đó ý nghĩa của hthống được  
biu din theo các tiền điều kin (precondition) và hậu điều kiện (postcondition), đây  
lần lượt là các điều kin phải được tha mãn ti các thời điểm trước và sau khi hệ  
thng thc hin mt nhim v. Những người ng hộ phương pháp này nói đến mi  
quan hca nó với lôgic kinh điển; những người phê phán nói rng nhng ngnghĩa  
thuc dng này không thc smô txem hthng làm cái gì (chlà cái gì đúng trước  
đó và sau đó).  
2.2 Sử dụng  
2.2.1 Đặc tả hình thức  
Các phương pháp hình thc có thể được sdụng để mô tvhthng cn phát  
trin, ti bt kmức độ chi tiết nào mà ta mun. Mô thình thc này có thể được sử  
dụng để hướng dn các hoạt động phát trin tiếp theo; ngoài ra, nó có thể được sử  
dụng để kim chng xem các yêu cu cho hthống đang được phát triển đã được đặc  
tmột cách đầy đủ và chính xác hay chưa.  
Nhu cu vcác hthống đặc thình thức đã được nói đến tnhiều năm. Trong  
báo cáo ALGOL 60, John Backus đã trình bày mt hthng ký hiu hình thức để mô  
tcú pháp ngôn nglp trình (sau này được đặt tên là Backus normal form hay  
Backus-Naur form (BNF) (Dng chun tc Backus)).  
4
Chương 2: Phương pháp hình thc  
Phm Ngc Thng  
2.2.2 Phát trin  
Khi một đặc thình thức đã được phát triển xong, đặc tả đó có thể được sdng  
làm một hướng dn trong quá trình hthng thực được phát trin (nghĩa là được hin  
thc hóa trong phn mm và/hoc phn cng). Ví d:  
Nếu đặc thình thc là mt ngnghĩa hoạt động, hành vi được quan sát ca hệ  
thng thc scó thể được so sánh với hành vi trong đặc tả (chính đặc tcũng nên chy  
được hoc gilập được). Thêm vào đó, các lệnh hoạt động của đặc tcó ththích hp  
cho vic dch thng mã chạy đưc.  
Nếu đc thình thc là mt ngnghĩa tiên đề, các tiền điu kin và hậu điu kin  
của đc tcó thtrthành các khẳng định trong mã chạy đưc.  
2.2.3 Kiểm chứng  
Khi một đặc thình thức đã được phát triển, đặc tnày có thể được dùng làm cơ  
scho vic chng minh các tính cht của đc t.  
2.2.3.1 Chứng minh của con người  
Đôi khi, động cơ cho việc chứng minh tính đúng đắn ca mt hthng không  
phi là nhu cầu đảm bảo tính đúng đắn ca hthng mà là mong mun hiu rõ hơn về  
hthống. Do đó, một schứng minh được thc hiện dưới hình thc chng minh toán  
hc: viết tay hoặc đánh máy ni dung bng ngôn ngtnhiên, vi mức độ phi hình  
thức như các chứng minh toán học thông thường mà con người vn thc hin. Mt  
chng minh tt là mt chng minh mà những người khác có thể đọc được và hiu  
được. Các phê phán đối vi cách tiếp cn này nói rằng tính đa nghĩa cố hu trong ngôn  
ngtnhiên cho phép các li sai trong các chứng minh đó có thể không bphát hin;  
nhiu khi, nhng li tinh vi có thxut hin trong các chi tiết mc thấp mà thường  
không được để ý đến bi nhng chng minh thuc kiu này. Ngoài ra, vic to ra các  
chng minh tốt đòi hi trình độ toán hc cao.  
5
Chương 2: Phương pháp hình thc  
2.2.3.1 Chứng minh tự động  
Phm Ngc Thng  
Ngưc li, ngày càng có nhiều quan tâm đến các chng minh về tính đúng đắn  
ca hthng bằng các phương tiện tự động. Các kthut tự động được phân thành hai  
loi chính:  
Chứng minh định lý tự động, trong đó, khi cho trước mt mô tvhthng,  
mt tập các tiên đề lôgic và mt tp các quy tc suy lun, mt hthng scgng tự  
xây dng mt chng minh hình thc từ đu.  
Kim tra mô hình, trong đó, một hthng kiểm định các tính cht nhất định  
bng cách duyt trong btt ccác trng thái mà trong thi gian chy, hthng có thể  
vào trạng thái đó.  
Chai kthuật trên đều hoạt động mà không cần đến shtrcủa con người.  
Các bchứng minh định lý tự động thường yêu cầu định hướng xem các tính cht nào  
là đáng quan tâm; các bộ kim tra mô hình có thnhanh chóng sa ly vào vic kim tra  
hàng triu trạng thái không đáng quan tâm nếu không được cho trước mt mô hình đủ  
trừu tượng.  
Những người ng hcác hthng này cho rng các kết qucủa chúng có độ xác  
tính toán học cao hơn các chứng minh của con người, do tt ccác chi tiết bun tẻ đã  
được kiểm định mt cách có thut toán. Vic hun luyn cn thiết để có thsdng  
được các hthng này cũng ít hơn đòi hi cn thiết cho vic to ra các chng minh  
toán hc tt bng tay. Nhờ đó, các kỹ thut này có thể dùng được cho nhiều người hơn.  
Những người phê phán cho rng các hthng kiu này giống như máy sấm  
truyền: chúng đưa ra các tuyên bố vsthật nhưng lại không đưa ra giải thích nào về  
sthực đó. Còn có cvấn đề “kiểm định hkiểm định”; nếu chính chương trình tham  
gia công tác kiểm định không được chứng minh là đúng, thì có thể có lý do để nghi  
ngờ tính đúng đắn ca các kết quả đưc to ra.  
Bên cnh các phê phán ni bnói trên, còn có các phê phán dành cho các  
phương pháp hình thc. Vi tm phát trin hin nay, các chng minh về tính đúng đn,  
bng tay hoc bằng máy tính, đòi hi nhiu thời gian (và do đó cả tin bạc) để được  
to ra, vi li ích hn chế ngoài việc đảm bảo tính đúng đắn. Điều đó làm cho các  
phương pháp hình thức thường chỉ được dùng trong các lĩnh vực thu được li ích từ  
việc có được các chứng minh đó, hoặc sgp nguy him nếu có lỗi không được phát  
hin.  
6
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
Chương 3.  
Ngôn ngCafeOBJ  
3.1 Giới thiệu  
CafeOBJ [5] [13] là mt ngôn ngữ đặc tả đại số được phát trin Nht Bản dưới  
schỉ đạo ca GS Kokichi Futatsugi trong phòng thí nghim Language Design ti  
Vin khoa hc và công nghtiên tiến Nht Bn (JAIST). Chúng htrợ phương pháp  
kim chng da trên kthuật đặc tả đại số và phương pháp quy nạp nhm kim chng  
các chương trình vi min trng thái vô hn. CafeOBJ là mt ngôn ngthc thi da  
trên nhiều cơ slôgic, chyếu dựa trên các đại số ban đầu và đại số đưc suy lun.  
Các lôgic cơ bản ca CafeOBJ bao gm :  
- Lôgic được sp xếp theo tht(Order-sorted logic): mt kiu có thlà kiu  
con ca kiu khác. Ví d: stnhiên là thuc shu tỉ, nhưng chúng đảm bo tính  
cht hp llà 3 phi bng 6/2.  
- Lôgic biến đổi (Rewriting logic): Ngoài ra để bng nhau, các biu thc phi  
hp lệ tính đối xng, chúng ta có thsdng quan hbc cầu. Đặc trưng của quan hệ  
bc cu là rt thun lợi để thhiện đng thi hoc tính không xác định.  
- Các kiu n (Hidden sorts): Chúng ta có 2 loại trương đương. Một là tương  
đương cực tiu (minimal equivalence) chính là đồng nht hóa 2 về và chúng tương  
đương khi và chỉ khi chúng giống nhau thông qua các phương trình đã cho. Kiu  
tương đương khác dùng cho kiểu n, là biến đổi 2 vế là tương đương khi và chkhi  
chúng ng xử đng nht da trên bộ quan sát đã cho.  
Đặc ttrong CafeOBJ bao gm các mô đun. Mỗi mô đun trong CafeOBJ được  
định nghĩa với cú pháp module < mod_id > mod_element*, trong đó < mod_id > là tên  
của mô đun và mod_element là mt thành phn của mô đun. Một thành phn ca mô  
đun có thể được khai báo import, khai báo mt kiu (sort), khai báo toán tử  
(operation), khai báo biến, khai báo một phương trình (equation), hoc khái báo sự  
dch chuyn (transition). Các thành phn của mô đun được cu trúc trong ba phn  
chính. Phn thnht, imports chrõ các mô đun phải được khai báo trong mô đun  
hin thi, hay là stha kế các mô đun đã triển khai được khai báo trong mô đun hiện  
7
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
thi. Có ba dng ca vic tha kế các mô đun: protecting (tha kế các mô đun nhưng  
không thể thay đổi chúng), extending (tha kế các mô đun có thể mrng chúng,  
nhưng những mô tả ban đầu còn lại không được thay đổi) và using (tha kế các mô  
đun có thể mrng hoặc thay đổi smô tả ban đầu). Phn thhai, signature, khai báo  
các kiu (sorts), các kiu con (subsorts), và các toán t(operators) được sdng trông  
mô đun. Và cuối cùng, axioms bao gm skhai báo ca các biến, các phương trình  
(equations), các sdch chuyn (transitions), và các biu thc thhin hành vi ca mô  
đun.  
module EXAMPLE{  
imports {  
protecting (NAT)  
protecting (INT)  
}
signature {  
[PNat, Nat < Int]  
op 0 : -> PNat  
op s : PNat -> PNat  
op (_+_) : PNat PNat -> PNat  
}
axioms {  
vars N M : Pnat  
eq 0 + N = 0 .  
eq s(M) + N = s(M + N) .  
}
}
Hình 3.1 Mô đun EXAMPLE trong CafeOBJ.  
Để cung cp smô tmột mô đun trong CafeOBJ, chúng ta tìm hiu ví dtrong  
Hình 2.1, vi sự định nghĩa mô đun EXAMPLE như là mô tả cho stnhiên. Mô đun  
EXAMPLE tha kế các kiu (sorts) và các toán tử (operators) đã được định nghĩa  
trong hai mô đun INT và NAT. Phn signature khai báo các kiu Pnat, Nat và Int. Ký  
hiu “<” nghĩa là kiu Nat là kiu con ca kiu Int (chính là kiu stnhiên là kiu  
con ca kiu snguyên hay là kiu snguyên bao gm ckiu stnhiên). Hng s0,  
toán tử s được khai báo bi op. Hành vi ca toán tử “+” là được thc hin bi hai biu  
thức và được khai báo bi eq.  
8
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
3.2 Đặc tả và kiểm chứng trong CafeOBJ  
3.2.1 Ví dụ  
Để tìm hiu về đặc tvà kim chng trong CafeOBJ, chúng ta tìm hiu mt ví dụ  
đơn giản vsự đặc ththng stự nhiên, đặc tthuc tính cn chng minh và kim  
chng thuộc tính đó. Trong ví dụ này chúng ta chmô tmt số đặc tả cơ bn vi phép  
toán cng (“+”), phép so sánh (“=”), phép toán (“s”) tăng số tnhiên lên một đơn vị,  
và đặc tthuc tính cn kim chng chính là tính cht kết hp ca phép cng tc là:  
(X + Y) + Z = X + (Y + Z), vi X, Y, Z là stnhiên bt k(*).  
mod PNAT {  
[Nat]  
-- mô tkiu biến là stnhiên là Nat  
-- hng s0  
op 0 : -> Nat  
op s : Nat -> Nat  
-- phép toán tăng của stnhiên  
op _+_ : Nat Nat -> Nat  
-- phép toán cng trong stnhiên  
-- phép so sánh 2 stnhiên  
-- các biến dùng để đặc tả  
op _=_ : Nat Nat -> Bool {comm}  
vars X Y : Nat  
-- biu din quan hca phép toán “+”  
eq 0 + Y = Y .  
eq s(X) + Y = s(X + Y) .  
-- biu din quan hca phép toán “=”  
eq (X = X) = true .  
eq (0 = s(Y)) = false .  
eq (s(X) = s(Y)) = (X = Y) .  
}
Hình 3.2: Đặc tca module PNAT cho ví d.  
9
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
3.2.2 Đặc tả số tự nhiên  
Như đã trình bày phn trên (mc 3.2.1), tmô tvstnhiên vi ba phép  
toán cơ bản, và các thuc tính ca nó. Chúng ta tiến hành đặc tbài toán bằng mô đun  
PNAT trong CafeOBJ như trong Hình 3.2. Đặc tả này định nghĩa các toán tử cn thiết  
và các quan hgia chúng cho ví d.  
Trong đặc tnày, khai báo stnhiên kiu [Nat], hng số 0, các phép toán tăng  
“s”, phép toán cng “+”, phép so sánh “=”, được khai báo sau tkhóa op, cùng vi các  
phương trình biu din quan hgia chúng được khai báo sau tkhóa eq.  
3.2.3 Đặc tả thuộc tính  
Với đặc ththống PNAT như trên (Hình 3.2), chúng ta cần đặc tthuc tính  
cn kim chng (điều kin (*)) như trong hình 3.3. Trong đó x, y, z là các hằng stự  
nhiên bt k, hàm bt biến inv nhm kiểm tra tính đúng đắn ca thuc tính (tha mãn  
điều kin (*)).  
mod INV {  
pr(PNAT)  
ops x y z : -> Nat .  
op inv : Nat Nat Nat -> Bool  
vars X Y Z : Nat  
-- điều cn chng minh  
eq inv(X,Y,Z) = ((X + Y) + Z = X + (Y + Z)) .  
}
Hình 3.3: Đặc tthuộc tính cho điều kin (*).  
3.2.4 Kiểm chứng thuộc tính  
Như đã biết trong phn này chúng ta cn phi kim chng thuc tính hay chng  
minh điều kin (*) tha mãn vi mi stnhiên bt k. Nghĩa là chúng ta cn phi  
kim chứng đặc ththng PNAT (Hình 3.2) tha mãn với đặc tthuc tính INV  
(Hình 3.3) hay sau khi thc hiện chương trình hàm inv(x, y, z) trvgiá tr“true” vi  
mi x, y, z thuc stnhiên. Với tư tưởng kim chng quy np nhm kim chng tín  
10  
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
đúng đắn của đặc tthuc tính tha mãn vi mi stnhiên. Chúng ta to thêm mô  
đun ISTEP (Hình 3.4) vi hàm istep nhm kim chứng cho trường hp tng quát.  
mod ISTEP{  
pr(INV)  
vars X Y Z : Nat  
op istep : Nat Nat Nat -> Bool  
eq istep(X, Y, Z) = inv(X, Y, Z) implies inv(s(X), Y, Z) .  
}
Hình 3.4: Kim chng quy np vi module ISTEP.  
--> Trường hợp cơ svi x = 0  
open INV  
-- Kim tra  
red inv(0,y,z) .  
close  
--> Trường hp tng quát là chúng ta mun chng minh rng:  
-- gisinv(x,y,z) = true thì inv(s(x),y,z) = true  
-- nghĩa là gisử đặc tả đúng với x bây gichúng ta chcn  
-- chứng minh nó đúng với s(x) là được ).  
open ISTEP  
-- Kim tra  
red istep(x,y,z) .  
close  
Hình 3.5: Kim chng quy nạp cho đặc t.  
Với tư tưởng kim chng bằng phương pháp quy nạp đó, trong CafeOBJ cũng hỗ  
trrt mnh msẽ được đcp phần sau. Được xem như là một tư tưởng ni bt ca  
vic kim chng phn mm và kim thphn mm. Nhờ phương pháp quy nạp này  
mà vic kim chng các thuc tính ca hthng vi không gian trng thái vô hạn đưc  
thc hin mt cách rõ ràng. Nhằm đảm bo phn mm không có li. Và trong Hình 3.5  
chúng ta thấy được skim chứng qua hai trường hợp đó là trường hợp cơ sở và  
trường hp tng quát. Sau Khi thc hiện chương trình như Hình 3.5 trong CafeOBJ, hệ  
11  
Chương 3: Ngôn ngữ CafeOBJ  
Phm Ngc Thng  
thống CafeOBJ đều trvkết qutrue” trong cả hai trường hợp đó. Nghĩa là hệ  
thống đã được kim chng tha mãn với điều kin (*).  
12  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
Chương4  
Khái quát về OTS và bài toán QLOCK  
4.1 Giới thiệu về OTS  
Chúng ta sdụng OTS/CafeOBJ để mô hình hóa hthng vi kthuật đại s,  
việc đặc tvà kim chng ca các hthng mt cách rõ nét hơn. Trong phần này,  
chung ta smô tả cách đviết đc thình thc ca mt shthng vi sthhin ca  
OTS/CafeOBJ.  
Ưu đim của phương thức này:  
-
-
-
Trình bày mt mô hình hình thức để mththống, trong đó chú trọng đến  
các quan sát (observers) cũng như các hành động trong OTS,  
Phương thức OTS/CafeOBJ cung cp mt mô hình ngnghĩa và framework  
chung cho mt shthng phc tp,  
Đối vi vic kim chng hình thc mt shthng bi bchng minh cũng  
được cung cp bởi phương thức OTS/CafeOBJ.  
Trong chương 3 trình bày về đặc tvà kim chng trong CafeOBJ vi hthng  
đơn giản, trong khi thc tế có nhiu hthng phc tp vi schuyn đổi trng thái ca  
hthng khi có một hành vi nào đó tác động vào hthống đó. Chúng ta khó để biu  
din hthống theo cách thông thường trong CafeOBJ. Vì vy vi hthng biến đổi  
trng thái trc quan (OTS) là mt mô hình toán hc sẽ được định nghĩa trong phn sau  
sgiúp chúng ta có thtrc quan hóa và dbiu diễn các đặc tvà kim chng hệ  
thng mộ cách chính xác và đơn giản hơn.  
13  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
4.2 OTS (Observation transition system)  
Chúng ta giả định rng tn ti mt không gian trng thái gi là Y. Khi chúng ta  
mô tmt hthng, hthng về cơ bản được mô hình hóa bng cách quan sát các số  
lượng chliên quan đến hthng và quan tâm ti chúng tbên ngoài ca mi trng  
thái trong Y.  
Mt OTS S = <O, I, T> bao gm:  
-
O: Tp hp các quan sát. Mi quan sát o O là mt hàm o : Y D ánh xạ  
ti tng trng thái υ Y vào mt skiu giá trD (D có thkhác nhau cho  
mi quan sát). Giá trtrvbi mt quan sát (trong mt trạng thái) được gi  
là giá trca các quan sát (trong trng thái).  
Vi mt OTS S và hai trng thái υ1, υ2 Y, sbình đẳng gia hai trng  
thái, ký hiu là υ1=S υ2, đối với S được đnh nghĩa như sau:  
υ1=S υ2 iff o O.o(υ1) = o(υ2),  
Vi ‘=’ trong o(υ1) = o(υ2) phải được xác định rõ phm vi ca mi o O.  
-
-
I: Các điều kiện ban đầu: Điều kiện này xác định giá trị ban đầu ca mi  
quan sát, nó xác định trạng thái ban đầu ca OTS.  
T: Bquy tc chuyển đổi có điều kin. Mi quy tc chuyển đổi τ T là  
mt quan hgia các trng thái với điều kiện, đối vi mi trng thái υ Y,  
tn ti mt trng thái, υY, gi là mt trng thái tiếp sau ca υ, sao cho  
τ(υ, υ'), cho mi trng thái υ1, υ2, υ1, υ2Y sao cho υ1=S υ2, τ(υ1, υ1') và  
τ(υ2, υ2'), υ1’=S υ2'. τ có thể được coi là một hàm tương đương với Y đối vi  
=S. Vì vy, τ(υ) được gi là trng thái tiếp sau ca υ đi vi τ.  
Các điều kin cτ cho mt quy tc chuyển đi τ T được gọi là điều kin có hiu  
qu. Vi mt trng thái, giá trchân lý ca nó có thể được xác định bi chcác giá trị  
ca các quan sát trong trng thái. Các vtca loại này được gi là các vttrng thái.  
Cho mt trng thái υ Y, cτ là đúng (true) trong υ, cthτ là hiu qutrong υ,  
khi và chkhi υ # S τ(υ).  
Nhiều quan sát tương tự hoc các quy tc chuyển đổi có thể được lp chmc.  
Nói chung, các quan sát và các quy tc chuyển đổi được biu diễn băng oi1 ….im τj1  
14  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
jm, tương ứng, với điều kin m, n >= 0 và chúng ta giả định rng tn ti các kiu dữ  
liu Dk sao cho k Dk (k = i1,..., im, j1,..., jn). Ví d, mt mng snguyên a shu bi  
mt tiến trình p có thbiu hin bng mt quan sát ap, và sự tăng của các phn tthi  
ca mng có thbiu din bng mt quy tc chuyển đi incap,i.  
Vi mt OTS, Trong khóa luận này chúng ta quan tâm đến thuc tính an toàn  
(safety property) được định nghĩa như sau: một vngp: Y {true, false} là mt  
thuộc tính an toàn đối vi S khi và chkhi p là mt trng thái vtvà p(υ) đúng cho  
mi υ Υ.  
Nếu chúng ta chng minh rng mt OTS có thuộc tính an toàn p, theo phương  
pháp quy nạp đưc sdng chyếu sau đây:  
-
Trưng hợp cơ sở: Đối vi bt ktrng thái υ Υ trong đó mỗi quan sát o  
O tha mãn I, chúng ta thy rằng p(υ) đúng.  
-
Bước quy np: Vi bt ktrạng thái đạt được υ Υ sao cho p(υ) đúng,  
chúng ta cho rằng, đối vi bt kquy tc chuyển đổi τ T, p(τ(υ)) cũng  
đúng.  
Một OTS S được mô ttrong CafeOBJ. Không gian trạng thái Y được biu thlà  
mt kiu n (hidden sort) Sys, bng cách khai báo *[Sys]*.  
Quan sát oi1, …, im O được biu thlà toán tquan sát trong CafeOBJ. Chúng ta  
giả định rng các kiu dliu Dk(k = i1,..., im) và D được mô tả trong đại số ban đầu và  
có tn ti các kiu n Sk(k = i1,..., im) và S tương ứng vi các kiu dliu. Các toán tử  
quan sát CafeOBJ biu thoi1, …, im được khai báo như sau:  
bop o : Sys Si1 .... Sim -> S  
Các điều kiện ban đầu I, giá trca tng quan sát trong bt ktrạng thái ban đầu,  
được mô tbng cách khai báo mt hng s(mt toán tkhông có bt kỳ đối snào)  
biu din bt ktrạng thái ban đầu và xác định giá trca mi quan sát trong trng thái  
với các phương trình. Trước tiên, các hng init biu din bt ktrạng thái ban đầu  
được khai báo như sau:  
op init: -> Sys  
Gisrng giá trị ban đầu ca oi1, …, im là f(i1, …, im), điều này có thể đưc mô tả  
trong CafeOBJ như sau:  
15  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
eq o(init, Xi1, …, Xim) = f(Xi1, …, Xim) .  
Vi Xk (k = i1,..., im) là mt biến trong CafeOBJ vi Sk, và f(Xi1, …, Xim) có  
nghĩa là mt hng t(bao gm Xi1,..., Xim) tương ứng vi f(i1, …, im).  
Mt nguyên tc chuyển đi τj1, ...,jn T được biu din bi mt toán tử hành động  
trong CafeOBJ. Chúng ta giả định rng các kiu dliu Dk (k = j1, ...,jn) được mô tả  
trong đại số ban đầu và có tn ti các kiu n Sk (k = j1,...,jn) tương ứng vi các kiu dữ  
liu. Các toán tử hành động trong CafeOBJ biu din τj1, …., jn được khai báo như sau:  
bop a : Sys Sj1 ... Sjn -> Sys  
Nếu τj1,...,jn được thc hin trong mt trng thái mà nó có hiu qu, giá trca oi1,  
…, im có thể thay đổi, nó có thể đưc mô tả trong CaifeOBJ nói chung như sau:  
ceq o(a (S, Xj1, ..., Xjn), Xi1, ..., Xim)  
= e-a(S, Xj1, ..., Xjn, Xi1, ..., Xim) if c-a (S, Xj1, ..., Xjn) .  
Vi e-a(S, Xj1, ..., Xjn, Xi1, ..., Xim) có nghĩa là mt hng t(bao gm S, Xj1,...,  
Xjn, Xi1,..., Xim) tương ứng vi giá trca oi1, …, im, trong trng thái kế tiếp sau, và c-a  
(S, Xj1, ..., Xjn) có nghĩa là mt hng t(bao gm S, Xj1,..., Xjn) tương ứng vi j1,..., jn  
.
Nếu τj1,...,jn được thc hin trong mt trng thái mà trong đó nó không hiệu qu,  
thì giá trca bt kỳ quan sát là không thay đổi. Tuy nhiên, tt cchúng ta cn khai  
báo phương trình sau:  
ceq a(S, Xj1, ..., Xjn) = S if not c-a (S, Xj1, ..., Xjn) .  
Nếu giá trca oi1, …, im không bị ảnh hưởng bng cách thc hin τj1,...,jn trng  
thái bt k(bt kgiá trchân lý ca j1,...,jn), phương trình sau đây được khai báo:  
eq o (a (S, Xj1 ... Xjn), Xi1 ... Xim) = o (S, Xi1, ..., Xim) .  
16  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
4.3 Mô tả bài toán QLOCK  
Ta thy rng nhiu tiến trình (agents or processes) tranh quyn sdng mt tài  
nguyên, nhưng tại mt thời điểm chcó duy nht mt tiến trình có thsdng tài  
nguyên. Vì thế mà tt ccác tiến trình phi tuân theo giao thức độc quyn truy xut  
(mutual exclusion protocol) trong vic sdng tài nguyên. Trong đó QLOCK là mt  
hthng sdng giao thức độc quyn truy xut vi mt hàng đi (Queue) dùng chung  
cho tt ccác tiến trình (processes) tha mãn các yêu cu sau:  
Độc quyn truy xut: Nếu tiến trình Pi đang trong miền găng (critical section)  
thì không tiến trình nào được sdng miền găng.  
Tiến trình: Nếu không có tiến trình nào trong miền găng và có mt stiến  
trình mun vào min gng thì mt tiến trình nào đó phải được vào miền găng.  
Trạng thái ban đầu: Mi tiến trình miền dư, và hàng đợi là rng.  
4.4 Đặc tả QLOCK với OTS  
Có thvn tt bài toán QLOCK dưới dng thut toán (Hình 4.1) trong đó:  
- Queue là hàng đợi chứa các định danh (i) ca các tiến trình và được khi to  
rng.  
- Mi tiến trình được khi to vi nhãn ban đầu là l1.  
- put, top, get là các phương thức của hàng đợi (Queue).  
Loop:  
l1: put(Queue, i)  
l2: repeat until top(Queue) = i  
Critical section  
cs: get(Queue)  
Hình 4.1: Thut toán ca bài toán QLOCK.  
Chúng ta sto hàng đợi QUEUE vi kiu khai báo tng quát (generic):  
17  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
Để khai báo hàng đợi tổng quát và định nghĩa cho phương thức “top” trong  
QUEUE trước hết chúng ta tạo 2 mô đun (Hình 4.2) trong đó:  
Mô đun EQTRIV thể hin các phần tư khai báo tng quát và mô đun OPTION  
nhm tiền đnh nghĩa cho phương thức “top” trong QUEUE. Khi một hàng đợi rng thì  
phương thức “top” strvhng snone ngưc li strvề some(E) (Trong đó E  
chính là phn tử ở đỉnh hàng đợi).  
mod* EQTRIV{  
[Elt]  
op _=_ : Elt Elt -> Bool {comm}  
}
mod! OPTION(X :: EQTRIV){  
[Option]  
op none : -> Option  
op some : Elt.X -> Option  
op val : Option -> Elt.X  
op _=_ : Option Opton -> Bool {comm}  
var O : Option  
vars E E’ : Elt.X  
eq val(some(E)) = E .  
eq (O = O) = true .  
eq (none = some(E)) = false .  
}
Hình 4.2: Kiu biến tổng quát cho hàng đợi QUEUE.  
Trong bài toán QLOCK chúng ta phi sdng một hàng đợi để thc hiện phương  
thức độc quyn truy xut cho chthng. Vic to ra một hàng đợi vi các thuc tính  
và phương thức cơ bản ca một hàng đợi như chúng ta đã biết, gồm các phương thức  
put đưa một thành phần vào hàng đợi, phương thức get xóa mt thành phn ra khi  
hàng đi và top ly ra mt thành phần trên đỉnh của hàng đợi. Các thuc tính và nhng  
phương thức cơ bản đó được định nghĩa trong CafeOBJ như Hình 4.3. Mô đun  
QUEUE chính là đặc tả cho hàng đợi trong hthng QLOCK.  
18  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
mod! QUEUE(D :: EQTRIV) {  
pr(OPTION(X <= D)  
[Queue]  
-- Khai báo kiu Queue  
-- Hng srng  
op empty : -> Queue  
op _,_ : Elt.D Queue -> Queue -- Ni mt phn tvào Queue  
op put : Queue Elt.D -> Queue -- hàm put  
op get: Queue -> Queue  
op top : Queu -> Option  
-- hàm get  
-- hàm top  
var Q : Queue  
vars X Y : Elt.D  
eq put (empty, X) = X , empty .  
eq put((Y,Q),X) = Y , put(Q,X) .  
eq get(empty) = empty .  
eq get((X,Q)) = Q .  
eq top(empty) = none .  
eq top((X,Q)) = some(X) .  
eq empty?(empty) = true . --empty? là kiu ngoi lca empty[1]  
eq empty?((X,Q)) = false .  
}
Hình 4.3: Hàng đợi QUEUE cho bài toán QLOCK.  
QLOCK sẽ được đặc tả như một OTS vi các thành phn:  
- Hai hàm queue và pc  
o queue(s) trvề hàng đợi các định danh ca tiến trình trang thái s  
o pc(s,i) trvnhãn (l1, l2 hay cs) ca tiến trình i trng thái s.  
- Khi to vi trạng thái ban đầu (init)  
o queue(init) trvempty  
o pc(init, i) trvnhãn l1 vi mi tiến trình i.  
- Với 3 hành động want, try, exit  
o want(s,i) đưa về trng thái tiếp theo sau khi thc hin tiến trình i vi  
nhãn l1 trng thái s.  
o try(s,i) đưa về trng thái tiếp theo sau khi thc hin lp li tiến trình i  
vi nhn l2 trng thái s. Nếu i có nhn l2 và top(queue(s) là i, thì  
nhn ca i trng thái tiếp theo slà cs.  
19  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
o exit(s,i) đưa về trng thái tiếp theo sau khi thc hin tiến trình i vi  
nhãn cs trng thái s.  
- Chúng ta sđặc t(signature) hthng như hình 4.4.  
*[Sys]*  
-- trng thái ban đầu  
op init : -> Sys  
-- các hàm  
bop pc : Sys Pid -> Label  
bop queue : Sys -> Queue  
-- các hành động  
bop want : Sys Pid -> Sys  
bop try : Sys Pid -> Sys  
bop exit : Sys Pid -> Sys  
Hình 4.4: Đặc t(signature) cho hthng QLOCK.  
- Phương trình được định nghĩa cho hành đng try như hình 4.5.  
-- Điều kin xy ra try  
op c-try : Sys Pid -> Bool {strat: (0 1 2)}  
eq c-try(S,I) = (pc(S,I) = l2 and top(queue(S)) = some(I) ) .  
-- Thc hin chuyn tiếp trng thái  
ceq pc(try(S,I),J) = (if I = J then cs else pc(S,J) fi)  
if c-try(S,I) .  
Hình 4.5: Hành động try trong hthng QLOCK.  
- Các phương trình định nghĩa cho các hành động khác hoàn toàn tương tự  
20  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
4.5 Đặc tả thuộc tính và kiểm chứng đặc tả  
Chúng ta stạo ra 2 mô đun INV và ISTEP (Hình 4.6) sdụng để kim chng  
tính cht độc quyn truy xut của đc tả được nêu như trên:  
mod INV{  
pr(QLOCK)  
ops i j : -> Pid  
op inv1 : Sys Pid Pid -> Bool  
var S : Sys vars I J : Pid  
-- sdụng để chứng minh cho trường hp cthể  
eq inv1 (S,I,J) = (pc(S,I) = cs and pc(S,J) = cs implies I = J) .  
}
mod ISTEP{  
ops s s’ : -> Sys  
op istep1 : Pid Pid -> Bool  
vars I J : Pid  
-- sdụng để chứng minh cho trường hp tng quát  
eq istep1(I,J) = inv1(s,I,J) implies inv1(s’,I,J) .  
}
Hình 4.6: Mô đun INV và ISTEP dùng để kim chng.  
Vi mi tiến trình bt kk chúng ta schng minh tính độc quyn truy xut có  
tha mãn với 3 hành động want, try exit, Trong khóa lun này chtrình bày kim  
chng vtry còn want exit hoàn toàn tương tự.  
- Vi tiến trình k bt ksẽ có 4 trường hp xy ra so vi i và j (i và j là hai tiến  
trình được khai báo trên):  
o Trưng hp k = i, k = j (1)  
o Trưng hp k # i, k# j (2)  
o Trưng hp k = i, k # j (3)  
o Trưng hp k # i, k # j (4)  
- Với trường hp (1) chúng ta skim chứng như hình 4.7:  
21  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
open ISTEP  
op k : -> Pid .  
-- Điều kin ca try  
eq pc(s,k) = l2 .  
eq top(queue(s)) = some(k) .  
-- trưng hp I = k và j = k  
eq i = k .  
eq j = k .  
-- trng thái chuyn tiếp  
eq s’ = try(s,k) .  
-- kim chứng tính đúng đắn  
red istep1(i, j) .  
close  
Hình 4.7: Kim chng với trường hp (1).  
Sau khi thc hiện như trên (Hình 4.7) kết qutrvtrue, vậy trường hp này  
tha mãn.  
- Với trường hp (2) chúng ta skim chứng như hình 4.8.  
open ISTEP  
op k : -> Pid .  
-- Điều kin ca try  
eq pc(s,k) = l2 .  
eq top(queue(s)) = some(k) .  
-- trưng hp I = k và j # k  
eq i = k .  
eq (j = k) = false .  
-- trng thái chuyn tiếp  
eq s’ = try(s,k) .  
-- kim chứng tính đúng đắn  
red istep1(i, j) .  
close  
Hình 4.8: Kim chng với trường hp (2).  
22  
Chương 4: Khái quát vOTS và bài toán QLOCK  
Phm Ngc Thng  
o Sau khi thc hin (Hình 3.8) strv(pc(s,j) = cs) xor true. Chúng  
ta thy có hai trường hp xy ra:  
. pc(s,j) = cs là true.  
. pc(s,j) = cs là false.  
o Nếu như pc(s,j) = cs là true thì skhông tha mãn vi bài toán, chúng  
ta thy mt bổ đề đúng đắn:  
. eq inv2(S,I) = (pc(S,I) = cs implies top(queue(S)) = some(I)) .  
. Vi bổ đề này thêm vào tính cht bt biến ca module INV  
(Hình 3.6). Kim chng lại tính đúng đn:  
-- Kim chng li vi bổ đề  
red inv2(s, j) implies istep1(i, j) .  
Hình 4.9: Kim chng vi bổ đề.  
Trvgiá trtrue, mt khác vi bổ đề trên thì inv2(s, j) = true từ đó chúng ta  
suy ra được rng istep1(i, j) = true vy tha mãn.  
- Với trường hợp (3) hoàn toàn tương tự trường hp (2) chúng ta có tha mãn.  
- Với trường hợp (4) hoàn toàn tương tự trường hp (1) chúng ta có tha mãn.  
Vậy đặc tả đã được kim chng tha mãn điều kiện bài toán đã cho.  
23  

Tải về để xem bản đầy đủ

pdf 50 trang yennguyen 14/05/2025 140
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Đặc tả và kiểm chứng phần mềm sử dụng CafeOBJ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_dac_ta_va_kiem_chung_phan_mem_su_dung_cafeobj.pdf