Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần

91 98 0
Phương pháp sinh mô hình tự động cho phần mềm dựa trên thành phần

Đ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Ệ TRẦN HỒNG VIỆT PHƯƠNG PHÁP SINH MƠ HÌNH TỰ ĐỘNG CHO PHẦN MỀM DỰA TRÊN THÀNH PHẦN LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Hà nội – 2013 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ TRẦN HỒNG VIỆT PHƯƠNG PHÁP SINH MƠ HÌNH TỰ ĐỘNG CHO PHẦN MỀM DỰA TRÊN THÀNH PHẦN Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Mã Số: 60 48 10 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN THẾ LỘC Hà nội – 2013 i MỤC LỤC MỤC LỤC .i LỜI CẢM ƠN iii LỜI CAM ĐOAN iv DANH MỤC THUẬT NGỮ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC BẢNG viii Chương 1: Giới thiệu Chương 2: Các phương pháp hình thức cho đặc tả phần mềm 2.1 Hệ thống chuyển trạng thái gán nhãn 2.2 Phép ghép nối song song 2.3 Hệ thống chuyển trạng thái gán nhãn an tồn, thuộc tính an tồn, tính thỏa mãn 10 2.4 Thành phần phần mềm ôtômát hữu hạn trạng thái 13 Chương 3: Các phương pháp sinh mơ hình tự động cho thành phần phần mềm 17 3.1 Phương pháp sinh mơ hình dựa thuật tốn học L* 18 3.1.1 Phương pháp sinh mơ hình sử dụng thuật tốn L* 19 3.1.2 Thuật toán Vasilevskii-Chow 22 3.2 Phương pháp sinh mơ hình sử dụng thuật tốn Thompson 23 3.3 Hạn chế phương pháp sinh mơ hình tự động theo thuật toán L* Thompson 29 Chương 4: Nghiên cứu phương pháp sinh mơ hình tự động cho thành phần phần mềm sử dụng thuật toán CNNFA 31 4.1 Một số khái niệm liên quan 32 4.2 Sinh biểu diễn CNNFA cho biểu thức quy thành phần 35 4.3 Phương pháp duyệt biểu thức quy 37 4.4 Sinh mơ hình cho thành phần phần mềm 39 4.5 Tối ưu hóa mơ hình 40 4.6 Ví dụ sinh mơ hình cho thành phần phần mềm thuật tốn CNNFA 44 4.6.1 Xây dựng NFA thuật toán CNNFA 44 4.6.2 Đơn định hóa NFA 52 22 4.6.3 Tối thiểu hóa DFA 52 Chương 5: Thực nghiệm 54 5.1 Cơng cụ sinh mơ hình tự động cho phần mềm dựa thành phần 54 5.2 Thực nghiệm 55 5.3 Ý nghĩa công cụ thực nghiệm 63 Chương 6: KẾT LUẬN 64 TÀI LIỆU THAM KHẢO 67 33 LỜI CẢM ƠN Trước tiên xin gửi lời cảm ơn chân thành sâu sắc đến thầy giáo, TS Nguyễn Thế Lộc thầy giáo, TS Phạm Ngọc Hùng – người hướng dẫn, khuyến khích, bảo tạo cho tơi điều kiện tốt từ bắt đầu nghiên cứu đề tài đến hồn thành luận văn Tơi xin chân thành cảm ơn thầy cô giáo khoa Công nghệ thông tin, trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội tận tình đào tạo, cung cấp cho kiến thức vô quý giá, tạo điều kiện tốt cho suốt trình học tập, nghiên cứu trường Tơi xin trân trọng cảm ơn đề tài mã số QG.12.50 tạo điều kiện cho tơi nghiên cứu suốt q trình thực luận văn Đồng thời xin chân thành cảm ơn người thân gia đình tồn thể bạn bè ln giúp đỡ, động viên tơi lúc gặp phải khó khăn việc học tập nghiên cứu 44 LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ công nghệ thơng tin “Phương pháp sinh mơ hình tự động cho phần mềm dựa thành phần” cơng trình nghiên cứu riêng tôi, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 12 tháng 11 năm 2013 Trần Hoàng Việt 55 DANH MỤC THUẬT NGỮ VIẾT TẮT STT Từ viết tắt Từ đầy đủ Ý nghĩa LTS Labeled Transition System Hệ thống chuyển trạng thái gán nhãn NFA Nondeterministic Finite Automata Ơtơmát hữu hạn khơng đơn định DFA Deterministic Finite Automata Ơtơmát hữu hạn đơn định NNFA Normal Nondeterministic Finite Automata Tên gọi loại ôtômát hữu hạn không đơn định MYNNFA McNaughton/Yamada NNFA Tên gọi loại ôtômát hữu hạn không đơn định theo McNaughton Yamada CNNFA Compressed NNFA Tên gọi phương pháp chuyển biểu thức quy ơtơmát hữu hạn khơng đơn định 66 DANH MỤC HÌNH VẼ Hình 2.1: Một hệ thống chuyển trạng thái gán nhãn Hình 2.2: Một LTS khơng đơn định Hình 2.3: Một LTS đơn định Hình 2.4: Minh họa vết LTS Hình 2.5: Ghép nối song song hai LTS 10 Hình 2.6: LTS thuộc tính p LTS lỗi tương ứng p 11 Hình 2.7: Xây dựng LTS ghép nối song song LTS1||LTS2||perr 12 Hình 2.8: Biểu diễn ơtơmát hữu hạn 14 Hình 2.9: Chuyển ơtơmát hữu hạn M thành LTS L 16 Hình 3.1: Mơ hình thành phần phần mềm phương pháp sinh mơ hình theo L* .19 Hình 3.2: Xây dựng ứng viên từ bảng quan sát đóng qn .20 Hình 3.3: Mơ hình giả thiết thành phần phần mềm C 23 Hình 3.4: Ơtơmát tương ứng cho thành phần ε 26 Hình 3.5: Ơtơmát tương ứng cho thành phần a 26 Hình 3.6: Ơtơmát tương ứng cho thành phần (s).(r) 27 Hình 3.7: Ơtơmát tương ứng cho thành phần (s)  (r) 27 Hình 3.8: Ơtơmát cho biểu thức quy sở 28 Hình 3.9: Ơtơmát cho thành phần engineOn.engineOff 28 Hình 3.10: Ơtơmát cho thành phần engineOn.engineOff.on .29 Hình 3.11: Ơtơmát cho thành phần engineOn.engineOff.off 29 Hình 3.12: Ơtơmát tương đương với L 29 Hình 4.1: Kiến trúc kiểm chứng mơ hình đảm bảo giả định [5] 31 Hình 4.2: Mơ hình thành phần phần mềm cho biểu thức quy 32 Hình 4.3: Khối khối khơng biểu thức quy 33 Hình 4.4: MYNNFA tương đương biểu thức quy abb(a|b)* 34 Hình 4.5: Ơtơmát MYNNFA tương đương với biểu thức quy abb(a|b)* 34 Hình 4.6: Tính tốn  từ lazy 40 Hình 4.7: Ơtơmát M tương đương biểu thức quy (a|b)*b 43 77 Hình 4.8: Ơtơmát hình 4.7 sau đơn định hóa 43 Hình 4.9: Ơtơmát đơn định tối thiểu tương đương biểu thức quy (a|b)*b .44 Hình 4.10: Ơtơmát dạng nén theo thuật tốn CNNFA .51 Hình 4.11: Ơtơmát khơng đơn định theo thuật toán CNNFA 52 Hình 4.12: Ơtơmát sau đơn định hóa 52 Hình 4.13: Ơtơmát đơn định, tối thiểu cuối .53 Hình 5.1: Kiến trúc cơng cụ sinh mơ hình thành phần phần mềm tự động 54 viii DANH MỤC BẢNG Bảng 4.1: Các luật rút gọn sử dụng bước 38 Bảng 5.1: Mơi trường thử nghiệm cơng cụ sinh mơ hình thành phần phần mềm 55 Bảng 5.2: Các thông số kết thử nghiệm 57 Bảng 5.3: Bảng kết thời gian nhớ thử nghiệm với L*, Thompson, CNNFA 57 Chương 5: Thực nghiệm 5.1 Cơng cụ sinh mơ hình tự động cho phần mềm dựa thành phần Chương đề cập đến hai phương pháp sinh mơ hình thành phần phần mềm tự động Phương pháp thứ sử dụng thuật toán học L* để học biểu thức quy xây dựng mơ hình thành phần phần mềm cho Trong phương pháp này, việc học mơ hình ứng viên thực thơng qua tương tác với đối tượng Teacher để kiểm tra tương thích mơ hình ứng viên với thành phần phần mềm Một khó khăn việc sinh mơ hình dựa thuật toán học L* việc thực thi đối tượng Teacher thơng qua thuật tốn Vasilevskii – Chow có độ phức tạp lớn làm ảnh hưởng đáng kể đến hiệu phương pháp Phương pháp thứ hai sử dụng thuật tốn Thompson để xây dựng mơ hình thành phần phần mềm từ biểu thức quy biểu diễn ngôn ngữ L gồm tập dẫn xuất thực thành phần phần mềm Chương đề xuất sử dụng phương pháp khác cho việc sinh mơ hình cho thành phần phần mềm từ biểu thức quy đặc tả việc sử dụng thuật tốn CNNFA Phương pháp có độ phức tạp tính tốn thời gian khơng gian vượt trội so với hai phương pháp nói mặt lý thuyết, nhiên, thực triển khai sử dụng C# cấu trúc liệu CNNFA làm cho phương pháp sử dụng nhiều nhớ phương pháp Thompson mơ hình lớn Cơng cụ sinh mơ hình thành phần phần mềm sử dụng ba thuật toán L*, Thompson CNNFA gọi Software model generation system (gọi tắt MG) nhằm mục đích so sánh hiệu ba phương pháp với mặt thời gian thực nhớ thực tế cấp phát cho thuật tốn Cơng cụ phát triển Visual Studio 2010, C#.NET, chạy hệ điều hành Windows Kiến trúc công cụ mô tả hình 5.1 sau đây: Hình 5.1: Kiến trúc cơng cụ sinh mơ hình thành phần phần mềm tự động Trên hình phương pháp sinh mơ hình, có ba đầu vào đầu cho phương pháp: file chứa biểu thức quy thành phần phần mềm (Regular expression file), file chứa mô hình kết thành phần phần mềm (Output file) file chứa thông số hiệu phương pháp (Benchmark file) Để chọn file khác cho file này, ta sử dụng nút “Browse” bên cạnh đầu vào Đối với phương pháp CNNFA L*, file chứa biểu thức quy đầu vào chia làm ba dòng Dòng kí tự phân cách, dòng thứ hai tập kí tự bảng chữ phân cách kí tự định nghĩa dòng thứ nhất, dòng thứ ba biểu thức quy với kí tự thuộc biểu thức quy phân cách kí tự định nghĩa dòng thứ Riêng phương pháp L* có thêm độ dài tối đa cho chuỗi hành vi thành phần phần mềm Đối với file đầu vào phương pháp Thompson, dòng tập kí tự bảng chữ phân cách dấu cách Các dòng chứa tập chuỗi hành động thành phần phần mềm mà hành động chuỗi phân cách dấu cách Sau lựa chọn file đầu vào đầu cho phương pháp, nhấn “Generate model” để sinh mơ hình cho thành phần phần mềm mô tả file “Regular expression file” Kiểm tra “Output file” “Benchmark file” để kiểm tra mô hình đầu thơng số hiệu phương pháp 5.2 Thực nghiệm Để so sánh hiệu ba phương pháp nêu trên, thực thử nghiệm với số đầu vào khác như: jiter-8-21, cruiseControl, jitter-16-101, sender-len18, sender-len9 (đây tập liệu thử nghiệm dùng [6]) với mơi trường thử nghiệm trình bày bảng 5.1, kết thử nghiệm trình bày bảng 5.2 5.3 Bảng 5.1: Môi trường thử nghiệm công cụ sinh mơ hình thành phần phần mềm Processor Total Physical Memory OS Name IDE Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz, 3300 Mhz, Core(s), Logical Processor(s) 3.40 GB Microsoft Windows Ultimate Visual Studio 2010 Ultimate Để có kết thử nghiệm thể tương quan thời gian dung lượng nhớ sử dụng cho phương pháp thông số khác mơ hình sinh ra, tơi tiến hành thực nghiệm với 20 lần thử nghiệm phương pháp L*, Thompson, CNNFA cho đầu vào Bảng 5.2 trình bày số thơng số mơ hình sinh như: số lượng kí tự bảng chữ (||), số lượng xâu ngôn ngữ ơtơmát cần tính tốn (|L|), độ dài tối đa chuỗi hành động thành phần phần mềm hai phương pháp L* Thompson (||), kích thước mơ hình sinh sau áp dụng thuật toán L*, Thompson CNNFA (|M|), số lượng chuyển trạng thái mơ hình tương ứng (||), kích thước mơ hình cuối phương pháp (|MR|), số lượng chuyển trạng thái mô hình tương ứng (|R|) Kết thử nghiệm thời gian nhớ ba phương pháp trình bày bảng 5.3 Phương pháp L* Thompson sử dụng việc loại bỏ chuyển trạng thái rỗng, loại bỏ trạng thái không đến trạng thái khơng kết thúc Riêng phương pháp Thompson không sử dụng việc sinh tập chuỗi hành vi thành phần phần mềm mà sinh mơ hình dựa tập chuỗi hành vi có thành phần phần mềm cho Cả ba phương pháp sử dụng việc đơn định hóa ơtơmát hữu hạn khơng đơn định thu tối thiểu hóa ơtơmát đơn định sau để có mơ hình thành phần phần mềm tối ưu Để đo nhớ sử dụng cho phương pháp, sử dụng việc lấy mẫu cho số lượng nhớ cấp phát cho phương pháp suốt trình chạy với tốc độ lấy mẫu 01 mili-giây Dung lượng nhớ cấp phát cho phương pháp chạy dung lượng lớn cấp phát trừ dung lượng nhớ khơng có phương pháp chạy Kết trung bình cho phương pháp thời gian nhớ cho thấy tương quan xác phương pháp sử dụng Nhận xét:  Phương pháp CNNFA tỏ vượt trội mặt thời gian xử lý (trung bình năm liệu thử nghiệm là: 00:00:00.048729135, 00:00:00.06638899, 00:00:42.16751797, 00:00:00.07410687, 00:00:00.005094653), đặc biệt liệu lớn (thời gian xử lý trung bình trường hợp jiter-16-101 là: 00:00:42.16751797) Thời gian xử lý trung bình phương pháp L* 00:00:00.13546443, Không đủ nhớ, Không đủ nhớ, Không đủ nhớ, 00:00:00.06516444 Thời gian xử lý trung bình phương pháp Thompson là: 00:00:00.08898711, 00:00:00.07909826, 00:01:13.41504145, 00:00:00.23477519, 00:00:00.008008805  Sinh mơ hình phần mềm phương pháp CNNFA không bị giới hạn độ dài tối đa xâu hành động phương pháp L* phương pháp Thompson  Về nhớ CNNFA Thompson nhỏ nhiều so với L* Cụ thể với phương pháp CNNFA, dung lượng nhớ trung bình cần thiết là: 568,926; 735,675; 4,226,692; 925,113; Quá nhanh để đo nhớ sử dụng Với phương pháp L*, dung lượng nhớ trung bình cần thiết là: 5,963,545; Khơng đủ nhớ; Không đủ nhớ; Không đủ nhớ; 4,477,565 Với phương pháp Thompson, dung lượng nhớ trung bình cần thiết là: 771,630; 761,366; 2,025,680; 1,323,565; Quá nhanh để đo nhớ sử dụng Đối với liệu nhỏ Thompson sử dụng nhiều nhớ hơn, liệu lớn lên CNNFA sử dụng nhiều nhớ Điều cấu trúc liệu phức tạp CNNFA nhằm đạt thời gian xử lý tối ưu 57 Bảng 5.2: Các thông số kết thử nghiệm Hệ thống jiter-8-21 || |L| Phương pháp L* || |M| || Phương pháp Thompson |MR| |R| || |M| || |MR| |R| Phương pháp CNNFA |M| || |MR| |R| 21 14 48 10 11 136 155 11 12 114 113 11 12 cruiseControl 11 19 - - - - 133 150 11 17 113 112 11 17 jiter-16-101 101 16 - - - - 16 1290 1389 42 49 1188 1187 42 49 sender-len18 18 18 - - - - 18 191 207 19 18 172 171 19 18 sender-len9 9 15 4 56 63 10 46 45 10 Bảng 5.3: Bảng kết thời gian nhớ thử nghiệm với L*, Thompson, CNNFA STT Hệ thống jiter-8-21 Lần thử Phương pháp L* Bộ nhớ sử dụng Thời gian (bytes) (giờ:phút:giây) 00:00:00.2008471 5532056 00:00:00.1513948 5535180 00:00:00.1243328 7636664 00:00:00.1788430 6205596 00:00:00.1305010 7469408 Phương pháp Thompson Bộ nhớ sử dụng Thời gian (bytes) (giờ:phút:giây) 00:00:00.0856086 311296 00:00:00.0893176 1428280 00:00:00.0851745 434176 00:00:00.1113994 548864 00:00:00.0879666 589824 Phương pháp CNNFA Bộ nhớ sử dụng Thời gian (bytes) (giờ:phút:giây) 00:00:00.0867612 637044 00:00:00.0532737 460276 00:00:00.0451189 516096 00:00:00.0439492 222248 00:00:00.0434339 126944 58 10 11 12 13 14 15 16 17 18 19 20 Trung bình cruiseCont rol 00:00:00.1285320 00:00:00.1258950 00:00:00.1312897 00:00:00.1252985 00:00:00.1290635 00:00:00.1278833 00:00:00.1325794 00:00:00.1277091 00:00:00.1250917 00:00:00.1387444 00:00:00.1250979 00:00:00.1249253 00:00:00.1263270 00:00:00.1275897 00:00:00.1273434 00:00:00.13546443 Không đủ nhớ 5988932 6227964 6187232 6693404 6970788 6090756 4919040 6116928 5920944 7016420 5868660 5161408 4551928 4846876 4330720 5,963,545 00:00:00.0826442 00:00:00.1008300 00:00:00.0859831 00:00:00.0828575 00:00:00.0826550 00:00:00.0838813 00:00:00.0837047 00:00:00.0854684 00:00:00.1072488 00:00:00.0957336 00:00:00.0848955 00:00:00.0845018 00:00:00.0825599 00:00:00.0882749 00:00:00.0890368 00:00:00.08898711 00:00:00.0774924 00:00:00.0763442 00:00:00.0740543 Không đủ 00:00:00.0761728 nhớ 00:00:00.0744881 00:00:00.0872392 00:00:00.0744449 524288 524284 548864 1260108 516096 1460224 524288 573440 491520 499712 1398264 516096 1372680 450560 1459732 771,630 385024 1517752 466944 491520 499712 401408 466940 00:00:00.0448437 00:00:00.0543772 00:00:00.0487682 00:00:00.0436246 00:00:00.0467924 00:00:00.0448061 00:00:00.0480383 00:00:00.0452088 00:00:00.0455671 00:00:00.0457957 00:00:00.0455167 00:00:00.0459736 00:00:00.0508339 00:00:00.0470300 00:00:00.0448695 00:00:00.048729135 00:00:00.0666394 00:00:00.0649500 00:00:00.0636612 00:00:00.0678824 00:00:00.0648156 00:00:00.0634954 00:00:00.0644686 1014792 230744 455496 1525220 720896 695172 119916 527284 77656 568124 294912 1521112 465392 215592 1051728 568,926 1073612 1130496 139264 1782320 665436 418888 570140 59 10 11 12 13 14 15 16 17 18 19 20 00:00:00.0736780 00:00:00.0796669 00:00:00.0759489 00:00:00.0991332 00:00:00.0789438 00:00:00.0747724 00:00:00.0786238 00:00:00.0808714 00:00:00.0974687 00:00:00.0752827 00:00:00.0737150 00:00:00.0765700 00:00:00.0770545 Trung bình jitter-16101 00:00:00.07909826 Không đủ nhớ 00:01:14.0005629 00:01:12.2964041 00:01:16.1635906 00:01:19.2741980 Không đủ 00:01:14.5102285 nhớ 00:01:16.2713128 00:01:17.4454949 00:01:11.5874292 00:01:12.9073685 458752 1347984 507904 548864 532480 499712 1379112 507904 1409852 516096 1381160 442368 1465828 761,366 1657468 1775604 1772940 2532776 1762464 1741996 3559904 1766900 1735492 00:00:00.0691877 00:00:00.0682973 00:00:00.0646113 00:00:00.0627500 00:00:00.0635492 00:00:00.0650738 00:00:00.0724809 00:00:00.0679169 00:00:00.0774420 00:00:00.0663731 00:00:00.0643354 00:00:00.0629509 00:00:00.0668987 00:00:00.06638899 00:00:43.6428225 00:00:41.5598194 00:00:41.4860294 00:00:41.4427161 00:00:42.4190050 00:00:43.0655291 00:00:41.5357459 00:00:45.1296372 00:00:42.7746007 904640 793340 163840 465664 564152 1677004 350960 405784 1301088 163840 955188 557056 630784 735,675 5497708 2764668 5093816 5924248 2215156 5293680 5735688 2386616 5858808 60 10 11 12 13 14 15 16 17 18 19 20 Trung bình senderlen18 10 11 Không đủ nhớ 00:01:12.5955386 00:01:14.2087711 00:01:12.1183115 00:01:11.9039033 00:01:11.4665072 00:01:11.7273517 00:01:12.9667289 00:01:11.6265070 00:01:11.7351488 00:01:11.8738907 00:01:11.6215807 2168472 1704728 1746312 2121076 1726600 3105600 2001376 1713472 1858296 1768012 2294116 00:01:13.41504145 2,025,680 00:00:42.16751797 4,226,692 1309280 1419016 1479452 1338388 954504 1378584 1401040 1993752 1391320 1394888 1423200 1497460 988116 1439880 651616 709136 868612 1044652 526968 1021680 887300 770080 00:00:00.2163061 00:00:00.2702243 00:00:00.2206555 00:00:00.2257345 00:00:00.2431820 Không đủ 00:00:00.2529120 nhớ 00:00:00.2159808 00:00:00.2189866 00:00:00.2175651 00:00:00.2944168 00:00:00.2223508 00:00:42.2057743 00:00:41.1593824 00:00:46.1963192 00:00:41.3894212 00:00:41.2988785 00:00:41.2395097 00:00:41.3382874 00:00:41.3608864 00:00:41.3836496 00:00:41.3561536 00:00:41.3661918 00:00:00.1289219 00:00:00.0681801 00:00:00.0772504 00:00:00.0740552 00:00:00.0691594 00:00:00.0682827 00:00:00.0677272 00:00:00.0777120 00:00:00.0714039 00:00:00.0708167 00:00:00.0734481 4953496 2918536 6268000 2672384 3170120 4773824 3098920 3194852 6213280 3106944 3393088 61 12 13 14 15 16 17 18 19 20 Trung bình senderlen9 10 11 12 13 00:00:00.1416172 00:00:00.0612060 00:00:00.0581457 00:00:00.0582378 00:00:00.0596753 00:00:00.0585625 00:00:00.0915920 00:00:00.0631224 00:00:00.0605116 00:00:00.0561550 00:00:00.0588707 00:00:00.0617674 00:00:00.0616458 2146388 6146916 3150236 4425848 5438148 3420856 3718292 9594868 4530476 5608460 4592012 4872844 3972428 00:00:00.2148413 00:00:00.2180250 00:00:00.2183873 00:00:00.2476984 00:00:00.2434594 00:00:00.2153271 00:00:00.2263739 00:00:00.2598716 00:00:00.2532053 1105920 1138688 1179648 1040384 1122304 1122304 1212416 1494716 1571504 00:00:00.0689386 00:00:00.0734376 00:00:00.0699571 00:00:00.0677599 00:00:00.0694583 00:00:00.0700952 00:00:00.0730874 00:00:00.0694567 00:00:00.0735890 00:00:00.23477519 1,323,565 00:00:00.07410687 00:00:00.0072171 00:00:00.0075980 00:00:00.0104251 00:00:00.0075194 00:00:00.0079849 00:00:00.0074425 00:00:00.0085208 00:00:00.0073415 00:00:00.0077508 00:00:00.0073947 00:00:00.0101949 00:00:00.0075414 00:00:00.0072824 00:00:00.0044268 00:00:00.0063292 00:00:00.0045736 00:00:00.0063264 00:00:00.0041145 Quá nhanh để 00:00:00.0041559 đo 00:00:00.0070849 nhớ 00:00:00.0051212 sử dụng 00:00:00.0055529 00:00:00.0050074 00:00:00.0064937 00:00:00.0040069 00:00:00.0050093 797872 979184 602596 1133372 1363388 942080 680800 724356 873112 925,113 Quá nhanh để đo nhớ sử dụng 62 14 15 16 17 18 19 20 Trung bình 00:00:00.0574752 00:00:00.0602755 00:00:00.0561914 00:00:00.0575091 00:00:00.0629918 00:00:00.0576752 00:00:00.0600612 00:00:00.06516444 3457136 6097888 4493940 3925664 1928312 4456812 3573776 00:00:00.0074500 00:00:00.0072830 00:00:00.0087425 00:00:00.0080515 00:00:00.0076805 00:00:00.0078229 00:00:00.0089322 4,477,565 00:00:00.008008805 00:00:00.0040458 00:00:00.0040959 00:00:00.0045477 00:00:00.0044264 00:00:00.0045082 00:00:00.0038754 00:00:00.0075231 00:00:00.005094653 63  Kích thước mơ hình sinh thuật tốn L* có kích thước nhỏ mơ hình sinh hai thuật tốn Thompson CNNFA Điều tương tự với mơ hình cuối ba phương pháp sinh mơ hình Trong phương pháp áp dụng thuật tốn L*, kích thước mơ hình sinh thuật tốn L*, số chuyển trạng thái mơ hình đó, kích thước mơ hình tối ưu cuối cùng, số chuyển trạng thái mơ hình tối ưu cuối cho hai hệ thống jiter-8-21 sender-len9 là: 14, 48, 10, 11 5, 15, 4, Trong đó, số liệu tương ứng cho phương pháp sử dụng thuật toán Thompson là: 136, 155, 11, 12 56, 63, 10, Các số liệu tương ứng cho phương pháp sử dụng thuật toán CNNFA là: 114, 113, 11, 12 46, 45, 10, 5.3 Ý nghĩa công cụ thực nghiệm Công cụ thực nghiệm triển khai ba phương pháp sinh mơ hình tự động cho thành phần mềm đề cập chương chương luận văn Cơng cụ có ý nghĩa quan trọng việc sinh mơ hình cho thành phần phần mềm thực tế, sở cho việc kiểm chứng mơ hình, kiểm chứng mơ hình đảm bảo giả định đề cập [5] kiểm thử dựa mơ hình nhằm nâng cao chất lượng phần mềm Thay kiểm chứng tồn phần mềm ta phân rã phần mềm thành nhiều thành phần kiểm chứng riêng biệt thành phần Về mặt khoa học, công cụ cung cấp công cụ để so sánh phương pháp sinh mơ hình cho thành phần phần mềm có trình bày chương với phương pháp sinh mơ hình đề xuất chương Ngồi ra, cơng cụ dùng để cung cấp mơ hình cho thành phần phần mềm phục vụ cho nghiên cứu sau Từ đầu cơng cụ này, ta chuyển thành LTS tương ứng làm đầu vào cho công cụ đề cập [5] công cụ sinh giả định dùng phương pháp kiểm chứng đảm bảo giả định Ngoài ra, mặt thực tế, nỗ lực việc tự động hóa số cơng đoạn từ đặc tả yêu cầu, thiết kế, sinh mã nguồn, kiểm thử tự động, cơng cụ đóng vai trò mắt xích quan trọng chuỗi hành động thơng qua việc sinh mơ hình cho thành phần phần mềm thơng qua biểu thức quy có từ đầu trình thiết kế biểu đồ Thông qua công cụ này, ta sinh mơ hình thành phần phần mềm tương ứng mơ hình sở cho việc kiểm thử tự động kiểm chứng mơ hình kiểm thử dựa mơ hình xem thành phần phần mềm thực thi cuối có đáp ứng mơ hình thiết kế ban đầu hay khơng 64 Chương 6: KẾT LUẬN Trong ngữ cảnh ngành công nghiệp phần mềm đại, công nghệ phần mềm hướng thành phần đóng vai trò quan trọng việc tạo phần mềm lớn, có chất lượng cao thành phần mềm coi hộp đen, phát triển bên thứ ba, ta khơng biết mã nguồn Tuy nhiên, nhà cung cấp thành phần cung cấp đặc tả cho thành phần dạng biểu thức quy chuỗi hành vi thành phần phần mềm ta xây dựng mơ hình cho thành phần làm sở cho việc kiểm chứng mơ hình, kiểm thử tự động dựa mơ hình cho tồn phần mềm Một ý nghĩa không phần quan trọng việc sinh mơ hình tự động dựa vào đầu vào biểu thức quy chuỗi hành động thành phần phần mềm đóng vai trò sinh mơ hình thành phần phần mềm từ thiết kế nhằm tự động hóa số cơng đoạn làm phần mềm từ thiết kiểm thử tự động Một số phương pháp sinh mơ hình cho thành phần phần mềm gồm có sinh mơ hình theo phương pháp áp dụng thuật toán L* phương pháp áp dụng thuật toán Thompson Trong phương pháp sinh mơ hình sử dụng thuật tốn L* [5], ta sinh mơ hình cho thành phần phần mềm thơng qua phương pháp học biểu thức quy đầu vào để sinh mơ hình ứng viên cho thành phần phần mềm thơng qua việc tương tác với đối tượng Teacher Ở bước lặp, thuật toán thực truy vấn đến đối tượng Teacher để có tập chuỗi hành động đóng quán thực thành phần phần mềm Từ đó, ta xây dựng mơ hình ứng viên tương ứng cho thành phần phần mềm Thơng qua đối tượng Teacher, ta kiểm tra mơ hình ứng viên có phù hợp hay khơng, khơng đối tượng Teacher trả lại phản ví dụ cho thuật tốn, thuật tốn lại lặp lại trên, đối tượng Teacher trả lời mơ hình ứng viên phù hợp thuật tốn dừng lại ta có mơ hình xác cho thành phần phần mềm Mơ hình sinh phương pháp có kích thước nhỏ so với hai phương pháp áp dụng thuật toán Thompson CNNFA Phương pháp sinh mơ hình cho thành phần phần mềm, độ phức tạp tồn q trình lớn phụ thuộc vào thuật tốn VC Ngồi ra, thuật tốn sử dụng khối lượng nhớ lớn khó thực cho tốn thực tế Trong phương pháp sinh mơ hình sử dụng thuật tốn Thompson [6], ta sinh mơ hình thành phần phần mềm thơng qua đặc tả thành phần tập chuỗi hành vi thực thành phần phần mềm Việc thử nghiệm chuỗi hành động thực thành phần phần mềm để có danh sách chuỗi hành vi khiến cho phương pháp có độ phức tạp lớn khó thực thực tiễn Tuy vậy, xét góc độ khác, đầu vào phương pháp sử dụng thuật toán Thompson biểu thức quy việc sinh mơ hình theo phương pháp có ưu điểm lớn so với phương pháp L* 65 Luận văn đề xuất phương pháp khác để sinh mơ hình cho thành phần phần mềm đặc tả biểu thức quy hành động thực thành phần phần mềm Phương pháp sử dụng thuật toán CNNFA để phân tích biểu thức quy cho sinh mơ hình thành phần phần mềm tương ứng Cơ sở phương pháp phương pháp chuyển biểu thức quy thành ơtơmát hữu hạn khơng đơn định theo phương pháp McNaughton Yamada Phương pháp sau Chang cải tiến để đạt hiệu tối đa phân tích biểu thức quy nhằm giảm thiểu phép nhân tập hợp đắt đỏ sinh ơtơmát tương ứng cho biểu thức quy thành phần Thuật toán CNNFA sử dụng việc định giá trễ biểu thức biểu diễn tập chuyển trạng thái cho ôtômát thành phần việc biểu diễn chúng qua lazy Chúng ta định giá biểu thức lazy bước cuối cùng, cần có ơtơmát hữu hạn cuối Ở bước trung gian, ta biểu diễn ôtômát dạng nén gọi CNNFA Phương pháp phương pháp vượt trội so với phương pháp L* Thompson mặt lý thuyết thời gian không gian sử dụng Tuy nhiên, thực nghiệm cho thấy CNNFA vượt trội mặt thời gian so với phương pháp L* Thompson thử nghiệm với đầu vào biểu thức quy đặc tả cho thành phần phần mềm Còn mặt khơng gian CNNFA vượt trội so với L*, so với Thompson CNNFA sử dụng khơng gian nhớ làm việc với biểu thức quy nhỏ, biểu thức quy lớn lên, khơng gian mà CNNFA sử dụng lại lớn phương pháp Thompson Điều cấu trúc liệu đặc biệt CNNFA, điều mà giúp cho CNNFA có tốc độ tối ưu so với hai phương pháp lại lại khiến trả giá việc sử dụng nhiều nhớ Về mặt thực nghiệm, công cụ MG dùng để sinh mơ hình tự động cho thành phần phần mềm sử dụng ba phương pháp L*, Thompson CNNFA Công cụ sinh mô hình mơ tả hành vi thành phần phần mềm dạng ôtômát hữu hạn đặc tả hình thức cho thành phần Mơ hình thu sở cho việc áp dụng kỹ thuật kiểm chứng mơ hình kiểm thử tự động mà đầu vào cho việc sinh giả định hỗ trợ cho kỹ thuật kiểm chứng đảm bảo giả định hay kiểm thử dựa mơ hình Ngồi ra, cơng cụ đóng vai trò to lớn việc tự động hóa số cơng đoạn việc phát triển phần mềm từ thiết kế, sinh mô hình tự động, sinh mã nguồn, kiểm thử tự động cho nghiên cứu sau Luận văn trình bày kiến thức đặc tả hình thức cho thành phần phần mềm, tóm tắt số phương pháp sinh mơ hình tự động cho thành phần phần mềm phương pháp sinh mơ hình sử dụng thuật tốn học L* thuật toán Thompson đề xuất sử dụng phương pháp sinh mơ hình tự động dựa thuật tốn CNNFA Các phương pháp sinh mơ hình dựa thuật toán L*, Thompson, CNNFA cài đặt nhằm so sánh phương pháp với sinh mơ hình tự động đầu vào cho nghiên cứu khác cung cấp đầu 66 vào cho việc kiểm chứng mơ hình khâu quan trọng việc tự động hóa từ thiết kiểm thử tự động Hướng nghiên cứu đề tài nghiên cứu cách biểu diễn cấu trúc liệu CNNFA để sử dụng khơng gian nhớ đầu vào lớn Ngoài ra, ta thực nghiên cứu liên quan đến việc tự động hóa từ mơ hình thiết kế phần mềm UML (Unified Modeling Language), ngôn ngữ ràng buộc đối tượng OCL (Object Constraint Language) đến việc sinh mơ hình để sử dụng cho kiểm thử dựa mơ hình kiểm chứng mơ hình 67 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Đỗ Đức Giáo, Toán rời rạc ứng dụng tin học, Nhà xuất giáo dục Việt Nam, 2011 Tiếng Anh [2] D Angluin, “Learning regular sets from queries and counterexamples”, Information and Computation, 75(2), pp 87-106, Nov 1987 [3] Ken Thompson, "Regular expression search algorithm", Communications of the ACM 11(6), pp 419–422, June 1968 [4] C Chang, “From regular expressions to DFA’s using compressed NFA’s”, Ph.D Thesis, New York University, New York, 1992 [5] H M Duong, L K Trinh, and P N Hung, “An Assume-Guarantee Model th Checker for Component-Based Systems”, The 10 IEEE-RIVF International Conference on Computing and Communication Technologies, 2013 (accepted) http://www.uet.vnu.edu.vn/~hungpn/GUI-AGTool/ [6] L B Cuong and P N Hung, “A Method for Generating Models of Black-box th [7] [8] [9] [10] [11] [12] Components”, International Conference on Knowledge and Systems Engineering (KSE 2012), IEEE Computer Society Press, pp 177-222, 2012 T S Chow, "Testing software design modeled by finite-state machine", IEEE Transactions on Software Engineering, vol 4, no 3, pp 178–187, May 1978 A.Nerode, "Linear Automaton Transformations", Proceedings of the American Mathematical Society Vol 9, No 4, pp 541-544, Aug 1958 C Chang, R Paige, “From regular expressions to DFA’s using compressed NFA’s”, Theoretical Computer Science 178, 1-36, 1997 P N Hung, N V Ha, T Aoki and T Katayama, “On Optimization of Minimized Assumption Generation Method for Component-based Software Verification”, IEICE Trans on Fundamentals, Special Issue on Software Reliability Engineering, Vol E95-A, No.9, pp 1451-1460, Sep 2012 D Lorenzoli, L Mariani and M Pezz` e, “Automatic generation of software behavioral models”, ACM, Proceedings of the 30th international conference on Software engineering, pp 501-510, 2008 J.C Corbett, M.B Dwyer, J Hatcliff, S Laubach, C.S Pasareanu, Robby and Hongjun Zheng, ”Bandera: extracting finite-state models from Java source code”, Software Engineering, Proceedings of the 2000 International Conference on, pp 439-448d, 2000 68 [13] O Tkachuk, M.B Dwyer and C.S Pasareanu, “Automated environment generation for software model checking”, Automated Software Engineering, Proceedings 18th IEEE International Conference on, pp 116-127, 2003 [14] A Groce, D Peled, and M Y annak akis, “Black box checking”, J Autom Lang Comb., pp 225-246, Nov 2001 [15] A Groce, D Peled, and M Y annak akis, “Adaptive Model Checking”, Logic Journal of the IGPL, vol 14, no 5, pp 729-744, Oct 2006 ... số phương pháp sinh mơ hình tự động cho phần mềm dựa thành phần giới thiệu chương Chương trình bày tóm tắt hai phương phương pháp sinh mơ hình tự động cho thành phần phần mềm Phương pháp thứ sinh. .. hai phương pháp Chương nghiên cứu phương pháp khác để sinh mơ hình tự động cho thành phần phần mềm sử dụng thuật toán CNNFA [4], [9] Phương pháp sinh tự động mơ hình xác đặc tả cho hành vi thành. .. thỏa mãn 10 2.4 Thành phần phần mềm ôtômát hữu hạn trạng thái 13 Chương 3: Các phương pháp sinh mơ hình tự động cho thành phần phần mềm 17 3.1 Phương pháp sinh mơ hình dựa thuật tốn học

Ngày đăng: 17/01/2019, 15:56

Từ khóa liên quan

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

Tài liệu liên quan