Đặc t hệ th ng thang máy bao g m hai m un: m un ặc t thang máy (controller) v m un ặc t tr ng thái cửa thang máy (door). Cửa thang
close open Close[i] Open[i] Close[i] Open[i] 1 2 3 up up up down down down
máy có hai tr ng thái là: open, close. Thang máy ho t ộng từ t ng một ến t ng ba, khi di chuyển ến vị trí các t ng thì cử t ng ng sẽ c mở ra.
4.2.2. Mô hình và kiểm duyệt hệ thống thang máy trong SAL 4.2.2.1Mô hình hóa
un ặ t th ng m y (controller)
4.2.2.2Kiểm duyệt các tính chất
Kiểm uyệt tính h t s u hệ th ng th ng m y
ỗi ử lu n từ tr ng th i close v u i ùng l tr ng th i open.
u n ử ở tr ng th i close
Sử ng ộ kiểm uyệt s l-sm ể kiểm uyệt tính h t: Tính ch t th1 c ch ng minh (proved).
Tính h t th2 h ng minh (proved)
Tính h t th3 h ng minh (proved)
Chương 5. K T LUẬN
Kiểm duyệt mô hình là một k th t kiểm duyệt t ộng các hệ th ng h u h n tr ng th i ể m b o hệ th ng th m n c yêu c u ng ời dùng.
Sau một thời gi n nghi n u v t m hiểu lu n v n t kết qu nh s u: ọ vi n t m hiểu kiến th n nh t về kiểm duyệt mô hình o g m: kh i niệm n về kiểm duyệt ph n mềm tiến tr nh th hiện kiểm duyệt o g m nh ng gi i o n n o ng việ n th hiện trong qu tr nh kiểm duyệt.
Ngoài ra, lu n v n n t p trung tìm hiểu công c SAL r một s kinh nghiệm sử d ng công c SAL Từ r ặ tr ng n c SA l “Kiểm chứng các hành vi có độ dài nhỏ hơn hoặc bằng k”.
u i ùng p ng nh ng kiến th t m hiểu trong giới h n lu n v n họ vi n viết h ng tr nh th nghiệm ể thử nghiệm ph ng ph p kh o s t ở tr n ho i to n thể Bài to n “Hệ thống công tác đèn”, “Thang máy đơn giản” c mô hình và và kiểm duyệt các tính ch t thông qua công c SAL.
Trong t ng l i lu n v n sẽ tiếp t ph t triển theo h ớng kiểm uyệt m h nh tr n công c SAL ng thời thể p ng nh ng t m hiểu nghi n u v o nh ng i to n th tiễn hiện nay.
TÀI LIỆU THAM KHẢO TI NG ANH
[1] Christel Baier Joost-Pieter Katoen (2008), Principles of Model Checking, MIT Press,Printed and bound in the United States of America, pp.19-26, 35-55, 89 -99, 151-152, 159-167, 170 -180, 188-193, 229-233.
[2] iu Y ng ( 9) “ OD K O URR T A D R A - T SYST S: T PAT APPROA ” A thesis submitted for the degree of doctor of philosophy department of computer science national university of Singapore, pp.20-22.
[3] Saddek Bensalem, Vijay Ganesh, Yassine Lakhnech, Cesar Munoz, Sam Owre, Harald Rueß, John Rushby, Vlad Rusu, Hassen Saidi, N. Shankar, Eli Singerm n Ashish Tiw ri ( ) “An Overview of SA ” LFM 2000: Fifth NASA Langley Formal Methods Workshop, Williamsburg, pp.5-6.
[4] ee Pike ( 7) ” o el he king for the Pr ti l Verifi tionist”
Automated Formal Methods(AFM07), pp.1-2, 4-5.
[5] Leonardo de Moura, Sam Owre, N. Shankar (2003), The SAL Language Manual. (Rev.2), SRI International, Computer Science Laboratory, 333 Ravenswood Avenue, Menlo Park, pp.5-23.
[6] Leonardo de Moura (2004), SAL: Tutorial. Computer Science Laboratory, SRI International, Computer Science Laboratory, 333 Ravenswood Avenue, Menlo Park, pp.3-4, 6-10.
[7] S. Owre, N. Shankar, J. M. Rushby, D. W. J. Stringer - Calvert (November 2001), PVS Language Reference, Version 2.4, SRI International, Computer Science Laboratory, 333 Ravenswood Avenue, Menlo Park, pp.11-17, 37-42.
PHỤ LỤC 1. Hệ thống đèn cầu thang trong SAL (Light.sal)
light: context = BEGIN
Signal: type = {off, low, high}; CState: type = [0 .. 2];
StateBtn: type = {up, down}; switch: module = BEGIN INPUT isState : BOOLEAN OUTPUT ctrLamp : StateBtn INITIALIZATION ctrLamp = down; TRANSITION [
(isState) --> ctrLamp' = up; [] else --> ctrLamp' = down; ] END; lamp : module = BEGIN INPUT tick : StateBtn OUTPUT light : Signal LOCAL
status: CState INITIALIZATION
status = 0; DEFINITION
light = if (status = 0) then off elsif (status = 1) then low else high endif;
TRANSITION [
((status = 0) AND (tick = up))--> status' = 1; [] ((status = 1) AND (tick = up)) --> status' = 2; [] ((status = 2) AND (tick = up)) --> status' = 2; [] ((status = 0) AND (tick = down)) --> status' = 0; [] ((status = 1) AND (tick = down)) --> status' = 0; [] ((status = 2) AND (tick = down)) --> status' = 1; ]
END;
system: MODULE = switch [] lamp;
th1: theorem system |- G(NOT((light = high) AND U((light /= low),(light = off))));
2. Hệ thống thang máy trong SAL (ele.sal)
ele: context = BEGIN
N: NATURAL = 3; index: TYPE = [1..N];
mType: type = {close, open}; controller: MODULE = BEGIN LOCAL onFloor: index OUTPUT openclosedoor: mType GLOBAL process : index INITIALIZATION
onFloor = 1; openclosedoor = close; TRANSITION [
onFloor /= 3 AND openclosedoor = close
--> onFloor' = onFloor + 1; openclosedoor' = open; process' = onFloor
[]onFloor /= 1 AND openclosedoor = close
--> onFloor' = onFloor - 1; openclosedoor' = open; process' = onFloor
] END;
door[i: index]: MODULE = BEGIN INPUT openclosedoor : mType, process : index LOCAL arrDoorisopen : mType INITIALIZATION arrDoorisopen = close; TRANSITION [
(openclosedoor = open) AND (i = process) AND arrDoorisopen = close --> arrDoorisopen' = open
[]else --> arrDoorisopen' = close ]
END;
system: MODULE = controller [] ([] (i: index): door[i]);
th1: THEOREM system |- G(arrDoorisopen[1] = close => F(NOT (arrDoorisopen[1] /= close)));
th2: THEOREM system |- G(arrDoorisopen[2] = close => F(NOT (arrDoorisopen[2] /= close)));
th3: THEOREM system |- G(arrDoorisopen[3] = close => F(NOT (arrDoorisopen[3] /= close)));
th4: THEOREM system |- G(forall(i, j: index): i /= j => arrDoorisopen[i] /= open or arrDoorisopen[j] /= open);