Phương pháp chuyển đổi qua lại giữa các đặc tả hình thức cho các hệ chuyển trạng thái

65 286 0
Phương pháp chuyển đổi qua lại giữa các đặc tả hình thức cho các hệ chuyển trạng thái

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ VĂN HÙNG PHƯƠNG PHÁP CHUYỂN ĐỔI QUA LẠI GIỮA CÁC ĐẶC TẢ HÌNH THỨC CHO CÁC HỆ CHUYỂN TRẠNG THÁI LUẬN VĂN THẠC SĨ Hà Nội – 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ VĂN HÙNG PHƯƠNG PHÁP CHUYỂN ĐỔI QUA LẠI GIỮA CÁC ĐẶC TẢ HÌNH THỨC CHO CÁC HỆ CHUYỂN TRẠNG THÁI Ngành: Công nghệ thông tin Chuyên ngành: Kĩ thuật phần mềm Mã Số: 6048103 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS PHẠM NGỌC HÙNG Hà Nội – 2016 i LỜI CẢM ƠN Trước tiên xin gửi lời cảm ơn chân thành sâu sắc đến PGS.TS Phạm Ngọc Hùng – thầy giáo anh Trần Hoàng Việt – NCS K22KTPM, người tận tình hướng dẫn, khuyến khích, bảo tạo cho điều kiện tốt từ bắt đầu nghiên cứu đề tài đến hoàn thành luận văn Tôi xin chân thành cảm ơn thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ – Đại học Quốc Gia Hà Nội tận tình đào tạo, cung cấp cho kiến thức vô quý giá tạo điều kiện tốt cho suốt trình học tập, nghiên cứu trường Đồng thời xin chân thành cảm ơn người thân gia đình toàn thể bạn bè giúp đỡ, động viên lúc gặp phải khó khăn việc học tập nghiên cứu ii LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ công nghệ thông tin “Phương pháp chuyển đổi qua lại đặc tả hình thức cho hệ chuyển trạng thái” công trình nghiên cứu riêng tôi, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng hợp pháp Tôi xin hoàn toàn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 10 tháng 11 năm 2016 Lê Văn Hùng iii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii DANH MỤC THUẬT NGỮ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC BẢNG viii Chương 1: Giới thiệu Chương 2: Kiến thức sở 2.1 Dạng đặc tả sử dụng hệ chuyển trạng thái gắn nhãn 2.2 Dạng đặc tả sử dụng hàm lôgic (Boolean) 11 Chương 3: Các phương pháp kiểm chứng giả định – đảm bảo 19 3.1 Phương pháp kiểm chứng giả định – đảm bảo sử dụng thuật toán học L* 19 3.1.1 Thuật toán học L* 19 3.1.2 Sinh giả định dựa thuật toán học học L* 20 3.1.3 Ví dụ minh họa việc sinh ngữ cảnh sử dụng thuật toán học L* 24 3.2 Phương pháp kiểm chứng giả định đảm bảo sử dụng thuật toán CDNF 30 3.2.1 Thuật toán CDNF 30 3.2.2 Sinh giả dịnh dựa thuật toán CDNF 30 Chương 4: Chuyển đổi dạng đặc tả sử dụng LTS dạng đặc tả sử dụng hàm lôgic 37 4.1 Phương pháp chuyển đổi 37 4.2 Chứng minh tính đắn phương pháp chuyển đổi 39 4.3 Ví dụ việc chuyển đổi qua lại dạng đặc tả 41 4.3.1 Giới thiệu hệ thống 41 4.3.2 Chuyển đổi dạng đặc tử sử dụng LTS sang dạng đặc tả sử dụng hàm lôgic 42 Chương 5: Công cụ thực nghiệm 47 5.1 Giới thiệu kiến trúc 47 5.2 Bảng kết thực nghiệm 49 iv Chương 6: KẾT LUẬN 53 TÀI LIỆU THAM KHẢO 55 v DANH MỤC THUẬT NGỮ VIẾT TẮT STT Từ viết tắt Từ đầy đủ Ý nghĩa LTS LabelledTransition System Hệ thống chuyển trạng thái gán nhãn DFA Deterministic Finite Automata Ôtômát hữu hạn đơn định cex Counter Example Phản ví dụ DNF Disjunctive Normal Form Dạng chuẩn tắc tuyển CNF Conjunctive Normal Form Dạng chuẩn tắc hội CDNF Conjunctive Disjunctive Normal Form Tên thuật toán học hàm lôgic vi DANH MỤC HÌNH VẼ Hình 2.1: Một hệ chuyển trạng thái gán nhãn Hình 2.2: Minh họa vết LTS Hình 2.3: Ví dụ LTS không đơn định Hình 2.4: LTS M1 Hình 2.5: LTS M2 Hình 2.6: Minh họa việc chuyển LTS an toàn p sang LTS lỗi perr Hình 2.7: LTS sau ghép nối M1||M2 Hình 2.8: Mô hình ghép nối M1||M2||perr 10 Hình 2.9: Bài toán kiểm chứng giả định – đảm bảo 11 Hình 2.10: Ví dụ LTS 16 Hình 3.1: Mô hình tương tác L* Teacher 20 Hình 3.2: Xây dựng ứng viên DFA Mi từ bảng quan sát đóng 21 Hình 3.3: Mô hình sinh giả định dựa thuật toán học L* 22 Hình 3.4: LTS [cex] tạo từ phản ví dụ cex 23 Hình 3.5: LTS Input (M1) 24 Hình 3.6: LTS Order 24 Hình 3.7: LTS Output (M2) 24 Hình 3.8: LTS [σ] xây dựng từ σ = start 24 Hình 3.9: LTS [σ]||Input||Order 26 Hình 3.10: DFA Mi sinh từ bảng 3.3 26 Hình 3.11: LTS M1 Teacher chuyển thành LTS A1 26 Hình 3.12: LTS A1||Input||Ordererr 27 Hình 3.13: DFA M2 27 Hình 3.14: LTS A2 L* chuyển từ DFA M2 28 Hình 3.15: LTS A2err chuyển từ LTS A2 28 Hình 3.16: LTS Input||Order||A2 29 Hình 3.17: LTS Output||A2err 29 vii Hình 3.18: Mô hình từ υi = 010 đến = 101 32 Hình 3.19: Mô hình sinh giả định sử dụng thuật toán CDNF 33 Hình 4.1: Một hệ thống chuyển trạng thái gán nhãn 41 Hình 5.1: Kiến trúc công cụ thực nghiệm 47 Hình 5.2: Ví dụ tệp đầu vào 48 Hình 5.3: Ví dụ tệp đầu 49 viii DANH MỤC BẢNG Bảng 2.1: Thành phần Q1 ↦ X1 bảng ánh xạ 17 Bảng 2.2: Thành phần Q2 ↦ X2 bảng ánh xạ 17 Bảng 2.3: Thành phần Σ ↦ E bảng ánh xạ 17 Bảng 2.4: Thành phần δ(q, e, q’) ↦ τ(υ, γ,υ’) bảng ánh xạ 17 Bảng 3.1: Bảng quan sát (S, E, T) lúc khởi tạo 25 Bảng 3.2: L* cập nhật bảng quan sát lần thứ 25 Bảng 3.3: L* cập nhật bảng quan sát lần thứ hai 25 Bảng 3.4: Cập nhật bảng quan sát từ phản ví dụ mà Teacher trả 28 Bảng 4.1: Bảng mô tả kiện, trạng thái LTS hình 4.1 42 Bảng 4.2: Thành phần Q1 ↦ X1 bảng ánh xạ 44 Bảng 4.3: Thành phần Q2 ↦ X2 bảng ánh xạ 44 Bảng 4.4: Thành phần Σ ↦ E bảng ánh xạ 44 Bảng 4.5: Thành phần δ(q, e, q’) ↦ τ(υ, γ, υ’) bảng ánh xạ 44 Bảng 4.6: Thành phần Q1 ↦ X1 bảng ánh xạ 45 Bảng 4.7: Thành phần Q2 ↦ X2 bảng ánh xạ 45 Bảng 4.8: Thành phần Σ ↦ E bảng ánh xạ 46 Bảng 4.9: Thành phần δ(q, e, q’) ↦ τ(υ, γ, υ’) bảng ánh xạ 46 Bảng 5.1: Bảng kết thực nghiệm việc chuyển đổi qua lại dạng đặc tả 49 41 4.3 Ví dụ việc chuyển đổi qua lại dạng đặc tả 4.3.1 Giới thiệu hệ thống admit New release dispatch Ready Running Exit timeout waitEvent eventOccurs Blocked Hình 4.1: Một hệ thống chuyển trạng thái gán nhãn Hình 4.1 LTS biểu diễn việc chuyển trạng thái tiến trình Tiến trình chương trình thực Một tiến trình có trạng thái bản:  New trạng thái tiến trình vừa tạo hay nói cách khác tiến trình vừa sinh  Ready trạng thái tiến trình đưa vào hệ thống cấp phát đầy đủ tài nguyên (trừ CPU) để xử lí  Blocked trạng thái mà tiến trình chờ đợi để cấp phát thêm tài nguyên để số kiện xảy ra, hay trình vào/ra kết thúc Khi kiện chờ xảy tiến trình trạng thái Ready  Running trạng thái mà tiến trình sở hữu CPU để hoạt động, hay nói cách khác thị tiến trình thực hiện/ xử lý processor  Exit trạng thái mà tiến trình kết thúc việc xử lí Bảng 4.1 dây mô tả việc chuyển đổi trạng thái tiến trình 42 Bảng 4.1: Bảng mô tả kiện, trạng thái LTS hình 4.1 Trạng thái bắt đầu Trạng thái kết thúc Sự kiện Nguyên nhân Tiến trình tạo - New - New Ready admit Tiến trình khởi tạo, đưa vào hệ thống cấp phát đầy đủ tài nguyên thiếu CPU Ready Running dispatch Tiến trình cấp CPU để bắt đầu thực hiện/xử lý Running Blocked waitEvent Blocked Ready Running Ready timeout Khi tiến trình chạy bị chiếm chỗ tiến trình khác có độ ưu tiên cao tiến trình chạy sử dụng thời gian cho phép Running Exit Release Tiến trình kết thúc Tiến trình chờ kiện xảy hay chờ thao vào/ra kết thúc hay tài nguyên mà tiến trình yêu cầu chưa hệ điều hành đáp ứng eventOccurs Sự kiện mà tiến trình chờ xảy ra, thao tác vào/ra mà tiến trình đợi kết thúc, hay tài nguyên mà tiến trình yêu cầu hệ điều hành đáp ứng 4.3.2 Chuyển đổi dạng đặc tử sử dụng LTS sang dạng đặc tả sử dụng hàm lôgic Xét LTS M = {Q, Σ, δ, q0} hình 4.1 Trong đó:  Q = {New, Ready, Running, Exit, Blocked}, Q1 = {New, Ready, Running, Blocked}, Q2 = {Ready, Running, Exit, Blocked},  Σ = {admit, dispatch, timeout, release, waitEvent, eventOccurs},  δ = {(New, admit, Ready), (Ready, dispatch, Running), (Running, release, Exit), (Running, timeout, Ready), (Ready, waitEvent, Blocked), (Blocked, eventOccurs, Ready)}, 43  New trạng thái bắt đầu Chúng ta mã hóa tập trạng thái tập kiện dựa theo thuật toán 3.1 Với đầu vào tập trạng thái đầu vào Q1 = {New, Ready, Running, Blocked}, ta có |Q1| = 4, log2(4) số nguyên nên theo bước (4) bước (5) ta có z = log2(4) = biến Theo bước (10) tiến hành mã hóa trạng trạng thái tập Q1, trạng thái a0 trạng thái New, theo bước (11), lưu New vào bảng ánh xạ ứng với thành phần Q1↦ X1, theo bước (12), khởi tạo α0 = True, theo bước (13), k vị trí trạng thái New tập Q1 nên k = 0, theo bước (14), k biểu diễn dạng số nhị phân có dộ dài bit (z bit) hay k = 00 Theo bước (15), xét bit thứ k, giá trị bit nên theo bước (17) α0 = α0 ∧ 𝑥̅ 1, bit bit thứ 2, giá trị bit 0, nên theo bước (17) α0 = α0 ∧ 𝑥̅ ∧ 𝑥̅ = 𝑥̅ ∧ 𝑥̅ Theo bước (22), lưu α0 vào bảng ánh xạ ứng với vị trí trạng thái New thành phần Q1↦ X1 Một cách hoàn toàn tương tự, thu dạng mã hóa trạng thái Ready α1 = 𝑥 ∧ 𝑥̅ 2, dạng mã hóa trạng thái Running α2 = 𝑥̅ ∧𝑥 dạng mã hóa trạng thái Blocked α3 = 𝑥 ∧ 𝑥 Sau mã hóa xong tập trạng thái Q1 ta thu đươc thành phần Q1↦ X1 bảng ánh xạ bảng 4.2 Đồng thời sau mã hóa xong tập trạng thái đầu vào Q1, thu hàm lôgic dùng để biểu diễn trạng thái bắt đầu hệ thống (cũng dạng mã hóa trạng thái q0) ι(X) = 𝑥̅ ∧ 𝑥̅ Một cách hoàn toàn tương tự, áp dụng thuật toán 3.1 với đầu vào tập trạng thái đầu Q2 = {Ready, Running, Exit, Blocked} tập kiện Σ = {admit, dispatch, timeout, release, waitEvent, eventOccurs} ta thu thành phần Q2↦ X2 thành phần Σ ↦ E bảng ánh xạ hình 4.3 Công việc lại mã hóa tập chuyển trạng thái Áp dụng thuật toán 3.2 với đầu vào tập chuyển trạng thái δ = {(New, admit, Ready), (Ready, dispatch, Running), (Running, release, Exit), (Running, timeout, Ready), (Ready, waitEvent, Blocked), (Blocked, eventOccurs, Ready)} Theo bước (1) xét chuyển trạng tập δ, với chuyển trạng thái (New, admit, Ready), theo bước (2), ta lấy dạng biểu diễn New từ thành phần Q1↦ X1 bảng ánh xạ 𝑥̅ ∧ 𝑥̅ Theo bước (3), ta lấy dạng biểu diễn kiện admit từ thành phần Σ ↦ E bảng ánh xạ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ Theo bước (4), ta lấy dạng biểu diễn Ready từ thành phần Q2↦ X2 bảng ánh xạ 𝑥̅ 6∧𝑥̅ Theo bước (5), ta thu dạng mã hóa chuyển trạng thái (New, admit, Ready) ̅𝑥 1∧𝑥̅ ∧𝑥̅ 3∧𝑥̅ ∧𝑥̅ ∧𝑥̅ 6∧𝑥̅ Áp dụng cách hoàn toàn tương tự cho chuyển trạng thái khác tập δ, cuối ta thu τ(X, E, X’) = {𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 7} | {𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 7} Và thành phần δ (q, e, q’) ↦ τ(υ, γ, υ’) bảng ánh xạ bảng 4.5 44 Bảng 4.2: Thành phần Q1 ↦ X1 bảng ánh xạ Q1 New Ready X1 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ Running Blocked 𝑥̅ ∧ 𝑥 𝑥1 ∧ 𝑥2 Bảng 4.3: Thành phần Q2 ↦ X2 bảng ánh xạ Q2 Ready Running Exit Blocked X2 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ 𝑥̅ ∧ 𝑥 𝑥6 ∧ 𝑥7 Bảng 4.4: Thành phần Σ ↦ E bảng ánh xạ Σ admit dispatch release E 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ Σ timeout waitEvent eventOccurs E 𝑥 ∧ 𝑥 ∧ 𝑥̅ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 𝑥 ∧ 𝑥̅ ∧ 𝑥 Cuối cùng, kết sau chuyển đổi thu dạng đặc tả sử dụng hàm lôgic N = 〈X, E, τ(X, E, X’), ι(X)⟩ bảng ánh xạ (Bảng 4.2, 4.3, 4.4 4.5) Với N = 〈X, E, τ(X, E, X’), ι(X)⟩ Trong đó:  X = {𝑥 1, 𝑥 2}, X’ = {𝑥 6, 𝑥 7},  E = {𝑥 3, 𝑥 4, 𝑥 5},  τ(X, E, X’) = {𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥4 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 7} | {𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 7},  ι(X) = 𝑥̅ ∧ 𝑥̅ Bảng 4.5: Thành phần δ(q, e, q’) ↦ τ(υ, γ, υ’) bảng ánh xạ δ(q, e, q’) (New, admit, Ready) (Ready, dispatch, Running) τ(υ, γ, υ’) 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ δ(q, e, q’) (Running, release, Exit) (Running, timeout, Ready) τ(υ, γ, υ’) 𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ δ(q, e, q’) (Ready, waitEvent, Blocked) (Blocked, eventOccurs, Ready) τ(υ, γ, υ’) 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥4 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 45 4.3.3 Chuyển đổi dạng đặc tử sử dụng hàm lôgic sang dạng đặc tả sử dụng LTS Giả sử có dạng đặc tả sử dụng hàm lôgic N bảng ánh xạ Với N = 〈X, E, τ(X, E, X’), ι(X)⟩ Trong đó:  X = {𝑥 1, 𝑥 2}, X’ = {𝑥 6, 𝑥 7},  E = {𝑥 3, 𝑥 4, 𝑥 5},  τ(X, E, X’) = {𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | { 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 3∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 7} | {𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 7},  ι(X) = 𝑥̅ ∧ 𝑥̅ Và bảng ánh xạ Map: Bảng 4.6: Thành phần Q1 ↦ X1 bảng ánh xạ Q1 New Ready Running Blocked X1 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ 𝑥̅ ∧ 𝑥 𝑥1 ∧ 𝑥2 Bảng 4.7: Thành phần Q2 ↦ X2 bảng ánh xạ Q2 Ready Running Exit Blocked X2 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ 𝑥̅ ∧ 𝑥 𝑥6 ∧ 𝑥7 Nhiệm vụ tìm LTS ban đầu, tức LTS mã hóa thành dạng đặc tả sử dụng hàm lôgic N cho Dựa vào thành phần Q1↦ X1 ta thấy 𝑥̅ ∧ 𝑥̅ dạng mã hóa trạng thái q0 mà ι(X) = 𝑥̅ ∧ 𝑥̅ nên q0 trạng thái bắt đầu LTS (*) Q1 = {New, Ready, Running, Blocked}, Q2 có bốn trạng thái Q2 = {Ready, Running, Exit, Blocked} mà Q = Q1 ∪ Q2 nên Q = {New, Ready, Running, Exit, Blocked} (**) Thêm vào đó, dựa vào thành phần Σ ↦ E, ta thấy LTS có sáu kiện Σ = {admit, dispatch, release, timeout, waitEvent, eventOccurs} (***) Mặt khác τ(X, E, X’) = {𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 7} | {𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} | {𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥4 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 7} | {𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 7} Xét phần tử τ(X, E, X’), với τ(υ, γ, υ’) = {𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 7} (kể thứ tự biến mã hóa bị thay đổi) Đối chiếu với thành phần Σ ↦ E bảng ánh xạ ta thấy dạng biểu diễn kiện admit Một hoàn toàn tương tự tachuyển trạng thái lại LTS (Ready, dispatch, Running), (Running, release, Exit), (Running, timeout, Ready), (Running, waitEvent, Blocked) (Blocked, eventOccurs, Ready) (****) Từ (*) (**) (***) (****) ta LTS M hình 4.1 46 M = 〈Q, Σ, δ, q0⟩, đó:  Q = {New, Ready, Running, Exit, Blocked}, Q1 = {New, Ready, Running, Blocked}, Q2 = {Ready, Running, Exit, Blocked},  Σ = {admit, dispatch, timeout, release, waitEvent, eventOccurs},  δ = {(New, admit, Ready), (Ready, dispatch, Running), (Running, release, Exit), (Running, timeout, Ready), (Ready, waitEvent, Blocked), (Blocked, eventOccurs, Ready)},  New trạng thái bắt đầu Bảng 4.8: Thành phần Σ ↦ E bảng ánh xạ Σ admit dispatch release E 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ Σ timeout waitEvent eventOccurs E 𝑥 ∧ 𝑥 ∧ 𝑥̅ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 𝑥 ∧ 𝑥̅ ∧ 𝑥 Bảng 4.9: Thành phần δ(q, e, q’) ↦ τ(υ, γ, υ’) bảng ánh xạ δ(q, e, q’) (New, admit, Ready) (Ready, dispatch, Running) τ(υ, γ, υ’) 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 3∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ δ(q, e, q’) (Running, release, Exit) (Running, timeout, Ready) τ(υ, γ, υ’) 𝑥̅ ∧ 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥̅ δ(q, e, q’) (Ready, waitEvent, Blocked) (Blocked, eventOccurs, Ready) τ(υ, γ, υ’) 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥 𝑥 ∧ 𝑥 ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥 ∧ 𝑥̅ ∧ 𝑥̅ 47 Chương 5: Công cụ thực nghiệm 5.1 Giới thiệu kiến trúc Hình 5.1 mô tả kiến trúc công cụ thực nghiệm Công cụ viết ngôn ngữ lập trình C#, chạy tảng NET 4.5 Chức công cụ chuyển đổi từ dạng đặc tả sử dụng LTs sang dạng đặc tả sử dụng hàm lôgic Kiến trúc công cụ gồm bốn môđun chính: Môđun mã hóa trạng thái có nhiệm vụ mã hóa tập trạng thái LTS sang biến lôgic Cũng tương tự, môđun mã hóa kiện có nhiệm vụ mã hóa kiện thành biến logic, môđun mã hóa chuyển trạng thái mã hóa tất chuyển trạng thái LTS thành hàm τ cuối môđun biểu diễn dạng đặc tả sử dụng hàm lôgic có nhiệm vụ ghép nối trạng thái, kiện, chuyển trạng thái mã hóa thành dạng đặc tả sử dụng hàm lôgic Đầu vào công cụ dạng đặc tả sử dụng LTS lưu vào tệp Đầu công cụ dạng đặc tả sử dụng hàm lôgic lưu dạng tệp Tệp đầu vào cho môđun LTS tệp lưu thông tin hệ chuyển trạng thái đặc tả LTS, tệp lưu theo cấu trúc định Tệp đầu lưu thông tin hệ chuyển trạng thái đặc tả hàm lôgic tương ứng với LTS tệp đầu vào Công cụ chuyển đổi Mã hóa trạng thái Đặc tả sử dụng LTS Mã hóa kiện Mã hóa chuyển trạng thái Biểu diễn dạng đặc tả sử dụng hàm lôgic Đặc tả sử dụng hàm lôgic + Bảng ánh xạ Hình 5.1: Kiến trúc công cụ thực nghiệm Cấu trúc tệp đầu vào biểu diễn hình 5.2 Trong đó:  Dòng đầu tiên: Số lượng hệ chuyển trạng thái đặc tả LTS  Các dòng mô tả thông tin LTS theo thứ tự sau:  Dòng thứ nhất: Định nghĩa trạng thái khởi tạo  Dòng thứ hai: Định nghĩa danh sách trạng thái, trạng thái cách dấu cách  Dòng thứ ba: Định nghĩa danh sách chuyển trạng thái, chuyển trạng thái đặt cặp dấu ngoặc đơn “()”, đặt cách hai dấu cách dấu chấm phẩy đặt “ ; “ Bên cặp dấu ngoặc 48 đơn biểu diễn: Trạng thái đầu vào, kiện trạng thái đầu ra, thành phần đặt cách hai dấu cách dấu chấm xen Cấu trúc tệp đầu biểu diễn hình 5.3 Trong đó:  Hai dòng mô tả thông tin tiêu đề  Các bảy dòng mô tả thông tin hệ chuyển trạng thái đặc tả sử dụng hàm lôgic, với:  Dòng thứ nhất: Danh sách biến lôgic dùng để biểu diễn Để đơn giản, sử dụng biến 1, 2, 3, … để thay cho việc sử dụng biến 𝑥1 , 𝑥2 , 𝑥3 , … cách tương ứng  Dòng thứ hai: Hàm lôgic biểu diễn trạng thái khởi tạo  Dòng thứ ba: Hàm lôgic biểu diễn tập chuyển trạng thái  Bốn dòng thông tin bảng ánh xạ gồm thành phần Q1 ↦ X1, Q2 ↦ X2, Σ ↦ E  ↦ τ Hình 5.2: Ví dụ tệp đầu vào 49 Hình 5.3: Ví dụ tệp đầu 5.2 Bảng kết thực nghiệm Bảng 5.1 sau trình bày kết thực nghiệm việc chuyển đổi qua lại hai loại đặc tả, cột thứ hai mô tả hệ chuyển trạng thái biểu diễn LTS, cột thứ ba mô tả hệ chuyển trạng thái biểu diễn dạng đặc tả sử dụng hàm lôgic tương ứng Bảng 5.1: Bảng kết thực nghiệm việc chuyển đổi qua lại dạng đặc tả STT Hệ chuyển trạng thái Hệ chuyển trạng thái biểu diễn dạng biểu diễn LTS đặc tả sử dụng hàm lôgic s0 x = {1 } s0 s1 s2 i(x) = {-1 & -2} (s0 send s2) ; (s2 out s0) ; (s2 send s1) ; (s1 send s1) ; (s1 ack s1) ; (s1 out s1) ; (s0 ack s1) T(x,e,x') = {{-1 & -2 & -3 & -4 & -5 & -6 } | {-1 & -2 & & -4 & -5 & } | {-1 & & -3 & -4 & -5 & } | {-1 & & & -4 & -5 & } | {-1 & & -3 & & -5 & } | {1 & -2 & -3 & & & -6 } | {1 & -2 & -3 & -4 & -5 & }} -Mapping From State: where s0 = {-1 & -2}, s1 = {1 & 2}, s2 = {1 & -2} 50 Event : where send = {-3 & -4}, ack = {3 & -4}, out = {-3 & 4} To State: where s2 = {-5 & -6}, s1 = {-5 & 6}, s0 = {5 & -6} Transition: (s0, send, s2) ->{-1 & -2 & -3 & & -5 & -6}, (s0, ack, s1) ->{-1 & -2 & & -4 & -5 & 6}, (s1, send, s1) ->{-1 & & -3 & -4 & -5 & 6}, (s1, ack, s1) ->{-1 & & & & -5 & 6}, (s1, out, s1) ->{-1 & & -3 & & -5 & 6}, (s2, out, s0) ->{1 & -2 & -3 & & & -6}, (s2, send, s1) ->{1 & -2 & -3 & & -5 & 6} in0 x = {1 } in0 in1 in2 i(x) = {-1 & -2} (in0 input in1) ; (in1 send T(x,e,x') = {{-1 & -2 & -3 & -4 & -5 & -6 } | in2) ; (in2 out in0) {1 & -2 & & -4 & & -6 } | {-1 & & -3 & & -5 & }} -Mapping From State: where in0 = {-1 & -2}, in1 = {1 & -2}, in2 = {-1 & 2} Event : where input = {-3 & -4}, send = {3 & -4}, out = {-3 & 4} To State: where in1 = {-5 & -6}, in2 = {5 & -6}, in0 = {-5 & 6} Transition: (in0, input, in1) ->{-1 & -2 & -3 & -4 & -5 & -6}, (in1, send, in2) ->{1 & -2 & & -4 & & -6}, (in2, out, in0) ->{-1 & & -3 & & -5 & 6} s0 x = {1 } s0 i(x) = {-1} (s0 ack s0) ; (s0 send s0) T(x,e,x') = {{-1 & -2 & -3 } | {-1 & & -3 }} -Mapping From State: where s0 = {-1} Event : where ack = {-2}, send = {2} To State: where s0 = {-3} 51 Transition: (s0, ack, s0) ->{-1 & -2 & -3}, (s0, send, s0) ->{-1 & & -3} q0 x = {1 } q0 q1 q2 q3 i(x) = {-1 & -2} (q0 fillCoffee q1) ; (q1 heatWater q2) ; (q2 fillWater q3) ; (q3 waterOK q2) ; (q2 warm q1) ; (q1 coffeeOK q0) T(x,e,x') = {{-1 & -2 & -3 & -4 & -5 & -6 & } | {1 & -2 & & -4 & -5 & & -7 } | {1 & -2 & -3 & & -5 & & } | {-1 & & & & -5 & -6 & } | {-1 & & -3 & -4 & & -6 & -7 } | {1 & & & -4 & & & -7 }} -Mapping From State: where q0 = {-1 & -2}, q1 = {1 & -2}, q2 = {-1 & 2}, q3 = {1 & 2} Event : where fillCoffee = {-3 & -4 & 5}, heatWater = {3 & -4 & -5}, coffeeOK = {3 & & -5}, fillWater = {3 & & -5}, warm = {-3 & -4 & 5}, waterOK = {3 & -4 & 5} To State: where q1 = {-6 & -7}, q2 = {6 & -7}, q0 = {6 & 7}, q3 = {-6 & 7} Transition: (q0, fillCoffee, q1) ->{-1 & -2 & -3 & -4 & -5 & -6 & -7}, (q1, heatWater, q2) >{1 & -2 & & -4 & -5 & & -7}, (q1, coffeeOK, q0) ->{1 & -2 & -3 & & -5 & & 7}, (q2, fillWater, q3) ->{-1 & & & & -5 & -6 & 7}, (q2, warm, q1) ->{-1 & & -3 & -4 & & -6 & -7}, (q3, waterOK, q2) >{1 & & & -4 & & & -7} in0 x = {1 } in0 in1 in2 in3 in4 i(x) = {-1 & -2 & -3} (in0 input in1) ; (in1 send T(x,e,x') = {{-1 & -2 & -3 & -4 & -5 & -6 & in2) ; (in2 out in3) ; (in3 & -8 & -9 } | {1 & -2 & -3 & & -5 & -6 & ack in4) ; (in4 exec in0) & -8 & -9 } | {-1 & & -3 & -4 & & -6 & -7 & & -9 } | {1 & & -3 & & & -6 & & & -9 } | {-1 & -2 & & -4 & -5 & & -7 & -8 & }} -Mapping - 52 From State: where in0 = {-1 & -2 & -3}, in1 = {1 & -2 & -3}, in2 = {-1 & & -3}, in3 = {1 & & -3}, in4 = {-1 & -2 & 3} Event : where input = {-4 & -5 & -6}, send = {4 & -5 & -6}, out = {-4 & & -6}, ack = {4 & & -6}, exec = {-4 & -5 & 6} To State: where in1 = {-7 & -8 & -9}, in2 = {7 & -8 & -9}, in3 = {-7 & & -9}, in4 = {7 & & -9}, in0 = {-7 & -8 & 9} Transition: (in0, input, in1) ->{-1 & -2 & -3 & -4 & -5 & -6 & -7 & -8 & -9}, (in1, send, in2) ->{1 & -2 & -3 & & -5 & -6 & & -8 & -9}, (in2, out, in3) ->{-1 & & -3 & -4 & & -6 & -7 & & -9}, (in3, ack, in4) ->{1 & & -3 & & & -6 & & & -9}, (in4, exec, in0) ->{-1 & -2 & & -4 & -5 & & -7 & -8 & 9} Chúng ta thấy kết thực nghiệm bảng 5.1, đầu vào hệ chuyển trạng thái biểu diễn LTS, đầu hệ chuyển trạng thái biểu diễn dạng đặc tả sử dụng hàm lôgic bảng ánh xạ Kết thực nghiệm làm đầu vào cho công cụ kiểm chứng sử dụng đặc tả sử dụng hàm lôgic 53 Chương 6: KẾT LUẬN Trong bối cảnh hệ thống phần mềm ngày trở nên phức tạp quy mô chức Việc kiểm chứng hệ thống phần mềm ngày trở nên khó khăn tốn nhiều chi phí Việc sử dụng phương pháp kiểm chứng giả định – đảm bảo giúp cho việc kiểm chứng trở nên dễ dàng hơn, thay phải ghép nối toàn hệ thống để kiểm chứng cần chứng minh có tồn giải định cho hệ thống hay không Đối với phần mềm xây dựng theo hướng thành phần việc xây dựng mô hình đắn cho thành phần việc làm khó khăn, tốn chưa nói đến việc ghép nối mô hình thành phần lại để kiểm chứng Chính vậy, việc sử dụng phương pháp kiểm chứng giả định – đảm bảo mang lại hiệu rõ rệt cho toán kiểm chứng phần mềm xây dựng theo hướng thành phần Xuất phát từ toán kiểm chứng giả định – đảm bảo, chứng minh hệ thống thỏa mãn thuộc tính mà không cần phải ghép nối mô hình thành phần hệ thống lại với nhau, luận văn trình bày hai thuật toán thuật toán học L* thuật toán CDNF sử dụng cho phương pháp kiểm chứng giả định – đảm bảo Mỗi thuật toán có ưu điểm nhược điểm định chung mục tiêu sinh giả định cho hệ thống Thuật toán L* yêu cầu đầu vào thành phần hệ thống thuộc tính cần kiểm chứng đặc tả hệ chuyển trạng thái gắn nhãn (Labelled Transition System – LTS), loại đặc hình thức trực quan phổ biến nay, nhiên giả định sinh lớn, chi phí cao Ngược lại, thuật toán CDNF sinh giả định nhanh hơn, nhiên điểm khó khăn phương pháp việc sử dụng hàm lôgic để đặc tả thành phần hệ thống thuộc tính cần kiểm chứng để làm đầu vào cho thuật toán Vì thế, luận văn trình bày phương pháp chuyển đổi qua lại hai loại đặc tả hình thức (đặc tả sử dụng LTS đặc tả sử dụng hàm lôgic) Khi thành phần hệ thống thuộc tính cần kiểm chứng đặc tả LTS, cần sinh giả định nhanh chóng, tốn chi phí sử dụng phương pháp chuyển đổi để chuyển từ dạng đặc tả sử dụng LTS sang đặc tả sử dụng hàm lôgic Tuy nhiên, giả định sinh biển diễn hàm lôgic, khó để quan sát, áp dụng phương pháp chuyển đổi để chuyển đổi ngược lại từ dạng đặc tả sử dụng hàm lôgic sang dạng đặc tả sử dụng LTS Với phương pháp chuyển đổi đưa ra, luận văn trình bày thuật toán mã hóa trạng thái, kiện chuyển trạng thái, đồng thời chứng minh tính đắn phương pháp thông qua việc chứng minh tương đương ngôn ngữ dạng đặc tả trước sau chuyển đổi, đồng thời đưa ví dụ minh họa cách chuyển đổi qua lại dạng đặc tả Về mặt thực nghiệm, luận văn trình bày công cụ giúp tự động hóa việc chuyển đổi kết thực nghiệm thu Công cụ chuyển đổi nhận đầu vào 54 hệ chuyển trạng thái đặc tả LTS, đầu hệ chuyển trạng thái đặc tả hàm lôgic kết hợp với bảng ánh xạ Kết thực nghiệm sử dụng năm hệ chuyển trạng thái đặc tả LTS thực việc chuyển đổi, kết thực nghiệm sử dụng làm đầu vào cho công cụ kiểm chứng sử dụng đặc tả hàm lôgic Về hướng nghiên cứu đề tài việc tìm hiểu, nghiên cứu phương pháp đặc tả khác cho hệ chuyển trạng thái Hiện tại, phạm vi luận văn trình bày phương pháp kiểm chứng dựa hai loại đặc tả khác nhau, có phương pháp đặc tả khác hiệu dễ sử dụng Trên sở phương pháp kiểm chứng dựa đặc tả tìm hiểu em tìm hiểu phương pháp chuyển đổi qua lại loại đặc tả Ngoài việc kiểm chứng tiếp tục thực thi với thuộc tính khác thuộc tính công (fairness), thuộc tính sống (liveness) phạm vi luận văn việc kiểm chứng dừng lại thuộc tính lỗi π 55 TÀI LIỆU THAM KHẢO [1] [2] [3] [4] [5] [6] [7] [8] [9] Ivica Crnkovic and Magnus Larsson (2001), “Component-Based Software Engineering – New Paradigm of Software Development”, Inviteted talk & Invited report, MIPRO 2001 proceedings, Opatija, Croatia Jun Sun, Yang Liu, Jin Song Dong and Jing Sun (2008), “Bounded Model Checking of Compositional Processes”, 2nd IFIP/IEEE International Symposium on Theoretical Aspects of Software Engineering (TASE 2008), pages 23 – 30, Nanjing, China J.M Cobleigh, D Giannakopoulou, and C S Pasareanu (2003), “Learning Assumptions for Compositional Verification", Proc of 9th Int Conf on Tools and Algorithms for the Construction and Analysis of Systems (TACAS), pp 331–346 D Angluin (1987), “Learning regular sets from queries and counterexamples”, Information and Computation, 75(2), pp 87-106 P N Hung, N V Ha, T Aoki and T Katayama (2012), “On Optimization of Minimized Assumption Generation Method for Component-based Software Verification”, IEICE Trans on Fundamentals, Special Issue on Software Reliability Engineering, Vol E95-A, No.9, pp 1451–1460 R L Rivest and R E Schapire (1993), “Inference of finite automata using homing sequences”, Information and Computation, 103(2):299–347 Yu-Fang Chen, Edmund M Clarke, Azadeh Farzan, Ming-Hsien Tsai, YihKuen Tsay, and Bow-Yaw Wang (2010), “Automated Assume-Guarantee Reasoning through Implicit Learning”, 22nd International Conference on Computer Aided Verification (CAV '10) Edinburgh, UK Nader H Bshouty (1995), “Exact Learning Boolean Functions via the Monotone Theory”, Information and Computation, 123(1):146–153 Kun Ji, Yang Liu, Shang-Wei Lin, Jun Sun, Jin Song Dong, and Truong Khanh Nguyen (2003), “CELL: A Compositional Verification Framework”, International Symposium on Automated Technology for Verification and Analysis (ATVA), LNCS Vol 8172, pp 474–477, Hanoi, Vietnam ... QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ LÊ VĂN HÙNG PHƯƠNG PHÁP CHUYỂN ĐỔI QUA LẠI GIỮA CÁC ĐẶC TẢ HÌNH THỨC CHO CÁC HỆ CHUYỂN TRẠNG THÁI Ngành: Công nghệ thông tin Chuyên ngành: Kĩ thuật phần... gồm phương pháp kiểm chứng sử dụng đặc tả LTS phương pháp kiểm chứng sử dụng đặc tả sử dụng hàm lôgic Chương tập trung vào việc trình bày phương pháp chuyển đổi qua lại hai dạng đặc tả hình thức. .. đoan luận văn thạc sĩ công nghệ thông tin Phương pháp chuyển đổi qua lại đặc tả hình thức cho hệ chuyển trạng thái công trình nghiên cứu riêng tôi, không chép lại người khác Trong toàn nội

Ngày đăng: 06/03/2017, 14:18

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan