Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP và công cụ PAT

6 287 2
Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP và công cụ PAT

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

Thông tin tài liệu

Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP# và công cụ PAT Nguyễn Văn Trãi Trường Đại học Công nghệ. Đại học Quốc gia Hà Nội Luận văn ThS. Công nghệ thông tin : 60 48 10 Người hướng dẫn : TS. Nguyễn Trường Thắng Năm bảo vệ: 2013 78 tr . Abstract. Trình bày các vấn đề cấp thiết trong kiểm chứng để xác định tính đúng đắn của hệ thống phần mềm, nhất là đối với các hệ thống tương tranh và lựa chọn cách tiếp cận kiểm chứng mô hình. Đi sâu vào hai vấn đề chính trong kiểm chứng mô hình là mô hình hóa hệ thống và đặc tả các thuộc tính của hệ thống. Hiện nay có nhiều phương pháp giúp mô hình hóa cũng như đặc tả các thuộc tính của hệ thống, nhưng luận văn lựa trình bày hai phương pháp cơ sở là sử dụng hệ dịch chuyển để mô hình hóa và lôgic thời gian tuyến tính để đặc tả các thuộc tính của hệ thống. Trình bày nội dung về hệ tương tranh: khái niệm, các thuộc tính, mô hình tương tác và các khó khăn khi muốn xác định tính đúng đắn. Một số cơ chế thực thi, tương tác trong hệ tương tranh và cách mô hình hóa các cơ chế đó bằng hệ dịch chuyển cũng được trình bày trong chương này. Cụ thể luận văn xem xét các cơ chế thực thi, tương tác sau: Xử lý đan xen (Interleaving); Giao tiếp qua biến chia sẻ (Communication via Shared Variables); Tương tác dạng bắt tay (Handshaking); Giao tiếp thông qua kênh truyền (Channel Systems); Xử lý song song đồng bộ (Synchronous Parallelism). Trình bày về một ngôn ngữ đặc tả mô hình hệ tương tranh là CSP#, ngôn ngữ này được tích hợp vào trong bộ công cụ hỗ trợ kiểm chứng PAT. Với các nội dung tìm hiểu về ngôn ngữ CSP# luận văn đề xuất một cách tiếp cận trích xuất mô hình từ mã nguồn C# cho bài toán xử lý tương tranh trong lập trình đa luồng. Tiến hành thử nghiệm kiểm chứng mô hình một hệ thống sử dụng ngôn ngữ đặc tả mô hình CSP# và công cụ hỗ trợ PAT, so sánh kết quả kiểm chứng của PAT với SPIN qua một số bài toán Keywords. Công nghệ phần mềm; Kỹ thuật kiểm chứng; Kiểm chứng mô hình; Hệ thống tương tranh; Ngôn ngữ đặc tả Content. Trong thời đại bùng nổ ứng dụng công nghệ thông tin hiện nay, cùng với những cơ hội là rất nhiều thách thức dành cho các nhà phát triển phần mềm. Để đem lại hiệu quả công việc cao nhất và tiết kiệm thời gian, chi phí cho doanh nghiệp, các hệ thống phần mềm khi đưa vào ứng dụng phải đảm bảo các yêu cầu nghiêm ngặt về hiệu năng xử lý và tiết kiệm năng lượng. Một giải pháp là sử dụng các hệ thống xử lý tương tranh giúp tận dụng tối đa tài nguyên phần cứng, cho phép thực hiện nhiều tác vụ cùng lúc. Tuy nhiên, trong phát triển phần mềm, việc xác định tính đúng đắn cho các hệ thống xử lý tương tranh như vậy thường rất khó khăn vì sự tương tác phức tạp giữa các thành phần cùng xử lý trong hệ thống. Các lỗi xuất hiện trong hệ thống xử lý tương tranh thường không có xu hướng lặp lại, vì thế rất khó phát hiện bởi các ca kiểm thử, khi đó sử dụng các kỹ thuật kiểm chứng hình thức là cần thiết. Nội dung của luận văn sẽ tập trung giới thiệu hướng tiếp cận kiểm chứng mô hình cho hệ xử lý tương tranh, đi sâu vào phương pháp mô hình hóa hệ thống. Một ngôn ngữ mô hình hóa cụ thể được giới thiệu trong luận văn là Communicating Sequential Processes Sharp (CSP#), các mô hình đặc tả bằng ngôn ngữ này được sử dụng trong phần kiểm chứng thử nghiệm với bộ công cụ Process Analysis Toolkit (PAT). Chương 1 của luận văn giới thiệu tổng quan về kiểm chứng mô hình, các phương pháp mô hình hóa và đặc tả thuộc tính của hệ thống (sử dụng hệ dịch chuyển và logic thời gian tuyến tính). Trong chương 2 luận văn tiếp tục giới thiệu tổng quan về hệ thống tương tranh, các cơ chế thực thi, tương tác trong hệ tương tranh, mô hình hóa các cơ chế thực thi, tương tác trên bằng hệ dịch chuyển để phục vụ kiểm chứng mô hình. Tuy nhiên trong thực tế, quá trình mô hình hóa hệ thống thường không sử dụng trực tiếp hệ dịch chuyển mà thông qua một ngôn ngữ mô hình hóa trung gian để đảm bảo tính trực quan đối với người dùng. Sau đó các đặc tả mô hình bằng ngôn ngữ này được chuyển tự động qua dạng hệ dịch chuyển dựa trên ngữ nghĩa của ngôn ngữ đã sử dụng. Chương 3 sẽ trình bày về ngôn ngữ mô hình hóa CSP# - một ngôn ngữ phù hợp để đặc tả mô hình các hệ xử lý tương tranh. Trong chương 3 luận văn cũng đề xuất một cách tiếp cận trích xuất mô hình trực tiếp từ mã nguồn C Sharp (C#) đối với phạm trù xử lý tương tranh trong lập trình đa luồng. Kết quả của quá trình trích xuất là mô hình xử lý tương tranh trong mã nguồn dưới dạng đặc tả bằng CSP#. Đề xuất này nhằm phục vụ mục tiêu kiểm chứng mô hình trực tiếp trên mã nguồn C#. Phần cuối của luận văn ở chương 4 tiến hành thử nghiệm mô hình hóa và kiểm chứng một hệ tương tranh, sử dụng ngôn ngữ mô hình hóa CSP# và công cụ hỗ trợ kiểm chứng PAT. Tài liệu tham khảo [1] A.W. Roscoe (2010), Understanding Concurrent Systems, Springer London Dordrecht Heidelberg New York. [2] A.W. Roscoe (1997), The Theory and Practice of Concurrency, Prentice Hall, ISBN 0-13-674409-5. [3] Christel Baier, Joost-Pieter Katoen (2008), Principles of Model Checking, The MIT Press. [4] Baeten, J.C.M (2004), "A brief history of process algebra", Rapport CSR 04- 02 (Vakgroep Informatica, Technische Universiteit Eindhoven). [5] Baeten, J.C.M., Bravetti (2005),"A Generic Process Algebra", Algebraic Pro- cess Calculi: The First Twenty Five Years and Beyond (BRICS Notes Series NS-05-3), Bertinoro, Forl, Italy: BRICS, Department of Computer Science, University of Aarhus. [6] B. Schlich, S. Kowalewski (2009), "Model checking c source code for embed- ded systems", International Journal on Software Tools for Technology Trans- fer (STTT), vol. 11, no. 3, pp. 187 – 202. [7] C. A. R. Hoare (1985), Communicating Sequential Processes, International Series in Computer Science, Prentice-Hall. [8] D. Beyer, T. A. Henzinger, G. Thoduloz, "Configurable software verification: Concretizing the convergence of model checking and program analysis", In Conf. on Computer Aided Verification (CAV). [9] Edmund M. Clarke, Armin Biere, Richard Raimi, Yunshan Zhu (2001), "Bounded Model Checking Using Satisfiability Solving", Formal Methods in System Design 19(1), pp. 7-34. [10] Edmund M. Clarke, Bernd-Holger Schlingloff (2001), Model Checking, Handbook of Automated Reasoning, pp. 1635-1790. [11] Edmund M. Clarke, E. Allen Emerson, A. Prasad Sistla (1986), "Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Spec- ifications", ACM Trans. Program. Lang. Syst. 8(2), pp. 244-263. [12] F. Lerda, W. Visser (2001), "Addressing dynamic issues of program model checking", Proceedings of the 8th international SPIN workshop on Model checking of software, Toronto, Ontario, Canada: Springer-Verlag New York, Inc., pp. 80–102. [13] G.Barrett (1995), "Model checking in practice: The T9000 Virtual Chan- nel Processor", IEEE Transactions on Software Engineering 21 (2): 69–78. doi:10.1109/32.345823. [14] Jean-Pierre Queille, Joseph Sifakis (1982), "A Temporal Logic to Deal with Fairness in Transition Systems", FOCS, pp. 217-225. [15] Joseph Albahari, Threading in C#, Books on C# and .Net of Joseph Albahari. [16] Jun Sun, Yang Liu, Jin Song Dong, Chun Qing Chen (2009), "Integrating Specification and Programs for System Modeling and Verification", The 3rd IEEE International Symposium on Theoretical Aspects of Software Engineer- ing, pp. 127 - 135. [17] Jun Sun, Yang Liu, Jin Song Dong (2008), "Model Checking CSP Revisited: Introducing a Process Analysis Toolkit", pp. 307-322, Porto Sani, Greece. [18] J. Sun, Y. Liu, J. S. Dong, H. H. Wang (2008), "Specifying and Verify- ing Event-based Fairness Enhanced Systems", In Proceedings of the 10th In- ternational Conference on Formal Engineering Methods(ICFEM 2008), pp. 318–337, Springer. [19] K. Havelund, T. Pressburger (2000), "Model checking java programs us- ing java pathfinder", International Journal on Software Tools for Technology Transfer (STTT), vol. 2, no. 4, pp. 366 – 381. [20] Matthew Hennessy, Algebraic Theory of Processes, The MIT Press, ISBN 0-262-08171-7. [21] N. H. A. D. Brugh, V. Y. Nguyen, T. C. Ruys (2009), "MoonWalker: verifica- tion of .NET programs", Proceedings of the 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems, ETAPS 2009. [22] Orna Lichtenstein, Amir Pnueli (1985), "Checking That Finite State Concur- rent Programs Satisfy Their Linear Specification", POPL, pp. 97-107. [23] Pierce, Benjamin, Foundational Calculi for Programming Languages, The Computer Science and Engineering Handbook. [24] T. Balyo, Solving Boolean Satisfiability Problems, Master Thesis in Charles University. [25] Yang Liu (2010), "Model Checking Concurrent and Real-time Systems: the PAT Approach", PhD thesis. [26] Y. Liu, J. Sun, J. S. Dong, "An Analyzer for Extended Compositional Process Algebras", In Proceedings of the 30th International Conference on Software Engineering (ICSE 2008) Companion Volume, pp. 919–920, ACM. [27] "PAT: An Enhanced Simulator, Model Checker and Refinement Checker for Concurrent and Real-time Systems", http://pat.comp.nus.edu.sg/. [28] "Software System Award: ACM CITES TOOL TO DETECT SOFTWARE "BUGS" FOR PRESTIGIOUS AWARD", Bell Labs Researcher Developed "SPIN" to Make Computers More Reliable. . Kiểm chứng hình thức cho hệ thống tương tranh sử dụng ngôn ngữ đặc tả CSP# và công cụ PAT Nguyễn Văn Trãi Trường Đại học Công nghệ. Đại học Quốc gia Hà Nội Luận văn ThS. Công nghệ. mô hình từ mã nguồn C# cho bài toán xử lý tương tranh trong lập trình đa luồng. Tiến hành thử nghiệm kiểm chứng mô hình một hệ thống sử dụng ngôn ngữ đặc tả mô hình CSP# và công cụ hỗ trợ PAT, . Trình bày về một ngôn ngữ đặc tả mô hình hệ tương tranh là CSP#, ngôn ngữ này được tích hợp vào trong bộ công cụ hỗ trợ kiểm chứng PAT. Với các nội dung tìm hiểu về ngôn ngữ CSP# luận văn đề

Ngày đăng: 25/08/2015, 11:18

Từ khóa liên quan

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

Tài liệu liên quan