Các mô hình thực nghiệm

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp giải ràng buộc SMT và áp dụng để phát hiện lỗi tràn số cho mô hình hệ thống nhúng (Trang 37 - 42)

Luận văn lựa chọn 3 mô hình để thực nghiệm phát hiện lỗi tràn số. Các mô hình được encode thành định dạng SMT sau dó dùng hệ thống đã xây dựng để phát hiện lỗi tràn số của mô hình. Các mô hình được lựa chọn bao gồm:

Mô hình Counter_harness

Hình 15: Mô hình Counter_harness

Mô hình có thể xảy ra overflow do block Sum1, nhận input là 2 số và cho ra output là tổng của chúng. Mô hình được mã hoá thành định dạng SMT như phụ lục A.

Mô hình ControlSpeed_harness

Hình 16: Mô hình ControlSpeed_harness

Mô hình có thể xảy ra overflow do các block:

 Sum1 và Sum3: nhận input là 2 số và cho ra output là hiệu của chúng.

 Sum2: nhận input là 2 số và cho ra output là tổng của chúng.

 Gain1, Gain2 và Gain3: nhận input là 1 số và cho ra output là tích của

input và tham số trong block.

29

Mô hình SpeedCals_harness

Hình 17: Mô hình SpeedCals_harness

Mô hình có thể xảy ra overflow do các block:

 Subtract1: nhận input là 2 số và cho ra output là hiệu của chúng.

 Subtract2: nhận input là 2 số và cho ra output là tổng của chúng.

 Divide: nhận input là 2 số và cho ra thương của chúng.

 Gain1, Gain2 và Gain3: nhận input là 1 số và cho ra output là tích của

input và tham số trong block.

Mô hình được mã hoá thành định dạng SMT như phụ lục C.

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

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

Tên mô hình Kiểu dữ

liệu

Kết quả

[-10, 10] [-100, 100] [-256, 255]

Counter_harness Int8 Không tràn số Không tràn số Có tràn số

ControlSpeed_harness Int16 Có tràn số Có tràn số Có tràn số

SpeedCals_harness Int8 Có tràn số Có tràn số Có tràn số

Bảng 6 là kết quả thực nghiệm của hệ thống phát hiện lỗi tràn số cho 3 mô hình Counter_harness, ControlSpeed_harness, SpeedCals_harness với kiểu dữ liệu int8 (có giá trị từ -256 đến 255) và int16 (có giá trị từ 32768 đến – 32767) tương ứng với giá trị của các block trong Matlab. Thực nghiệm thực hiện với 3 khoảng giả trị đầu vào [-10, 10], [-100, 100] và [-256, 255]. Kết quả thực nghiệm cho thấy hệ thống có thể phát hiện thành công lỗi tràn số cho các mô hình do sử dụng các block tính toán. Ví dụ về test case gây tràn số trong khoảng giá trị đầu vào [-256, 255] của mô hình Counter_harness được trình bày trong Bảng 7, trong đó v_sum1_9 =256 nằm ngoài khoảng giá trị [-256,255], tương ứng với block sum1 bị tràn số.

30

Bảng 7: Ví dụ test case gây tràn số

Block Name Value Block Name Value Block Name Value Block Name Value

v_delay_0 247 v_int1_0 False v_mulps_0 248 v_sum1_0 248

v_delay_1 248 v_int1_1 False v_mulps_1 249 v_sum1_1 249

v_delay_2 249 v_int1_2 False v_mulps_2 250 v_sum1_2 250

v_delay_3 250 v_int1_3 False v_mulps_3 251 v_sum1_3 251

v_delay_4 251 v_int1_4 False v_mulps_4 252 v_sum1_4 252

v_delay_5 252 v_int1_5 False v_mulps_5 253 v_sum1_5 253

v_delay_6 253 v_int1_6 False v_mulps_6 254 v_sum1_6 254

v_delay_7 254 v_int1_7 False v_mulps_7 255 v_sum1_7 255

v_delay_8 255 v_int1_8 True v_mulps_8 0 v_sum1_8 256

v_delay_9 0 v_int1_9 False v_mulps_9 1 v_sum1_9 1

3.3. Kết luận chương

Trong Chương III, luận văn đã trình bày một hệ thống phát hiện lỗi tràn số đơn giản cho các mô hình hệ thống nhúng Simulink. Bên cạnh đó, kết quả thực nghiệm trên 3 mô hình hệ thống nhúng đã chứng tỏ hệ thống được xây dựng có thể phát hiện lỗi tràn số cho các mô hình hệ thống nhúng.

31

KẾT LUẬN Luận văn đã đạt được một số kết quả sau:

 Giới thiệu về hệ thống nhúng và bài toán phát hiện lỗi tràn số.

 Trình bày tầm quan trọng của bài toán phát hiện lỗi tràn số.

 Giới thiệu về SMT và SMT Solver đồng thời ứng dụng trong bài toán

phát hiện lỗi tràn số.

 Trình bày về hệ thống nhúng Matlab/Simulink. Đi sâu vào nghiên cứu

ứng dụng công cụ giải ràng buộc SMT Z3 Theorem Prover của Microsoft để giải bài toán phát hiện lỗi tràn số trên các mô hình Matlab/Simulink.

 Trình bày quá trình thực nghiệm với các mô hình Matlab/Simulink từ

đơn giản đến phức tạp, đưa ra các kết quả và đánh giá.

 Xây dựng thành công hệ thống phát hiện lỗi tràn số cho các mô hình

Matlab/Simulink.

Hướng phát triển trong tương lai:

 Xây dựng mô hình tự động mã hoá mô hình Matlab/Simulink sang định

dạng SMT.

32

TÀI LIỆU THAM KHẢO

[1] Bessa, I.; Abreu, R.; Filho, J. E.; and Cordeiro, L., SMT-based bounded model checking of fixed-point digital controllers. IECON 2014 - 40th Annual Conference of

the IEEE Industrial Electronics Society, 2014, pp. 295-301, doi:

10.1109/IECON.2014.7048514.

[2] Bornebusch, F.; Lüth, C.; Wille, R. and Drechsler, R. (2020). Integer Overflow

Detection in Hardware Designs at the Specification Level. In Proceedings of the 8th International Conference on Model-Driven Engineering and Software

Development - MODELSWARD, ISBN 978-989-758-400-8 ISSN 2184-4348, pages

41-48. DOI: 10.5220/0008960200410048.

[3] Bruno Dutertre and Leonardo de Moura, The YICES SMT Solver.: Computer Science Laboratory, SRI International. 2006.

[4] Clark Barrett, Pascal Fontaine, and Cesare Tinelli, The SMT-LIB Standard: Version 2.6, 2017.

[5] Eldib, H. & Wang, C., An SMT Based Method for Optimizing Arithmetic Computations in Embedded Software Code, IEEE Transactions on Computer-Aided

Design of Integrated Circuits and Systems, 2020, pp. 129-136, doi:

10.1109/FMCAD.2013.6679401.

[6] Holling, D., Pretschner, A. and Gemmar, M., September. 8cage: lightweight fault- based test generation for simulink. In Proceedings of the 29th ACM/IEEE international conference on Automated software engineering, 2014, pp. 859-862, ACM.

[7] Lennon, C.; Iury, B.; Lucas, C.; Daniel, K. and Eddie, L. Verifying digital systems with MATLAB. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017). Association for Computing

Machinery, New York, NY, USA, 2017, pp 388–391.

DOI:https://doi.org/10.1145/3092703.3098228.

[8] Matinnejad, R.; Nejati, S.; Briand, L. C. and Bruckmann, T., Test Generation and Test Prioritization for Simulink Models with Dynamic Behavior, in IEEE Transactions on Software Engineering, vol. 45, no. 9, pp. 919-944, 1 Sept. 2019, doi: 10.1109/TSE.2018.2811489.

[9] Matinnejad, R.; Nejati, S.; Briand, L. C. & Bruckmann, T. (2016, May). SimCoTest: A test data generation tool for Simulink/Stateflow controllers. In Proceedings of the 38th International Conference on Software Engineering Companion (pp. 585-588). ACM.

[10] Ren, H.; Bhatt, D. & Hvozdovic, J. Improving an Industrial Test Generation Tool Using SMT Solver. In Procedings of NASA Formal Methods Symposium. 2016, 100- 106. 10.1007/978-3-319-40648-0_8.

[11] MathWorks. Simulink. https://www.mathworks.com/products/simulink.html .

33

PHỤ LỤC

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu phương pháp giải ràng buộc SMT và áp dụng để phát hiện lỗi tràn số cho mô hình hệ thống nhúng (Trang 37 - 42)

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

(69 trang)