Luận văn Kiểm tra mô hình phần mềm sử dụng lý thuyết Ôtômat buchi và logic thời gian tuyến tính

BGIÁO DC VÀ ĐÀO TO  
TRƯỜNG ĐẠI HC BÁCH KHOA HÀ NI  
-------------------------------  
LUN VĂN THC SKHOA HC  
KIM TRA MÔ HÌNH PHN MM  
SDNG LÝ THUYT ÔTÔMAT BUCHI  
VÀ LOGIC THI GIAN TUYN TÍNH  
NGÀNH: CÔNG NGHTHÔNG TIN  
MÃ S:  
PHM THTHÁI NINH  
Người hướng dn khoa hc: TS. HUNH QUYT THNG  
HÀ NI 2006  
1
LI CM ƠN  
Trước hết tôi xin gi li cm ơn đặc bit nht ti Thy TS Hunh  
Quyết Thng, người đã định hướng đề tài và tn tình hướng dn chbo tôi  
trong sut quá trình thc hin bn lun văn cao hc này, tnhng ý tưởng  
trong đề cương nghiên cu, phương pháp gii quyết vn đề cho đến nhng  
ln kim tra cui cùng để hoàn tt bn lun văn.  
Tôi xin chân thành bày tlòng biết ơn sâu sc ti Trung tâm Đào to  
Sau đại hc và các thy cô giáo trong khoa Công nghthông tin, trường  
Đại hc Bách Khoa Hà Ni đã cho tôi nhiu kiến thc quý báu vcác vn  
đề hin đại ca ngành công nghthông tin, cho tôi mt môi trường tp th,  
mt khong thi gian hc cao hc tuy ngn ngi nhưng khó quên trong  
cuc đời.  
Tôi xin bày tlòng cm ơn chân thành ti tt ccác bn bè, các đồng  
nghip đã động viên tôi trong sut thi gian thc hin bn lun văn này.  
Cui cùng tôi xin dành mt tình cm biết ơn sâu nng ti B, Mvà  
gia đình, nhng người đã luôn luôn bên cnh tôi trong mi nơi, mi lúc  
trong sut quá trình làm bn lun văn cao hc này cũng như trong sut  
cuc đời tôi.  
Hà ni, tháng 11 năm 2006  
Tác giả  
Phm ThThái Ninh  
2
LI CAM ĐOAN  
Tôi xin cam đoan đây là công trình nghiên cu ca riêng tôi. Các kết qunêu  
trong bn lun văn này là trung thc và chưa tng được ai công btrong bt  
ccông trình nào khác.  
TÁC GILUN VĂN  
PHM THTHÁI NINH  
3
MC LC  
LI CM ƠN ................................................................................................... 1  
LI CAM ĐOAN ............................................................................................. 2  
MC LC......................................................................................................... 3  
DANH MC CÁC TVIT TT .................................................................. 6  
DANH MC CÁC HÌNH V, ĐỒ TH........................................................... 7  
LI MỞ ĐẦU ................................................................................................... 8  
CHƯƠNG I: TNG QUAN VKIM TRA MÔ HÌNH PHN MM ....... 12  
1.1 Lch sphát trin .................................................................................. 12  
1.2 Kim tra mô hình phn mm................................................................. 15  
1.2.1 Khái nim kim tra mô hình ........................................................ 15  
1.2.2 Kim tra mô hình phn mm ......................................................... 15  
1.3 Phân loi hướng tiếp cn kim tra mô hình phn mm ........................ 19  
1.3.1 Cách tiếp cn động......................................................................... 19  
1.3.2 Cách tiếp cn tĩnh........................................................................... 19  
1.3.4 Kết hp gia hai cách tiếp cn tĩnh và động.................................. 19  
1.4 Kim tra mô hình phn mm cổ đin và hin đại ................................. 20  
1.5 Kết lun chương.................................................................................... 22  
CHƯƠNG 2: CÁC KTHUT KIM TRA MÔ HÌNH PHN MM ....... 23  
2.1 Gii thiu............................................................................................... 23  
2.2 Phương pháp ký hiu biu din ............................................................ 25  
2.3 Phương pháp duyt nhanh..................................................................... 28  
2.4 Phương pháp rút gn............................................................................. 30  
2.4.1 Rút gn bc tng phn ................................................................... 30  
2.4.2 Ti thiu hoá kết cu...................................................................... 32  
2.4.3 Tru tượng hoá............................................................................... 33  
2.5 Kthut xác thc kết cu...................................................................... 35  
2.6 Kết lun chương.................................................................................... 36  
CHƯƠNG 3: KTHUT KIM TRA MÔ HÌNH PHN MM SDNG  
LÝ THUYT LOGIC THI GIAN TUYN TÍNH VÀ ÔTÔMAT BUCHI 37  
3.1 Bài toán kim tra mô hình phn mm................................................... 37  
4
3.2 Mô hình hoá hthng phn mm.......................................................... 38  
3.2.1 Vn đề đặt ra .................................................................................. 38  
3.2.2. Hthng đánh nhãn dch chuyn.................................................. 39  
3.2.2.1 Các định nghĩa......................................................................... 39  
3.2.2.2 Áp dng mô hình hoá chương trình........................................ 40  
3.3 Đặc thình thc các thuc tính ca hthng ....................................... 43  
3.3.1. Vn đề đặt ra ................................................................................. 43  
3.3.2. Logic thi gian .............................................................................. 44  
3.3.3. Logic thi gian tuyến tính (Linear Temporal Logic - LTL)......... 44  
3.3.3.1 Thuc tính trng thái............................................................... 45  
3.3.3.2. Cú pháp LTL.......................................................................... 46  
3.3.3.3. Ngnghĩa ca LTL................................................................ 46  
3.3.4 Logic thi gian nhánh (Branching Temporal Logic - BTL).......... 50  
3.4 Ôtômat đoán nhn các xâu vô hn ....................................................... 51  
3.4.1 Mt skhái nim ôtômat cổ đin:.................................................. 51  
3.4.2 Ôtômat Buchi ................................................................................. 53  
3.5 Chuyn đổi tLTL sang Ôtômat Buchi............................................... 55  
3.5.1 Tng quan....................................................................................... 55  
3.5.2 Chun hoá vdng LTL chun...................................................... 56  
3.5.3 Biu thc con ................................................................................. 56  
3.5.4 Chuyn đổi tLTL sang Ôtômat Buchi ........................................ 57  
3.5.4.1 Gii thut chuyn đổi tLTL sang Ôtômat Buchi ................. 57  
3.5.4.2. Ví d....................................................................................... 60  
3.6 Chuyn ththng chuyn trng thái sang Ôtômat Buchi .................. 64  
3.7 Tích chp ca hai Ôtômat Buchi........................................................... 66  
3.7.1 Ôtômat Buchi dn xut .................................................................. 66  
3.7.2 Nguyên tc thc hin ..................................................................... 66  
3.8 Kim tra tính rng ca ngôn ngữ được đoán nhn bi Ôtômat Buchi.. 68  
3.9 Kết lun chương.................................................................................... 70  
CHƯƠNG 4: XÂY DNG HTHNG ĐỂ KIM TRA MÔ HÌNH PHN  
MM ............................................................................................................... 72  
4.1 Gii thiu vmô hình SPIN.................................................................. 72  
4.2 Cu trúc SPIN ....................................................................................... 73  
4.3 Ngôn ngPROMELA........................................................................... 76  
4.3.1 Gii thiu chung vPromela.......................................................... 76  
4.3.2 Mô hình mt chương trình Promela............................................... 77  
5
4.3.5 Tiến trình khi to.......................................................................... 78  
4.3.6 Khai báo biến và kiu..................................................................... 78  
4.3.7 Câu lnh trong Promela.................................................................. 79  
4.3.8 Cu trúc atomic .............................................................................. 81  
4.3.9 Các cu trúc điu khin thường gp............................................... 81  
4.3.9.1 Câu lnh điu kin IF.............................................................. 81  
4.3.9.2 Câu lnh lp DO...................................................................... 82  
4.3.10 Giao tiếp gia các tiến trình......................................................... 83  
4.3.10.1 Mô hình chung ...................................................................... 83  
4.3.10.2 Giao tiếp gia các tiến trình kiu bt tay .............................. 85  
4.4 Cú pháp ca LTL trong SPIN ............................................................... 86  
4.5 Minh hokim tra mô hình phn mm vi SPIN................................. 86  
KT LUN..................................................................................................... 95  
TÀI LIU THAM KHO............................................................................... 98  
6
DANH MC CÁC TVIT TT  
Số  
Tviết tt  
Gii nghĩa  
TT  
OBDD  
BDD  
LTL  
1
2
Ordered Binary Decision Diagrams  
Binary Decision Diagrams  
3
4
5
6
7
8
Linear Temporal Logic  
Label Transition System  
Branching Temporal Logic  
LTS  
BTL  
DFS  
Depth First Search  
SPIN  
Simple Promela Interpreter  
PROMELA Protocol / Process Meta Language  
7
DANH MC CÁC HÌNH V, ĐỒ THỊ  
Hình v, đồ thị  
Trang  
10  
Hình 1.1 Mô hình xác thc phn mm  
Hình 1.2 Mô hình logic thi gian  
11  
Hình 1.3 Mô hình ca kim tra mô hình phn mm  
Hình 1.4 Kim tra mô hình phn mm gn vi vòng đời phn  
mm  
14  
17  
Hình 2.1: Các cách tiếp cn kim tra mô hình phn mm  
Hình 2.2 Các bước cơ bn trong kim tra mô hình phn mm  
Hình 2.3: Các cách tiếp cn để điu khin sbùng nkhông  
gian trng thái  
19  
19  
20  
Hình 2.4 : Cây quyết định nhphân theo bc và OBDD cho (a  
b)(cd) vi thta<b<c<d  
21  
24  
Hình 2.5 Qun lý không gian trng thái trong kthut duyt  
nhanh  
Hình 2.6 Minh hophương pháp rút gn bc tng phn  
Hình 3.1 : Mô hình Logic thi gian tuyến tính (LTL)  
Hình 3.2: Mô hình cây BTL  
26  
36  
41  
46  
59  
66  
Hình 3.3 Tp các trng thái ca Ôtômat Buchi  
Hình 4.1 Cu trúc ca bmô hình kim tra SPIN  
Hình 4.2 Mô hình giao tiếp gia hai tiến trình  
8
LI MỞ ĐẦU  
Vi sphát trin nhanh tt bc ca lĩnh vc công nghthông tin và  
truyn thông trên ccác hthng phn cng và phn mm, khnăng xy ra  
nhiu li, đặc bit là các li tinh vi là rt cao. Nhng li này có thgây ra  
nhng hu qunghiêm trng vtin bc, thi gian, thm chí cuc sng ca  
con người. Nhìn chung, mt li càng sm được phát hin scàng mt ít công  
sc để sa li đó.  
Theo thng kê ca Standish Group (2000) trên 350 công ty vi  
hơn 8000 dán phn mm có: 31% dán phn mm bhubỏ  
trước khi được hoàn thành. Vi các công ty ln, chcó khong  
9% tng scác dán hoàn thành đúng tiến độ và trong ngân  
sách dán ( vi các công ty nh, tlnày vào khong 16%)  
Theo thng kê ca PCWeek (2001) trên 365 công ty chuyên cung  
cp các dán phn mm chuyên nghip có: 16% các dán là  
thành công, 53% sdng được nhưng không thành công hoàn  
toàn, 31% bhub.  
NIST Study (2002): Li phn mm gây thit hi ước tính 59.5  
triu đô la cho nn kinh tế nước Mmi năm chiếm 0.6% GDP.  
Vtinh nhân to Ariane-5 vào ngày 4/06/1996 chsau 36 giây  
ri khi bphóng đã bnvì lý do li phn mm: người ta đã sử  
dng 16 bit lưu trsnguyên để lưu trdliu kiu thc 64 bit  
gây thit hi 500 triu USD…  
Trong các ngành công nghip, luôn đặt ra mt yêu cu phát trin các  
phương pháp lun để có thtăng độ tin cy trong vic thiết kế và xây dng  
phn mm. Các phương pháp lun đó sci thin cht lượng và hgiá thành  
cho vic phát trin mt hthng. Thêm na, vmt lý thuyết, cn phi cung  
9
cp mt nn tng toán hc cht chđúng đắn cho vic thiết kế các hthng  
thông tin, để nhng người xây dng và phát trin phn mm có thkết hp  
gia kinh nghim thc tin và lý thuyết.  
Mt cách tiếp cn truyn thng là xây dng hthng phn mm bng  
cách đi txây dng mô hình. Nhng mô hình đó sẽ được chnh sa cho đến  
khi đạt được đến độ tin cy vtính chính xác và đúng đắn. Cách tiếp cn này  
ưu đim và chi phí thp hơn so vi vic xây dng hthng mt cách trc  
tiếp. Tuy nhiên, nhược đim ca cách tiếp cn này là sự định tính nhp nhng  
trong vic xây dng mô hình.  
Cách tiếp cn thhai là sdng vic xác thc hình thc (Formal  
Verification) bng cách xây dng mô hình toán hc ca hthng, sdng  
mt ngôn ngữ để đặc tcác thuc tính ca mt hthng. Đồng thi cung cp  
các phương thc để chng minh mô hình đó thomãn các thuc tính đề ra.  
Khi phương thc đó được chng minh bng ôtômat, người ta gi là xác thc  
tự động (Automation Verification). Tuy nhiên, các phương thc xác thc đó  
chưa thomãn các điu kin cn có vi mt công ctự động như sau:  
Có cơ shình thc để xây dng được các công ccó tính thc  
thi. Công choc phương thc đó phi ddàng, hu ích cho  
người sdng. Do đó, các ký hiu phi rõ ràng, dhiu vi  
người sdng, có giao din thân thin.  
Có khnăng liên kết gia các giai đon trong vòng đời phn  
mm. Ddàng tích hp gia các pha trong vòng đời phn mm  
Tính n định cao, nht là vi nhng phn mm phc tp.  
Có khnăng phát hin li và sa li  
Cách tiếp cn th3: Kim tra mô hình (Model Checking) là mt  
phương thc có thể đáp ng được các yêu cu trên. Các kthut truyn thng  
đang được sdng như kim th(testing) hoc mô phng (simulation)  
10  
thường không tự động, quá phc tp hoc chỉ đưa ra kết qutng phn.  
Chúng có thtìm ra rt nhiu li nhưng không thtìm ra tt ccác li nht là  
vi nhng phn mm tương tranh đa lung, phn mm nhúng, phn mm thi  
gian thc, phn mm hướng đối tượng...Khc phc nhng nhược đim đó, các  
gii thut kim tra mô hình đã cung cp mt cách tiếp cn toàn din và tự  
động để phân tích hê thng. Phương pháp kim tra mô hình phn mm là mt  
kthut tự động mà: khi cho mt mô hình hu hn trng thái ca mt hệ  
thng và mt thuc tính hthng cn thomãn, kim tra xem hthng đó có  
thomãn thuc tính đưa ra hay không?[1]  
Vi li ích to ln ca kim tra mô hình đặc bit là kim tra mô hình  
phn mm, đây trthành mt vn đề nóng hi đang được rt nhiu người  
quan tâm trên thế gii. Tuy nhiên đây là mt vn đề rt rng, cng vi tính  
phc tp và mi mca nó nên lun văn sgii hn nghiên cu trong xây  
dng gii thut kim tra mô hình phn mm ti ưu và có bcc, ni dung như  
sau:  
Chương 1: Tng quan vkim tra mô hình phn mm: gii thiu về định  
nghĩa, lch sra đời và phát trin ca kim tra mô hình phn mm, các vn đề  
đang được quan tâm và cn gii quyết xung quanh kim tra mô hình phn  
mm hin nay.  
Chương 2: Các gii thut kim tra mô hình phn mm. Trong chương này sẽ  
đề cp đến các gii thut kim tra mô hình phn mm đang được áp dng hin  
nay. Từ đó sxem xét và đưa ra kiến trúc và gii thut đề xut phù hp nht  
gii quyết các vn đề đặt ra và cho hiu năng cao  
Chương 3: Đề xut và xây dng gii thut kim tra mô hình phn mm: Đề  
cp đến các kiến thc nn tng nhưng rt mi mnhư hthng chuyn trng  
thái, lôgic thi gian tuyến tính, Ôtômat Buchi… trên cơ slý thuyết đó, sẽ đề  
xut xây dng gii thut kim tra mô hình phn mm ti ưu nht.  
11  
Chương 4: Xây dng mô hình minh ho: Da vào gii thut đề xut, la chn  
công cụ để xây dng mô hình minh ho. Gii thiu ngôn ngPROMELA để  
mô hình hoá hthng và công cSPIN để kim tra mô hình phn mm. Đồng  
thi đưa ra các ví dvề để minh hocơ chế hot động ca SPIN vi các hệ  
thng tương tranh.  
Kết lun: Tng kết nhng gì đã đạt được, đóng góp khoa hc ca lun văn và  
hướng mong mun phát trin trong tương lai ca đề tài.  
12  
CHƯƠNG I:  
TNG QUAN VKIM TRA MÔ HÌNH PHN MM  
1.1 LCH SPHÁT TRIN  
Kim tra mô hình phn mm đã có lch sphát trin tkhá sm vi  
mc đích đạt được là phi tự động hoá quá trình xác thc các hthng, cho  
đến nay đã phát trin lên thành nhiu phương pháp lun. Tnhng khi bt  
đầu phát trin theo hướng này, người ta đã xác định được điu kin tiên quyết  
ca tự động hoá quá trình xác thc gm 2 yếu t: ngnghĩa hình thc (formal  
semantics) và ngôn ngữ đặc t(specification language). [10]  
Trước hết, xác thc là gì? Xác thc là kim tra tt ccác hành vi khi  
thc thi có phù hp vi đặc thay không?  
Đặc tả  
Specification  
(what we want)  
Thiết kế  
Design  
Xác thc  
Verification  
Thc thi  
Implement  
(what we get)  
Hình 1.1 Mô hình xác thc phn mm  
Thi kỳ đầu tiên, khi các hthng thông tin chyếu là các hthng vào ra,  
mt hthng tng thđúng đắn và chính xác nếu tng phn ca hthng đó  
đúng và kết thúc hay đầu ra là đúng đắn. thi kỳ đầu tiên này, ngnghĩa hình  
thc chính là mi quan hvào ra, ngôn ngữ đặc tlà logic mt ngôi.  
Nhng năm 60 ca thế k19, khi các hthng phn hi (reactive) xut  
hin, các hthng này không phi chỉ đơn thun là để tính toán, skết thúc  
13  
có thkhông như mong đợi hoc dxy ra hin tượng deadlock. Do đó, hệ  
thng tng thđúng đắn và chính xác nếu nó thomãn các yếu t: an toàn,  
phát trin và tin cy. Ngnghĩa hình thc chính là Ôtômat, các hthng dch  
chuyn, ngôn ngữ đặc tlà logic thi gian.  
Cùng vi sphát trin ca các loi ngôn nglp trình theo xu hướng  
ngôn ngtnhiên, người ta cgng phân tích và đưa ra nhng kết lun mang  
tính ththc và liên quan đến thi gian.  
Nhng năm đầu thế k20: Logic thi gian được hình thc hoá vi các  
thc th: always (luôn luôn), sometimes (đôi khi), until (cho đến khi), since  
(tkhi)…theo trt tthi gian tquá kh, hin ti cho đến tương lai.  
Năm 1977, Pnueli gii thiu vic sdng logic thi gian như mt ngôn  
ngữ đặc t. Các công thc logic thi gian được thông dch qua cu trúc  
Kripke theo mô hình sau:  
Hthng thomãn các thuc  
Hình thc hoá  
Mô hình hoá từ  
công thc thi gian  
Hình 1.2 Mô hình logic thi gian  
Trên cơ slý thuyết trên bao gm mô hình hthng và logic thi gian,  
từ đó bt đầu hình thành ý tưởng vvic tự động hoá quá trình xác thc mt  
vn đề. Bài toán được phát biu như sau: Cho mt hthng M và mt công  
thc thi gian ϕ, cn tìm mt gii thut để quyết định xem liu hthng M có  
thomãn công thc đó hay không?  
14  
Vào cui nhng năm 70, đầu nhng năm 80 người ta thu nhvn đề  
kim tra mt vn đề qua các bước sau:  
¾ Đưa ra mt hthng chng minh để kim tra tính đúng đắn dùng  
logic  
¾ Phân rã hthng M thành tp ca các công thc F  
¾ Chng minh rng F thomãn ϕ bng cách sdng hthng  
chng minh  
Sau đó, vn đề kim tra mô hình được đưa ra gm các bước sau:  
¾ Xây dng và lưu trmô hình hthng M bng hthng trng  
thái hu hn.  
¾ Kim tra mô hình M có thomãn ϕ hay không thông qua định  
nghĩa.  
Từ đó, vn đề kim tra mô hình được đặt ra để gii quyết các vn đề về  
bùng ntrng thái vì slượng các trng thái trong mt hthng gia tăng vi  
slượng hàm mũ.  
Cui nhng năm 80, đầu 90 đã có nhng kết qunghiên cu vvn đề  
này:  
¾ Nén (Compress): Biu din tp các trng thái mt cách ngn gn  
như: Lược đồ quyết định nhphân (Binary decision diagrams)  
¾ Gin lược (Reduce): Không sinh ra nhng trng thái không liên  
quan.  
¾ Tru tượng (Abstract): Tp hp các trng thái tương đương như:  
biu đồ xác thc (verification diagrams), biến đổi các tiến trình  
tương đương.  
Cui nhng năm 90, đầu nhng năm 2000: áp dng kim tra mô hình  
trong các ng dng công nghip, nht là thành công trong lĩnh vc xác thc  
phn cng, tiên phong là các tp đoàn: IBM, Intel, Microsoft, Motorola,  
15  
Samsung, Siement…Có rt nhiu các công cthương mi và phi thương mi  
áp dng kim tra mô hình như: Formal Check, PEP, SMV, SPIN…  
Tnhng năm 2000 trli đây, lĩnh vc kim tra mô hình phn mm  
rt phát trin và là mt chủ đề được rt nhiu các người quan tâm, và điu đặc  
bit ở đây, các hthng đã được biu din dưới dng hthng vô hn trng  
thái.  
1.2 KIM TRA MÔ HÌNH PHN MM  
1.2.1 Khái nim kim tra mô hình  
Khái nim 1: Kim tra mô hình (Model Checking) là các phương thc, thut  
toán để xác thc độ tin cy và hiu năng ca các hthng máy tính. Các  
phương thc này đối lp vi phương thc chng minh lp lun sdng  
phương pháp suy din. [6]  
Khái nim 2: Là mt kthut tự động để xác thc các hthng tương tranh  
hu hn trng thái. [6]  
Khái nim 3: Là mt kthut tự động để xác thc các thuc tính, hành vi ca  
mt mô hình ca mt hthng bng cách duyt tt ccác trng thái ca hệ  
thng đó. [6]  
Kim tra mô hình được chia làm 2 loi:  
Kim tra mô hình phn cng  
Kim tra mô hình phn mm  
Trong khuôn khca lun văn, schxét đến kim tra mô hình phn mm.  
1.2.2 Kim tra mô hình phn mm  
Kim tra mô hình phn mm (Software model checking) có hai ý nghĩa chính:  
¾ Kim tra mô hình phn mm vi mc đích chính là kim th, xác thc  
xem hthng có thomãn mt sthuc tính, tính cht nào đó hay  
16  
không. Khi đó, hthng được biu din dưới dng đồ thcác trng thái,  
gi là mô hình, các trng thái này được liên kết vi nhau bi các bước  
chuyn trng thái. Mi bước chuyn trng thái tương ng vi mt bước  
ca chương trình được biu din bng toán hc ngnghĩa hoc ngôn  
ngmáy. Các thuc tính ca phn mm sẽ được kim tra bng cách  
duyt toàn bộ đồ th.  
¾ Kim tra mô hình phn mm còn mang ý nghĩa logic tính toán nhm  
kim tra xem hthng phn mm có thbiu din dưới dng mt mô  
hình công thc logic thi gian (temporal logic) hay không? Do đó, từ  
mô hình không chmang ý nghĩa là vic đặc thành vi mt cách tru  
tượng mà còn là biu din hành vi ca hthng.  
Trong kim tra mô hình phn mm, các thuc tính cn thomãn được  
biu din bng logic thi gian hoc bng các Ôtômat. Sau đó, sthc hin  
phép duyt toàn bkhông gian trng thái để kim tra xem hthng có thoả  
mãn các tính cht đó hay không, hay là mt mô hình như đặc tca nó hay  
không. Vì vy người ta gi đó là kim tra mô hình. Khi hthng và đặc tca  
hthng được mô hình hoá bng Ôtômat hu hn trng thái, hthng sẽ được  
so sánh vi đặc tả để kim tra xem các hành vi ca hthng có phù hp vi  
đặc thay không.  
Do đó, kim tra mô hình phn mm còn được định nghĩa là mt kỹ  
thut tự động mà: khi cho mt mô hình hu hn trng thái ca mt hthng  
và mt thuc tính hthng cn thomãn, kim tra xem hthng đó có thoả  
mãn thuc tính đưa ra hay không?  
Để kim tra mô hình phn mm sphi qua 3 bước cơ bn sau:  
¾ Mô hình hoá hthng (System Modelling): Mô hình hoá hthng phn  
mm theo phương pháp thcông hoc tự động bng cách phân rã phn  
17  
mm bng mt strình biên dch nào đó để được mt mô hình đầy  
đủ và chính xác.  
¾ Đặc tcác thuc tính (Properties Specification): Sdng mt ngôn ngữ  
nào đó để din tả đặc ththng, thông thường sdng logic thi gian  
hoc sdng Ôtômat.  
¾ Xác thc (Verification): Kim tra tính phù hp, đúng đắn gia mô hình  
phn mm và đặc tca phn mm đó.  
Các giai đon ca vic kim tra mô hình phn mm được biu din như sau  
(hình 1.3):  
Thiết kế li  
Mã ngun  
Mô hình hoá  
Thuc tính  
Bkim tra mô hình  
Thomãn  
Vi phm  
Thomãn  
Thuc tính  
Vết  
li  
Hình 1.3 Mô hình ca kim tra mô hình phn mm  
Tchương trình ngun, ta smô hình hoá chương trình đó. Sau đó, sử  
dng bkim tra mô hình để kim tra xem mô hình có thomãn thuc tính đề  
ra hay không. Nếu không vi phm, sẽ đưa ra kết lun hthng thomãn thuc  
tính. Ngược li, nếu không thomãn thuc tính đó, bkim tra mô hình schỉ  
ra nhng chli và quay li quá trình thiết kế, lp trình.  
18  
Li ích ca kim tra mô hình phn mm:  
¾ Kim tra mô hình phn mm được ng dng trong nhiu lĩnh vc:  
phn cng, phn mm, các hthng giao thc, mang li li ích kinh  
tế cho nhiu ngành khác nhau, đặc bit trong ngành công nghip.  
¾ Cho phép xác thc các thuc tính vi nhng phn liên quan nhiu  
nht ti thuc tính đó, vì vy mt thuc tính hay điu kin phc tp  
sẽ được chia nhthành nhiu phn để áp dng vào nhánh đồ thnào  
liên quan đến phn thuc tính đó nht nhm nâng cao tc độ xlý.  
¾ Khi thuc tính bvi phm, chương trình sẽ đưa ra các biến đếm ca  
chương trình để chra li trong mô hình  
¾ Không ging như kim thlà luôn mong mun sinh ra các trường  
hp kim thử để bao gm nhiu nht các tình hung hoc kch bn  
có th, kim tra mô hình luôn đảm bo duyt được hết tt ccác tình  
hung, hay tt ccác trng thái ca mô hình.  
Kim tra mô hình phn mm còn có mt số đim hn chế sau:  
¾ Kim tra mô hình tp trung chyếu vào hướng điu khin các ng  
dng vì vy không hướng nhiu vào dliu  
¾ Bt cmt phép kim tra và xác thc nào sdng kim tra mô hình  
chtt khi và chkhi mô hình hoá hthng đó tt. Nếu hthng đó  
mô hình hoá không đầy đủ sxy ra rt nhiu sai sót khi xác thc,  
hoc đưa ra các li sai.  
Tuy nhiên, kim tra mô hình phn mm là mt công chu hiu để tìm li và  
có khnăng tìm được nhng li tim tàng khác.  
19  
1.3 PHÂN LOI HƯỚNG TIP CN KIM TRA MÔ HÌNH PHN  
MM  
Có 2 cách tiếp cn kim tra mô hình phn mm: tiếp cn động và tiếp  
cn tĩnh  
1.3.1 Cách tiếp cn động  
Thường áp dng vi ngnghĩa động, và được coi như sn phm ca  
các tiến trình trên Linux. Các tiến trình được kết ni vi nhau bng các toán  
tthc thi trên com.objects. Các toán ttrên com.object là nhìn thy được,  
ngược li các toán tkhác là bị ẩn. Khi đó, chcác toán thin mi có thbị  
khoá. Hthng là mt trng thái tng thmà các toán ttiếp theo ca mi  
tiến trình đều được hin. Không gian trng thái chính là hp ca trng thái  
tng thđường đi gia chúng. [7]  
1.3.2 Cách tiếp cn tĩnh  
Lp gia các quá trình: Tru tượng (Abstract) - Kim tra (Check) – Làm  
mn (Refine): [7]  
¾ Tru tượng hoá (Abstract): sinh ra mt máy tru tượng da vào  
phân tích chương trình tĩnh.  
¾ Kim tra (Check): Kim tra mô hình vi máy tru tượng  
¾ Làm mn (Refine): Tru tượng hoá các vết li ca code, sau đó quay  
trli bước 1.  
1.3.4 Kết hp gia hai cách tiếp cn tĩnh và động  
Hai cách tiếp cn tĩnh và động như va đề cp có nhng đặc tính khác  
bit nhau như sau:  
¾ Ý tưởng  
20  
o Tiếp cn tĩnh: duyt toàn bcode để sinh ra mt môi trường  
tru tượng có thphân tích sdng kim tra mô hình  
o Tiếp cn động: điu khin thc thi đa tiến trình  
¾ Ngôn ng:  
o Tiếp cn tĩnh: Không yêu cu thc thi nhưng ngôn nglà phụ  
thuc vào chương trình  
o Tiếp cn động: Ngôn ngữ độc lp vi yêu cu thc thi chương  
trình  
¾ Lưu vết li:  
o Tiếp cn tĩnh: Có thsinh ra các vết li sai, có thchng  
minh được sự đúng đắn ca mô hình trên lý thuyết, nhưng  
chưa chng minh được trong thc hành  
o Tiếp cn động: Vết li tăng theo khi lượng code  
Da vào đó, người ta đề xut mt cách tiếp cn kết hp gia hai cách tiếp cn  
tĩnh và động trong kim tra mô hình phn mm để tn dng được nhng ưu  
đim ca chai cách tiếp cn đó.  
Mô hình kết hp gm các bước sau: [7]  
¾ Tự động trin khai giao din ca chương trình tmã ngun ca  
chương trình.  
¾ Sinh ra các trình điu khin kim th(test driver) cho vic kim thử  
ngu nhiên thông qua giao din bước 1  
¾ Sinh ra các kim thtự động để thc thi trc tiếp thông qua các  
đường đi thay đổi ca chương trình.  
1.4 KIM TRA MÔ HÌNH PHN MM CỔ ĐIN VÀ HIN ĐẠI  
Quy trình phát trin phn mm theo mô hình thác nước được biu din như  
sau: [17]  
21  
Kho sát  
Phân tích  
Thiết kế  
Lp trình  
Kim thử  
Bo trì  
Kim tra mô hình  
cổ đin  
Kim tra mô hình  
hin đại  
Hình 1.4 Kim tra mô hình phn mm gn vi vòng đời phn mm  
Phương pháp kim tra mô hình cổ đin được xây dng da trên 3 pha:  
phân tích, thiết kế và lp trình. Sau khi phân tích, thiết kế, người ta smô hình  
hoá hthng, sau đó sdng công ckim tra mô hình phn mm để kim tra  
xem hthng đó có thomãn các thuc tính đặt ra hay không? Nếu có thoả  
mãn, sẽ đi đến bước lp trình, nếu không, sthiết kế li mô hình hthng.  
Tuy nhiên, phương pháp kim tra mô hình hin đại xây dng da trên 2 pha:  
lp trình và kim th. Sau khi lp trình, tmã ngun sxây dng ra mô hình  
hthng dưới dng mô hình trng thái, sdng công ckim tra mô hình để  
tìm ra kết lun. Bin pháp này sthay thế cho vic kim th, vì nó sbao quát  
được tt ccác trường hp.  
Trong chai phương pháp kim tra mô hình cổ đin và hin đại, tru  
tượng hoá đều được coi là mt hot động chính. phương pháp tiếp cn cổ  
đin tpha thiết kế, phi tru tượng hoá mt cách thcông, sau đó tmô  
hình xác thc tru tượng, nhkthut làm mn sdn đến pha thc thi. Ở  
22  
phương pháp tiếp cn hin đại, tmô hình xác thc tru tượng, da vào kỹ  
thut tru tượng hoá sdn đến pha thc thi.  
1.5 KT LUN CHƯƠNG  
Vi mc đích kim tra mt hthng được mô hình hoá có thomãn  
mt thuc tính cho trước hay không, lĩnh vc kim tra mô hình phn mm đã  
tiến xa hơn kim thtự động vì có thbao quát được tt ccác trường hp  
thuc hthng mt cách tự động, do đó là mt vn đề đã và đang rt được  
quan tâm hin nay. Kim tra mô hình phn mm đều phi đi qua ba bước đó  
là mô hình hoá hthng, đặc tcác thuc tính và xác thc tính hthng có  
thomãn thuc tính đó hay không. Để gii quyết tng bước trong các pha đó,  
có rt nhiu các kthut kim tra mô hình phn mm được đề xut nhm mc  
đích ti ưu hoá bài toán được trình bày chương 2 tiếp theo.  
23  
CHƯƠNG 2:  
CÁC KTHUT KIM TRA MÔ HÌNH PHN MM  
2.1 GII THIU  
Kim tra mô hình da trên vic to ra mô hình hu hn ca hthng và  
kim tra mô hình đó vi các thuc tính đặt ra ca phn mm. Mô hình ca hệ  
thng được biu din dưới dng máy trng thái hu hn. Sau đó, ta phi tìm  
cách để hoàn thành vic duyt toàn bkhông gian trng thái để kim tra mô  
hình đó có thomãn vi đặc thay không. Đặc ththng thường được biu  
din dưới dng logic thi gian (temporal logic) hoc Ôtômat, do đó scó 2  
cách tiếp cn vic kim tra mô hình: đó là kim tra mô hình thi gian và kim  
tra mô hình theo lý thuyết ôtômat (Hình 2.1)  
KIM TRA MÔ HÌNH  
LOGIC THI GIAN  
LÝ THUYT ÔTÔMAT  
Hình 2.1: Các cách tiếp cn kim tra mô hình phn mm  
Kim tra mô hình phn mm đang có xu hướng rt đang phát trin hin nay  
và thông thường theo các bước sau:  
Chương  
trình  
ngun  
Mô  
hình  
tru  
tượng  
Xác thc  
mô hình  
Đúng  
Tr
u t
ượ
ng  
Sai, thông báo  
vết li  
Làm mn quá trình tru tượng  
Hình 2.2 Các bước cơ bn trong kim tra mô hình phn mm  
24  
Kim tra mô hình tuchn theo ngôn nglp trình bng quá trình tru  
tượng từ động mc độ mã ngun.  
Tru tượng và dch tự động da trên schuyn đổi sang tru tượng  
kiu mi cho kim tra mô hình  
Làm mn quá trình tru tượng hu hết được tự động.  
Vi bt ckthut kim tra mô hình phn mm nào đều phi gii  
quyết mt vn đề khó khăn nht đó là: bùng nkhông gian trng thái. Không  
gian trng thái ca vic kim tra mô hình thường là tuyến tính nhưng không  
gian trng thái ca hthng li thường tăng theo hàm mũ (hoc hơn thế na).  
Do đó, thách thc kthut chyếu trong vic kim tra mô hình là thiết kế các  
phương thc và các cu trúc dliu để gii quyết được không gian trng thái  
ln như vy. Có mt sphương pháp để có thtránh sbùng ntrng thái,  
trong đó có 4 phương pháp chính đó là: Biu din ký hiu (Symbolic  
representation), Duyt nhanh (On the fly), Rút gn (Reduction), Xác thc kết  
cu (Compositional reasoning) (Hình 2.3). [2]  
CÁC K
THU
T KI
M SOÁT KHÔNG GIAN TR
NG  
Xác thc  
kết cu  
Biu din  
kí tự  
Duyt  
nhanh  
Rút gn  
Rút gn bc  
tng phn  
Ti thiu hoá  
kết cu  
Tru tượng hoá  
Hình 2.3: Các cách tiếp cn để điu khin sbùng nkhông gian trng thái  
25  
Các kthut biu din ký hiu tránh vic bùng ntrng thái bng cách  
thhin hthng dưới dng chuyn trng thái mt cách hoàn toàn, sdng  
lược đồ quyết định nhphân. Vì vy mô hình ca hthng được biu din  
bng các ký hiu mà không cn sxây dng mt cu trúc dliu hiu qu.  
Kthut duyt nhanh (On-the-fly) bao gm vic xác thc hthng trong khi  
sinh ra nó. Nó mô phng mi chui chuyn trng thái có thcó ca hthng  
bng cách duyt đồ ththeo chiu sâu mà không cn lưu trcác dch chuyn,  
quá trình tìm kiếm kết thúc sau khi có mt li bt kỳ được tìm ra, giúp ta  
không phi duyt toàn bhthng ngay từ đầu. Kthut gin lược  
(Reduction) da trên vic chuyn đổi vn đề xác thc sang mt vn đề tương  
đương nhưng vi không gian trng thái nhhơn. Cui cùng, đó là kthut  
xác thc kết cu (Compositional Verification) da trên vic định nghĩa các  
thuc tính cc bca các hthng con xem có thomãn các tính cht đề ra  
ca toàn bhthng. Bng cách này, không cn phi sinh đồ thtrng thái  
tng th, vì các thuc tính đã được các hthng con kim tra.  
2.2 PHƯƠNG PHÁP KÝ HIU BIU DIN  
Phương pháp ký hiu biu din (Symbolic representation) da trên vic  
sdng hoàn toàn mô hình trng thái hu hn để biu din mt hthng.  
Cách biu din thông thường là sdng kết hp nhng hàm và toán tlogic  
gi là Lược đồ quyết định nhphân theo bc(Ordered Binary Decision  
Diagrams – OBDD). Cách biu din sdng OBDD có 3 ưu đim chính: phù  
hp vi nhng lp các hàm Boolean ln, phù hp vi yêu cu đưa ra đảm bo  
thtca biến đầu vào, có ththao tác trc tiếp để hoàn thành tt ccác toán  
tBoolean cơ bn mt cách có hiu qu. [2]  
26  
Hình 2.4 : Cây quyết định nhphân theo bc và OBDD cho (a b)(cd) vi  
thta<b<c<d  
Mt OBDD tương tnhư mt cây nhphân quyết định, ngoi trcu  
trúc ca nó là mt đồ thbán liên thông có hướng, không đơn thun là mt  
cây, và có mt squy định cht chthtxut hin ca các biến khi cây  
được duyt tgc ti các lá. Đặc bit hơn, OBDD biu din mt hàm logic f  
bng cách gim đi tcây quyết định thtnhphân mt scu trúc liên quan  
(Hình 2.4). Để ly được giá trthc tương ng vi mt dãy giá trca các  
biến trong f, ta phi duyt cây nhphân quyết định tgc ti các lá. Ti mi  
nút, giá trca biến tương ng squyết định đường đi tiếp theo: hoc theo con  
trái hoc theo con phi nếu giá trca các nhãn được đánh nhãn là false/true  
hoc 0/1. Do đó, cách thhin này được gi là ký hiu (symbolic), và gii  
thut kim tra mô hình làm vic thc hin thông qua biu din ký hiu được  
gi là kim tra mô hình ký hiu. Các giá trtrên cây xut hin theo thtbc  
tăng dn tgc ti các lá. Mô hình OBDD được tinh gim tcây nhphân  
quyết định bng cách hp các nhánh ging nhau trên cây thành mt cây đơn,  
và loi bbt knút nào có các con trái hoc phi là ging nhau. (Hình 2.4)  
OBDD là mt cu trúc dliu để biu din ký hiu ca các tp trnên  
thông dng cho vic kim tra mô hình bi vì chúng có nhng đặc tính sau:  
27  
¾ Mi hàm Boolean đều là duy nht, biu din bng BDD. Nếu bt buc  
phi chia scác nút BDD, stương đương gia hai hàm có thể được  
quyết định trong mt thi gian hng s.  
¾ Các toán tBoolean như: phủ định, phép kết ni,…có thể được thc  
hin tng phn để gim tính phc tp.  
¾ Phép chiếu được thc hin mt cách ddàng, trong trường hp xu  
nht độ phc tp có thlên ti hàm mũ  
Mô hình trng thái hu hn ca mt hthng có thbiu din dưới  
dng OBDD như trên. Mi trng thái được mã hoá bng mt phép gán các giá  
trlogic cho tp các biến tương ng ca hthng. Quá trình xlý này được  
thc hin hoàn toàn trong sut vi người sdng bng các công chtrợ  
phương pháp ký hiu biu din. Chuyn quan hcó thdin gii bng các  
hàm Boolean dưới dng hai tp các biến, mt tp để mã hoá trng thái hin  
thi, và mt tp để mã hoá trng thái mi.  
Tiếp cn theo phương pháp ký hiu biu din tránh được vic xây dng  
biu đồ trng thái ca hthng. Do đó, vn đề không còn là kích cca  
không gian trng thái mà chính là kích cca cách thhin OBDD. Trong  
nhng trường hp thông thường nó có khnăng xác thc các hthng vi  
quy mô ln nhưng không toàn din trên tt ckhông gian trng thái.  
Các gii thut da OBDD chưa ththay thế hết các gii thut khác vì  
nó không thhoàn thành tt trong mi trường hp. Trên thc tế, kích cca  
OBDD chyếu da vào bc ca biến. Vn đề ở đây là tìm ra bc hoc thtự  
mà trvcây ti thiu là mt bài toán NP đầy đủ. Có mt scác heuristic đã  
được phát trin để tìm ra mt thtbiến tt nếu thtự đó tn ti. Tuy nhiên  
có rt nhiu các hàm Boolean có kích clà hàm mũ vi mi bc ca biến.  
28  
2. 3 PHƯƠNG PHÁP DUYT NHANH  
Kthut duyt nhanh (On the fly) thc hin bng cách hoàn thành tt  
ccác phép duyt đến tt ccác trng thái hoc các chuyn trng thái. Do đó,  
không cn thiết phi lưu trtoàn bộ đồ thtrng thái ca toàn hthng. Trên  
thc tế, sbùng nkhông gian trng thái có thlàm cho hu hết các hthng  
khó có ththc thi được. Kthut này mô phng tt ccác chuyn trng thái  
có thca hthng có ththc hin được. Sau đó, sdng gii thut truyn  
thng tìm kiếm theo chiu sâu để phân rã, kho sát hthng để thc hin kỹ  
thut duyt nhanh mà không phi lưu trcác chuyn trng thái trong quá trình  
tìm kiếm. Kthut này slàm gim yêu cu bnhkhi thc hin. [2]  
Trong ln duyt đồ ththeo chiu sâu đầu tiên, đường đi hin thi sẽ  
yêu cu bnhnhnht. Kthut phi đáp ng được yêu cu ca bài toán là  
gim khi lượng bnhyêu cu trong khi vn đảm bo duyt toàn bcác  
trng thái. Mi trng thái chỉ được lưu trmt ln khi nó được đến thăm. Do  
vy, vi các đồ thphc tp, skhông thlưu trữ được tt ccác trng thái.  
Có rt nhiu các bin pháp được đề nghị để cgng dung hoà gia hai chiến  
lược trên.  
Cng vi vic lưu trữ đường đi hin thi, bnhớ đệm không gian trng  
thái (state space caching) to ra mt bộ đệm gm các trng thái đã được đến  
thăm. Ban đầu tt ccác trng thái đã đến thăm được lưu trcho đến khi nó  
đin đầy bnhớ đệm. Khi đó, các trng thái cũ sẽ được thay dn dn bng các  
trng thái mi. Hiu quca vic sdng bộ đệm lưu trkhông gian trng  
thái phthuc vào kích cca bộ đệm và phthuc vào cu trúc ca không  
gian trng thái. Mt nhim vhết sc phc tp và không thể đoán trước đó là  
tìm ra cách thiết lp mt bộ đệm ti ưu vì nếu không slàm tăng thi gian  
thc thi cc nhanh. Như trên đã trình bày, thi gian thc thi cn thiết tăng vt  
là do sbùng ngp nhiu ln ca các phn trong không gian trng thái  

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

pdf 102 trang yennguyen 13/04/2025 130
Bạn đang xem 30 trang mẫu của tài liệu "Luận văn Kiểm tra mô hình phần mềm sử dụng lý thuyết Ôtômat buchi và logic thời gian tuyến tính", để 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:

  • pdfluan_van_kiem_tra_mo_hinh_phan_mem_su_dung_ly_thuyet_otomat.pdf