Nghiên cứu khả năng chuyển đổi giữa các đặc tả hình thức và ứng dụng trong kiểm chứng phần mềm

12 418 0
Nghiên cứu khả năng chuyển đổi giữa các đặc tả hình thức và ứng dụng trong kiểm chứng phần mềm

Đ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Ệ Đậu Quốc Toản NGHIÊN CỨU KHẢ NĂNG CHUYỂN ĐỔI GIỮA CÁC ĐẶC TẢ HÌNH THỨC VÀ ỨNG DỤNG TRONG KIỂM CHỨNG PHẦN MỀM LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI-2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đậu Quốc Toản NGHIÊN CỨU KHẢ NĂNG CHUYỂN ĐỔI GIỮA CÁC ĐẶC TẢ HÌNH THỨC VÀ ỨNG DỤNG TRONG KIỂM CHỨNG PHẦN MỀM Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã số: 60480103 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TIẾN SĨ PHẠM NGỌC HÙNG HÀ NỘI-2015 Lời cảm ơn Trước tiên, muốn gửi lời cảm ơn sâu sắc đến thầy giáo, TS Phạm Ngọc Hùng, người tận tình bảo hướng dẫn suốt trình học tập, nghiên cứu thực luận văn tốt nghiệp Tôi xin bày tỏ lời cảm ơn sâu sắc đến thầy cô giáo giảng dạy hai năm qua, tạo cho điều kiện thuận lợi để học tập nghiên cứu trường Đại Học Công Nghệ Tôi xin chân thành cảm ơn GS Jeff Magee - Trưởng khoa Kỹ Thuật, trường đại học Hoàng Gia London, tác giả sách "Concurrency - state models and Java programs (2 ed.)" Giáo sư nhiệt tình giải đáp vấn đề mà gặp phải trình thực luận văn Xin gửi lời cảm ơn tới bạn Nguyễn Bảo Ngọc, người giúp đỡ vấn đề kỹ thuật liên quan tới luận văn vấn đề khác sống Tôi muốn gửi lời cảm ơn sâu sắc đến gia đình tất bạn bè, người kịp thời động viên giúp đỡ vượt qua khó khăn sống Cuối cùng, xin gửi lời cảm ơn chân thành tới phòng thí nghiệm công nghệ phần mềm Toshiba Phòng thí nghiệm tạo điều kiện cho có không gian để nghiên cứu trao đổi với bạn bè Tôi xin chân thành cảm ơn ! Hà Nội, 28 tháng 05 năm 2015 Học viên Đậu Quốc Toản iii Lời cam đoan Tôi xin cam đoan luận văn công trình nghiên cứu riêng Các số liệu, kết trình bày luận văn hoàn toàn trung thực chưa công bố công trình khác Tôi trích dẫn đầy đủ tài liệu tham khảo, công trình nghiên cứu liên quan nước quốc tế Ngoại trừ tài liệu tham khảo này, luận văn hoàn toàn công việc riêng Hà Nội, 28 tháng năm 2015 Học viên Đậu Quốc Toản iv Tóm tắt Assume-Guarantee Tool (AGTool) công cụ sinh giả định, có ý nghĩa quan trọng việc giải toán "bùng nổ không gian trạng thái" phương pháp kiểm chứng mô hình Hiện tại, AGTool công cụ tiềm việc hỗ trợ kiểm chứng phần mềm hướng thành phần Thay kiểm chứng toàn hệ thống, công cụ chia toán kiểm chứng thành toán nhỏ ứng với thành phần phần mềm kiểm chứng thành phần cách riêng biệt Tuy nhiên, công cụ AGTool tồn nhiều hạn chế để ứng dụng vào thực tế tương tác với công cụ kiểm chứng phần mềm khác LTSA AGTool sử dụng kiểu liệu liệt kê (LF), kiểu biểu diễn hệ thống dịch chuyển gán nhãn (LTS) Với mục đích tăng khả tương tác với công cụ kiểm chứng phần mềm khác, luận văn nghiên cứu sử dụng tiến trình hữu hạn trạng thái (FSP) thay cho kiểu liệu LF AGTool Mục tiêu luận văn đưa phương pháp chuyển đổi qua lại kiểu liệu LF-FSP ứng dụng vào công cụ kiểm chứng AGTool Luận văn đề xuất thuật toán để chuyển từ LF sang FSP Dựa công cụ LTSA tác giả Jeff Magee, luận văn tiến hành tích hợp AGTool LTSA để chuyển đổi từ FSP sang LF Những cải tiến giúp AGTool trở thành công cụ hiệu tốt thực tế v Bảng từ viết tắt Từ viết tắt AGTool Từ đầy đủ Assume-Guarantee Tool Ý nghĩa Công cụ hỗ trợ kiểm chứng đảm bảo giả định GUI-AGTool Graphical User Interface for Công cụ đồ họa hỗ trợ kiểm AGTool chứng đảm bảo giả định LTS Labeled Transition System Hệ thống dịch chuyển gán nhãn FSP Finite State Process Tiến trình hữu hạn trạng thái MC Model Checking Kiểm chứng mô hình AGV Assume Guarantee Verifica- Kiểm chứng đảm bảo giả tion định LTSA Labeled Transition System Công cụ kiểm chứng hệ thống Analyzer tương tranh Ocaml Objective Caml Ngôn ngữ lập trình hàm OCaml ML Meta-Language Siêu ngôn ngữ LF Listing Form Dạng biểu diễn liệt kê LTS vi Mục lục Giới thiệu Kiến thức 2.1 Labeled Transition System (LTS) 2.2 Các phương pháp biểu diễn LTS 2.2.1 Phương pháp liệt kê 2.2.2 FSP 2.3 Dẫn xuất 2.4 Ghép nối song song 2.5 LTS an toàn thuộc tính an toàn 2.6 Tính thỏa mãn 2.7 Đặc tả ngôn ngữ FSP 2.7.1 Định nghĩa FSP 10 2.7.2 Các định danh 10 2.7.3 Nhãn hành động 11 2.7.4 Const, Range, Set 12 2.7.5 Định nghĩa tiến trình 12 2.7.6 Tiến trình kết hợp 13 2.7.7 Tham số 14 2.7.8 Phép gán lại nhãn phép ẩn 15 2.7.9 Property, Progress Menu 16 2.7.10 Biểu thức 16 vii MỤC LỤC 2.8 2.9 17 2.8.1 Đặc trưng OCaml 17 2.8.2 Cú pháp ngữ nghĩa 18 OCamllex OCamlyacc 23 2.9.1 OCamllex 23 2.9.2 OCamlyacc 23 AGTool 25 3.1 Giới thiệu AGTool 25 3.2 Hạn chế AGTool 27 Chuyển đổi dạng biểu diễn LTS 28 4.1 Chuyển đổi FSP sang LF 29 4.1.1 Ý tưởng 29 4.1.2 Thiết kế 32 4.1.3 Phân tích đánh giá 32 Chuyển đổi LF sang FSP 33 4.2.1 Ý tưởng 33 4.2.2 Phân tích đánh giá 36 4.2 Ngôn ngữ lập trình hàm OCaml Thực nghiệm 37 5.1 Cài đặt chương trình 37 5.2 Giới thiệu chương trình 37 5.3 Thực nghiệm 39 5.4 Đánh giá thực nghiệm 43 Kết luận 44 Tài liệu tham khảo 46 viii Danh sách hình vẽ 2.1 Ví dụ LTS 2.2 Phương pháp biểu diễn liệt kê LTS 2.3 Ví dụ LF 2.4 Ví dụ FSP 2.5 Ghép nối song song INPUT OUTPUT 2.6 Biểu diễn LTS thuộc tính an toàn Safety Property 2.7 Ví dụ định nghĩa số 2.8 Ví dụ định nghĩa danh sách đối số 10 2.9 Định nghĩa FSP 10 2.10 Định nghĩa định danh 11 2.11 Định nghĩa chữ hoa, thường 11 2.12 Định nghĩa nhãn hành động 11 2.13 Định nghĩa tập nhãn hành động 12 2.14 Định nghĩa Const, Range, Set 12 2.15 Định nghĩa tiến trình 13 2.16 Định nghĩa tiến trình địa phương 14 2.17 Định nghĩa thành phần 15 2.18 Định nghĩa thành phần 15 2.19 Định nghĩa tham số 16 2.20 Định nghĩa phép gán lại nhãn 16 2.21 Định nghĩa phép ẩn 17 2.22 Định nghĩa Property 17 2.23 Định nghĩa Progress 18 ix DANH SÁCH HÌNH VẼ 2.24 Định nghĩa Menu 18 2.25 Định nghĩa biểu thức 19 2.26 Định nghĩa biểu thức (tiếp) 20 2.27 Định nghĩa biểu thức (tiếp) 21 2.28 Ví dụ khai báo hàm 21 2.29 Ví dụ gọi hàm 21 2.30 Ví dụ hàm mức cao 22 2.31 Ví dụ hàm nặc danh 22 2.32 Ví dụ hàm đệ quy 22 2.33 Cấu trúc lệnh so sánh mẫu 22 2.34 Ví dụ so sánh mẫu 22 2.35 Cấu trúc tập tin đặc tả từ vựng 23 2.36 Ví dụ tập tin đặc tả từ vựng 24 2.37 Cấu trúc tập tin đặc tả cú pháp 24 3.1 Mô hình công cụ kiểm chứng AGTool 25 3.2 Thành phần đầu vào AGTool 26 3.3 Kết sinh AGTool 26 4.1 Kiến trúc GUI-AGTool 28 4.2 Cấu trúc thành phần chuyển đổi từ FSP sang LF 29 4.3 FSP M 29 4.4 Mô hình FSP Compiler 32 4.5 Cấu trúc thành phần chuyển đổi từ LF sang FSP 33 5.1 Giao diện GUI-AGTool 38 5.2 Giao diện thể giả định sinh GUI-AGTool 39 5.3 Ví dụ FSP đầu vào AGTool 40 5.4 LTS thành phần M1 41 5.5 LTS thành phần M2 41 5.6 LTS thành phần P 41 x Tài liệu tham khảo [1] Paul C Jorgensen Software Testing: A Craftsman’s Approach, Fourth Edition CRC Press, Inc., Boca Raton, FL, USA, 4th edition, 2013 ISBN 084937345X [2] N G Leveson and C S Turner An investigation of the therac-25 accidents Computer, 26:18–41, July 1993 ISSN 0018-9162 doi: 10.1109/MC.1993 274940 URL http://portal.acm.org/citation.cfm?id=161477.161479 [3] Jeff Magee and Jeff Kramer Concurrency: State Models &Amp; Java Programs, 2nd Edition John Wiley & Sons, Inc., New York, NY, USA, 2006 ISBN 9780-470-06462-7 [4] Edmund M Clarke and Bernd-Holger Schlingloff Model checking, pages 1635–1790 Elsevier Science Publishers B V., Amsterdam, The Netherlands, The Netherlands, 2001 ISBN 0-444-50812-0 URL http://portal.acm.org/ citation.cfm?id=778522.778533 [5] Dimitra Giannakopoulou, Corina S Pasareanu, and Jamieson M Cobleigh Assume-guarantee verification of source code with design-level assumptions In Proceedings of the 26th International Conference on Software Engineering, ICSE ’04, pages 211–220, Washington, DC, USA, 2004 IEEE Computer Society ISBN 0-7695-2163-0 URL http://portal.acm.org/citation.cfm? id=998675.999426 [6] Dimitra Giannakopoulou and Corina S Pasareanu Learning-Based AssumeGuarantee Verification (Tool Paper) Cambridge University Press, 2005 [7] Pham Ngoc Hung, Viet-Ha Nguyen, Toshiaki Aoki, and Takuya Katayama Assume-guarantee tools for component-based software verification In Proceedings of the 2010 Second International Conference on Knowledge and Systems Engineering, KSE ’10, pages 172–177, Washington, DC, USA, 2010 IEEE Computer Society ISBN 978-0-7695-4213-3 doi: http://dx.doi.org/10 1109/KSE.2010.18 URL http://dx.doi.org/10.1109/KSE.2010.18 [8] Jeff Magee and Jeff Kramer, 11 2013 ltsa/ 46 URL http://www.doc.ic.ac.uk/ Chương Kết luận [9] Vũ Hồng Long Xây dựng giao diện cho công cụ agtool Khoá luận tốt nghiệp đại học, Trường Đại học Công nghệ, ĐHQGHN, 2011 [10] Đậu Quốc Toản Chuyển đổi phương pháp biểu diễn lts ứng dụng cho công cụ kiểm chứng phần mềm Khoá luận tốt nghiệp đại học, Trường Đại học Công nghệ, ĐHQGHN, 2011 [11] Robert M Keller Formal verification of parallel programs Commun ACM, 19:371–384, July 1976 ISSN 0001-0782 doi: http://doi.acm.org/10.1145/ 360248.360251 URL http://doi.acm.org/10.1145/360248.360251 [12] Jamieson M Cobleigh, Dimitra Giannakopoulou, and Corina S Păsăreanu Learning assumptions for compositional verification In Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems, TACAS’03, pages 331–346, Berlin, Heidelberg, 2003 SpringerVerlag ISBN 3-540-00898-5 URL http://portal.acm.org/citation.cfm? id=1765871.1765903 [13] Colin Blundell, Dimitra Giannakopoulou, and Corina S Pˇasˇareanu Assume-guarantee testing SIGSOFT Softw Eng Notes, 31, September 2005 ISSN 0163-5948 doi: http://doi.acm.org/10.1145/1108768.1123060 URL http://doi.acm.org/10.1145/1108768.1123060 [14] Joshua B Smith Practical OCaml (Practical) Apress, Berkely, CA, USA, 2006 ISBN 159059620X [15] SooHyoung Oh Ocamllex, 2004 URL http://plus.kaist.ac.kr/~shoh/ ocaml/ocamllex-ocamlyacc/ocamllex-tutorial/index.html [16] SooHyoung Oh Ocamlyacc, 2004 URL http://plus.kaist.ac.kr/~shoh/ ocaml/ocamllex-ocamlyacc/ocamlyacc-tutorial/ocamlyacc-tutorial html 47 [...]... Chương 6 Kết luận [9] Vũ Hồng Long Xây dựng giao diện cho công cụ agtool Khoá luận tốt nghiệp đại học, Trường Đại học Công nghệ, ĐHQGHN, 2011 [10] Đậu Quốc Toản Chuyển đổi giữa các phương pháp biểu diễn của lts và ứng dụng cho công cụ kiểm chứng phần mềm Khoá luận tốt nghiệp đại học, Trường Đại học Công nghệ, ĐHQGHN, 2011 [11] Robert M Keller Formal verification of parallel programs Commun ACM, 19:371–384,...Tài liệu tham khảo [1] Paul C Jorgensen Software Testing: A Craftsman’s Approach, Fourth Edition CRC Press, Inc., Boca Raton, FL, USA, 4th edition, 2013 ISBN 084937345X [2] N G Leveson and C S Turner An investigation

Ngày đăng: 27/08/2016, 11:13

Từ khóa liên quan

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

Tài liệu liên quan