ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN KHẮC CHUNG KIỂM CHỨNG HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ KIỂM CHỨNG MÔ HÌNH SAL LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN KHẮC CHUNG
KIỂM CHỨNG HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ
KIỂM CHỨNG MÔ HÌNH SAL
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
HÀ NỘI, 2015
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN KHẮC CHUNG
KIỂM CHỨNG HỆ THỐNG THỜI GIAN THỰC BẰNG CÔNG CỤ
KIỂM CHỨNG MÔ HÌNH SAL
Nghành : Công nghệ thông tin Chuyên nghành : Kỹ thuật phần mềm
Mã số : 60 48 01 03
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG VĂN HƯNG
HÀ NỘI, 2015
Trang 3LỜI CẢM ƠN
Trước tiên tôi xin bày tỏ lòng biết ơn sâu sắc tới TS Đặng Văn Hưng , giảng viên Bộ môn Công nghệ phần mềm - Khoa Công nghệ thông tin - Trường
Đa ̣i ho ̣c Công nghệ - ĐHQGHN.Trong thời gian ho ̣c và làm luận văn tốt nghiệp, thầy đã dành nhiều thời gian quý báu và t ận tình chỉ bảo , hướng dẫn tôi trong việc nghiên cứ u, thực hiện luận văn
Tôi xin được cảm ơn các GS , TS đã giảng da ̣y tôi trong quá trình ho ̣c t ập
và làm luận văn Các thầy cô đã giúp tôi hiểu thấu đáo hơn lĩnh vực mà mình nghiên cứu để có thể vận du ̣ng những kiến thức đó vào trong công tác của mình
Xin cảm ơn ba ̣n bè , đồng nghiệp trong công ty đã ta ̣o mo ̣i điều ki ện tốt nhất cho tôi trong suốt quá trình ho ̣c t ập và nghiên cứu để hoàn thành tốt bản luận văn tốt nghiệp này
Hà nội, tháng 11 năm 2015 Học viên thực hiện
Nguyễn Khắc Chung
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan rằng , đây là kết quả nghiên cứu của tôi trong đó có sự giúp đỡ rất lớn của thầy hướng dẫn Các nội dung nghiên cứu và kết quả trong
đề tài này hoàn toàn trung thực
Trong luận văn, tôi có tham khảo đến một số tài liệu của một số tác giả đã được liệt kê ta ̣i phần tài liệu tham khảo ở cuối luận văn
Hà nội, tháng 11 năm 2015 Học viên thực hiện
Nguyễn Khắc Chung
Trang 5MỤC LỤC
LỜI CẢM ƠN 1 Chương 1 GIỚI THIỆU 8
Chương 2 TỔNG QUAN VỀ KIỂM DUYỆT MÔ HÌNH Error! Bookmark not defined
2.1 Kiểm duyệt mô hình (model checking) Error! Bookmark not defined
2.1.1 Định nghĩa kiểm duyệt mô hình Error! Bookmark not defined
2.1.2 Quá trình chung cho việc kiểm duyệt mô hình Error! Bookmark not defined
2.1.2.1 Giai đoạn mô hình hóa Error! Bookmark not defined 2.1.2.2 Giai đoạn thực thi Error! Bookmark not defined 2.1.2.3 Giai đoạn phân tích Error! Bookmark not defined
2.1.3 Ưu điểm, nhược điểm của kiểm duyệt mô hình Error! Bookmark not defined
2.1.3.1 Ưu điểm Error! Bookmark not defined 2.1.3.2 Nhược điểm Error! Bookmark not defined
2.1.4 Các bước để kiểm duyệt mô hình Error! Bookmark not defined 2.2 Mô hình hóa hệ thống Error! Bookmark not defined
2.2.1 Hệ thống chuyển đổi Error! Bookmark not defined 2.2.1.1 Định nghĩa hệ thống chuyển đổi (transition system) Error! Bookmark not defined
2.2.1.2 Thực thi (run) Error! Bookmark not defined
2.2.2 Mô hình hóa hệ thống song song và giao tiếp Error! Bookmark not defined
2.2.2.1 Đồng thời và đan xen (Concurrency and Interleaving) Error! Bookmark not defined
2.2.2.2 Giao tiếp thông qua các biến dùng chung Error! Bookmark not defined
2.2.2.3 Bắt tay (handshaking) Error! Bookmark not defined 2.2.2.4 Hệ thống kênh truyền (Channel System) Error! Bookmark not defined
2.3 Đặc tả các tính chất hệ thống Error! Bookmark not defined
2.3.1 Tính an toàn (safety property) Error! Bookmark not defined
Trang 62.3.1.1 Khóa chết Error! Bookmark not defined 2.3.1.2 Bất biến (invariant) Error! Bookmark not defined
2.3.2 Tính sống (liveness property) Error! Bookmark not defined
2.4 Kiểm duyệt mô hình hệ thống thời gian thực (model checking real-time
system) Error! Bookmark not defined
2.4.1 Hệ thống thời gian rời rạc (Discrete-time System) Error! Bookmark not defined
2.4.2 Hệ thống thời gian dày đặc (Dense-time system) Error! Bookmark not defined
2.5 Logic Thời gian tuyến tính (Linear Temporal Logic) Error! Bookmark not defined
2.5.1 Logic thời gian tuyến tính Error! Bookmark not defined 2.5.1.1 Cú pháp (Syntax) Error! Bookmark not defined 2.5.1.2 Ngữ nghĩa (Semantic) Error! Bookmark not defined
2.5.2 Kiểm duyệt mô hình logic thời gian tuyến tính dựa trên otomat
Error! Bookmark not defined
Chương 3 TỔNG QUAN VỀ CÔNG CỤ KIỂM CHỨNG MÔ HÌNH SAL
(Symbolic Analysis Laboratory) Error! Bookmark not defined 3.1 Giới thiệu Error! Bookmark not defined
3.1.1 Môi trường SAL Error! Bookmark not defined
3.1.2 Bộ mô phỏng (Simulator) Error! Bookmark not defined
3.1.3 Bộ tìm kiếm đường (path finder) Error! Bookmark not defined
3.1.4 Ngôn ngữ đặc tả tính chất (Property Specification Language) của SAL
Error! Bookmark not defined
3.1.4.1 Bộ kiểm tra mô hình biểu tượng (symbolic model checker) Error! Bookmark not defined
3.1.4.2 Bộ kiểm tra mô hình chặn (bounded model checker) Error! Bookmark not defined
3.2 Ngôn ngữ diễn đạt (Expression Language) Error! Bookmark not defined
3.2.1 Kiểu (Type) Error! Bookmark not defined 3.2.1.1 Kiểu dữ liệu cơ bản Error! Bookmark not defined 3.2.1.2 Dữ liệu kiểu cấu trúc Error! Bookmark not defined
Trang 73.2.2 Biểu thức (Expression) Error! Bookmark not defined 3.3 Ngôn ngữ chuyển đổi (The Transition Language) Error! Bookmark not defined
3.3.1 Định nghĩa (Definition) Error! Bookmark not defined
3.3.2 Câu lệnh bảo vệ (Guarded Command) Error! Bookmark not defined
3.3.3 Ngôn ngữ mô đun (The Module Language) Error! Bookmark not defined
3.3.3.1 Mô đun cơ sở (Base Module) Error! Bookmark not defined 3.3.3.2 Thao tác biến biến trạng thái Error! Bookmark not defined 3.3.3.3 Thành phần mô đun Error! Bookmark not defined 3.3.3.4 Khai báo mô đun Error! Bookmark not defined 3.4 Đặc trưng chính của SAL Error! Bookmark not defined Chương 4 ỨNG DỤNG Error! Bookmark not defined 4.1 Bài toán hệ thống công tắc đèn Error! Bookmark not defined
4.1.1 Mô tả bài toán Error! Bookmark not defined
4.1.2 Mô hình và kiểm duyệt hệ thống công tác đèn trong SAL Error! Bookmark not defined
4.1.2.1 Mô hình hóa Error! Bookmark not defined 4.1.2.2 Kiểm duyệt các tính chất Error! Bookmark not defined 4.2 Bài toán hệ thống thang máy đơn giản Error! Bookmark not defined
4.2.1 Mô tả bài toán Error! Bookmark not defined
4.2.2 Mô hình và kiểm duyệt hệ thống thang máy trong SAL Error! Bookmark not defined
4.2.2.1 Mô hình hóa Error! Bookmark not defined 4.2.2.2 Kiểm duyệt các tính chất Error! Bookmark not defined Chương 5 KẾT LUẬN Error! Bookmark not defined
TÀI LIỆU THAM KHẢO 9
PHỤ LỤC Error! Bookmark not defined
Trang 9DANH MỤC HÌNH VẼ
Hình 2-1: Tổng quan về kiểm duyệt mô hình Error! Bookmark not defined Hình 2-2: Máy bán đồ uống tự động Error! Bookmark not defined Hình 2-3: Ví dụ mô tả interleaving của 2 đèn giao thông Error! Bookmark not defined
Hình 2-4: Ví dụ mô tả biến dùng chung Error! Bookmark not defined Hình 2-5: Ngữ nghĩa của phương thức thời gian Error! Bookmark not defined Hình 2-6: Ví dụ về logic thời gian tuyến tính Error! Bookmark not defined Hình 2-7: Tổng quan về kiểm duyệt mô hình logic thời gian tuyến tính Error! Bookmark not defined
Hình 3-1: Ví dụ SAL simulator Error! Bookmark not defined Hình 3-2: Ví dụ về sal path finder Error! Bookmark not defined Hình 3-3: Ví dụ về kiểm chứng các tính chất sử dụng sal-smc Error! Bookmark not defined
Hình 3-4: Ví dụ sử dụng bounded model checker Error! Bookmark not defined
Hình 3-5: Cấu trúc mô đun Error! Bookmark not defined Hình 4-1: Mô hình hệ thống công tác đèn Error! Bookmark not defined Hình 4-2: Mô hình cửa thang máy Error! Bookmark not defined Hình 4-3: Mô hình thang máy Error! Bookmark not defined
Trang 10BẢNG CÁC CHỮ VIẾT TẮT
Automaton
Trang 11Chương 1 GIỚI THIỆU
Ngày nay, sự phát triển của các hệ thống kỹ thuật thông tin và truyền thông ngày càng nhiều và đa dạng Các hệ thống này ngày càng trở nên phức tạp
và đi sâu vào cuộc sống hàng ngày của chúng ta chẳng hạn như máy tính xách tay, điện thoại di động, các loại tivi cao cấp và các đồ dùng hằng ngày như máy giặt, lò vi sóng Vì thế, sự phụ thuộc của chúng ta ngày càng tăng và chặt chẽ hơn vào các hệ thống thông tin làm cho độ tin cậy của các hệ thống ngày càng yêu cầu cao
Để xây dựng phần mềm có chất lượng cao cần tuân thủ việc đảm bảo chất lượng phần mềm Trong đó việc đảm bảo tính đúng đắn của thiết kế ở giai đoạn sớm đóng vai trò mấu chốt cho việc đảm bảo chất lượng trong quá trình phát triển phần mềm Kĩ thuật kiểm duyệt hệ thống đang được áp dụng để kiểm duyệt thiết kế hệ thống nhằm tăng độ tin cậy của hệ thống
Trong nhiều năm qua việc nghiên cứu các phương pháp hình thức đã dẫn đến sự phát triển của một số kỹ thuật kiểm duyệt và tạo thuận lợi cho việc phát hiện lỗi sớm Các kĩ thuật kiểm duyệt này được cài đặt thành các công cụ có thể được sử dụng một cách tự động ở các giai đoạn khác nhau của việc phát triển phần mềm
Hiện nay có rất nhiều công cụ kiểm duyệt mô hình phần mềm như SAL, SPIN, NuSMV, PAT, UPPAAL SAL có thể kiểm duyệt hệ thống thời gian thực bằng cách thêm biến đếm đồng hồ vào tiến trình thời gian để đặc tả các ràng buộc thời gian với các quá trình chuyển đổi Nội dung của đề tài là nghiên cứu các lý thuyết cơ bản về kiểm duyệt mô hình, các kinh nghiệm sử dụng công
cụ kiểm duyệt mô hình SAL và sử dụng SAL để kiểm duyệt mô hình hệ thống trong thực tế
Trang 12TÀI LIỆU THAM KHẢO TIẾNG ANH
[1] Christel Baier Joost-Pieter Katoen (2008), Principles of Model Checking,
MIT Press, Printed and bound in the United States of America, pp.19-26, 35-55,
89 -99, 151-152, 159-167, 170 -180, 188-193, 229-233
[2] Liu Yang (2009), “MODEL CHECKING CONCURRENT AND
REAL-TIME SYSTEMS: THE PAT APPROACH”, A thesis submitted for the degree
of doctor of philosophy department of computer science national university of Singapore, pp.20-22
[3] Saddek Bensalem, Vijay Ganesh, Yassine Lakhnech, Cesar Munoz, Sam Owre, Harald Rueß, John Rushby, Vlad Rusu, Hassen Saidi, N Shankar, Eli
Singerman, Ashish Tiwari (2000), “An Overview of SAL”, LFM 2000: Fifth
[4] Lee Pike (2007), ”Model Checking for the Practical Verificationist”,
Automated Formal Methods(AFM07), pp.1-2, 4-5
[5] Leonardo de Moura, Sam Owre, N Shankar (2003), The SAL Language Manual (Rev.2), SRI International, Computer Science Laboratory, 333
Ravenswood Avenue, Menlo Park, pp.5-23
[6] Leonardo de Moura (2004), SAL: Tutorial Computer Science Laboratory,
SRI International, Computer Science Laboratory, 333 Ravenswood Avenue, Menlo Park, pp.3-4, 6-10
[7] S Owre, N Shankar, J M Rushby, D W J Stringer - Calvert (November
2001), PVS Language Reference, Version 2.4, SRI International, Computer
Science Laboratory, 333 Ravenswood Avenue, Menlo Park, pp.11-17, 37-42