1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình

66 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
Tác giả Nguyen Thi Loan
Trường học Trường Đại Học Công Nghệ Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Luận văn thạc sĩ
Năm xuất bản 2012
Thành phố Hà Nội
Định dạng
Số trang 66
Dung lượng 1,18 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung nghiên cửu Nội dung để tải nghiên cứu vẻ kỹ thuật kiếm chứng mé hinh Model Checking, ding céng cụ Spin để thực hiện kiếm chứng mô hinh hệ thông báo động, báo cháy, sử dụng ngô

Trang 1

NGUYEN THỊ LOAN

KIEM CHUNG TINH BUNG DAN HE THONG TiNH TOAN

CUA CHUGNG TRING BANG KIEM DUYET MO BINH

Ngành: Công nghệ Lhông tin

Chuyên ngành: Công nghé phan mém

Mã đỏ: 6048 10

TÓM TẮTI LUẬN VĂN THẠC SĨ

Tà Nội 2012

Trang 2

3 Phương pháp nghiên cứu 7

4 Cấu trúc luận văn 8

1.1 Khái niệm và ý nghĩa của kiếm duyệt mô hình 9

1.3.1 M6 hinh héa (Modeling) ll 1.3.2 Thực thi chương trình (Running the model checker) 12

1.4 Điểm mạnh và điểm yếu của kiểm duyệt đựa trên mô hình - 13

1.5 Sir dung logic théi gian (Temporal Logie) mô tả gác thuộc tỉnh cần kiểm

1.5.1.1 Cú pháp của 1.TI 14

1.5.1.2 Ngữ nghĩa 15 1.5.1.3 Sự tương đương của công thức LTL 16

1.5.2 Các thuộc tính cần kiểm chứng 17 1.5.2.1 Thuée tinh an toan (Safety) 17

1.5.2.2 Thuộc tính sống (Livcnoss} 17

1.5.2.3 Thuộc tính công bằng (Faimess) 17

1.6.1 Định nghĩa máy trạng thái hữu hạn - 18

1.6.2 Các máy trang thái hữu hạn trao đổi thông tin 19

CHUONG 2: GIỚI THIBU VE SPIN VA PROMELA „20

2.1 Ngôn ngữ Promela TH cau 20 2.1.1 Cấu trúc chương trìh Promela, 20

Trang 3

2.1.3.1 Các kiểu dữ liệu cơ bản trong Promela - 21 2.1.3.2 Kiểu đữ liệu có cẩu trúc - - 22

2.1.4 Dinh danh, hig, v và biểu thức ¬-

2.1.5.1 Tiền trinh process "- 26

2.1.5.2, Tiền trình init cu xreeeerreerereoroTf

2.1 Kiểm chứng Hường tình u trung 1 Spin 31

2.2.1.2 Mô hình hệ thống trong SPIN - 32

2.2.1.3 Câu trùc của Spin - 32

3.1 Xây dựng biển và tiến trình dồng hd - 44

3.2 Hệ thống báo động, báo cháy mức trừu tượng - 48

3.2.1 Mô tả hệ thông mức trừu tượng AB

MG hinh Promela cho hé thông báo động, báo cháy m mite trou tượng va kiểm chứng thuộc tính đơn giản 40 3.3 Hệ thống báo động, báo cháy mức 2 252

Trang 4

3.3.2 Mô hình Promela cho hệ thing báo động, báo chảy mức 2 và kiểm chứng thuộc tỉnh đơn giản

BT LUAN

'TẢI LIỆU THAM KHẢO

Trang 5

TAT TEN TIENG ANH TEN TIENG VIET

CTL Branching Temporal Logic Logic thời gian rẽ nhánh

FSM Finite State Machine Máy trạng thái hữu hạn

LTL Linear Temporal Logic Logic thời gian tuyến tính

VHDL Very High Speed Intergrated Cireuit | Mach tich hop téc dd cao

FIFO First In First Out Vàn trước ra trước

Trang 6

DANH MUC CAC BANG

Bang 2.1: Các kiểu đữ liệu cơ bán trong Promecla

Bang 2.2: Các toán tử trong Promela

Bang 2.3: Các phép toán mệnh để trong 1T

Bảng 2.4: Các phép toán thời gian của LLL

21

¬

42 -°Öö482

Trang 7

Hình 1.3: Vi du may hitu han trang thai dang dé thi - 18

Hình 1- Tuyền thông điệp đồng bộ hóa Œm, ?m), (?m, lim) „19

Ilinh 2.1: mô hình của hệ thống trong Spin 32 Hình 2.2: Cấu trúc của Spin 33 Ilinh 2.3: Man hinh cửa số chính của XSpin _" besten OE

Hình 2.5: Cửa số chính chức nang Sct Simulation Parameters - 38

Hình 2.6: Cửa sẽ khi chay chức năng Rưn Simulation - 39

Hình 2.7: Cửa số chính chức nang Set Verification Parameters - 40

Hình 2.8: Cửa số khi chạy chức năng Run Verification 4G Hình 2.9: Cửa số khi chạy chwre ning LTL Property Manager 41 Bảng 2.3: Các phép toán mệnh đề trong LIL 2 Bảng 2.4: Các phép toán thời gian của LTL A Ilinh 3.1: Kiến trúc trừu tượng của hệ thống báo động, báo cháy ©ò48

Hình 3.2: Kết quả khi mô phông mô hình hệ thống báo đông, bảo cháy mứ

Hình 3.3: Kết quá kiểm chứng mô hình hệ thống báo động, báo cháy 32

Hình 3.4: Kiến trúc mức 2 của hệ thống bảo động, bảo chảy - 33

Hình 3.5: Kết quả khi mô phỏng mô hình hệ thông báo động, báo cháy mức

Hình 3.6: Kết quả kiểm chứng mô hình hệ thống báo đông, báo cháy 57

Trang 8

MỞ ĐÂU

1 Đặt vẫn dễ

Ngày nay chủng ta phụ thuộc rất nhiều vào hệ thống máy tính (phần cứng,

và phần mềm) cả trong sân xuất lẫn dởi sống hãng ngày Các hệ thống này cần

phải đảm bảo sự tin cây và an toàn khi sử dụng l2o đó chúng cần phải được

kiếm duyệt kỹ càng ngay từ mô hình của hệ thống để đảm bảo hệ thống hoạt

động chính xác tranh gây thiệt hại cả về com người lẫn tiền của Ilơn nữa việc áp

đụng kỹ thuật kiểm chứng hệ thống qua mô hình hệ thống sẽ lam tăng hiệu qua

kinh tế bởi nhờ có kiểm chứng mô hình mả nhà sản xuất có thể xác định sớm các lỗi trong hệ thống nên chỉ nhí vào quá trình kiểm thử hoặc khắc phục lỗi sẽ giám

đáng kể

Kỹ thuật kiểm chứng mô hình dã dược sử dựng dể kiểm chứng cho các mỗ hình hệ thống trong thực tế Tuy nhiên để phát huy dược hết hiệu quả của kỹ

thuật này cần có công cụ kiểm chứng đi kẻm để hỗ trợ qua trinh kiểm chứng

Các công cụ kiếm chứng hiện nay hay dùng như 5pin, Kronos, NuSMV,

Céng cu Spin mac đủ rất đơn giản, gọn nhẹ nhưng có tắm ảnh hưởng lớn trong

phát triển phần miềm cho các hệ thống phức tạp như hệ thời gian thực, hệ thống

nhúng, hệ tương tác,

Từ thực tiễn đó, chúng tôi chọn đẻ tải “Kiểm ghứng tính ding đắn hệ thắng

tính toán của chương trình bằng kiểm duyệt mô hình” nhằm mục đích là tiếp

cận, nghiên cửu phương pháp kiểm chứng mô hình, dùng công cụ kiểm chứng Spin và ngôn ngữ mô hình hóa Dromcla để kiểm chứng tinh đúng dẫn của hệ

thống,

2 Nội dung nghiên cửu

Nội dung để tải nghiên cứu vẻ kỹ thuật kiếm chứng mé hinh (Model

Checking), ding céng cụ Spin để thực hiện kiếm chứng mô hinh hệ thông báo

động, báo cháy, sử dụng ngôn ngữ mô hình hóa Promela để mô hình hóa hệ

thống báo động, báo cháy, và mô tả các thuộc tính cần kiểm chứng qua Logic

thời gian tuyến tính để kiểm chứng tinh dimg đắn của hệ thẳng báo động, báo

cháy qua mô hình của nó

3 Phương pháp nghiên cứu

" Phương pháp thu thập tài liệu: Các thông Uin sử dụng trong luân văn dược thu thập từ các nguồn: Sách tham khảo, giáo trình, giáo án, các bài

báo

= Phuong pháp phân tích: Dựa trên các tải liệu thu thập được, phân tích,

đánh giá và đưa ra kết luận.

Trang 9

Chương 1 trình bày về cơ sở lý thuyết của kiểm duyệt mỗ hình (Model

Š công cu Spin, giao điện Xspin, và ngôn ngữ mồ hình

như hướng phát triển trong tương lai của đề tài

Trang 10

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Trong chương 1 sẽ trình bày các khải niệm cơ băn về kỹ thuật kiểm duyệt

mô hình (Model Checking), và giới thiêu về logic thời gian tuyến tính cũng như

máy trạng thái hữu hạn

1.1 Khải niệm và ý nghĩa của kiểm duyệt mô hình

Theo Clarke va Emerson 1981, kiểm duyệt mô hình được định nghĩa:

“Kiểm duyệt mô hinh là một kỹ thuật được tự động hóa nhằm đưa ra mô

hình hữu hạn trạng thái của hệ thông và thuộc tính hình thức, kỹ thuật này sẽ

+kiểm tra có hay không thuộc tính được thõa mãn bởi mô hình của hệ thông” [5]

Trong giải đoạn thiết kế phần mềm và phần cứng của các hệ thống phức tạp

hiện nay, các chuyên gia dành rất nhiều thời cho việc kiểm chứng hơn là việc xây dựng hệ thống Có rất nhiều kỹ thuật dã dược tim ra dé làm tăng phạm vì

từng dụng của kiểm chứng Các phương pháp hình thức là một trong những kỹ

thuật đó Né được tích hợp vào việc kiểm chứng trong quá trình thiết kế, để đưa

Ta những kỹ thuật kiểm chứng hiệu quả và lâm giâm thời gian kiểm chúng hệ thống Một trong những phương pháp hình thức mạnh mẽ nhất là kiểm duyệt mồ

hình [1, 2]

Kỹ thuật kiểm đuyệt mô hình miêu tả hành vi của hệ thống bằng một

phương pháp toán học chính xác vả rõ rằng, Một mô hình hệ thống chính xác có

thể giúp chúng ta phát hiện ra những gì chưa đầy đủ, mơ hỗ và không nhất quán

trong đặc tá hệ thống, điều này thường được phát hiện sau giai đoạn thiết kế Do

đó cần kỹ thuật kiểm duyệt mô hình để làm rõ những diều nêu trên trước giai

đoạn thiết kể Các mô hình của hệ thống thường được di kém voi những thuật

toán mã có thể piúp chúng ta tìm ra tất cả các trạng thái của mô hình hệ thống,

đó Nhờ có sự nghiên cứu phát triển về thuật toán và cấu trúc đữ liệu, củng với khả năng của máy tính ngày càng nhanh vả dung lượng lưu trữ ngày cảng cao, những kỹ thuật đựa trên mô hình đã cực kỳ phát triển và không chỉ áp dụng trong những ví dụ đơn gián mà hiện nay da được ửng dụng vào những bản thiết

kế dành cho các hệ thông phức tạp [2]

Các thuộc tỉnh điển hình có thể được kiểm tra bằng kiểm duyệt mô hình

thông thường la: Kết quả sinh ra có đúng không”, hệ thống có lâm vào trạng thái

bể tắc không? Thậm chỉ các thuộc tính trên thời gian cũng có thể được kiểm

tra như: Có thể xảy ra bế tắc trong vỏng 1 gid sau khi hệ thẳng khởi dộng lại?

hoặc sư phân hồi có được nhận lại trong vòng 10 phủt?

Mô hình của hệ thống thông thường được sinh ra tự động từ một sự mô tả

mô hình được đặc tả trên các ngôn ngữ lập trỉnh như C, Java hoặc ngôn ngữ mồ

tả phần cứng như Verilog Các thuộc tính nói lên rằng hệ thống nên lâm những

Trang 11

gi, va không nên làm gì, nhưng ngược lại bản mô lá mô hình tập trung vào hệ

thống hành động như thế nào Công cụ kiểm chứng có khả năng kiểm tra mọi

trạng thái của hệ thống để kiếm tra xem chúng có hay không thỏa mãn thuộc

tính mong muốn

Kỹ thuật kiếm duyệt mô hình có nhiễu phiên bản Phiên bản kế đến dầu tiên

1à dùng kỹ thuật kiểm duyệt mô hình để mô hình hóa và kiểm chứng hệ thống

không có ràng buộc thời gian, tiếp đến lả ứng dụng kỹ thuật này để kiểm chứng

hệ thống có ràng buộc thời gian và hệ xác suất Tuy nhiên với việc tìm hiểu và

ding kỹ thuật kiểm đuyệt mô hinh dé kiểm chứng hệ thông không có ràng buộc

thời gian sẽ đơn gián hơn Do đỏ trong luận văn tác giã sẽ nghiên cứu và sử

đụng phiền bán này kết hợp với kỹ thuật xây dựng biển vả tiến trình dễng hồ dể

kiểm chứng tính chất ràng buộc thời gian trong hệ thông bảo động, bảo cháy

1.2 Quy trình hoạt dậng của kiểm duyệt mô hình

Hình 1.1: Sơ đỗ hoạt động của phương pháp liễm đuyệt mã hình [2]

Mô hình của hệ thống được xây dựng từ đặc tả của hệ thống Mô hình nảy thế hiện hành vi của hệ thống và có thể được viết bởi ngôn ngữ C, Java, hay các

ngôn ngữ mô tả phần cứng

Trang 12

8ự đặc tả thuộc tính yêu cầu những gì hệ thống nên làm và những gì không

nên lam trong khi mô hình mỗ tả hệ thắng hoạt động như thế nào”

Kiểm duyệt mô hình sẽ kiểm tra tất cả các trạng thải hệ thẳng liên quan

xem có thỏa mãn không, nêu không thỏa mãn sẽ dưa ra một phản ví dụ - một

trạng thái của hệ thống không thỏa mãn - cho thấy cách đạt đến trang thái không thỏa mãn, sử đụng phản vỉ dụ cùng với sự mô phỏng ta sẽ có được những thông tin gỡ lỗi vả từ đó sẽ có được mô hình phù hợp

1.3 Dặc trưng của kiếm đuyệt mồ hình

Quá trình kiểm duyệt một mô hình có thể chia thành những pha như sau:

" Pha mô hình hóa (Modcling): Xây dựng mô hình cho hệ thống bằng cách

mỗ hình hóa hệ thống sử dụng ngôn ngữ mô tả mô hình của công cụ kiểm duyệt Sau đó kiểm tra sự dùng dẫn và dánh gid nhanh mô hình bằng sự mô phỏng Hình thức hóa thuộc tính cần được kiểm duyệt sử dụng ngôn ngữ đặc tả thuộc

tính

" Pha thực thí (Running): Sử dụng chương trình kiếm duyệt để kiểm tra tính

hợp lê của thuộc tính trên mô hình hệ thống vừa xây dựng

" Pha phân tích (Analysis): Kiểm tra xem nếu thuộc tính được thỏa mãn thì kiểm tra thuộc tính tiếp theo (nếu còn), Nếu thuộc tính bị vị phạm thi tiến hành

phân tích phân ví dụ bằng sự mô phỏng; Tĩnh chỉnh mô hình, bản thiết kể, hoặc thuộc tính: Lặp lai toan bộ các pha Nếu tràn bộ nhé thì cố gắng giảm bát mô

hình vả thứ lái

Sau dây, là chỉ tiết nội dung của từng pha

1.3.1 M6 hinh héa (Modeling)

Để có thể áp dụng dược kiểm duyệt mô hình cần yêu cầu dầu vào lả một

mô hình của hê thông và các thuộc tính đặc tả hình thức sẽ được kiểm chứng

Mô hình của hệ thống mô tả hành vi của nó một cách đúng đắn và rõ ràng

Chúng thường được diễn tả bằng otomat hữu hạn trạng thái (ñnite state automata) Một otomat hữu hạn trạng thái gém tập các trạng thái (states) va tap

các phép chuyển (transitions) Các trạng thái chữa thông tin về giá trị hiện tại

của các biến, của câu lệnh được thực thi trước đỏ, hoặc gì đó tương tự Các phép

chuyển diễn tả làm thế nao hệ thẳng chuyển từ trạng thải này sang trang thái

khác Với các hệ thống thực tế, olomat hữu hạn trạng thải dược diễn tá bằng

ngôn ngữ mô tã mô hình nhu C, Java, VHT

Trang 13

A model of wach

C2 A modulo 3 counter

Hình 1.2 Vi du vé mé hinh [5]

Để tăng chất lượng của mô hình, cần có sự mô phỏng trước khi kiểm duyệt

mô hình có Sự mô phỏng nảy được sử dụng để loại bô những vấn đề đơn giản hơn trước khi kiểm duyệt Diéu này giúp làm giảm thời gian cũng như chỉ phí

Và cuối cùng, để có thể kiểm duyệt chính xác Các thuộc tính nên được

điễn đạt rõ ràng, ngắn gọn nhưng đẩy đủ Do vậy, cần sứ đụng một ngôn ngữ

đặo tả thuộc tính Trong luận văn này chỉ tập trưng vào cách sử dung logic thời

gian (temporal logic) như là ngồn ngữ đặc tả thuộc tính Thực chất, logic thời

gian là sự mở rộng cúa logic mệnh đề với những toán tử biểu điễn hành vi cla

hệ thống theo thời gian T.ogic thời pian hoàn toản có khả năng biểu diễn những,

thuộc tính của hệ thống như sự đúng đắn chức ning (functional correctness),

thuộc tính sống (liveness propery), thuộc tính an toàn (safety property), thuộc

tính céng bang (fairness property)

1.3.2 Thue thi chung trinh (Running the model checker)

Sau khi có được mô hình của hệ thống và các thuộc tỉnh, chứng ta cần sử đụng một công cụ kiểm chứng để kiểm tra các thuộc tỉnh có thỏa mãn mô hinh vừa xây dựng không Trong luận văn sé str dung công cụ kiểm chứng Spin để

thực hiện điều đó

1.3.3 Phân tích (Analysis)

Sau pha thực thị kiểm chứng mô hình, cẦn phăi phân tích kết quả dạt dược

Thường thì chủng ta có ba trường hợp xãy ra: Các thuộc tính có thỏa mãn hay

không hoặc mô hỉnh quá lớn ngoài khả năng vật lý của bô nhở máy tính

Khi các thuộc tính được thôa mãn, mê hình đáp ứng được tất cả những

thuôc tỉnh mong muôn

Trang 14

hi một thuộc tinh không thủa mãn, tức có thể xuất hiện lỗi trong mô hình,

hoặc có thể do thuộc tính dược hình thức hỏa sai

Còn về khả năng thứ 3, mô hình quá lớn để có thế xử lÿ thì có rất nhiều giải pháp để khắc phục Tuy nhiên, giải pháp hiệu quả nhất là cố gắng làm giảm

không gian trang thái (state space) khi kiểm chứng

1.4 Điểm mạnh và diễm yếu của kiểm duyệt dựa trên mô hình

Kiểm duyệt mô hình có một vải điểm mạnh như [2]:

"_ Là phương pháp kiểm chứng tổng quan được áp dụng cho các ứng dụng,

trong phạm vi lớn như hệ thông nhủng, công nghệ phần mềm, thiết kế

phan cimg,

" Hỗ trợ kiểm duyét cuc bd, cdc thuộc tính có thể được kiểm tra riêng lẻ, tir dé tập chung kiểm duyệt các thuộc tính quan trọng trước mả không cần thiết đặc tả hệ thống hoàn chỉnh

* Qué tinh kiểm duyệt sau không ảnh hưởng đến các lỗi đã được phát

hiện trước đó

= Cung cấp các thông tin có ý nghĩa cho việc gỡ lỗi khi phát hiện một

thuộc tính không thẻa mãn

" Kiểm duyệt mô hình là tiềm năng của công nghệ “push — botton”, sử

dụng kiểm đuyệt mô hình làm tăng mức độ tương tác người ding va

chuyên môn

" Kiểm duyệt mô hình dễ dàng tích hợp trong chu kỳ phát triển phần mém, lam gidm thời gian phát triển phần mềm

"Kiểm duyệt mô hình có nền tảng của toán học, nó dựa trên lý thuyết

thuật toán dễ thị, cấu trúc dữ liệu và logic

Bên canh những ưu điểm trên, phương pháp kiểm duyêt mô hình cũng có

những yếu điểm như [2]:

" kiểm đuyệt mô hỉnh chủ yếu phủ hợp với các ứng dụng điều khiển,

không phù hợp với các ủng dụng hướng dữ liệu đo khối lượng dữ liệu

thường tăng vô hạn

"- Kiểm duyệt mô hinh kiểm chứng mô hình của hệ thống chứ không phải

bản thân hệ thẳng, mọi kết quả dạt được là về mặt mô hinh hệ thống, do

dó cần có những kỹ thuật khác hỗ trợ như kiểm duyệt để tìm ra lỗi chế

tạo (trong phần cứng) và lỗi lập trình (phần mềm)

"_ Kiểm duyệt mô hình chỉ kiểm chứng những thuộc tỉnh được dic td

" _ Việc sử dụng kiếm duyệt mô hình yêu cầu kinh nghiệm trừu tượng hóa

hệ thống thích hợp để đưa ra mô hình hệ thống theo logic thời gian.

Trang 15

Mặc dù cơ những hạn chế nhất định trên nhưng kiểm duyệt mơ hình vẫn là

kỹ thuật hiệu quá dễ tìm ra lễ¡ thiết kế nhằm tạo ra hệ thống hoản chính nhất

1.5 Sử dụng logic thời pian (Temporal Logic) mé 14 cic thuộc tính cần

kiểm chứng

1.5.1 Logic théi gian (f'emporal Logic)

Các biểu thức temporal logic khơng chỉ xét đến những dầy trạng thái đơn,

mà cịn xét đến những đãy trạng thải phức tạp trong đĩ từ một trạng thái cĩ thể

cĩ nhiều trạng thái ngay tiếp sau nỏ Trong các nghiên cửu về kiểm duyệt mơ hình, cĩ hai loại logic thời gian hay được xem xét là LTL (Linear Temporal

Logic) va CTL (Banching Temporal Logie) |2|

*L-TL (Linear ‘lemporal Logic): Logic thé gian tuyén tinh ‘Thai gian od

cấu trúc tuyến tính, mỗi trạng thái chỉ cĩ một trạng thái ngay tiếp sau nd

* CTI (Branching Temporal L.ogic): L.ogic thời gian rẽ nhánh Thời gian cĩ

cầu trúc tuyến tính, mãi trạng thái cĩ nhiễu trạng thái ngay tiếp sau nĩ

Nhờ khá năng xét dến yếu tổ thời gian, temporal lopic dã được sử dụng,

rơng rai trong cơng nghệ kiếm chứng phần mềm Temporal logic thường được

sử dụng để mơ tả các thuộc tính cần kiểm chứng Trong khĩa luận này xin trình bay vé LTL (Linear Temporal Logic)

1.5.1.1 Cú pháp của LTL

Mật cơng thức I.TI được hình thảnh tử những mệnh đề nguyên tứ (ze4P),

các phép boolean như phép hội ^, phép phủ định —¬, và hai phép thể thức (modality) don gian 1a O (goi la “next) va U (gọi là “until”) Thể thức O là

tốn tử một ngơi và yêu cầu một cơng thức LTL là tham dối Cơng thức Cợ thõa

mãn tại thời điểm hiện tại, nếu ø thõa mãn ở bước tiếp theo Thể thức L.lả tốn

tử trung tổ một ngơi và yêu cầu hai cơng thức LTL lả tham đếi Cơng thức ø, L

øz thỏa mãn tại thời hiện tại, nếu cỏ một vải thời điểm trong tương lai mà

go tha min và ø; tha mãn tại mọi thời điểm cho đến thời diễm trong lai dé

Định nghĩa 1.1: Cú pháp của LTL

Cơng thức L1L trên tập mệnh đề nguyên từ /LP co dang sau:

@: =pue |a|0;^@ |¬ø Oø| øi Ủ ø;

voi ae AP

Sử dung cdc phép boolean hội và phủ định, ta sẽ cĩ được sức mạnh đầy đủ

của logic mệnh đề Các phép boolcan khác như phép tuyển ›⁄, suy ra ›, tương

đương =>, chẵn lẻ @ cĩ thé suy ra được theo các luật sau:

Bi G2 =H G2)

Gi gạ= GV Pe

Trang 16

Gi 92 =(0: > GING: > OY

G9 Ø:#(0:^ ¬@2) V (0; A ¬Ø¿)

Toán tứ unHl LÍ có thể suy ra từ Loán tử 6 (“cventually” tức cuỗi cùng) và Lì

(falways” tức luôn luôn) như sau:

0 sirue U gy

Les

Ngoài ra, bằng việc kết hợp hai toán tử © vả o, ta ¢6 các thể thức thời gian

mới Ví dụ như, LÔœ (“always oventually @”) miéu tả thuộc tính mà tại bất kì

thoi diém ÿ dều có một thời diễm ¡ >ÿ mà tại dé một trạng thải a được duyệt

'Tức là trạng thái a được duyệt thường xuyên và vô hạn — mfinitely often Lương,

tự, phép đối ngẫu ôna có thể hiểu rằng từ một vài thời điểm 7, chỉ có trạng thái 4

được đuyệt

còø “infinitely often gy”

ug “eventually forever o”

Vi du 1.1: Các thuộc tính được điễn tả bằng LTL

Thuộc tính hệ thống đèn giao thông

Đổi với dến tín hiệu giao thông, thì có thuộc tính yêu cầu như sau“ khi đèn

Công thức LTL thể hiện cho các thuộc tính của đường - path (hay truy vết

của chúng) Tức là một đường có thể thõa mãn một công thức LTL hoặc không,

Ngữ nghĩa của công thức LTL g dược dịnh nghĩ: như là một ngôn ngữ

Words(g) bao gồm mọi đãy vô hạn trên tập chữ cái 24P mà thõa mãn ø Mọi

công thức LTL liên kết các thuậc tính LT đơn Ngữ nghĩa của nó được mỡ rộng

để giải thích các đường va các trạng thái của hệ thống truyền

Định nghĩa 1.2: Ngữ nghĩa của LTL

Giả sử ø là một công thức I.TL trên 4P Thuộc tính T.incar - Time có thể

được kết luận bởi ø là

Words(p) = (øe (“0| ø|= ø}

Ở dây |—<('Ô”xLTL là quan hệ nhỏ nhất thỏa mãn.

Trang 17

ao U @ of > 0 ofj ]|—@ and off ] |, for all 0 <1<j7

Với 0 — Ag A; Ap © (2), ofp | — Aj Ape Apne dutoe goi 1a hau 16 ctta

o bat đầu từ vị trí ÿ+1) ký hiệu là 4, Do đó, chúng ta có các ngữ nghĩa của các

toan ty 7, ð, n9 và Ôn như sau

logic nào, một sự tách biệt rõ ràng giữa cú pháp vá ngữ

chúng đều có cùng giá trị chân lý Ví dụ như là: hai công thức ¬ ¬ a và a, mặc

đủ khác nhau về cú pháp nhưng lại tương đương nhau

Tịnh nghĩa 1.3: Sự lương đương của công thức

Hai công thức LTL ø„ ø; được gọi là tương dương được viết là ø — øy nếu

Wfords(e;) — Words(e;)

Co thé str dung một số luật để thuận thiên cho việc diễn dạt thuộc tỉnh dưới

dang |

.Bỗ đã 1.1: Giải pháp tôi thiêu của sự mở rộng các luật

Cho hai công thức LTL g và #/ Words(g J Ÿ) là thuộc tính LT tối thiểu,

P=(2”)" khi đó:

Words(f)U1{Aa44,44: e Wordsfe)|A,A¿ eP?}c<P

Ngoài ra, Words( U_ #2 phủ hợp với tập:

Words('¥4U {49A; Az © Words(g} Ay Az © Words(y U 49}

1.5.1.4 Toán tử Wcak Until— W

Toán tứ Weak Unuil gW #2= (ø U #2 v nợ dường như ngược lại với toán

tử unHil Toán tử @ U #“ không yếu cầu ø phải được thõa mãn

'oán tử Until L va toán tử Weak Untill W là đối ngẫu:

aie UH =n nw Hen 2

—¬p W #2 =(@^ U Gea 2

Trang 18

1.8.2 Các thuộc tính cần kiểm chứng

1.5.2.1 Thuậc tính an toàn (Safety)

'Fính an toàn của một chương trình đảm bảo rằng sẽ không bao giờ xây ra

tình huỗng xấu trong chương trình (“'sormething bad never happen”)

‘Tinh an toàn có thể được biểu diễn bằng LLTL như sau:

G¢@ trong LIL

Trong đó ¿ là một biểu thức logic

Vi dụ của tính an toàn:

" _ Nhiệt độ của phản ứng không bao giờ quả 100 độ C

"- BấI kỉ lúc nào chìa khóa xe chưa vặn tới vị trí khới động, xe số không nỗ

may

“Thuộc tinh an toàn thể hiện trong LTL: Cho công thức LTL và cho T = (Sa

5), đa ) khi đó r4 (uôn luôn A) ding với trạng thái s, nêu và chỉ nếu 4 ding

với mọi s trong % mà j 2+ ý

Công thức n4 được gọi là thuộc tính an toàn bởi nó đặc lả sự tính toán an

toàn mà không bao giờ xây ra trường hợp xấu “ba¿”, hay tương tự thế mà luôn xây ra trường hợp tét “good” C6 thé vé sơ dễ thể hiện sự tỉnh toán, mỗi trạng

thái s¡ được gán nhãn 1 nếu 4 ding véi s,, va gan a4 néu4 sai véi s, Nều sơ đồ

được mở rộng với mọi trạng thái được gắn nhãn <4 thì r⁄4 đúng với ss;

= Khi chìa khóa xe vặn tới vị trí khởi động, xe sẽ nỗ máy

= Béng dén sẽ chuyển sang màu xanh

'Thuộc tính #veness thể hiện trong I.TI.: Cho công thức LIT 4 va t~ (Sa Sp

sa ), khi đó 944 (cuối cùng thì 4) dúng với trạng thải s; nếu vả chỉ nếu 4 dùng

với một vai s, trong + mà / > ï

Công thức 9⁄4 được gọi là thuộc tính liveness béi nd dic t4 trong sy tinh

toán luôn có một vài trường hợp tất “geod”

1.5.2.3 Thuộc tinh céng bang (Fairness)

Tinh công bằng đấm bảo rằng nếu một sự kiện nào đỏ ở trạng thái

được thực thị thì đến một lúc nào đó nó sẽ dược thực thị

Trang 19

Công bằng yếu (Weak Fairness) dim bao néu mét su kiện được kích hoạt

liên tục thì sẽ xãy ra về hạn lần

Công bằng mạnh (Stronp Fairsss) đảm bảo nếu một sự kiện được kích hoạt vô hạn lần thì sẽ xây ra vô hạn lần

Mét vi du cho tinh công bằng trong một hệ ông truyền — nhần lả khi một

gói tin được gửi đi thi đền một lúc nào đó nó sẽ đền được đích

1.6 Máy trạng thái hữu han

1.6.1 Dịnh nghĩa máy trạng thái hữu hạn

Có rất nhiều mô hình được sử dụng trong kiểm chứng phần mềm, trong đó

có mô hinh máy hữu hạn Irạng thái — Finite State Mĩachines (ƑSM)

Máy hữu hạn trạng thái là một Automata đơn giản có thể được định nghĩa

như sau

Máy hữu hạn trạng thái là một bộ ă — <7, 6Ó s„ đ, A> Trong dó

1: Tập các yêu tổ đầu vào;

Š: Tập các trạng thái;

O: Tập thông tin đầu ra:

sơ: Trạng thái ban đầu,

ổ: SxI — S$ là hàm chuyển trạng thái;

Â:8xI >O là hàm thông tin đầu ra

Ví dụ 1.3: Máy trạng thái hữu hạn được thể hiện dạng đỗ thị:

5 = {6(Sp,0) = So, 8(Sa,1) = Si, d(S1,0) = So, (31.1) = Sz, d(52,0) = Ss,

(82,1) ~ Sa, d(83,0) ~ So, 6(S9,0) — So, 683.1) — Si}:

Trang 20

A = 18,0) = 0, Ấ(So,1) = 0, Ä(S¡,0) = 0, Ấ(§¡,1) = 0, Ấ(S;,0) =0, A(8;,1)

=0, Ä(8a.0) = 0, A(Ss,1) = 0}

Mô hình máy hữu hạn trạng thái FSM được sử dụng để mô tả hoat động của

nhiều hệ thông trong thực tế

1.6.2 Các máy trạng thái hữu hạn trao đổi thông tin

Các máy trạng thái hữu hạn trao đổi thông tin với nhau qua việc truyền các

thông báo một cách đồng bộ Trong quá trình truyền giữa các nhãn cần có sự đồng bô hóa giữa thông điệp gửi m (1m) và thông điệp nhận (?zm) Việc truyền

đồng bộ chỉ được thực hiên khi thông điệp gửi và thông điệp nhận là đồng thời

và tương ứng [Š}

Sending m Receiving m

Hình 1.4: Truyền thông điệp đồng b6 héa (!m, 2m), (2m, !m) [5]

Trong quá trình đồng bộ hóa, các thông điệp không được truyền ngay khi gửi Do đó các kênh truyền được xem như bộ đêm giới han dang FIFO (First In First Out) [5]

Hình 1.5: Đằng bộ hóa thông điệp [5]

Trang 21

CHƯƠNG 2: GIỚI THIỆU VE SPIN VA PROMELA

Để kiểm chứng mỗ hình phần mềm sử dụng kỹ thuật kiểm duyệt mỗ hình

cần có những công cụ hỗ trợ, cụ thể là Spin Hé co thể làm việc được với Spin

chúng ta phải xây dựng mô hình hệ thống bằng ngồn ngữ mô hình hóa Promela

'Irong chương này sẽ trình bày về những khái niệm cơ bản của ngồn ngữ mô hình hóa Promela, công cụ kiếm chứng 5pin, giao điện người dùng Xspin, cách kiểm chứng một chương trình Promela trong Spin, và giới thiệu về logic thời

gian tuyến tính để biểu điễn tính chất cần kiêm chứng và các thuộc tính tuyến

tinh

2.1 Ngôn ngữ Promela

Promela IA ngồn ngữ mô hình hỏa dùng để mô tá hệ thống dồng thoi [3]

Chẳng hạn như hệ thống diện thoại, chương trình giao tiếp da luồng, giao thức mạng Nó là ngôn ngữ không tắt định, có cú pháp vả ngữ nghĩa tương tự ngôn

net C [9]

2.1.1 Cấu trúc chương trinh Promeia

Cấu trúc cơ bản của một trương trình Promela [1]:

"_ Các khai báo kiểu vả khai báo biến,

" Khai báo tiến trinh,

" Tiểntrình iniL

Chẳng hạn, cấu trúc chương trình Promela

/*Các khai báo kiểu và biên */

mtype ={ABC, DEF}

Một chương trình Promela chứa các tiễn trình các tiền trình được khai báo

và có thé có tham số hay không, nhung luôn phải có cặp ([danh sách tham số)

Trang 22

theo sau tên tiến trình Các lệnh trong tiến trình được viết trong cặp {các lệnh

trong tiến trinh}, lời chú thích được đặt trong cấp /“lời chủ thich*/

Ví dụ2.1

active proctype P(j {

int value — 123; “* khai báo biến value kiéu byte va khỏi tạo bằng 123

it reversel; ¿* khai bảo biễn reversed kiểu imí *⁄

reversed = (value % 10) * 100 1 ({value / 10} % 10) * 10+

Cũng như hầu hết các ngôn ngữ lập trình có dấu trúc, Dromela yêu cầu ác

biến phải được khai báa trước khi chúng được sử dụng Khai báo biến trong

Tromola giống trong ngôn ngữ lập trình C, bắt đầu lä kiểu đữ liệu cơ ban theo sau la một hay nhiều biển được định nghĩa và khởi tạo Các biến có kiểu dữ liễu

cơ bản được mặc định giá trị khởi tao 14 0 Citing nhu trong (, Ú† được xem lả sai,

các piá trị khác 0 duoc xem là đúng Miệt biển trong Promela có thể là toàn cục

hay cục bộ

Vi dụ 2.2: khai báo biến trong Promela

byte count, total = 4;

Trong vi dy 2.2 biến count va total c6 kiéu byte, biến roiai được khởi tạo

giả trị là 4

2.1.3 Kiểu dữ liệu

2.1.3.1 Các kiểu dữ liệu cơ bản trong Promela

Các kiểu dữ liệu cơ bản trong Promola được liệt kê trong bằng sau

Bang 2.1: Các kiểu dữ liệu cơ bản trong Promela |1 |

Trang 23

Khai báo mảng trong ví đụ 2.3 sẽ tạo ra một mang max — 1 phân tử kiểu

nguyên: /ablej 0|, fable{ 1], , tablefmax-I]

"_ Kiểu cdu tric (ban ghi}

Hinh nghĩa kiểu: Để định nghĩa một kiểu mới, ta sử dụng tir khéa typedef Với tupedeƒ ta có thé dinh nghĩa dược đữ liêu kiểu cầu trúc tương tự như Ơ Và giải quyết được vẫn đề mảng 2 chiều khi Promela không hỗ trợ mảng n chiều

Vi du 2.4: Sir dung typedef dé dinh nghĩa kiéu message

Trong ví dụ 2.5 định nghĩa kiểu cầu trúc

Biển cầu trúc trong Promela được truy cập giống ©, chẳng hạn với kiểu câu trúc được khai báo trong vỉ dụ 2.5, khai bảo biển message có kiểu zng, và sau

đó truy cập tới từng phần tử trong cầu trúc qua biến cầu trúc zessage

Trang 24

Ví dụ 2.6: Khai báo kiểu liệt kế

mtype = {line_clear, train_online, line_blocking};

"_ Dũ hậc kiểu kênh

“Trong Promala, với dữ liệu kiểu kênh có 2 toán tử ! (gửi) và ? (nhận),

Cấu trúc khai báo kênh:

chan ch = [dung lượng] dƒ/(Miểu dữ liệu 1 kiểu đữ liệu m};

Ví dụ 2.7

chan in_data = [8] of {byte};

Trong ví dụ 2.7 khai báo kénh in đưzz có thể lưu trữ 8 thông diép kidu byre

Ngoài ra còn có thể truyền nhiều thông tim

Vidu2.8

chun out_data — {8} of {hyte, bool}

Kénh out_data trong ví dụ 2.8 có thể lưu trữ 8 thông diệp, các thông diệp

có thể là kiểu by/e hay kiểu bool

Truyền dữ liệu kiểu kênh:

© Gửi thông điệp

Tên tiên trình lbiểu thức l, , biểu thức m

Ví dụ 2.9

int_data! x—I, true, in_data,

1 ảnh gửi dược thực hiện lchi kênh còn có thể chửa thông diệp (kênh

không đầy),

® Nhận thông điệp

Tên biến kênh ? biến 1, , biển n;

Ví du 2.10:

out_data ? value!, value2;

Lệnh nhận được thực hiện khi có thông điệp được gửi qua kênh

(kênh không rỗng)

Các phép toán kiểm tra điều kiện kênh:

o_ Để biết độ dài ctia kénh str dung toan tt len: lenfin_data)

o Kiém tra kénh ring, day để cho phép thông điệp được nhận

hay gửi:

ˆ Kiểm tra ring: empiyfin data}

*“ Kiểm tra dầy: fidl(out_data)

© Cac biểu thức trong lệnh gửi thông điệp sẽ tính toán giá trị thu được

là thông điệp truyền trên kênh, lệnh nhận thông điệp được thực thị

sau khi nỏ gán các giá trị này cho các biển của nó

Trang 25

lrơng Promela có hai loại kénh la Rendezvous channels va

Buffered channels Rendezvous channels là kênh được khai báo với

dung lượng là 0 Việc gửi và nhận thông điệp của thành phần gửi và

thành phần nhận là đồng bộ Tức thông điệp được gửi đi sẽ được nhận ngay lập tức Với loại kênh này tiến trình gửi sẽ bị chặn đến

khi lệnh nhận trong tiến trình nhận được thực thi Nếu trong một

tiễn trình có một lệnh gửi (hay một lệnh nhận) được khởi tạo mà

không có lễnh nhận (hay lệnh gửi) nào tương ứng về kiểu thông

diệp thì tiến trình đố sẽ bị khóa #wØøred chammels là kênh được

khai báo với một dung lượng lá hing số nguyên Khi sử dung dang

kênh nảy thì thông điệp sẽ vào ra qua kênh theo dạng FIFO — First

in first out Khi đó các tiễn trinh gửi và nhận sẽ hoạt động không,

đồng bộ

Ví dụ 2.11: Ví dụ hai tiến trình Ciieri0 và Cñieni!, gửi yêu cầu đến

tiển trình khác là Server: thông qua kénh request cé dung luong bing 0

chan request — [0] of {byte};

active proctype Server(){

Giả sở ta muốn dùng một ki hiệu cho một số, ta có thể sử dụng macro

dgfine khai bảo tại đầu chương trình tương tự như ngôn ngữ C:

Trang 26

fe pring The light is now %e\n", light)

od

? ‘

Một vải kết quả của lệnh priný/ là

The light is now yellow

‘The light is now red

The light is now green

2.1.4, Dịnh danh, hằng, và biểu thức

Dinh danh cé thể là một chữ cái, một ký tự, một dấu chấm hay đấu gạch

đưới

Hằng số là một chuỗi ký tự đại điện cho số nguyên, số thập phân,

Ví dụ 2.13: địmh nghĩa hing Max có giá trị 999

# define Max 999

Biểu thức: Một biểu thức dược xây dựng tử các biến, hằng số va sit dung

các toán tử được liệt kẽ trong bắng 2.2

Bảng 2.2: Các toán tử trong Promela [1]

Trang 27

2.1.5.1 Tién trinh process

Mật biến trình procøss được khai báo bắt đầu bởi từ khóa proctype va chira

"Tên tiến trình

" _ anh sách tham số hình thức

"_ Khai báo biến cục bộ

= ‘Than tién trinh

Cú pháp khai báo tiễn trình:

proctype name process (/*danh sach tham số hình thức®⁄)

Một tiến trình tmf có đạng:

init [/* Các khai báo biến cục bộ và các câu lệnh)

Vi dụ 2.14: chương trình Promela đơn giản nhất

init {skip;}

/“Trong tién trình trên không có biéu tite nao*/

Mật tiến trình process được khai bao qua từ khéa proctype, viée cai đặt và

thực thị tiến trình được thực hiện qua tiến trình ii

Ví dụ 2.15

proctype hellof)— £

printf{“Hello”);

3 proctype word() ƒ

print Word”);

Trang 28

init {

run hellof);

run word{);

? R ‘

Trong vi du 2.15, ban đầu tạo hai tiên trinh Ael/of) va word{), hai tiên trình

này được thực hiện sau khi tiến trình iz được thực hiện Toán tử zưn chỉ có thể

hoạt động khi các tiến trình có thể được thực hiện Một tiến trình có thể bị khóa

nếu có quá nhiều tiến trình cùng thực hiện

Nhiéu trường hợp việc khai báo tiến trình sử đựng từ khóa acfive giống như

khai bao proctye bằng cách dùng mảng có hậu tố tùy chọn theo sau từ khóa

Trong vi du 2.17 sé tạo ra 4 trường hợp của tiến trình helio và 6 trường hợp

của tiền trình word.

Trang 29

2.1.6.1, Rum va tién trinh init

Cách khởi tạo tiến trình trong tiến trinh init 1a dùng toán tử rưø, khi tiến

trình được khai báo mà không có từ khóa acfive

'Liển trỉnh iz2() luôn được khởi tao đầu tiền nên luôn có giả — 0

run A();

run BỊ);

}

2.1.6.2 Atomic

Các lệnh được đặt trong 4omic { } sẽ được thực hiện như một lệnh độc lập

và không bị oác lệnh khác ngoài nó chen vào Việu sử dụng œfomie nhằm giảm

sự phức tạp của mô hình cần kiểm đuyệt

Doan mi trong vi dy 2.19 tuong duong véi # = atl;

Có thể sử dụng atomic dé két hop các câu lệnh giữa các tiến trình

Trang 30

Trong ví dụ 2.20 sau khi khối lệnh Ở trong tiến trình 4 được thực thị, giá trị

1 @iểu œ) dược gửi cho kênh ch có kiểu pặp (lệnh ch!7; được thực hiền), tiến

trình # nhận dữ liều trên kênh (cñ??) và khôi lệnh # được thực thị, khi khối lệnh

# kết thúc, việc thực thi sẽ tự động chuyển về tiến trình 4 và thực thị khối lệnh

Đ

Atomic duge st dung để khởi tạo một số các tiền trình và đấm bảo không một tiền trình nào được thực hiện cho tới khi tất cả các tiễn trinh trong nó đều được thực hiện

Ví dụ 2.21: khởi tạo hai tiến trình P, g

Trong ví dụ 2.21 do tiến trình øuữ đã được khởi tạa và có thể chạy, khi đó

một trong hai tiến trình P, Q có thể được chạy trước khi tiến trình cón lại được

khối tạo, diều đó là bất lợi, do vậy việc bổ sung a#omie sẽ loại bö được diều nay

atomic {

run PQ);

run Of)

}

Trang 31

2.1.7 Cầu trúc điều khiến

‘Trong vi du 2.23 sau khi tính dược giá trị của đ, cấu trúc ÿý sẽ kiểm tra pid

trị của đ theo từng trường hợp, va trong vi dụ này sẽ mì ra kết quả là 0

Trang 32

Lénh if va do thé hién tinh không tất định của Promela: Nếu hai hay nhiều

biểu thức logic có giá trị re, chuỗi lệnh theo sau một biểu thức bất kỳ trong số

2.2.1 Kiểm chứng chương trình trong Spin

2.2.1.1 Đặc trưng cia SPIN

Spin (Simple Promela Interpreter) ld mét công cụ kiếm chứng, nó hỗ trỡ

ngôn ngữ đặc tả hệ thống Promela Spin duoc ding để theo dõi những lỗi logie ở

trong những bản thiết kế của hệ thống phân tán như hệ điều hành, giao thức

truyền thông đữ liệu, thuật toán song song, giao thức báo hiệu tàu điện, Ta có

thể sử dụng Spin mả không cần phải dựng lên mô hình đưởi dạng đồ thi trang

thái [5]

Spin hé tro kiểm chứng mọi thuộc tính yêu cầu có thể biểu diễn đưới đạng

LTL (Lincar Temporal Logic — Logie thời gian tuyển tỉnh), hoặc cũng có thể sử

đụng các khẳng dinh — assertion dễ đặc tả một số thuộc tính cần kiểm chứng

Ngôn ngữ dic Lá Dromcla được sử dụng dễ diễn tá mê hinh hệ thông và

thuộc tính của nó dễ kiểm chứng mô hình

Spin có thế mô phỏng sự thực thi của hệ thông

Việc sử dụng Spin rất đơn giản, hiệu quả cao, vả nó phủ hợp đề kiếm

chứng hệ thống phân tán

8pin không hỗ trợ kiểm chúng hệ thống võ hạn trạng thái

Trang 33

2.2.1.2 Mô hình hệ thống trung SPIN

Các hệ thống được mê hình hóa trong 8pin như là một tập các tiễn trình (mạng các Automata), được chạy song song theo chế độ dan xen vá giao tiếp với nhau qua các thông diép hay qua chia sẻ các biến

Uinh 2.1: mô bình của hệ thông trong Spin [5J

2.2.1.3 Cầu trie cia Spin

Cầu trúc cơ bân của Bpin được thể hiện trong hinh 2.2 Ludng công việc bắt

đầu từ việc đặc tả mô hình ở mức cao của hệ thống hiện thởi, qua giao diễn

tront-End của Xspin (giao diện đồ họa người đùng của Spin), sau đó kiếm tra lỗi cú pháp, thực hiện mô phỏng tương tác cho đến khi người dủng nhận được sự tin cậy cơ bản mô hình thuộc tính mong đợi Một chương trình Promel đúng đắn

có thể yêu cầu được tạo từ một công thức được đặc tả trong logic thời gian tuyển tinh (LTL) Sau đỏ Spin được sử dụng để tạo một chương trình xác minh tối ưu

Chương trình xác mmh này được biên dịch với thời gian biên dịch có thể được

chon trước, và sau đó thực hiển xác minh chính nó Néu bất ky phan vi du nao

thỏa mãn yêu cầu Linh dùng dắn được phát hiện thì chúng có thể dược dưa trở lại

để mô phông trong Spin Việc mỗ phỏng có thể được kiểm tra chỉ tiết để xác

định nguyền nhân [3]

Ngày đăng: 21/05/2025, 18:58

HÌNH ẢNH LIÊN QUAN

Hình  1.1:  Sơ  đỗ  hoạt  động  của  phương  pháp  liễm  đuyệt  mã  hình  [2] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 1.1: Sơ đỗ hoạt động của phương pháp liễm đuyệt mã hình [2] (Trang 11)
Hình  1.2  Vi  du  vé  mé  hinh  [5] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 1.2 Vi du vé mé hinh [5] (Trang 13)
Hình  1.5:  Đằng  bộ  hóa  thông  điệp  [5] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 1.5: Đằng bộ hóa thông điệp [5] (Trang 20)
Hình  1.4:  Truyền  thông  điệp  đồng  b6  héa  (!m,  2m),  (2m,  !m)  [5] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 1.4: Truyền thông điệp đồng b6 héa (!m, 2m), (2m, !m) [5] (Trang 20)
Bảng  2.2:  Các  toán tử trong  Promela  [1] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
ng 2.2: Các toán tử trong Promela [1] (Trang 26)
Hình  2.3:  Màn  hình  cửa  sổ  chính  của  XSpin - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 2.3: Màn hình cửa sổ chính của XSpin (Trang 38)
Hình  2.4:  Các  chức  năng  trong  menu  lun - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 2.4: Các chức năng trong menu lun (Trang 38)
Hình  2.6:  Cửa  số  khi  chạy  chức  năng  Run  Simulafion - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 2.6: Cửa số khi chạy chức năng Run Simulafion (Trang 40)
Hình  2.7:  Cửa  sé  chinh  chite  nang  Set  Verification  Parameters - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 2.7: Cửa sé chinh chite nang Set Verification Parameters (Trang 41)
Hình  2.9:  Cửa  sổ  khi  chạy  chức  nang  LTL  Property  Manager - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 2.9: Cửa sổ khi chạy chức nang LTL Property Manager (Trang 42)
Bảng  2.4:  Các  phép  toán  thời  gian  của  LTL  [6] - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
ng 2.4: Các phép toán thời gian của LTL [6] (Trang 43)
Hình  3.1:  Kiễn  trúc  trừn  tượng  của  hệ  thẳng  báo  động,  báo  cháp - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 3.1: Kiễn trúc trừn tượng của hệ thẳng báo động, báo cháp (Trang 49)
Hình  3.3:  Kết  quả  kiểm  chứng  mô  hình  hệ  thông  báo  động,  báo  cháy - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 3.3: Kết quả kiểm chứng mô hình hệ thông báo động, báo cháy (Trang 53)
Hình  3.4:  Kiến  trúc  mức  2  của  bệ thông  báo  động,  bảo  cháp - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 3.4: Kiến trúc mức 2 của bệ thông báo động, bảo cháp (Trang 54)
Hình  3.6:  Kết  quả  kiểm  chứng  mô  hình  hệ  thông  báo  động,  bảo  cháy - Luận văn kiểm chứng tính Đúng Đắn hệ thống tính toán của chương trình bằng kiểm duyệt mô hình
nh 3.6: Kết quả kiểm chứng mô hình hệ thông báo động, bảo cháy (Trang 58)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm