Phần mềm, các hệthống tự động càng ngày càng đóng vai trò quan trọng trong cuộc sống con người.Cũng vì vậy, người ta càng ngày càng chú ý hơn tới việc kiểm tra tính đúng đắncủa các hệ th
Trang 1ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA
-
LÊ ĐÌNH THUẬNKIỂM TRA MÔ HÌNH PETRI NETS
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học: PGS TS Quản Thành Thơ
(Ghi rõ họ, tên, học hàm, học vị và chữ ký) Cán bộ chấm nhận xét 1: TS Bùi Hoài Thắng
2 PGS TS Quản Thành Thơ 3 TS Bùi Hoài Thắng
4 TS Huỳnh Trung Hiếu 5 TS Nguyễn Văn Hiệp Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Lê Đình Thuận MSHV: 10071061 Ngày, tháng, năm sinh: 16/01/1987 Nơi sinh: Bình Định Chuyên ngành: Khoa học máy tính Mã số : 60.48.01
I TÊN ĐỀ TÀI: Kiểm tra mô hình Petri Nets sử dụng framework PAT
II NHIỆM VỤ VÀ NỘI DUNG: -
Đề tài phát triển framework kiểm tra mô hình PAT để nâng cao hiệu quá kiểm chứng mô hình Petri Nets Cụ thể hơn, các cải tiến cần được nghiên cứu :
- Kiểm tra mô hình lớn dưới dạng on-the-fly, nhờ sự hỗ trợ của PAT - Kiểm tra mô hình theo hướng compositional, hỗ trợ việc phân rã hệ thống lớn thành các thành phần nhỏ và kiểm tra
- Trừu tượng hóa mô hình Petri Nets thành các đồ thị SOG để tăng tốc kiểm tra - Áp dụng hướng tiếp cận tăng dần dề xây dựng và kiểm tra các đồ thị SOG
III NGÀY GIAO NHIỆM VỤ : (Ghi theo trong QĐ giao đề tài) 24/06/2013 IV NGÀY HOÀN THÀNH NHIỆM VỤ: (Ghi theo trong QĐ giao đề tài) 23/05/2014 V CÁN BỘ HƯỚNG DẪN (Ghi rõ học hàm, học vị, họ, tên): PGS TS Quản Thành Thơ
Trang 4Tôi xin gửi lời cảm ơn sâu sắc của mình tới Phó Giáo Sư Tiến Sĩ Quản ThànhThơ, người thầy đã hướng dẫn tôi từ những bước chập chững khi tham gia vàocon đường nghiên cứu khoa học Sự hướng dẫn nhiệt tình và sự quan tâm sâu sắccủa thầy đã giúp tôi có thể hoàn thành luận văn tốt nghiệp này Hơn thế nữa,thầy còn như một người chú, người anh thân thiết trong gia đình đã giúp tôi vượtqua những khó khăn không chỉ trong quá trình học tập mà cả trong cuộc sống vàcông việc, để tôi có thể trưởng thành và phát triển như hôm nay.
Tôi cũng xin cảm ơn tới Giáo Sư André Étienne, Giáo Sư Laure Petrucci(trường Đại Học Paris 13, Pháp) và Giáo Sư Liu Yang (trường Đại Học NTU,Singapore) cùng các thành viên trong nhóm CATS (Compositional Analysis ofTimed Systems) đã giúp tôi hoàn thành luận văn này
Tôi xin cảm ơn tới các thầy cô trong khoa Khoa Học & Kỹ Thuật Máy Tính,người đã giúp tôi có những kiến thức quý báu trong quá trình học tập Đặc biệt,tôi xin trân trọng cảm ơn thầy Tiến Sĩ Bùi Hoài Thắng, thầy Tiến Sĩ NguyễnHứa Phùng cùng các bạn trong nhóm nghiên cứu SAVE (Systems Analysis andVErification), trường Đại Học Bách Khoa, nơi tôi đã học tập và làm việc trongquá suốt quá trình nghiên cứu và thực hiện đề tài luận văn tốt nghiệp này
Cuối cùng, tôi xin cảm ơn tới gia đình và bạn bè, những người luôn ở bên tôinhững lúc khó khăn nhất và động viên, giúp đỡ tôi trong suốt những năm qua
Lê Đình Thuận
iv
Trang 5“If you can’t explain it simply, you don’t understand it well enough.”
Albert Einstein
v
Trang 6Hiện nay, công nghiệp phần mềm ngày càng phát triển Ứng dụng phần mềmđã len lõi vào trong cuộc sống trên hầu hết tất cả các mặt Phần mềm, các hệthống tự động càng ngày càng đóng vai trò quan trọng trong cuộc sống con người.Cũng vì vậy, người ta càng ngày càng chú ý hơn tới việc kiểm tra tính đúng đắncủa các hệ thống tự động, thông minh.
Để có thể kiểm tra tính đúng đắn của hệ thống, người ta cần mô hình hóa hệthống và sử dụng các công cụ hỗ trợ kiểm tra trên mô hình đó Petri Nets là mộtcông cụ để biểu diễn mô hình được ứng dụng rộng rãi trong các lĩnh vực nghiêncứu và thực tiễn như thiết kế phần cứng, hệ thống liên lạc, hệ thống kinh doanh,sản xuất Hệ thống sau khi mô hình dưới dạng mô hình Petri Nets có thể kiểmtra bằng tay hoặc dùng các công cụ như Tina, Snoopy để kiểm tra Tuy nhiên,việc kiểm tra mô hình Petri Nets còn gặp nhiều vấn đề khó khăn
Khó khăn đầu tiên là với các hệ thống lớn, mô hình Petri Nets tương ứng cũnglớn Từ đó việc kiểm tra trạng thái mô hình bằng tay là hầu như không thể Đểkhắc phục khó khăn nay, người ta sử dụng các công cụ để mô phỏng lại mô hìnhPetri Nets Khó khăn thứ hai, cũng là khó khăn chính khi sử dụng các công cụmô phỏng mô hình Petri Nets Đó là sự bùng nổ không gian trạng thái trong quátrình mô phỏng Điều này khiến cho nhiều công cụ không thể kiểm tra tính đúngđắn của mô hình trong thời gian cho phép
Từ đó mục tiêu của đề tài luận văn là nghiên cứu các kỹ thuật và xây dựngcông cụ cho phép kiểm tra các mô hình Petri Nets đơn giản và phức tạp bằng cáckỹ thuật kiểm tra mô hình (model checking)
Để giải quyết các khó khăn đề cập ở trên khi kiểm tra mô hình Petri Nets, đềtài đã sử dụng các phương pháp:
• Đối với các mô hình Petri Nets “đa thành phần” phức tạp, ta chia nhỏ môhình để việc kiểm tra được đơn giản hơn
• Sử dụng lược đồ quan sát đặc trưng (Symbolic Observation Graph) để trừutượng hóa các mô hình Từ đó giảm không gian trạng thái cần kiểm traxuống một cách rõ rệt
vi
Trang 7• Áp dụng chiến thuật kiểm thử tăng dần để kiểm tra mô hình Petri Nets đathành phần Từ đó, hỗ trợ khả thi việc kiểm tra các mô hình Petri Netsphức tạp.
Kết quả của luận văn là công cụ PeCAn, một công cụ hỗ trợ việc kiểm tra mộtmô hình Petri Nets Không chỉ dừng lại ở việc hỗ trợ các mô hình Petri Nets cơbản, luận văn còn nghiên cứu vào mô hình Petri Nets “đa thành phần” Bên cạnhđó, luận văn còn nghiên cứu các phương pháp kiểm tra cho mô hình nâng cao nàysử dụng đồ thị quan sát đặc trưng và kiểm thử tăng dần với mục tiêu tránh sựbùng nổ trạng thái - vấn đề thường mắc phải khi hiện thực kiểm tra mô hình.Theo như khảo sát của tác giả, thì đây là công cụ đầu tiên hỗ trợ việc kiểm thửmột mô hình Petri Nets đa thành phần, bên cạnh việc cung cấp một giao diệnthân thiện với người dùng và nhiều tính năng ưu việt khác
vii
Trang 8Nowaday, technology is become a part of our daily life Softwares, automatic tems take an important role in human activities Therefore, people are gettingmore and more concern about the correctness of these systems.
sys-In order to be able to verify system, we need to convert it into a model first.Petri Nets is a well-known tool that had been applied widely in many area fromhardware design, communication system to bussiness process or real product .After modelling in Petri Nets format, we can verify manually or using tools suchas Tina, Snoopy to verify system But there are still many obstacles in checkingprocess
First, in the real system with largescale, Petri Nets models become big Thismakes the handy approach is unacceptable Another approach is using modelchecker tools to simulate and verify models Then, we face with second issue:the wellknown state explosion problem which makes the verify process becomesimpracticable
Therefore, this thesis aims to research theory and techniques in verify PetriNets models, from basic to complicated one, using model checking In order tohandle the problem of verify Petri Nets models, this thesis using following tech-niques:
• Using compositional verification technique to handle the complex Petri Netsmodels: we break the system into small ones
• Using Symbolic Observation Graph to abstract models By doing in this way,we can reduce generated state space, which makes this approach turnd intoa promising solution
• Applying incremental verification approach which allows chance to increseperformance in verifying compositional models Then, this provides abilityin checking large models
The thesis outcome is a verification tool on Petri Nets models, named PeCAn.PeCAn supports not only the normal Places/Transitions Petri Nets models butalso the compositional Petri Nets models Researching advanced model checking
viii
Trang 9technique is another part in this thesis, with the using Symbolic ObservationGraph and Incremental approach, PeCAn reduces significantly number of states toalleviate the state-space explosion problem, the most frequently problem in modelchecking appoach To the best of our knowledge, after we studying many state-of-the-art Petri Nets tools, PeCAn is the first tools support verify a compositionalmodels come with friendly graphcial user interface and other remarkable functions.
ix
Trang 10Tôi xin cam đoan ngoại trừ những phần được ghi rõ là tham khảo trong bàibáo cáo này, tất cả những công việc khác đều được hoàn thành bởi chính tôi vàcông việc này chưa được trình bày ở bất cứ tài liệu nào khác.
Lê Đình Thuận
x
Trang 111.1.2 Kiểm tra mô hình 4
1.1.3 Đồ thị quan sát đặc trưng và kiểm thử tăng dần 6
1.2 Mục tiêu của đề tài 8
1.3 Đóng góp của đề tài 8
1.4 Phạm vi và hướng phát triển của đề tài 9
1.5 Cấu trúc của luận văn 9
2 Kiến thức nền tảng 112.1 Petri Nets 11
2.1.1 Hành vi ngữ nghĩa của Petri Nets 13
2.1.2 Tính hành vi của Petri Net 14
2.1.3 Tính cấu trúc của Petri Net 17
2.2 Kiểm tra mô hình 18
2.2.1 Đường thực thi 19
2.2.2 Luận lý tuyến tính theo thời gian - LTL 20
xi
Trang 123 Nghiên cứu liên quan 22
3.1 Các phương pháp kiểm tra mô hình cho mô hình Petri Nets 22
3.2 Các hướng tiếp cận để xây dựng công cụ kiểm tra mô hình 24
4 Kiểm tra bằng lược đồ quan sát đặc trưng 264.1 Lược đồ quan sát đặc trưng 26
4.2 Xây dựng lược đồ quan sát đặc trưng cho mô hình Petri Nets 30
4.2.1 Ánh xạ mô hình Petri Nets vào hệ thống chuyển đổi tháitheo nhãn 30
4.2.2 Giải thuật xây dựng đồ thị quan sát đặc trưng trên mô hìnhPetri Nets 32
5 Chiến lược kiểm thử tăng dần 345.1 Chiến lược tiếp cận 34
6.2 Các thành phần trong một module của hệ thống của PAT 42
6.3 Kiến trúc của PeCAn 44
7 Thử nghiệm và so sánh 467.1 Khảo sát về tính năng 46
7.2 Kết quả thử nghiệm 47
7.2.1 Thử nghiệm với mô hình Petri Nets đơn thành phần 47
7.2.2 Thử nghiệm với mô hình Petri Nets đa thành phần 51
8 Kết luận 52A Hướng dẫn sử dụng công cụ PeCAn 54A.1 Thông tin chung 54
B.2 Định nghĩa ngữ nghĩa của mô hình 60
B.3 Mở rộng các phương thức kiểm tra của PAT cho lĩnh vực cụ thể 62
Trang 13MỤC LỤC xiii
Trang 141.1 Mô hình bài toán nhà triết gia với n = 4 2
1.2 Bài toán 1.1 được biểu diễn bằng mô hình Petri Nets 2
1.3 Ví dụ về một mô hình Petri Nets có 3 thành phần 3
1.4 Không gian trạng thái đầy đủ của mô hình Petri Nets trong hình 1.3 41.5 Lược đồ hoạt động của phương pháp kiểm tra mô hình 5
1.6 Đồ thị quan sát đặc trưng của mô hình Petri Nets trong hình 1.3 72.1 Ví dụ dùng mô hình Petri Nets biểu diễn chuỗi phản ứng hóa học 112.2 Ví dụ mô hình Petri Net 14
2.3 Trạng thái của mô hình Petri Nets trong hình 2.2 sau khi 14
2.4 Ví dụ một 2 − bounded Petri Net 15
2.5 Ví dụ một unbounded Petri Net 15
2.6 Ví dụ về tính Liveness của Petri Net 16
2.7 Ví dụ về tính Deadlock của Petri Net 16
2.8 Ví dụ về tính bounded fairness của Petri Net 17
2.9 Ngữ nghĩa các toán tử trong công thức LTL 21
4.1 Ví dụ về hệ thống dịch chuyển trạng thái theo nhãn 27
4.2 Ví dụ về hệ thống chuyển trạng thái theo nhãn được phân loại cầnquan sát và không cần quan sát 29
4.3 Ví dụ về lược đồ quan sát đặc trương của ví dụ 4.2 31
5.1 Phương pháp tiếp cận của chiến lược kiểm thử tăng dần 35
5.2 Lược đồ phân rã hệ thống theo biểu thức LT L \ X 37
5.3 Hệ thống có thể phân rã được 38
5.4 Bất biến tuyến tính dùng để mô phỏng các places trừu tượng tronghệ thống đa thành phần 40
5.5 Chiến lược kiểm tra tính đúng đắn của phản ví dụ 41
6.1 Kiến trúc của PAT 43
6.2 Sự tương tác giữa các thành phần trong PAT 44
6.3 Kiến trúc hệ thống PeCAn 45
7.1 Mô hình Dekker với N = 2 48
A.1 Giao diện GUI chính của PeCAn 55
A.2 Giao diện thiết kế mô hình hệ thống của PeCAn 56
xiv
Trang 15DANH SÁCH HÌNH VẼ xvA.3 Giao diện khai báo các tính chất của hệ thống trong PeCAn 56
A.5 Giao diện quá trình mô phỏng phản ví dụ tìm được trong PeCAn 58B.1 Workflow quá trình xử lý mô hình của PAT 61B.2 Workflow của quá trình sinh trạng thái configuration 61
Trang 167.1 Các công cụ hiện tại hỗ trợ mô hình Petri Nets dưới định dạng PNML 46
toàn bộ không gian trạng thái của mô hình 49
hết toàn bộ không gian trạng thái của mô hình 50
xvi
Trang 17Chương 1Giới thiệu
1.1.1Petri Nets
Petri Nets [1] là một công cụ nổi tiếng trong lĩnh vực kiểm tra mô hình (ModelChecking) Mặc dù được phát triển từ năm 1964 nhưng mô hình Petri Nets vẫnđược sử dụng trong các hệ thống đồng thời (concurrent system) hiện nay trong cảlĩnh vực nghiên cứu lẫn ứng dụng thực tiễn như các mạch phần cứng [2], hệ thốngliên lạc [3], hệ thống kinh doanh [4], sản xuất [5] Sự hấp dẫn của mô hình nàynằm ở việc Petri Nets có thể biểu diễn các khái niệm ở mức ý niệm và cả mứctoán học [6]
Một mô hình Petri Nets bao gồm các places được liên kết với nhau thôngqua các transitions Mỗi place chứa một số lượng xác định tokens tại một thờiđiểm Khi tất cả các places nguồn của một transition chứa đủ số lượng tokens yêucầu (thông thường, mỗi place cần 1 token) thì transition này có khả năng Fire(Fireable) Và khi một transition được fire, các tokens “di chuyển” từ các placesnguồn tới các places đích (được transition trỏ tới)
Xét ví dụ về bài toán kinh điển: các nhà triết gia ăn tối [7] Bài toán như sau:Có n nhà triết gia cùng ăn tối trên bàn Trước mặt mỗi người có một cái đĩa vàbên phải có một cái nĩa Để có thể ăn, mỗi người cần có 2 nĩa trái và phải Và saukhi ăn xong nhà triết gia sẽ bỏ nĩa xuống và người khác có thể dùng hai nĩa đó.Hình 1.1 thể hiện bài toán nhà triết gia với n = 4
1
Trang 18Hình 1.1: Mô hình bài toán nhà triết gia với n = 4.
Bài toán các nhà triết gia ăn tối là một bài toán kinh điển về tính chất deadlockcủa một mô hình hệ thống Các nhà triết gia đều có thể được ăn nếu như mỗingười lần lượt thực hiện việc của mình Tuy nhiên, nếu tất nhà triết gia đều chiếmgiữ tài nguyên, mỗi người giữ 1 cái nĩa bên phải của mình thì không nhà triết gianào ăn được, tượng trưng cho trạng thái deadlock của hệ thống Để có thể pháthiện trường hợp này, người ta cần mô hình hóa hệ thống ban đầu để có thể ápdụng các công cụ kiểm tra mô hình Hình 1.2 biểu diễn việc mô hình hóa bài toáncác nhà triết gia ăn tối với n = 4 bằng mô hình Petri Nets
a4
l4thinking4
Trang 19Chương 1 Giới thiệu 3Trong hình 1.2, mô hình Petri Nets có tập các places P = {f ork1 4, eat1 4,thinking1 4, a1 4}, và tập các transitions là T = {l1 4, r1 4, b1 4} Trong đó cácplaces f ork và thinking đang giữ “token” Tokens là một đại lượng tượng trưngtài nguyên hệ thống Trong bài toán này, tokens tượng trưng cho trạng thái củanhà triết gia và của các nĩa Trạng thái một nhà triết gia i đang ăn tương ứng vớiplace eatingi có token Để đạt được điều này, transition ri phải fire, tương đươngnhà triết gia đó đã lấy được nĩa bên phải (f orki) và nĩa trái (li) Với trạng tháihiện tại đang được mô tả trong hình 1.2, các nhà triết gia đang suy nghĩ, và 4 nĩađều ở trạng thái sẵn sàng, các transitions li và ri đề ở trạng thái fireable Khi mộttransition, giả sử transition r2, được fire, ở trạng thái mới, token được chuyển từplace f ork2 sang place eating2.
B3F3
C1
Hình 1.3: Ví dụ về một mô hình Petri Nets có 3 thành phần
Đối với các hệ thống Petri Nets bao gồm nhiều thành phần (compositional PetriNets), giữa các thành phần còn có synchronized transitions Hai transitions đượcgọi là synchronized với nhau khi và chỉ khi hai transitions này chỉ được fire đồngthời, hay khi một transition fire thì các synchronized transitions của transitionsđó cũng được fire Hình 1.3 là một ví dụ của mô hình Petri Nets “đa thành phần”(compositional Petri Nets) với 3 thành phần và các synchronized transitions là F1,F2 và F3: transitions F1 và F3 đồng bộ giữa hai module A và B; transitions F2
đồng bộ giữa hai module B và C.Trong các nghiên cứu về Petri Nets có hai vấn đề nổi trội cần được quan tâm.Câu hỏi thứ nhất: làm sao để mô hình một hệ thống bằng Petri Net Bài toán thứhai, mô hình hệ thống có thỏa mãn các tính chất cần kiểm định hay không Việctrả lời hai câu hỏi này là vấn đề vẫn thách thức các nhóm nghiêm cứu hiện nay
Trang 20tA
F3
Hình 1.4: Không gian trạng thái đầy đủ của mô hình Petri Nets trong hình 1.3
Trong khi câu hỏi thứ nhất có thể giải quyết qua quá trình huấn luyện, nhưng đểgiải quyết được câu hỏi thứ hai thì không hề đơn giản Đây chính là động lực chínhcủa các hướng nghiên cứu về phương pháp hình thức (Formal Methods [8, 9]), baogồm lĩnh vực kiểm tra mô hình (Model Checking) [10]
Để kiểm tra một mô hình Petri Nets có thỏa mãn kiểm tra một thuộc tínhmột (property) người ta cần duyệt qua không gian trạng thái (state space) của môhình Giả sử, ta cần kiểm tra tính chất transition F2 có được fire hay không Tacần phải duyệt qua không gian trạng thái đầy đủ của hệ thống được nêu tronghình 1.4 Cụ thể, trong trường hợp này, ta sẽ cần qua 4 bước (F1, tA, tB, F2) đểcó thể khẳng định được kết quả cần kiểm tra
1.1.2Kiểm tra mô hình
Khoa học và công nghệ ngày càng phát triển, len lõi vào các ngõ ngách của cuộcsống Máy tính, hệ thống thông minh, tự động xuất hiện trong những hoạt độngtừ kinh tế, quân sự tới những đời sống thường nhật Ta có thể nhìn thấy sự giúp đỡcủa các hệ thống phầm mềm trong các hệ thống thông tin, dây chuyền sản xuất,hay trong các hệ thống xe hơi, máy bay, tên lửa Có những hệ thống, trong quátrình hoạt động nếu gặp vấn đề, ta có thể thiết lập lại mà không tốn quá nhiềuchi phí Nhưng cũng có những hệ thống đòi hỏi tính nghiêm ngặt về sự ổn địnhvà đúng đắn của nó, vì hậu quả khi sự cố xảy ra vô cùng to lớn về của cải và tinhthần Thử tưởng tượng một cái máy trợ tim chẳng may ngừng hoạt động trongđêm, hay chương trình phóng tên lửa bị lỗi khiến tên lửa nổ tung thì những thiệthại gây ra khó có thể lường trước hay đo đếm được Do đó, ngày nay, bên cạnh
Trang 21Chương 1 Giới thiệu 5việc phát triển các phần mềm, hệ thống thông minh, tự động, việc kiểm chứngtính đúng đắn của chương trình, hệ thống này ngày càng được nhiều sự quan tâmhơn để có thể ngăn chặn một phần các thảm họa có thể xảy ra.
Công việc kiểm tra thử nghiệm thuộc kiểm định chất lượng Kiểm thử (testing)là một phần trong quy trình này, và phương thức phổ biến hiện nay là sử dụngcác bộ mẫu thử (testcase) để tìm kiếm các lỗi có trong hệ thống Tuy nhiên, vớiphương thức này, dù chương trình có vượt qua tất cả các mẫu thử thì ta vẫn khôngthể khẳng định là chương trình không có lỗi Để chứng minh tính đúng đắn củamột chương trình, người ta ta cần dùng các lý thuyết về logic và toán học, nhưfirst-order logic Đó là mục tiêu của hướng nghiên cứu kiểm tra hình thức (formalmethod ), và kiểm tra mô hình (model checking) là một nhánh trong hướng nghiêncứu này
Kiểm tra mô hình
Xác định lỗi
Hình 1.5: Lược đồ hoạt động của phương pháp kiểm tra mô hình
Phương pháp kiểm tra mô hình dùng để kiểm tra một mô hình của một hệthống thỏa mãn các tính chất cho trước Các tính chất này thường được biểu diễnbằng một phát biểu logic Trong đề tài luận văn này, logic được chọn là ngôn ngữ“luận lý tuyến tính theo thời gian” (Linear Temporal Logic) Hình 1.5 thể hiện lượcđồ hoạt động của phương pháp kiểm tra mô hình Ý tưởng chính của phương pháp
Trang 22kiểm tra mô hình để thực hiện việc kiểm tra các tính chất này là duyệt qua toànbộ cây không gian trạng thái của một mô hình để tìm một phản ví dụ (counterexample) vi phạm các điều kiện được đặt ra Cây không gian trạng thái là mộtcây chứa tất cả các trạng thái của thể có của hệ thống Thông thường, phươngpháp này được xếp loại vào “tiếp cận theo hướng xấp xỉ hơn” (over-approximation-driven) Trong đó hệ thống được trừu tượng hóa thông qua mô hình Nếu ta tìmthấy một phản ví dụ trong mô hình của hệ thống, ta có thể tìm được phản ví dụtrong hệ thống ban đầu Nhưng nếu ta không tìm thấy lỗi do quá trình tìm kiếmkết thúc sau một khoảng thời gian định trước (timeout ), ta không thể khẳng địnhhệ thống ban đầu hoàn toàn không có lỗi.
1.1.3Đồ thị quan sát đặc trưng và kiểm thử tăng dần
Việc sử dụng kiểm tra mô hình với các chiến thuật hợp lý đem lại nhiều hứahẹn kiểm tra được tính đúng đắn của hệ thống trong thời gian cho phép Tuynhiên, vấn đề không thể tránh khỏi trong phương pháp này là bùng nổ không giantrạng thái Đã có nhiều nghiên cứu khác nhau trong lĩnh vực kiểm tra mô hìnhnhằm tránh khỏi việc phải duyệt qua tất cả không gian trạng thái như trừu tượnghóa [11, 12], thu nhỏ kích thước các trạng thái [13–15], kiểm tra một phần mô hình(partial modelchecking) [16], kiểm tra modun (modular verification) [17–19] Sửdụng đồ thị quan sát đặc trưng (Symbolic Observation Graph - SOG) và kiểm thửtăng dần (incremental verification) là hướng được nghiên cứu trong đề tài luậnvăn này
Đồ thị quan sát đặc trưng [20] là một dạng đồ thị biểu diễn không gian trạngthái được thu nhỏ nhằm mục đích tăng tốc cho quá trình kiểm tra mô hình Về cơbản, các trạng thái nhỏ được gom lại thành một trạng thái lớn gọi là meta-state.Ưu điểm của cách sử dụng mô hình này là không gian trạng thái được giảm đángkể Tuy nhiên, đổi lại, ta phải hy sinh chi phí xây dựng đồ thị này, và việc một sốtính chất ban đầu của luận lý tuyến tính theo thời gian sẽ không biểu diễn, đảmbảo được bằng cách mô hình hóa này Cụ thể, trên đồ thị quan sát đặc trưng, tachỉ có thể kiểm tra các thuộc tính LT L \ X (luận lý tuyến tính theo thời gian,loại bỏ toán tử kế tiếp (next ))
Hình 1.6 là một đồ thị quan sát đặc trưng của mô hình Petri Nets trong vídụ 1.3, với các Transitions cần quan sát (observed transitions) là F1, F2, F3, cácTransitions “nội bộ/không cần quan sát” (unobserved transitions) là tAvà tB Các
Trang 23Chương 1 Giới thiệu 7
M0
A1B1C1
M1loop
_
tAF1
M2
A2B3C2
A3B3C2
F2
Hình 1.6: Đồ thị quan sát đặc trưng của mô hình Petri Nets trong hình 1.3
trạng thái được “gom” chung lại với nhau trong một trạng thái lớn gọi là state Meta-state bao gồm nhiều trạng thái của hệ thống, được nối nhau bởi cáccạnh không cần quan sát Giữa các meta-state liên kết với nhau thông qua cáccạnh cần quan sát Ta dễ nhận thấy rằng không gian trạng thái của SOG đượctạo ra nhỏ hơn so với không gian trạng thái ban đầu Và để kiểm tra điều kiệntransitition F2 có được fired hay không (trạng thái F2 có đến được hay không,được biểu diễn dưới dạng luận lý tuyến tính theo thời gian bằng công thức ♦F2),ta chỉ cần thông qua 2 bước (F1, F2) để khẳng định được tính chất này
meta-Một lợi ích khác khi sử dụng đồ thị quan sát đặc trưng là tính hữu dụng khimô hình kiểm tra gồm nhiều thành phần (compositional model ), khi một hệ thốnglớn được phân rã thành nhiều hệ thống con Đây cũng là tư tưởng của hướng tiếpcận kiểm tra tăng dần (incremental approach) Ngoài ra, SOG còn có đặc điểmkhả dụng lại (reuse) Khi hệ thống cần kiểm tra có cùng một số tính chất, ta cóthể sử dụng lại SOG đã xây dựng cho phương thức kiểm tra trước đó để cải tiếnđáng kể cho thời gian kiểm tra chương trình
Trang 241.2Mục tiêu của đề tài
Mục tiêu của đề tài được đặt ra là phát triển phương pháp kiểm tra mô hình PetriNets một cách hiệu quả
• Nghiên cứu áp dụng việc kiểm tra mô hình để kiểm tra mô hình Petri Nets.Dựa vào các tính chất ưu việt của phương pháp kiểm tra mô hình khi kiểmtra các mô hình lớn, việc xât dựng công cụ kiểm tra mô hình Petri Netstrong môi trường thực tế có thể thực hiện được
• Nghiên cứu bài toán phân rã một mô hình lớn thành các mô hình nhỏ hơncho việc phân rã mô hình Petri Nets đa thành phần
• Nghiên cứu áp dụng đồ thị quan sát đặc trưng trên mô hình Petri Nets nhằmtrừu tượng hóa bài toán, giảm không gian trạng thái Từ đó, dẫn tới khảnăng thu gọn không gian trạng thái của mô hình và thời gian kiểm tra môhình
• Nghiên cứu và hiện thực chiến lược kiểm tra tăng dần (incremental proach) Sử dụng bất biến tuyến tính (linear invariant ) để mô phỏng hànhvi các mô hình Petri Nets đã chia nhỏ
ap-Đề tài nghiên cứu về các kỹ thuật kiểm tra mô hình dành cho Petri Nets Từ đóphát triển hệ thống kiểm tra cho mô hình Petri Nets, và cải tiến hệ thống sử dụngcác cách tiếp cận nâng cao sử dụng đồ thị quan sát đặc trưng và hướng tiếp cậnkiểm tra tăng dần
Trang 25Chương 1 Giới thiệu 9• Đề tài đã công bố 02 bài báo khoa học tại hội nghị ATVA 2014 [22] và
CCEEE 2014 [23]
Trong phạm vi giới hạn về thời gian, vẫn còn một số mô hình Petri Nets chưađược hỗ trợ, ví dụ như Petri Nets với màu, Petri Nets với thời gian Đây cũnglà hướng phát triển tiếp theo cho đề tài:
• Nghiên cứu hướng tái sử dụng lược đồ quan sát đặc trưng khi có nhiều thuộctính cần kiểm tra Xây dựng lược đồ quan sát đặc trưng dựa trên lược đồquan sát đặc trưng tổng quát hơn Từ đó có thể giảm chi phí xây dựng lượcđồ và tăng tốc độ cho hệ thống
• Hỗ trợ các mô hình Petri Nets khác như mô hình Petri Nets với thời gian(Timed Petri Nets), Petri Nets với màu (Colored Petri Nets)
Phần tiếp theo của luận văn được trình bày như sau:
• Chương 2 trình bày các kiến thức về mô hình Petri Nets vào các kiến thứcnền về kiểm tra mô hình
• Chương 3 trình bày các nghiên cứu gần đây về kiểm tra mô hình Petri Nets,cũng như các phương pháp để xây dựng một công cụ kiểm tra mô hình.• Chương 4 giới thiệu về lược đồ quan sát đặc trưng và các đặc điểm của lược
đồ này.• Chương 5 trình bày về mô hình đa thành phần và chiến lược kiểm tra tăng
dần và giải thuật tìm kiếm bất biến tuyến tính để mô phỏng môi trường.• Chương 6 trình bày về kiến trúc của framework PAT, nội dung kiến trúc của
công cụ PeCAn
Trang 26• Chương 7 trình bày về các khảo sát về các công cụ khác, đồng thời cũngtrình bày về các thí nghiệm và kết quả sơ khởi đạt được.
• Chương 8 tổng kết lại luận văn này, và đề cập tới hướng phát triển tiếp theocủa luận văn
• Phụ lục A hướng dẫn về cách sử dụng công cụ PeCAn.• Phụ lục B hướng dẫn về cách tạo một module kiểm tra mô hình trong
framework PAT.• Phụ lục C thể hiện chi tiết quá trình làm việc trong thời gian hiện thực luận
văn này
Trang 27Chương 2Kiến thức nền tảng
Như đã đề cập về quy trình kiểm tra một hệ thống trong hình 1.5, để thực hiệnviệc kiểm tra hệ thống, ta cần mô hình hóa hệ thống dưới bằng mô hình PetriNets và đặc ta hình thức yêu cầu Chương này sẽ cung cấp những kiến thức cơbản về mô hình Petri Nets và kiểm tra mô hình
Petri Net là một công cụ dạng đồ thị để mô hình hóa một cách hình thức các dòngchảy của các hoạt động (process) Được phát minh lần đầu vào tháng 8 năm 1939bởi German Carl Adam Petri để mô phỏng chuỗi các phản ứng hóa học như trongví dụ 2.1
CO2
Hình 2.1: Ví dụ dùng mô hình Petri Nets biểu diễn chuỗi phản ứng hóa học
Định nghĩa 2.1 Petri Nets là một bộ ký hiệu P N = hP, T, W, M0i trong đó:
11
Trang 28• P là tập hợp hữu hạn các places P = {p0, p1, , pnp}.• T là tập hợp hữu hạn các transitions T = {t0, t1, , tnt}.• W là một đơn ánh biểu diễn trọng số của các Arcs nối giữa các cặp place và
transition (P × T ) ∪ (T × P ) → N.• M0 là trạng thái marking khởi tạo của hệ thống Một trạng thái marking
của hệ thống là một đơn ánh m : P → N thể hiện một trạng thái của hệthống Petri Nets Ký hiệu Mi(p) cho số lượng tokens của place p tại trạngthái marking Mi
Biểu diễn đồ thị của mô hình Petri Net là một đồ thị hai phần có hướng với2 loại đỉnh (vertexes) khác nhau (Places và Transitions) và các cung (edges) nốigiữa các đỉnh Các cung này chỉ nối giữa 2 đỉnh khác loại với nhau: từ Place đếnTransition hoặc ngược lại, từ Transition đến Place Cụ thể như sau:
Places là đỉnh của đồ thị, được ký hiệu bằng những hình tròn, biểu diễn nhữngđiều kiện, trạng thái hay đối tượng của hệ thống
Transitions là đỉnh của đồ thị, ký hiệu bằng những hình chữ nhật/hình vuông,biểu diễn những hành vi làm thay đổi những điều kiện, trạng thái hay đốitượng của hệ thống
Tokens ký hiệu bằng những dấu chấm, biểu diễn giá trị cụ thể của điều kiện,trạng thái hay đối tượng của hệ thống
Arcs ký hiệu bằng những đường mũi tên có hướng nối từ Places đến Transitonsvà ngược lại, biểu diễn mỗi quan hệ giữa những điều kiện với các hành vi cụthể Đối với 1 cặp (P, T ) với P là Place và T là Transition, chỉ có một loạiArc theo một hướng xác định Không bao giờ có Arc nối giữa 2 đối tượngcùng loại
Như vậy, marking là một bộ các số lượng tokens của mỗi place trong một trạngthái cụ thể của Petri Nets Các Arcs mặc định có trọng số là 1 Ta có thể thamkhảo lại ví dụ 2.1 về một mô hình Petri Nets cơ bản Trong đó, ta có tập cácplaces P = {C, O2, CO2, N aOH, N aHCO3, HCl, H2O, N aCl, CO2}, và tập cáctransitions T = {r1, r2, r3}, và trạng thái marking khởi tạo M0 = {C = 1, O2 =1, CO2 = 0, N aOH = 1, N aHCO3 = 0, HCl = 1, H2O = 0, N aCl = 0, CO2 = 0}
Trang 29Chương 2 Kiến thức nền tảng 13
2.1.1Hành vi ngữ nghĩa của Petri Nets
Hành vi ngữ nghĩa của mô hình Petri Nets bao gồm enabling và firing của cácTransition
Định nghĩa 2.2 I−, I+ là hai hàm biểu diễn mối quan hệ giữa các cặp Places pvà Transition t
• Với I−(p, t) > 0 thì có một Arc nối theo từ hướng của p đến t.• Với I+(t, p) > 0 thì có một Arc nối theo từ hướng của t đến p.Quy ước, ta ký hiệu:
• •t = {∀p ∈ P, I−(p, t) > 0}• t• = {∀p ∈ P, I+(t, p) > 0}• •t• = •t ∪ t•
Định nghĩa 2.3 Một transition t được cho là enable/fireable tại marking Mi khivà chỉ khi Mi(p) ≥ I−(p, t) với ∀p ∈ P , ký hiệu là Enable(t, Mi)
Định nghĩa 2.4 Khi một transition t đang enable tại marking M , t có thể fire vàtạo ra trạng thái marking mới M0, ký hiệu M −→ Mt 0, với M0 = M (p) − I−(p, t) +I+(t, p) với ∀p ∈ P Sau khi fire thì,
• M0i = Mi− I−(i, t) với ∀i ∈ P• M0
j = Mj + I+(t, j) với ∀j ∈ PVề cơ bản, hàm I−(p, t) biểu diễn cho số lượng tokens cần có của một place pđể transition t được enable, cũng là số lượng tokens của p mất đi sau khi t đượcfire I+(t, p) biểu diễn cho số lượng tokens thêm vào một place p sau khi transitiont được fire Thông thường, các giá trị của I− và I+ là 1
Một ví dụ về mô hình Petri Nets được nêu trong hình 2.2 Các places P1, P4
chứa 1 tokens, places P2 không có chứa token nào, và places P3 chứa 2 tokens Ởtrạng thái này, ta thấy các places nguồn (P1) của Transition T1 đã có đủ số lượngtokens cần thiết Do đó transition T1 là fireable Xét transitions T2, để T2 có thể
Trang 30P1 T1
P2
P3
T2P4
Hình 2.2: Ví dụ mô hình Petri Net
P2
P3T2
P4
Hình 2.3: Trạng thái của mô hình Petri Nets trong hình 2.2 sau khi
fireable thì Place P2 cần chứa ít nhất 1 token Tuy nhiên, P2 không chứa tokennào cả, nên T2 không ở trạng thái fireable
Khi transition T1 được fire, ta thu được mô hình Petri Nets như ví dụ 2.3.Tokens được “dịch chuyển” từ Place P1 vào P2 và P3 Ở trạng thái mới này,transition T2 cũng đã chuyển sang trạng thái fireable
2.1.2Tính hành vi của Petri Net
Tính hành vi (behavior, động) của Petri Nets có thể xác định được bằng trạngthái marking ban đầu và các trạng thái khác có được từ các firing transitions:
Reachability Khi nghiên cứu về Petri Net, chúng ta muốn biết liệu trạng tháimarking M1 có thể đạt đến từ trạng thái marking khởi đầu M0 hoặc liệumột trạng thái không mong muốn có thể tránh được hay không? Bởi vậy, bàitoán đặt ra là trong mô hình có một chuỗi các firing sinh ra các trạng tháimới hay không? Lớp bài toán này được đặt tên là “reachability problem”.Boundness Một Petri Net được gọi là k − bounded nếu tại trạng thái marking
ban đầu và tất cả những trạng thái markings bất kỳ có tối đa k tokens Một
Trang 31Hình 2.5: Ví dụ một unbounded Petri Net
sơ đồ Petri net được coi là bounded nếu và chỉ nếu tập trạng thái của nó làhữu hạn Hình 2.4 là một ví dụ về 2 − bounded Petri Net, hình 2.5 là một vídụ về unbounded Petri Net
Safeness là một trường hợp đặc biệt của boundness khi k = 1Liveness Một mô hình được coi là live nếu các transitions có một cách để firing
tại bất kỳ trạng thái marking M0 được sinh ra từ marking khởi tạo M0.Thuộc tính liveness có nhiều mức độ:
• Mức 0 (dead ): Transition t không thể firing.• Mức 1: tiềm tàng khả năng fire, nếu Transition t có thể fire tối thiểu 1
lần tại bất kỳ chuỗi firing nào.• Mức 2: transition t có thể fire tối thiểu k lần tại vài chuỗi firing.• Mức 3: transition t fire vô số lần trong vài chuỗi firing
• Mức 4: nếu tồn tại mức 1 cho mỗi trạng thái được sinh ra từ trạng tháikhởi đầu
Hình 2.6 mô tả ví dụ về tính Liveness của Petri Net trong đó transition t0
mức 0 (dead ), và ∀j > 0 : tj có mức Lj live.Deadlock là trạng thái mà tại đó không có bất cứ transition nào được en-
abled Hình 2.7 mô tả về một trường hợp Deadlock của Petri Net sau khichuỗi Transitions sau được fire: time_out_1, time_out_2, processing_NOK,processing_NOK
Trang 32o
Hình 2.7: Ví dụ về tính Deadlock của Petri Net
Coverability một trạng thái marking M được coi là coverable nếu tồn tại mộttrạng thái marking M0 sinh ra từ trạng thái ban đầu M và số tokens ở mộtplace bất kỳ của M0 lớn hơn M
Persistence khi trong mô hình, mỗi cặp transition bất kỳ, nếu một transitionfiring thì kết quả không làm mất enable của transition kia
Trang 33Chương 2 Kiến thức nền tảng 17Fairness thuộc tính này có 2 loại: bounded fairness và unconditional (global)
fairness• Bounded fairness: xảy ra khi xét một cặp 2 transition bất kỳ, trong
khi một transition firing thì transition kia không được fire Ví dụ nhưhình 2.8
p1
p2
Hình 2.8: Ví dụ về tính bounded fairness của Petri Net
• Unconditional (global) fairness: một chuỗi firing có tính chất này khinó có giới hạn hoặc mỗi transition trong mô hình fire vô số lần ở trongchuỗi này
2.1.3Tính cấu trúc của Petri Net
Tính cấu trúc (Structural, tĩnh) của Petri Net có thể được xác định bằng các xétcác mối quan hệ của các arc ở trong mô hình Tính cấu trúc cũng có những thuộctính tương tự như hành vi, chúng ta sẽ xét mối quan hệ giữa chúng:
Structurally live một mô hình có thuộc tính này nếu tồn tại một trạng tháikhởi đầu làm mô hình liveness Một mô hình liveness thì sẽ structurally livenhưng ngược lại thì sai
Structurally bounded một mô hình có thuộc tính này nếu mô hình luôn ness ở bất kỳ trạng thái khởi đầu nào Tương tự, mô hình có structurallybounded thì boundness nhưng ngược lại thì sai
bound-Conservativeness nếu tất cả các transition khi fire số tokens thêm vào các place (post-place) bằng với số tokens bớt đi từ các tiền-place (pre-place).Một mô hình có conservativeness thì structurally bounded
Trang 34hậu-Repetitivity nếu mô hình tồn tại một trạng thái khởi đầu và một chuỗi firingmà tại đó mỗi transition xuất hiện vô số lần Mô hình có structurally livethì repetitivity Repetitivity là điều kiện cần cho structurally live và cũng làđiều kiện cần cho liveness.
Controllability mô hình có tính chất này nếu bất kỳ trạng thái đều có thể sinhra từ một trạng thái khác
Consistency mô hình có thuộc tính này nếu tồn tại một trạng thái khởi đầu vàmột chuỗi firing từ trạng thái khởi đầu và trở lại từ trạng thái đầu, mỗitransition xảy ra tối thiểu một lần trong chuỗi đó
Kiểm tra mô hình (Model checking) là một kỹ thuật tự động, với một mô hìnhhữu hạn trạng thái biết trước, và định nghĩa một cách hình thức các thuộc tính,hệ thống có thể kiểm tra xem tính chất đó có được thỏa mãn trong mô hình haykhông [10] Về cơ bản, phương pháp kiểm thử này tìm kiếm tất cả các trạng tháicủa hệ thống có thể dẫn tới những vi phạm những thuộc tính hình thức được địnhnghĩa sẵn Như đã nêu trong phần 1.1.2, một trong những thách thức lớn nhấtkhi đi theo hướng giải pháp này là sự bùng nổ không gian trạng thái của bài toánban đầu Do đó các công cụ hiện tại đều đang gặp rắc rối với việc kiểm tra cácmô hình phức tạp
Một cách tiếp cận cơ bản của cá kỹ thuật trong kiểm tra mô hình gồm có 3bước
1 Mô hình hóa hệ thống hiện tại, sử dụng các ngông ngữ mô hình và đặc tảhình thức các tính chất của nó
2 Kiểm tra hệ thống đã được mô hình có thỏa mãn các tính chất như mongđợi không
3 Sinh các phản ví dụ (counter examples) tìm được.Định nghĩa 2.5 Một transition system là một bộ 6 giá trị M = hS, A, →, I, AP, Li, trong đó,
Trang 35Chương 2 Kiến thức nền tảng 19• S là tập hợp các trạng thái,
• A là tập hợp các hành động (action),• →⊆ S × A × S là tập hợp các quan hệ biến đổi (transition relation),• T ⊆ S × S là tập hợp các transition,
• I ⊆ S là tập hợp các trạng thái ban đầu,• AP lả tập hợp các mệnh đề cơ bản (atomic proposition),• L : S → 2AP là các hàm đánh nhãn (labelling function).Để thuận tiện, ta ký hiệu s −→ sα 0
Định nghĩa 2.6 Cho trước một transition system T S = hS, A, →, I, AP, Li,
• Một phần của đường thực thi hữu hạn (finite execution fragment ) % của T Slà một chuỗi hữu hạn các trạng thái và hành động luân phiên nhau, bắt đầuvà kết thúc ở một trạng thái xác định
% = s0α1s1α2 αnsn thỏa mãn si −−→ sαi+1 i+1 với mọi 0 ≤ i < n• Một phần của đường thực thi vô hạn (infinite execution fragment ) ρ của T S
là một chuỗi vô hạn các trạng thái và hành động luân phiên nhau, bắt đầuở một trạng thái xác định
ρ = s0α1s1α2s2α3 thỏa mãn si
αi+1
−−→ si+1 với mọi 0 ≤ i
Trang 36Để thuận tiện, ta ký hiệu % = s0α1s1α2 αnsn và ρ = s0α1s1α2s2α3 như sau:
Trong phương pháp kiểm tra mô hình, yêu cầu được định nghĩa hình thức dướidạng temporal logic như LTL (Linear Temporal Logic) hay CTL (ComputationalTree Logic [24]
2.2.2Luận lý tuyến tính theo thời gian - LTL
Luận lý tuyến tính theo thời gian (Linear Temporal Logic - LTL) là một dạnghình thức đặc tả mối quan hệ giữa các chuỗi trạng thái trong hệ thống Tính đúngđắn của hệ thống không chỉ phụ thuộc trên trạng thái hiện thời của hệ thống màcòn phụ thuộc trật tự các trạng thái xuất hiện trong chuỗi hoạt động và tính“công bằng” fairness của hệ thống Đó là một sự kết hợp các toán tử logic như ∧,∨, ¬ và các toán tử mô hình như ♦(Eventually), (Globally),
Định nghĩa 2.8 Một công thức LTL của một tập mệnh đề nguyên tử AP có cúpháp như sau:
không được sử dụng trong công thức f
Trang 38Nghiên cứu liên quan
Chương này trình bày các vấn đề về kiểm tra mô hình cho mô hình Petri Netshiện nay, hướng tiếp cận cho bài toán kiểm tra mô hình Petri Nets Đồng thời,chương này cũng thảo luận về các hướng tiếp cận để tạo một công cụ kiểm tra môhình mới hiện nay
hình Petri Nets
Ngày nay, kiểm tra mô hình đang được sự quan tâm nghiên cứu của nhiều nhàkhoa học và đơn vị Đơn cử như sự thành công gần đây của sự án SLAM [25, 26]trong việc kiểm tra mô hình cho bộ vi xử lý Intel Core i7 là một minh chứng choviệc áp dụng kiểm tra phần mềm có xu hướng thay thế kiểm tra phần cứng Tuynhiên, như đã đề cập ở phần trước, vấn đề về bùng nổ trạng thái là trở ngại lớnnhất của việc đưa kiểm tra mô hình vào thực tiễn trong công nghiệp và nghiêncứu Để giải quyết bài toán về không gian trạng thái, các nhà khoa học trong suốtnhiều năm qua đã nghiên cứu áp dụng nhiều phương pháp, kỹ thuật khác nhaunhưng với về cơ bản có đặc điểm chung là trừu tượng hóa, phân nhỏ mô hình đểtận dụng khả năng song song hóa của hệ thống Các kỹ thuật này được gọi chunglà kiểm tra cho các mô hình nhiều thành phần (compositional verification)
Trong các hệ thống lớn, kiến trúc của hệ thống thường được chia thành cácthành phần nhỏ cục bộ Một chiến thuật kiểm nghiệm hữu hiệu cho các hệ thốngnày là kiểm tra từng thành phần con nhỏ trong hệ thống [27, 28] Dựa trên tính
22
Trang 39Chương 3 Nghiên cứu liên quan 23chất của các thành phần con, tính chất tổng quát của hệ thống được khẳng định.Phương pháp kiểm tra mô hình nhiều thành phần áp dụng chiến thuật này: kiểmtra từng thành phần của hệ thống nhỏ và kết hợp các kết quả cục bộ thành tínhchất chung của toàn bộ hệ thống, sử dụng một số kỹ thuật để mô phỏng mối quanhệ giữa các thành phần con cục bộ để đảm bảo bảo tính đúng đắn của kết quảthu được.
Trong các kỹ thuật dùng để phân rã hệ thống, tác giả bài báo [19] đề cậpphương pháp khá hiệu quả bằng cách phân hoạch theo hệ thống được thiết kế:phân rã không gian trạng thái thành hai thành phần: các thành phần cục bộ vàmột đồ thị đồng bộ các thành phần đó Kỹ thuật này được minh họa bằng bàitoán điều khiển, khi ta có thể quản lý được các cạnh Một hướng tiếp cận khácđược đề cập trong [29]: hệ thống được miêu tả thành những hệ thống con songsong với nhau, không gian hệ thống được xây dựng từ mỗi trạng thái của các hệthóng con đó Tuy nhiên, không gian trạng thái của mỗi hệ thống con có thể thayđế được bằng các hành vi tương đương trước khi xây dựng không gian trạng tháiđầy đủ Chiến thuật này được áp dụng cho các hệ thống giao tiếp đồng bộ
Mặc khác, các kỹ thuật trừu tượng hóa mô hình cũng được nghiên cứu Cácmô hình sau khi đã trừu tượng, thường sẽ có kích thước nhỏ hơn, sẽ được khảosát thay vì sử dụng mô hình gốc ban đầu Tùy thuộc vào thuộc tính cần kiểm tra,một vài kỹ thuật trừu tượng hóa không bảo toàn được toàn bộ tính chất của hệthống ban đầu Trong một vài nghiên cứu như [20, 30–33], mô hình trừu tượngchỉ thỏa mãn một tính chất khi và chỉ khi hệ thống ban đầu thỏa mãn được tínhchất này Ngược lại, trong một số hướng tiếp cận khác, nếu mô hình trườu tượngthỏa mãn một tính chất (ví dụ như không bị deadlock ) thì hệ thống ban đầu cũngthỏa mãn tính chất này Do đó, nếu xét chung một mô hình trừu tượng thỏa mãnmột thuộc tính, ta không thể kết luận một cách tổng quát hệ thống ban đầu cũngthỏa mãn tính chất này (ví dụ [34]) Một cách tiếp cận khả thi khác đó là sử dụngphản ví dụ [35–39]: Khi mô hình trừu tượng không thỏa mãn một tính chất, vàphản ví dụ tìm được đúng trên toàn hệ thống, ta có thể kết luận hệ thống banđầu không thỏa mãn tính chất đó
Đề tài luận văn được thực hiện dựa trên sự kết hợp của hai hướng tiếp cậntrên: kết hợp việc kiểm tra từng phần và dựa trên việc tìm phản ví dụ trên mộtmô hình trừu tượng của hệ thống Từ đó, ta có thể kết hợp các ưu điểm của cáchướng đã đề cập ở trên
Trang 403.2Các hướng tiếp cận để xây dựng công cụ
kiểm tra mô hình
Để xây dựng một công cụ kiểm tra mô hình cho một lĩnh vực (domain) cụ thểcó nhiều hướng tiếp cận khác nhau Hướng thứ nhất, cũng là cách được áp dụngphổ biến là xây dựng bộ chuyển dịch ngôn ngữ của lĩnh vực mới vào ngôn ngữ củamột công cụ kiểm tra mô hình hiện có đã hỗ trợ (ví dụ SPIN [40], NuSMV [41],PRISM [42], Java Pathfinder [43] ) Một hướng khác là xây dựng một công cụkiểm tra mô hình mới từ đầu Cả hai hướng đều có những ưu và nhược điểm củanó
Với cách tiếp cận đầu tiên, ưu điểm mang lại là không đòi hỏi tác giả phải cókiến thức chuyên sâu về kiểm tra mô hình mà vẫn có thể tạo được công cụ Tuynhiên, hướng tiếp cận này có nhiều nhược điểm:
(a) Tùy thuộc vào từng lĩnh vực cụ thể, việc xây dựng công cụ cho lĩnh vực chuyênbiệt đòi hỏi một số kỹ thuật đặc thù để có thể tăng hiệu suất Trong khi đó,công cụ kiểm tra mô hình gốc được viết dành cho một lĩnh vực khác nên rấtkhó để công cụ xây dựng được hỗ trợ các kỹ thuật đặc biệt cho lĩnh vực mongmuốn
(b) Việc tăng hiệu suất cho quá trình kiểm tra cũng đòi hỏi có kiến thức chuyênsâu về kiểm tra mô hình Khi đó, ưu điểm về việc “không đòi hỏi kiến thứcchuyên sâu của kiểm tra mô hình” không còn là lợi thế của phương pháp này.(c) Để tăng hiệu quả của hệ thống như mục a, ta cần chỉnh sửa công cụ kiểm tramô hình để phù hợp với các kỹ thuật đó Điều này đòi hỏi ta phải có khả nănghiểu và thay đổi mã nguồn của chương trình kiểm tra mô hình sẵn có Đây làmột vấn đề khó hiện thực
Với cách tiếp cận thứ hai, xây dựng một công cụ kiểm tra mô hình từ đầu, vềlý thuyết, điều này hoàn toàn khả thi Ưu điểm của giải pháp này là ta có thể xâydựng một công cụ kiểm tra mô hình hỗ trợ cho một lĩnh vực chuyên biệt với nhữngkỹ thuật áp dụng riêng đặc thù cho lĩnh vực đó để tăng hiệu suất của hệ thống.Đổi lại, chi phí về xây dựng một công cụ kiểm tra mô hình từ đầu là rất lớn, đòihỏi kiến thức chuyên sâu về kiểm tra mô hình như giảm không gian trạng thái,đảm bảo tính fairness của phép thử, sinh phản ví dụ và mô phỏng, cung cấp giao