.2 Một ví dụ kiểm tra tính đúng đắn của công cụ IMAG trên LTSA

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu việc sinh giả thiết bằng giải thuật học l cho kiểm chứng từng phần phần mềm dựa trên thành phần (Trang 48 - 58)

5.2. Kết quả thực nghiệm

Chúng tôi tiến hành thực nghiệm để so sánh kết quả của phương pháp sinh giả thiết tối cải tiến với phương pháp sinh giả thiết tối thiểu đề xuất trong [9, 10] và phương pháp sinh giả thiết trong [4]. Thực nghiệm được tiến hành trên ba hệ thống tương tranh là hệ thống điều khiển bếp ga [21] (gồm 5 phiên bản), hệ thống điều khiển ôtô [14], và hệ thống vào ra [4] (gồm 3 phiên bản). Trong thực nghiệm này, kích thước của giả thiết (|A|), số hàm chuyển trạng thái (|A|), và thời gian của việc sinh giả thiết được đánh giá. Chúng tôi không đánh giá chi phí sử dụng bộ nhớ trong thực nghiệm này bởi vì độ phức tạp bộ nhớ của tìm kiếm theo chiều sâu lặp là thấp hơn rất nhiều so với tìm kiếm theo chiều rộng (được sử dụng trong phương pháp sinh giả thiết tối thiểu). Bảng 1 chỉ ra kết quả thực nghiệm chúng tôi thu được. Trong kết quả này, kích thước của hệ thống là tích kích thước của các thành phần phần mềm và kích thước của LTS lỗi (ký hiệu perr) của thuộc tính yêu cầu cho mỗi hệ thống được kiểm tra với |perr| = |p| + 1 (tức là kích thước của hệ thống bằng |M1| x |M2| x |perr|). Ký hiệu “-” dùng cho trường hợp vượt quá thời gian cho phép sinh giả thiết (hơn một giờ cho việc sinh giả thiết) hoặc là thiếu bộ nhớ cho việc sinh giả thiết.

Kết quả thực nghiệm thu được cho chúng ta thấy rằng phương pháp tìm giả thiết tối thiểu cải tiến cho giả thiết có kích thước như phương pháp tìm giả thiết tối

nữa phương pháp cải tiến còn sinh ra giả thiết tối thiểu với thời gian thấp hơn phương pháp tìm giả thiết tối thiểu trong [9, 10]. Đặc biệt trong một số trường hợp (GOCS ver. 2, GOCS ver. 4, và I/O ver. 3) phương pháp cải thiến sinh ra giả thiết tối thiểu trong khi phương pháp sinh giả thiết tối thiểu là “vượt quá thời gian sinh giả thiết” hoặc “thiếu bộ nhớ cho việc sinh giả thiết”. Điều này cho thấy phương pháp cải tiến có

Bảng 5.1: Kết quả thực nghiệm

Hệ thống KTHT |M1| |M2| |p|

Phương pháp AG Phương pháp MAG Phương pháp IMAG

|A| |A| Thời gian

sinh (ms) |A| |A| Thời gian

sinh (ms) |A| |A| Thời gian sinh (ms) GOCS ver. 1 180 15 4 2 11 63 80 4 16 1330 4 16 21 GOCS ver. 2 180 10 6 2 14 110 128 - - - 6 26 31 GOCS ver. 3 126 21 2 2 1 4 14 1 4 21 1 4 10 GOCS ver. 4 180 10 6 2 - - - 6 14 20 GOCS ver. 5 136 14 3 2 1 6 6 1 6 12 1 6 11 ACCS 360 30 3 3 1 6 21 1 6 40 1 6 30 I/O ver. 1 27 3 3 2 2 4 14 2 3 20 2 3 12 I/O ver. 2 27 3 3 2 4 9 11 2 4 19 2 4 15 I/O ver. 3 100 5 5 3 6 26 25 - - - 5 7 28

CHƯƠNG 6. KẾT LUẬN

Chúng tôi đã đưa ra một phương pháp cải tiến để tạo ra giả thiết tối thiểu phục vụ quá trình xác minh phần mềm đảm bảo giả thiết đối với các phần mềm dựa thành phần nhằm mục tiêu giảm độ phức tạp của phương pháp sinh giả thiết tối thiểu trong [9, 10]. Tư tưởng chính của phương pháp này thực hiện tìm kiếm một giả thiết tối thiểu trên một cây con của cây tìm kiếm bao gồm tất cả các giả thiết ứng cử viên với kích thước nhỏ hơn hoặc bằng kích thước của của thành phần M2. Với cách tiếp cận này, phương pháp cải tiến có thể sinh ra giả thiết với chi phí thấp hơn phương pháp sinh giả thiết tối thiểu. Những giả thiết đó là đủ mạnh để một số thành phần của phần mềm dựa trên thành phần thoả mãn các thuộc tính cho trước và đủ yếu để được các thành phần còn lại thoả mãn. Trong phương pháp cải tiến này, chúng tôi đã sử dụng chiến lược tìm kiếm theo chiều sâu lặp thay cho chiến lược tìm kiếm theo chiều rộng trong phương pháp sinh giả thiết tối thiểu và chiến lược này đảm bảo rằng nếu tìm thấy giả thiết thì giả thiết đó là tối thiểu (xem định lý 2).

Chúng tôi cũng cài đặt thêm công cụ IMAG bổ sung vào bộ công cụ AGTool đã có các công cụ cài đặt phương pháp sinh giả thiết trong [4] và phương pháp sinh giả thiết tối thiểu trong [9, 10]. Các công cụ này đã được sử dụng để kiểm tra một số phần mềm dựa trên thành phần tiêu biểu nhằm chỉ ra tính hiệu quả của phương pháp cải tiến sinh giả thiết tối thiểu. Kết quả cho thấy trong một số trường hợp phương pháp cải tiến sinh giả thiết khá nhanh trong khi phương pháp tối thiếu không sinh ra được giả thiết trong thời gian cho phép.

Hướng nghiên cứu tiếp theo của chúng tôi là ứng dụng phương pháp đã đưa ra cho những CBS có kích lớn hơn những hệ thống đã được sử dụng trong thực nghiệm để chỉ ra khả năng ứng dụng thực tế của phương pháp cải tiến. Một hạn chế của phương pháp cải tiến sử dụng tìm kiếm theo chiều sâu lặp là các bảng quan sát trên cây con tìm kiếm từ gốc cho tới bảng quan sát cho ta giả thiết tối thiểu sẽ được tạo ra và duyệt nhiều lần. Như vậy công việc tiếp theo, chúng tôi tìm cách cải tiến sự hạn chế của chiến lược tìm kiếm theo chiều sâu lặp, giảm việc duyệt di duyệt lại nhiều lần các bảng quan sát từ gốc tới giả thiết được tìm thấy. Thay vì việc khởi tạo bảng quan sát OT0 là bảng rỗng trong giải thuật DLS mỗi lần gọi tới nó ở bước lặp thứ i+1 bằng bảng quan sát OTi ở bước lặp thứ i. Việc này sẽ giúp chúng ta giảm bớt chi phí tạo và duyệt bảng quan sát trước vị trí tìm được giả thiết tối nhiều nhiều lần.

DANH MỤC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ

1. Phạm Ngọc Hùng, Nguyễn Trọng Khánh, Đào Anh Hiển và Nguyễn Việt Hà,

"Phương pháp hiệu quả cho việc kiểm chứng lại phần mềm dựa trên thành phần trong

TÀI LIỆU THAM KHẢO

[1] D. Angluin: “Learning regular sets from queries and counterexamples”, Information and Computation, 75(2): 87-106, 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] Sagar Chaki and Ofer Strichman. “Three optimizations for assume-guarantee reasoning with L*”. Form. Methods Syst. Des., 32: 267–284, June 2008.

[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] D. Giannakopoulou, C. Pasareanu, H. Barringer: “Assumption Generation for

Software Component Verification”, ASE 2002: 3-12.

[7] D. Giannakopoulou, C. Pasareanu, J. Cobleigh: “Assume-Guarantee Verification of Source Code with Design-Level Assumptions”, ICSE 2004: 211-220.

[8] 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).

[9] P. N. Hung, T. Aoki and T. Katayama: "A Minimized Assumption Generation Method for Component-Based Software Verification", In The 6th International Colloquium on Theoretical Aspects of Computing, LNCS 5684, pp. 277-291, Springer Verlag Berlin Heidelberg (Aug. 2009).

[10] P.N Hung, N.V Ha, T. Aoki and T. Katayama. “A minimized assumption generation method for component-based software verification”. IEICE TRANSACTIONS on Information and Systems, E93-D(8):2172–2181, Aug. 2010.

[11] 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.

[12] K. Laster, O. Grumberg: “Modular model checking of software”, Conference on Tools and Algorithms for the Constructions and Analysis of Systems, 1998. [13] Robert M. Keller: “Formal verification of parallel programs”, Communications

of the ACM, 19(7):371384, July 1976.

[14] J. Magee and J. Kramer: “Concurrency: State Models & Java Programs”, John Wiley & Sons, 1999.

[15] A. Nerode: “Linear automaton transformations”, In In Proc. of the American Mathematical Society 9, pages 541-544, 1958.

[16] 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 Model Checking, volume 1680 of Lecture Notes of Computer Science, Springer-Verlag, 1999.

[17] R. L. Rivest and R. E. Schapire: “Inference of finite automata using homing equences”, Information and Computation, 103(2):299-347, Apr. 1993.

[18] R. Bird and P . Wadler: “Introduction to Functional Programming", Prentice Hall International Series in Computer Science (1988).

[19] R. Bird: “Introduction to Functional Programming using Haskell", Prentice Hall (1988).

[20] French National Institute for Research in Computer Science and Control (INRIA): “Objective Caml", http://caml.inria.fr/ocaml/index.en.html (2004).

[21]. W.J. Lee, H.J. Kim, H.S. Chae, “Safety property analysis techniques for cooperating embedded systems using LTS”, Proc. 5th IFIPSEUS’ 07, pp.114- 124, Springer Verlag Berlin Heidelberg, 2007.

PHỤ LỤC

Các bảng quan sát trung gian được sinh ra trong ví dụ tìm giả thiết tối thiểu. Bảng T1.2.1.1

E

T λ send

S

λ true true

out false false

S.∑

ack true true

out false false

send false true

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.2

E

T λ send

S

λ true true

out false false

S.∑

ack true true

out false false

send false false

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.3

E

T λ send

out false false

S.∑

ack true false

out false false

send false true

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.4

E

T λ send

S

λ true true

out false false

S.∑

ack true false

out false false

send false false

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.5

E

T λ send

S

λ true false

out false false

S.∑

ack true true

out false false

send false true

out, out false false

out, send false false

Bảng T1.2.1.6

E

T λ send

S

λ true false

out false false

S.∑

ack true true

out false false

send false false

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.7

E

T λ send

S

λ true false

out false false

S.∑

ack true false

out false false

send false true

out, ack false false

out, out false false

out, send false false

Bảng T1.2.1.8

E

T λ send

out false false

S.∑

ack true false

out false false

send false false

out, ack false false

out, out false false

Một phần của tài liệu (LUẬN văn THẠC sĩ) tối ưu việc sinh giả thiết bằng giải thuật học l cho kiểm chứng từng phần phần mềm dựa trên thành phần (Trang 48 - 58)

Tải bản đầy đủ (PDF)

(58 trang)