Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 67 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
67
Dung lượng
1,41 MB
Nội dung
ĐẠ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 Hồng Việt – NCS K22KTPM, người tận tình hướng dẫn, khuyến khích, bảo tạo cho tơi đ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 tơi suốt q 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 tồ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 hồn tồ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 31 3.2.1 Thuật toán CDNF 31 3.2.2 Sinh giả dịnh dựa thuật toán CDNF 31 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 38 4.1 Phương pháp chuyển đổi 38 4.2 Chứng minh tính đắn phương pháp chuyển đổi 41 4.3 Ví dụ việc chuyển đổi qua lại dạng đặc tả 43 4.3.1 Giới thiệu hệ thống 43 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 44 Chương 5: Công cụ thực nghiệm 49 5.1 Giới thiệu kiến trúc 49 5.2 Bảng kết thực nghiệm 51 Chương 6: KẾT LUẬN 55 iv TÀI LIỆU THAM KHẢO 57 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 tố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 tố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 tốn học L* 23 Hình 3.4: LTS [cex] tạo từ phản ví dụ cex 24 Hình 3.5: LTS Input (M1) 24 Hình 3.6: LTS Order 25 Hình 3.7: LTS Output (M2) 25 Hình 3.8: LTS [σ] xây dựng từ σ = start 25 Hình 3.9: LTS [σ]||Input||Order 27 Hình 3.10: DFA Mi sinh từ bảng 3.3 27 Hình 3.11: LTS M1 Teacher chuyển thành LTS A1 27 Hình 3.12: LTS A1||Input||Ordererr 28 Hình 3.13: DFA M2 28 Hình 3.14: LTS A2 L* chuyển từ DFA M2 29 Hình 3.15: LTS A2err chuyển từ LTS A2 30 Hình 3.16: LTS Input||Order||A2 30 Hình 3.17: LTS Output||A2err 31 vii Hình 3.18: Mơ hình từ υi = 010 đến = 101 33 Hình 3.19: Mơ hình sinh giả định sử dụng thuật toán CDNF 34 Hình 4.1: Một hệ thống chuyển trạng thái gán nhãn 43 Hình 5.1: Kiến trúc cơng cụ thực nghiệm 49 Hình 5.2: Ví dụ tệp đầu vào 50 Hình 5.3: Ví dụ tệp đầu 51 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ứ 26 Bảng 3.3: L* cập nhật bảng quan sát lần thứ hai 26 Bảng 3.4: Cập nhật bảng quan sát từ phản ví dụ mà Teacher trả 29 Bảng 4.1: Bảng mô tả kiện, trạng thái LTS hình 4.1 44 Bảng 4.2: Thành phần Q1 X1 bảng ánh xạ 46 Bảng 4.3: Thành phần Q2 X2 bảng ánh xạ 46 Bảng 4.4: Thành phần Σ E bảng ánh xạ 46 Bảng 4.5: Thành phần δ(q, e, q’) τ(υ, γ, υ’) bảng ánh xạ 46 Bảng 4.6: Thành phần Q1 X1 bảng ánh xạ 47 Bảng 4.7: Thành phần Q2 X2 bảng ánh xạ 47 Bảng 4.8: Thành phần Σ E bảng ánh xạ 48 Bảng 4.9: Thành phần δ(q, e, q’) τ(υ, γ, υ’) bảng ánh xạ 48 Bảng 5.1: Bảng kết thực nghiệm việc chuyển đổi qua lại dạng đặc tả 51 43 với ≤ i ≤ n, tồn trạng thái qi Q cho q0→ qi, theo định nghĩa 2.4, σ = ω0ω1…ωn vết LTS M 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 44 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)}, New trạng thái bắt đầu 45 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 hồn tồn tương tự, áp dụng thuật tố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 cịn 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 46 Bảng 4.2: Thành phần Q1 Q1 New X1 ̅1 ∧ ̅2 X1 bảng ánh xạ Ready 1∧ Running Blocked ̅2 ̅1 ∧ Bảng 4.3: Thành phần Q2 Q2 Ready X2 ̅6 ∧ ̅7 Exit ̅7 ̅6 ∧ Bảng 4.4: Thành phần Σ Σ admit E ̅3 ∧ ̅4 ∧ ̅5 Σ timeout 3∧ E 4∧ 3∧ Blocked 6∧ 7 E bảng ánh xạ dispatch release ̅4 ∧ ̅5 waitEvent ̅5 X2 bảng ánh xạ Running 6∧ 1∧ ̅3 ∧ ̅4 ∧ ̅3 ∧ 4∧ ̅5 eventOccurs 3∧ ̅4 ∧ 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} | { ∧ ∧ ∧ ̅ ∧ ∧ ̅ ∧ ̅ 7}, ι(X) = ̅ ∧ ̅ Bảng 4.5: Thành phần δ(q, e, q’) τ(υ, γ, υ’) bảng ánh xạ δ(q, e, q’) (New, admit, Ready) τ(υ, γ, υ’) ̅1 ∧ ̅2 ∧ ̅3 ∧ ̅4 ∧ ̅5 ∧ ̅6 ∧ ̅7 δ(q, e, q’) (Running, release, Exit) ̅1 ∧ δ(q, e, q’) (Ready, waitEvent, Blocked) 1∧ 3∧ ̅2 ∧ ̅3 ∧ 4∧ ̅5 ∧ ̅6 ∧ ∧ ̅5 ∧ 6∧ 1∧ ̅2 ∧ 3∧ ̅4 ∧ ̅5 ∧ 6∧ ̅7 (Running, timeout, Ready) τ(υ, γ, υ’) τ(υ, γ, υ’) 2∧ (Ready, dispatch, Running) 7 ̅1 ∧ 2∧ ̅3 ∧ ̅4 ∧ ̅5 ∧ ̅6 ∧ ̅7 (Blocked, eventOccurs, Ready) 1∧ 2∧ 3∧ ̅4 ∧ 5∧ ̅6 ∧ ̅7 47 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 Q1 New X1 ̅1 ∧ ̅2 X1 bảng ánh xạ Ready 1∧ ̅2 Bảng 4.7: Thành phần Q2 Q2 Ready X2 ̅6 ∧ ̅7 Running 6∧ ̅7 Running ̅1 ∧ Blocked 1∧ X2 bảng ánh xạ Exit ̅6 ∧ Blocked 6∧ 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} | { ̅ ∧ ∧ ∧ ̅5 ∧ ∧ ∧ ̅ ∧ ̅ ∧ } | { ̅ ∧ ∧ ̅ ∧ ̅ ∧ ̅ ∧ ̅ ∧ ̅ 7} | { ∧ ̅ ∧ ̅ ∧ ∧ 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 hồn tồn tương tự ta có chuyển trạng thái lại LTS (Ready, dispatch, Running), (Running, release, Exit), (Running, timeout, Ready), (Running, waitEvent, Blocked) (Blocked, eventOccurs, Ready) (****) 48 Từ (*) (**) (***) (****) ta LTS M hình 4.1 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 Σ Σ admit E ̅3 ∧ ̅4 ∧ ̅5 Σ timeout 3∧ E 4∧ E bảng ánh xạ dispatch 3∧ release ̅4 ∧ ̅5 waitEvent ̅5 ̅3 ∧ ̅4 ∧ Bảng 4.9: Thành phần δ(q, e, q’) (New, admit, Ready) τ(υ, γ, υ’) ̅ ∧ ̅ ∧ ̅ 3∧ ̅ ∧ ̅ ∧ ̅ ∧ ̅ δ(q, e, q’) (Running, release, Exit) δ(q, e, q’) (Ready, waitEvent, Blocked) ̅2 ∧ ̅3 ∧ 4∧ ̅5 ∧ ̅6 ∧ ̅5 ∧ eventOccurs 3∧ ̅4 ∧ 6∧ 1∧ ̅2 ∧ 3∧ ̅4 ∧ ̅5 ∧ 6∧ ̅7 (Running, timeout, Ready) ̅1 ∧ 1∧ 4∧ ̅5 (Ready, dispatch, Running) τ(υ, γ, υ’) τ(υ, γ, υ’) 3∧ 4∧ τ(υ, γ, υ’) bảng ánh xạ δ(q, e, q’) 2∧ ̅3 ∧ 7 ̅1 ∧ 2∧ ̅3 ∧ ̅4 ∧ ̅5 ∧ ̅6 ∧ ̅7 (Blocked, eventOccurs, Ready) 1∧ 2∧ 3∧ ̅4 ∧ 5∧ ̅6 ∧ ̅7 49 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 50 ngoặc đơ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 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 Q1X1, Q2 X2, Σ E τ Hình 5.2: Ví dụ tệp đầu vào 51 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 & & -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} Event : where send = {-3 & -4}, ack = {3 52 & -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 & & & -5 & 6}, (s1, send, s1) ->{-1 & & -3 & & -5 & 6}, (s1, ack, s1) ->{-1 & & & -4 & -5 & 6}, (s1, out, s1) ->{-1 & & -3 & & -5 & 6}, (s2, out, s0) ->{1 & -2 & -3 & & & -6}, (s2, send, s1) ->{1 & -2 & -3 & -4 & & 6} in0 x = {1 } in0 in1 in2 i(x) = {-1 & -2} (in0 input in1) ; (in1 T(x,e,x') = {{-1 & -2 & -3 & -4 & -5 & -6 } | send 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} Transition: (s0, ack, s0) ->{-1 & -2 & -3}, (s0, 53 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 & & -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 & & -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 & -7 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 & & }} -Mapping From State: where in0 = {-1 & -2 & -3}, in1 = {1 & -2 & -3}, in2 = {-1 & & -3}, in3 = {1 & & -3}, in4 = {-1 & -2 & 3} 54 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 55 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 tồ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 tố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 cịn 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 tố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 tố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 56 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ịn 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 π 57 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