Phương pháp tạo giả định tối thiểu áp dụng để kiểm chứng phần mềm hướng thành phẩm

5 566 1
Phương pháp tạo giả định tối thiểu áp dụng để  kiểm chứng phần mềm hướng thành phẩm

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

Thông tin tài liệu

Phương pháp tạo giả định tối thiểu áp dụng để kiểm chứng phần mềm hướng thành phẩm

Phương pháp tạo giả định tối thiểu áp dụng để kiểm chứng phần mềm hướng thành phẩm Nguyễn Văn Hiếu Trường Đại học Công nghệ Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10 Người hướng dẫn: TS. Lê Anh Cường Năm bảo vệ: 2009 Abstract: Giới thiệu tổng quan phần mềm hướng thành phần, đưa ra các khái niệm cơ bản và cách tiếp cận để kiểm chứng phần mềm hướng thành phần. Trình bày chi tiết thuật toán học L*, giải thuật tạo giả định sử dụng thuật toán học L*. Nghiên cứu giải thuật tạo giả định tối thiểu. Đưa ra một phản ví dụ để minh hoạ rằng: giả định được tạo ra bởi giải thuật sử dụng thuật toán học L* chưa phải là giả định tối thiểu. Nêu lên một ví dụ cụ thể để minh hoạ cho thuật toán tạo giả định tối thiểu. Sử dụng bộ công cụ LTSA để xác minh một số hệ thống đơn giản nhằm so sánh về thời gian cũng như bộ nhớ sử dụng của giải pháp cũ và giải pháp được đưa ra trong luận văn. Keywords: Công nghệ phần mềm; Công nghệ thông tin; Tin học; Máy tính; Phần mềm hướng thành phẩm Content MỞ ĐẦU Phát triển phần mềm hướng thành phần (Component-Based Software Development - CBSD) là một trong những công nghệ quan trọng nhất trong kỹ nghệ phần mềm. Hệ thống phần mềm hướng thành phần được xây dựng dựa trên quá trình lựa chọn và ghép nối các thành phần riêng biệt thành một hệ thống hoàn chỉnh. Với cách tiếp cận này, phát triển phần mềm hướng thành phần đã góp phần rút ngắn thời gian thực hiện dự án, nâng cao chất lượng và độ tin cậy của sản phầm. Vì những ưu điểm này mà công nghệ này đã được áp dụng rộng rãi trong quá trình phát triển các dự án phần mềm hiện nay. Tuy nhiên, một trong những hạn chế của CBSD là vấn đề đảm bảo tính đúng đắn của hệ thống khi ghép nối các thành phần với nhau vì các thành phần có thể được phát triển một cách độc lập hoặc được đặt mua từ các công ty thứ 3 (third parties). Hiện tại, các công nghệ hỗ trợ phát triển phần mềm hướng thành phần như CORBA (OMG), COM/DCOM or .NET (Microsoft), Java and JavaBeans (Sun), … vv chỉ hỗ trợ việc ghép nối các thành phần (component plugging). Chúng không có cơ chế 2 kiểm tra liệu các thành phần có thể bị lỗi khi cộng tác với nhau hay không. Điều này có nghĩa là cơ chế “plug-and-play” không được đảm bảo. Một trong những giải pháp phổ biến để giải quyết vấn đề nêu trên là sử dụng các phương pháp kiểm chứng mô hình (Model checking). Tuy nhiên, một trong những hạn chế lớn nhất của kiểm chứng mô hình là vấn đề bùng nổ không gian trạng thái khi kiểm chứng các phần mềm có kích thước lớn. Một trong những cách tiếp cận tiềm năng để giải quyết vấn đề này là áp dụng kiểm chứng từng phần (modular verification - MV). Thay vì tiến hành kiểm chứng trên toàn bộ hệ thống gồm các thành phần được ghép nối với nhau, cách tiếp cận này tiến hành kiểm chứng trên từng thành phần riêng biệt. Với cách tiếp cận này, vấn đề bùng nổ không gian trạng thái hứa hẹn sẽ được giải quyết. Một trong những phương pháp kiểm chứng hỗ trợ ý tưởng này là phương pháp kiểm chứng đảm bảo giả định (Assume-Guarantee Verification - AGV). Sử dụng tư tưởng của chiến lược “chia để trị”, AGV phân chia bài toán kiểm chứng thành các bài toán con cùng dạng nhưng kích thước nhỏ hơn sao cho chúng ta có thể kiểm chứng các bài toán con một cách riêng biệt. AVG được đánh giá là một phương pháp hứa hẹn để kiểm chứng phần mềm hướng thành phần thông qua phương pháp kiểm chứng mô hình. AVG không những thích hợp cho phần mềm hướng thành phần mà còn có khả năng giải quyết vấn đề bùng nổ không gian trạng thái trong kiểm chứng mô hình. Trong phương pháp này, các giả định (assumptions) (có vai trò như là môi trường của các thành phần) sẽ được tạo lập. Việc tạo lập các giả định chính là bài toán quan trọng nhất trong phương pháp này. Kích thước của các giả định này (số lượng trạng thái) nên được cực tiểu hóa bởi vì chi phí cho quá trình kiểm chứng mô hình của phương pháp này phụ thuộc chính vào thông số này. Đây chính là mục tiêu nghiên cứu của luận văn này. Với mục tiêu này, chúng tôi đề xuất một phương pháp tạo giả định tối thiểu (có kích thước nhỏ nhất) như là một cải tiến của phương pháp kiểm chứng đảm bảo giả định như đã trình bày ở trên. Ý tưởng chính của phương pháp đề xuất là tìm kiếm giả định tối thiểu trên toàn bộ không gian tìm kiếm của các ứng cử viên giả định (candidate assumptions). Giả định tối thiểu sau khi tạo lập bằng phương pháp đề xuất sẽ được sử dụng để kiểm chứng lại hệ thống với chi phí thấp hơn. Một số ví dụ minh họa và kết quả thực nghiệm cũng được trình bày trong luận văn này. Bố cục của luận văn được trình bày như sau: Chương 1: Giới thiệu tổng quan phần mềm hướng thành phần, các khái niệm cơ bản, cách tiếp cận để kiểm chứng phần mềm hướng thành phần. Chương 2: Trình bày chi tiết thuật toán học L * , giải thuật tạo giả định sử dụng thuật toán học L * . 3 Chương 3: Chương này trình bày giải thuật tạo giả định tối thiểu. Trong chương này chúng tôi sẽ đưa ra một phản ví dụ để minh hoạ rằng: giả định được tạo ra bởi giải thuật sử dụng thuật toán học L* chưa phải là giả định tối thiểu. Chúng tôi cũng sẽ trình bày một ví dụ cụ thể để minh hoạ cho thuật toán tạo giả định tối thiểu. Chương 4: Thực nghiệm. Chúng tôi sử dụng bộ công cụ LTSA để xác minh một số hệ thống đơn giản nhằm so sánh về thời gian cũng như bộ nhớ sử dụng của giải pháp cũ và giải pháp được đưa ra trong luận văn. Phần kết luận của luận văn tổng kết các kết quả đã đạt được, kết luận và đưa ra một số hướng nghiên cứu tiếp theo. References *Tài liệu Tiếng Anh [1] D. Angluin: “Learning regular sets from queries and counterexamples”, Information and Computation, 75(2):87106, Nov. 1987. [2] C.Blundell, D.Griannakaopoulou, C.Pasareanu: “assume-Guanrantee Testing”, Microsoft Research – Specification and Verification of Component-Based Systems (SAVCBS2005) Worshop :7-14 [3] L.Brim, B.Zimmerova, I. Cerna, P.Varekova : “Component-Interaction Automata as a Verification-Oriented Component-Based System Specification”, Microsoft Research – Specification and Verification of Component-Based Systems(SAVCBS 2005) Workshop : 3138. [4] J.Cobleigh, D.Giannakopoulou, C.Pasareanu : “Leanring Assumption for Compositional Verification”, TACAS 2003 : 331-346. [5] E.M. Clarke, O. Grumberg, D.Peled : “Model Checking”, MIT Press, (1999). [6] K. Fisler and S.Krishnamurthi : “Modular verification of collaboration-based software designs”, In Proc. Symposium on the Foundations of Software Engineering, September 2001. [7] D. Giannakopoulou, C. Pasareanu, H. Barringer: “Assumption Generation for Software Component Verification”, ASE 2002: 3-12. [8] D. Giannakopoulou, C. Pasareanu, J. Cobleigh: “Assume-Guarantee Verification of Source Code with Design-Level Assumptions”, ICSE 2004: 211-220. [9] Robert M. Keller: “Formal verification of parallel programs”, Communications of the ACM, 19(7):371384, July 1976. 4 [10] O. Kupferman and M. Y. Vardi: “Modular model checking”, In Compositionality: The Significant Difference, volume 1536 of Lecture Notes in Computer Science. Springer- Verlag, 1998. [11] K. Laster, O. Grumberg: “Modular model checking of software”, Conference on Tools and Algorithms for the Constructions and Analysis of Systems, 1998. [12] J. Magee and J. Kramer: “Concurrency: State Models & Java Programs”, John Wiley & Sons, 1999. [13] A. Nerode: “Linear automaton transformations”, In In Proc. of the American Mathematical Society 9, pages 541544, 1958. [14] T.T. Nguyen, T. atayama: “A Framework for Unanticipated Software Changes”, Proc. Unanticipated Software Evolution (USE), European Joint Conferences on Theory and Practice of Software (ETAPS’ 2003). [15] T.T. Nguyen, T. Katayama: “Towards a Sound Modular Model Checking of Collaboration-Based Software Designs”, IEEE Computer Asia-Pacific Software Engineering Conference APSEC, pp. 88-97 (2003). [16] T.T. Nguyen, T. Katayama: “Handling Consistency of Software Evolution in an Efficient Way”, IEEE Computer Proc. International Workshop on Principles of Software Evolution (IWPSE), pp. 121-130, IEEE RE’2004. [17] T.T. Nguyen, T. Katayama: “Open Incremental Model Checking”, Microsoft Research - Specification and Verification of Component-Based Systems (SAVCBS) Workshop, ACM FSE’04. [18] T.T. Nguyen, T. Katayama: “A Formal Approach Facilitating the Evolution of Component-Based Software”, IEEE Computer Proc. International Workshop on Principles of Software Evolution (IWPSE), ACM SIGSOFT ESEC/FSE’2005. [19] T.T. Nguyen, T. Katayama: “Constructing Open Systems via Consistent Components”, International Colloquium on Theoretical Aspects of Computing (ICTAC), Springer- Verlag LNCS 2005. [20] T.T. Nguyen, T. Katayama: “Specification and Verification of Inter-Component onstraints in CTL”, Microsoft Research - Specification and Verification of Component- Based Systems (SAVCBS) Workshop, ACM SIGSOFT ESEC/FSE’05. [21] C. B. Jones: “Tentative steps toward a development method for interfering programs”, ACM Trans, on Prog. Lang. and Sys., 5(4):596-619, Oct. 1983. [22] C. S. Pasareanu, M. B. Dwyer, and M. Huth: “Assume-guarantee model checking of software: A comparative case study”, In Theoretical and Practical Aspects of SPIN 5 Model Checking, volume 1680 of Lecture Notes of Computer Science, Springer- Verlag, 1999. [23] A. Pnueli: “In transition from global to modular temporal reasoning about programs”, In Logics and models of concurrent systems, pages 123-144, 1985. [24] R. L. Rivest and R. E. Schapire: “Inference of finite automata using homing equences”, Information and Computation, 103(2):299347, Apr. 1993. [25] P. N. Hung, N. T. Thang and T. Katayama: “An Assume-Guarantee Method for Modular Verification of Evolving Component-Based Software”, In Supplemental Proceedings of the 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2007) -- Workshop on Architecting Dependable Systems (WADS 2007), pp.160-165, Edinburgh, Scotland, UK (Jun. 2007). [26] P. N. Hung and T. Katayama: Modular Conformance Testing and Assume- Guarantee Verification for Evolving Component-Based Software. In: 15th Asia- Pacific Softw. Eng. Conf. (APSEC), IEEE Computer Society, pp. 479{486 (2008).

Ngày đăng: 19/09/2013, 11:47

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan