DAI hOc QUOc GIA hA TOI TTƠ|ỜIG ĐẠI hỌc cÔIIG IGhỆ HGUVÈH VĂN hIẾU PhƠ|ƠIIG PhÁP TẠ0 GIÁ ĐỊIh TÓI ThIÊU _AP DUIIG DE KIEM chUlIG | PhATI MEM hG|ONG ThHATIh PhAII LUẬN VĂN ThẠc SĨ hà Hội — 2009 ĐẠI hỌc QUOc GIA hA HOI TI'G|ONG DAI hQc cÔIIG IGhỆ TIGUYED VAI hIEU PhƠŒ|ƠIIG PhÁP TẠU0 GIÁ ĐỊITh TOI ThHIEU _ÁP DỤNG ĐẺ KIÊM chỨẴG | PhATI MEM hG]ONG ThHATIh PhAII Hgành: công nghệ phần mềm Mã số : 6020611 LUẬN VĂN ThẠc SĨ HGG|OI hG|GMG DAT KHOA hOc: TS. Lê Anh cơJờng #720 DAI hOc QUOc GIA hA TOI TTƠ|ỜIG ĐẠI hỌc cÔIIG IGhỆ HGUVÈH VĂN hIẾU PhƠ|ƠIIG PhÁP TẠ0 GIÁ ĐỊIh TÓI ThIÊU _AP DUIIG DE KIEM chUlIG | PhATI MEM hG|ONG ThHATIh PhAII LUẬN VĂN ThẠc SĨ hà Hội — 2009 ĐẠI hỌc QUOc GIA hA HOI TI'G|ONG DAI hQc cÔIIG IGhỆ TIGUYED VAI hIEU PhƠŒ|ƠIIG PhÁP TẠU0 GIÁ ĐỊITh TOI ThHIEU _ÁP DỤNG ĐẺ KIÊM chỨẴG | PhATI MEM hG]ONG ThHATIh PhAII Hgành: công nghệ phần mềm Mã số : 6020611 LUẬN VĂN ThẠc SĨ HGG|OI hG|GMG DAT KHOA hOc: TS. Lê Anh cơJờng #720 DAI hOc QUOc GIA hA TOI TTƠ|ỜIG ĐẠI hỌc cÔIIG IGhỆ HGUVÈH VĂN hIẾU PhƠ|ƠIIG PhÁP TẠ0 GIÁ ĐỊIh TÓI ThIÊU _AP DUIIG DE KIEM chUlIG | PhATI MEM hG|ONG ThHATIh PhAII LUẬN VĂN ThẠc SĨ hà Hội — 2009 ĐẠI hỌc QUOc GIA hA HOI TI'G|ONG DAI hQc cÔIIG IGhỆ TIGUYED VAI hIEU PhƠŒ|ƠIIG PhÁP TẠU0 GIÁ ĐỊITh TOI ThHIEU _ÁP DỤNG ĐẺ KIÊM chỨẴG | PhATI MEM hG]ONG ThHATIh PhAII Hgành: công nghệ phần mềm Mã số : 6020611 LUẬN VĂN ThẠc SĨ HGG|OI hG|GMG DAT KHOA hOc: TS. Lê Anh cơJờng #720 MUc LUc MUC LUC o.oo eececccssssssesscesscesscesecsseesecesecesecesecssecsssesseesecesecesscsseessecsesessceseceseeesseesseseceaeeeseceees 1 DATIB MỤC cÁc hìITh VE ueeecceceessesscsssessessscssessessvessessessvessesasssvsssesasssvessesuesssessesseessessees 2 DATIB MUc cAc CAU VIET TAT .ceeececcesccssssssessesssessessessvcssessessvsssesstssvessessessesnessesssessees 3 MO DAU oeeeessscsssssssssssesssesssssssesssecssesssscssssssssssscssssssscssscssscssesssecssesssesssesssesssesssessuessneesseeaee 4 chG|ONG 1: TONG QUATI VE KIEM chUTIG PhAT MEM hGŒ]ÓIIG ThÀHh PhhÄÏ.2 các khái niệm cơ bảH.1 Labeled Transii0n Sys†em(L/TTS) .3 Ghép nối s0ng s0ng(Parallel cÖmp0siliOn) .3 Safety LTSs, Safely PrOperty, errr LTS.
- (c1 121191 91 1 1 91 1g nh nh nh re 14 1.55 Ô!0mal đơn định hữu han trang thai (Deterministic Finite State AutOmata) 14 1.3 Vé var dé dam Ba0 gid Gi oo. eecccccccscsesssesssesssesssesssecssecssesssessessessesssesssess 15 chd|ƠNG 2: TẠO GIA ĐỊTTh SỬ DỤIG ThUẬT T0ÁI hỌc L.1 Thuật H0án học LẺ-*”***2 992 tt 9999112111011 tt rerdrieiirieiiriiireiie 18 2.2 Tạ0 giả định sử dụng thuật l0án học L °°°*>2°2°2*22912229n9nttheerterrrreerrree 21 chd|ƠNG 3: GIẢI ThUẬT TẠO GIÁ ĐỊITh TỔI ThIẾU .2 Định nghĩa giả định lối thiểu 3.3 Giải thuật lạ giả định lối thiểu.1 To loiởng của giải Thuậ]T .- 6 + TT HT HH TH ng Hiệp 27 3.2 chỉ liết giải thuật †ạ0 giả định lối thiêu .3 Tính dừng và đúng đắn của giải thuật 1ạ0 giả định lối thiểu .1 Đặc điểm không gian †ìm kiếm.2 Tính dừng và lính đúng đắn của giải thuật.4 Ví dụ a0 giả định lối thiểu. 1eC 33 chƠ|ƠNG 4: ThỰC TIGhIỆM. 22-22252222 2EE2ÊEESE122212271227112712271222122122 Lee.- 2-5 SESE£9EE9EEEEEESEEEEKEEEEEE1111112111111111111.
53 TÀI LIỆU ThAM KhhẢU.-- 5-5656 SSSEE9EE£EEEEEESEEEEEEEEEEEEE11711211111E11 11.3II 58 2 DAHh MỤCc cÁc hìHh VẼ hình 1.- ¿- 2c £+S<+EkeEEE+EEEEEEEEESE1EE11112111111E111111E 11111.2: Minh h0ạ phép ghép nối sŨng sŨnIg.3: Phép ghép nối cLIEHT || SEI'VET.--2-¿22+z+22+zz+vcxseesrzscee 13 hình 1.4: Minh h0ạ ta0 LTS art 10am từ một DEA.5: bài l0án và to loiởng chính của cách liếp cận xác minh đảm sả0 giả định.1: Minh h0ạ mối quan hệ giữa Teacher và L* learrrer.3: Một sơ đồ khối đề ‡a0 giả định sử dụng giải thuật L* [4, §].1: các thành phần của hệ thống tr0ng ví dụ đơjợc xét .2: Gia dinh dojgc ta0 ra sau khi sử dụng giải thuật LŠ.3: Giả định đo\ợc lạ0 ra sởi giải thuật †ạ0 giả định lối thiểu .4: Thủ lục để tìm giả định lối thiểu .-22- 552 ©2S22Sc2EEcEEECEEkrrrkrrrkeee 30 hình 3.5: bảng quan sát san đầu.----¿- 2+ 5+¿22+++22EE2EEEtSEEErEEEErtrkrerrrrerrrrerrree 34 hình 3.6: hệ thống ghép nối Inpul || 0rdererr.-© e2 S2SE2EEE22EEE22E2522225222252222522 34 hình 3.7: Mô hình cây tìm kiếm của các bảng quan sá†.---¿©+©cc+ccs+2 36 hình 3.8: hệ thống ghép nói Ai 2i || Inpull[ Örderer,.9: hệ thống ghép nối Output || A 1.10: cây lìm kiếm sau khi duyệt đến sảng quan sát 1.11: Giả định lẹết quả.---- 2+ 5¿©SS2£2ESEEE2122712271127122111211211211211 2 xe. Kết quả thực nghiệm .---222-©55225St2CSE22EEEEEErEEExrrrkrerrrrerrrrerrvee 43 hình 4.1: FSPs và LTSs của hệ thống minh h0ạ lr0ng LTSA.2: FSP và LTS của giả định ‡ạ0 sởi giải thuật tr0ng [1] và kết quả kiểm tra gia 0008108813007.3: FSP và LTS của giả định 10 sởi giải thuật a0 gia định lối thiểu và kết quả kiểm tra giả định bởi L/TSA. crrkrre 51 DAHh MỤCc cÁc chỮ VIẾT TẮT cbSD_ |cOmpOnent-based SOftware Devel0pment cbs |eO0mp0neni-based S0fware FSP |Eimie Slale Pr0ces LTSA |Labelled TransitiOn Systems Analyzed 4 MO DAU Phái triển phần mềm hojong thanh phan (cOmpOnent-based SOftware Devel0pment - cbSD) là một tr0ng những công nghệ quan lrọng nhất tr0ng kỹ nghệ phần mềm. hệ thống phần mềm hojớng thành phần đojợc xây dựng dựa lrên quá trình lựa chọn và ghép nối các thành phần riêng siệt thành một hệ thống h0àn chỉnh.
Với cách liếp cận này, phát triển phần mềm hơlớng thành phần đã góp phần rot ngắn thời gian thực hiện dự án, nâng ca0 chất lojợng và độ lin cậy của sản phẩm. Vì những ouđiểm này mà công nghệ này đã đojợc áp dụng rộng rãi lr0ng quá trình phát triên các dự án phần mềm hiện nay. Tuy nhiên, một tr0ng những hạn chế của cbSD là vấn đề đảm sả0 lính đúng đắn của hệ thống khi ghép nối các thành phần với nhau vì các thành phần có thề đojợc phát triển một cách độc lập hOặc đơiợc dat mua lừ các công ‡y thir 3(third parties). hién lại, các công nghệ hỗ trợ phát triển phần mềm hơjớng thành phần nhọi c0TbA (0MG), c0M/Dc0M Or.
vv chi hé trg viée ghép nỗi các thành phan (cOmp0nent plugging). chong khong có cơ chế kiểm tra liệu các thành phần có thể sị lỗi khi cộng lác với nhau hay không. Điều này có nghĩa la co ché “plug-and-play” khong dogc dam pa. M6t trOng mhimng gidi phdp phé sién dé gidi quyét vấn đề nêu trén 1a str dụng cdc phojong phap kiểm chứng mô hình (M0del checking).
Tuy nhiên, một trOng những hạn chế lớn nhất của kiểm chứng mô hình là vấn đề sùòng nỗ không gian trạng thái khi kiểm chứng các phần mềm có kích thơjớc lớn. Mội tr0ng những cách liếp cận liềm năng để giải quyết vấn đề này là áp dụng kiểm chứng lừng phần (mOdular verificaliOn - MV). Thay vì liến hành kiểm chứng trên l0àn sộ hệ thống gồm các thành phan đơkợc ghép nối với nhau, cách liếp cận này liến hành kiểm chứng lrên lừng thành phần riêng siệt. Với cách liếp cận này, vấn đề sùng nỗ không gian lrạng thái hứa hẹn sẽ đoợc giải quyết.
Một tr0ng những phoJơng pháp kiểm chứng hỗ trợ ý tojong này là phojơng pháp kiêm chứng đảm sả0 giả định (Assume-Guaranlee VerificaliOn - AGV). Sir dung lo lolởng của chiến lojợc “eh¿z để 1zj”, AGV phân chia sài 10án kiểm 5 chứng thành các sài l0án cŨn cong dạng nhơIng kích thojớc nhỏ hơn sa0 ch0 chúng la có thề kiểm chứng œc sài 10án cŨn mội cách riêng siệ!. AVG đơiợc đánh giá là một phơjơng pháp hứa hẹn đ kiểm chứng phần mềm hojớng thành phần thông qua phojong phap kiểm chứng môhình. AVG không những thích hợp ch0 phần mềm hojớng thành phần mà còn có khả 6 năng giải quyết vẫn đề sùng nỗ không gian trạng thái lr0ng kiểm chứng mô hình.
Tr0ng phoøJơng pháp này, các giả định (assumpHOns) (có vai lrò nhơi là môi lroJờng đa các thành phần) sẽ đojợc †ạO lập. Việc lạ0 lập các giả định chính là sài l0án quan trọng nhất tr0ng phojơng pháp này. Kích thojéc của các giả định này (số lojợng trang thái) rã đojợc cực liêu hóa bởi vì chỉ phí ch0 quá trình kiểm chứng mô hình của phojơng pháp này phụ thuộc chính và0 thông số này. Đây chính là mục liêu nghiên cứu của luận văn này.
Với mục liêu này, chúng lôi đề xuất mội phoJơng pháp ta0 giả định lối thiểu (có kích thojớc nhỏ nhất) nhọ là mội cải liến của phojơng pháp kiểm chứng đảm sả0 gảđịnh nhọi đã trình sày ở rên. Ý †ojởng chính của phoJơng pháp đề xuất là ìm kiếm giđịnh lối thiểu trên l0àn sộ không gian †ìm kiếm của các ứng cử viên giả định (candidale assumpliOns). Giả định lối thiểu sau khi lạ0 lập bằng phojơng pháp đề xuất sẽ đojợc sử dụng để kiếm chứng lại hệ thống với chỉ phí thấp hơn. Mội số ví dụ minh họa và kết quả thực nghiệm cũng đojợc trình sày †r0ng luận văn này.
bố cục của luận văn đơiợc trình Bay mho sau: chơjơng l: Giới thiệu tổng quan phần mềm hojớng thành phan, các khái niệm pan, cach liếp cận để kiêm chứng phần mềm hojớng thành phần. chơjơng 2: Trình sày chỉ liết thuật l0án học LÝ, giải thuật 1ạ0 giả định sử dụng thuật l0án học L”. chojong 3: chojong nay trình sày giải thuật 1a0 giả định lối thiểu. Tr0ng choJơng này chúng lôi sẽ đơia ra một phản ví dụ để minh h0a rằng: giả định doc ta0 ra Boi giải thuật sử dụng thuật l0án học L* chola phải là giả định lối thiểu.
chúng lôi cũng sẽ trình pay một ví dụ cụ thể để minh h0ạ ch0 thuật 10án 1ạ0 giả định lối thiểu. chơjơng 4: Thực nghiệm. chúng lôi sử dụng sộ công cụ LTSA để xác minh một số hệ thống đơn giản nhằm s0 sánh về thời gian cũng nhơi sộ nhớ sử dụng của giải pháp cũ và giải pháp đojợc đoỊa ra lr0ng luận văn. Phần kết luận của luận văn tổng kết các kết quả đã đại đơjợc, kết luận và đoỊa ra một số holớng nghiên cứu tiếp the0.
chŒ|ƠIG 1: TỎIG QUAII VẺ KIÊỀM chÚIIG PhÀII MÈM hG|ỚIIG ThÀIh PhẢII 1.1 Giới thiệu Quá trình phát triển phần mềm hojớng thành phan doc siết đến là sự phat triển phần mềm sằng cách ghép nối các phần độc lập. Đây là một lr0ng những kỹ thuật quan trọng nhất tr0ng kỹ nghệ phần mềm. cách liếp cận này vẫn đang †hu hú! sự chú ý lr0ng cộng đồng kỹ nghệ phần mềm và đơjợc xem là một cách liếp cận mở, hiệu quả, giảm thời gian và chỉ phí phát triển đồng thời lăng chất lojợng của phần mềm. Đã có rất nhiều khái niệm, kỹ thuật đề xuất nhằm phái triển ch0 ý tojong này.
Tuy nhiên, một tr0ng những hạn chế của phát triển phần mềm hojớng thành phần là vẫn đề đảm sả0 lính đúng đắn của hệ thống khi ghép nối các thành phần với nhau vì các thành phần có thề đojợc phát triển một cách độc lập hOặc đơiợc đặt mua ïrcác công ty thir 3 (third parties). hién tai, céc công nghệ hỗ trợ phát triển phần mém hong thanh phần nhơi c0FbA (0MG), c0M/Dc0M 0r. vv chỉ hỗ lrợ việc ghép nối các thành phần (c0mp0nen† plugging). chúng không có cơ chế kiểm tra liệu các thành phần có thể s¡ lỗi khi cộng lác với nhau hay không.
Điều này có nghĩa là cơ chế “øiwg-and-play ” không đojợc đảm sả0. Mội giải pháp phô siến hiện nay để giải quyết ch0 vấn đề trên là áp dụng kiểm chứng mô hình (m0del checking - Mc) [5].