(LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

53 2 0
(LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Đ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Ệ LÊ BÁ CƯỜNG NGHIÊN CỨU PHƯƠNG PHÁP XÂY DỰNG MƠ HÌNH TỰ ĐỘNG Ngành: Cơng nghệ thơng tin Chun 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 PHẠM NGỌC HÙNG Hà nội – 11/2011 TIEU LUAN MOI download : skknchat@gmail.com i Mục lục LỜI CẢM ƠN ii LỜI CAM ĐOAN iii DANH MỤC HÌNH VẼ iv DANH MỤC THUẬT TOÁN v 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 2.2 2.3 2.4 2.5 Hệ thống chuyển trạng thái gán nhãn Phép ghép nối song song Hệ 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 Thành phần phần mềm 12 Ơtơmát hữu hạn trạng thái 12 Chương 3: Các phương pháp sinh tự động mơ hình thành phần phần mềm 17 3.1 Phương pháp học sử dụng giải thuật L* 18 3.1.1 Phương pháp xây dựng mô hình sử dụng thuật tốn L* 19 3.1.2 Giải thuật Vasilevskii-Chow 22 3.2 Phương pháp xây dựng mơ hình sử dụng thuật tốn Thompson24 3.2.1 Sinh dẫn xuất 24 3.2.2 Xây dựng mơ hình 27 3.2.3 Tối ưu hóa mơ hình 34 3.2.4 Độ phức tạp tính tốn 40 Chương 4: Thực nghiệm 41 4.1 4.2 4.3 Công cụ xây dựng mơ hình thành phần phần mềm 41 Thực nghiệm 43 Ý nghĩa công cụ xây dựng mô hình 45 KẾT LUẬN 47 TÀI LIỆU THAM KHẢO 49 TIEU LUAN MOI download : skknchat@gmail.com iv 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 – a: Hệ chuyển trạng thái gán nhãn không đơn định Hình 2.2 – b: Hệ chuyển trạng thái gán nhãn đơn định Hình 2.3: Hệ chuyển trạng thái gán nhãn Hình 2.4: Ghép nối song song hai hệ chuyển trạng thái gán nhãn Hình 2.6: Xây dựng LTS ghép nối song song Input || Output || perr 11 Hình 2.7: Minh họa ơtơmát M mô tả 14 Hình 2.8: Phương pháp chuyển ơtơmát M thành LTS L 15 Hình 3.1: Mơ hình giả thiết thành phần phần mềm C 17 Hình 3.2: Sơ đồ thuật tốn L* 19 Hình 3.3: Xây dựng DFA tương ứng với bảng quan sát đóng (S, E, T) 20 Hình 3.4: Sơ đồ thuật toán Vasilevskii – Chow 23 Hình 3.5–a: Ơtơmát thành phần 29 Hình 3.5–b: Ơtơmát thành phần 29 Hình 3.5–c: Ơtơmát thành phần 30 Hình 3.5–d: Ơtơmát thành phần 30 Hình 3.6–a: Ơtơmát thành phần 33 Hình 3.6–b: Ơtơmát thành phần 33 Hình 3.6–c: Ơtơmát thành phần 33 Hình 3.6–d: Ơtơmát đốn nhận tập dẫn xuất cho 34 Hình 3.7–a: Ơtơmát loại bỏ quy tắc rỗng 38 Hình 3.7–b: Ơtơmát đơn định 39 Hình 4.1: Kiến trúc cơng cụ sinh mơ hình 42 Hình 4.2: Giao diện GenModelTool 42 Hình 4.3: Đầu vào cho cơng cụ GenModelTool 43 Hình 4.4: Một Ơtơmát đầu công cụ GenModelTool 45 TIEU LUAN MOI download : skknchat@gmail.com v DANH MỤC THUẬT TỐN Giải thuật 3.1: L* học mơ hình xác M C 22 Giải thuật 3.2: VC(S, E, C, n) 23 Giải thuật 3.3: isTraceOfC( , T) 25 Giải thuật 3.4: makeTraceSet(C, maxLength) 26 Giải thuật 3.5: makeDFA(L) 31 Giải thuật 3.6: Loại bỏ cung rỗng ε 35 Giải thuật 3.7: Đơn định hóa ơtơmát 36 Giải thuật 3.8: Xây dựng ôtômát tối tiểu 37 TIEU LUAN MOI download : skknchat@gmail.com Chương 1: Giới thiệu Công nghệ phần mềm hướng thành phần xem phương pháp hiệu cho phát triển phần mềm Với cơng nghệ này, giảm thiểu thời gian công sức đảm bảo chất lượng phần mềm Công nghệ hướng thành phần giúp cho việc xây dựng tiến hóa phần mềm nhanh chóng việc tái sử dụng tích hợp thành phần phần mềm Các ứng dụng xây dựng cách tích hợp thành phần độc lập tương tác với Các thành phần xây dựng nên nhà phát triển phần mềm bên thứ ba Một vấn đề cấp thiết khó khăn công nghệ hướng thành phần làm để đảm bảo thành phần phần mềm cộng tác với để đạt mục tiêu hệ thống Giải pháp phổ biến để giải vấn đề áp dụng phương pháp kiểm thử kiểm chứng mơ hình [7] Trong công nghiệp, phương pháp kiểm thử áp dụng phổ biến nhằm đảm bảo tính đắn phần mềm Tuy nhiên, ca kiểm thử thường sinh thủ công nên tốn cơng sức tính bao phủ chúng khơng cao Kiểm thử tự động xem giải pháp tiềm để giải vấn đề Bên cạnh đó, phương pháp kiểm chứng mơ hình [7] hứa hẹn cách tiếp cận hiệu nhằm chứng minh tính đắn phần mềm Để áp dụng phương pháp kiểm chứng mơ hình phương pháp kiểm thử tự động, phải xây dựng mơ hình mơ tả xác hành vi hệ thống Các nghiên cứu kiểm chứng mô hình kiểm thử tự động giả thiết mơ hình hệ thống sẵn có đắn Trên thực tế, việc xây dựng mơ hình hệ thống cơng việc khó khăn tiềm ẩn nhiều lỗi Hơn nữa, cho dù mơ hình hệ thống sẵn có đắn chưa mơ hình đắn phần mềm tiến hóa với việc thêm bớt số hành vi hệ thống Một khó khăn việc xây dựng mơ hình hệ thống trường hợp thành phần phần mềm phát triển bên thứ ba khơng có mã nguồn tài liệu đầy đủ có khó hiểu Như vậy, tốn xây dựng mơ hình mơ tả xác hành vi hệ thống khơng có ý nghĩa to lớn việc kiểm chứng mơ hình TIEU LUAN MOI download : skknchat@gmail.com kiểm thử tự động mà có giá trị thực tiễn cao nhiều người quan tâm Do đó, tơi định chọn đề tài “Nghiên cứu phương pháp xây dựng mơ hình tự động” cho nghiên cứu Đề tài nhằm mục đích nghiên cứu phương pháp xây dựng mơ hình tự động mơ tả xác hành vi hệ thống, làm sở cho việc áp dụng kỹ thuật kiểm chứng mơ hình kiểm thử tự động nhằm góp phần nâng cao chất lượng phần mềm Nội dung luận văn trình bày bốn chương phần kết luận Chương giới thiệu đề tài Chương trình bày ngữ cảnh, lý chọn đề tài, mục tiêu đề tài cấu trúc luận văn Chương trình bày khái niệm phục vụ cho đề tài Chương mơ tả phương pháp hình thức cho đặc tả phần mềm, khái niệm thành phần phần mềm đặc tả thành phần phần mềm, máy hữu hạn trạng thái, hệ chuyển trạng thái gán nhãn, ôtômát hữu hạn trạng thái khái niệm liên quan Chương nghiên cứu phương pháp xây dựng tự động mơ hình mơ tả xác hành vi thành phần phần mềm Trong chương này, đề xuất hai giải pháp cho việc xây dựng mơ hình thành phần phần mềm Giải pháp thứ xây dựng mơ hình sử dụng thuật tốn học L* Đây phương pháp học lặp lặp lại để xây dựng mơ hình ứng viên tương ứng với thành phần phần mềm C Ở bước lặp, kiểm tra tính tương thích mơ hình ứng viên với thành phần C cập nhật lại mơ hình ứng viên khơng tương thích Giải pháp thứ hai xây dựng mơ hình sử dụng thuật tốn Thompson [11] Phương pháp xây dựng ôtômát hữu hạn mơ hình mơ tả xác hành vi thành phần phần mềm C tương đương với biểu thức quy sinh tập dẫn xuất C Chương giới thiệu kết thực nghiệm Chương trình bày kết đạt được, công cụ sinh mô hình thành phần phần mềm áp dụng cho số ví dụ cụ thể Cuối phần kết luận, định hướng mở rộng tài liệu tham khảo TIEU LUAN MOI download : skknchat@gmail.com 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 Mỗi thành phần phần mềm đặc tả mơ hình tương ứng mơ tả hành vi thành phần Mơ hình thành phần phần mềm biểu diễn hệ chuyển trạng thái gán nhãn [10], đồ thị có hướng với nhãn cạnh Mỗi nhãn cạnh biểu diễn cho hành động thực hệ thống, đỉnh đồ thị trạng thái mơ hình, biểu diễn cho trạng thái hệ thống Tập tất nhãn gọi bảng chữ Ta ký hiệu Act tập tất hành động quan sát được, hành động không quan sát môi trường thành phần phần mềm, trạng thái lỗi đặc biệt hệ thống, ta ký hiệu LTS  = Định nghĩa 2.1: Hệ thống chuyển trạng thái gán nhãn (Labeled Transition System – LTS) Một hệ chuyển trạng thái gán nhãn [10] M có thứ tự gồm bốn thành phần (Q, , , q0), đó:  Q tập khác rỗng trạng thái M,  Act tập hành động quan sát được, gọi bảng chữ M,  Qx x Q hàm chuyển trạng thái,  q0 Q trạng thái khởi tạo Ta ký hiệu qi qj có hành động với nhãn a chuyển hệ thống từ trạng thái qi sang trạng thái qj, (qi, a, qj) Điều có nghĩa hệ thống trạng thái qi thực hành động a chuyển sang trạng thái qj Tương tự, hệ thống trạng thái qj thực hành động a′ chuyển sang trạng thái qk Như vậy, ta có TIEU LUAN MOI download : skknchat@gmail.com ′ chuỗi hành động qi qj qk Khi đó, ′ ký hiệu: qi qk Một cách tổng quát, có chuỗi hành động qi qk biểu diễn hệ thống trạng thái qi thực chuỗi hành động a1.a2….an kết thúc trạng thái qk q′ Xét hệ chuyển trạng thái gán nhãn P = (Q, Q, , i ta có: q′ q (q, , q′ ) q′ q … , , q0) với q, q0, q1, …, qn : q = q0 q1 q2 qn = q′ Ví dụ 2.1: in q0 q1 send ack q2 Hình 2.1: Một hệ thống chuyển trạng thái gán nhãn Hình 2.1 ví dụ hệ chuyển trạng thái gán nhãn L = (Q, , , q0), đó:  Q = {q0, q1, q2} tập trạng thái L,  = {in, send, ack} tập hành vi L,  = { (q0, in, q1), (q1, send, q2), (q2, ack, q0)} quy tắc chuyển trạng thái,  q0 trạng thái khởi đầu TIEU LUAN MOI download : skknchat@gmail.com Định nghĩa 2.2: Kích thước hệ chuyển trạng thái gán nhãn Kích thước hệ chuyển trạng thái gán nhãn M = (Q, số trạng thái M, ký hiệu |M|, |M| = |Q| , , q0) Định nghĩa 2.3: Hệ chuyển trạng thái gán nhãn đơn định không đơn định Một hệ chuyển trạng thái gán nhãn M = (Q, , , q0) không đơn định - chuyển dịch (q, a, q ) (q, a, q") q q" Trái lại, M hệ chuyển trạng thái gán nhãn đơn định Chú ý 2.1: Cho hệ chuyển trạng thái gán nhãn M = (Q, , , q0) M' = (Q', , , q0') Ta nói M chuyển dịch thành M' với chuyển dịch a (q0, a, q0') , , Q = Q' Ta ký hiệu: M M' Ví dụ 2.2: Một hệ thống chuyển trạng thái gán nhãn đơn định không đơn định a q0 a q1 b c q2 Hình 2.2 – a: Hệ chuyển trạng thái gán nhãn khơng đơn định Hình 2.2–a mơ tả hệ chuyển trạng thái gán nhãn L = (Q, , , q0), đó: Q = {q0, q1, q2}, = {a, b, c}, q0 trạng thái khởi đầu, = {(q0, a, q1), (q0, a, q2), (q1, b, q2), (q2, c, q0)} Khi hệ thống trạng thái q0, thực hành động a hệ thống chuyển đến trạng thái q1 trạng thái q2 Như vậy, trạng thái q0 thực hành động a không xác định TIEU LUAN MOI download : skknchat@gmail.com hay khơng tất định Ta gọi hệ chuyển trạng thái gán nhãn không đơn định a q0 q1 b b c q2 Hình 2.2 – b: Hệ chuyển trạng thái gán nhãn đơn định Hệ chuyển trạng thái gán nhãn hình 2.2–b hệ chuyển trạng thái gán nhãn đơn định Từ trạng thái qi thực hành động aj hệ thống chuyển sang trạng thái xác định qk Định nghĩa 2.4: Vết hệ chuyển trạng thái gán nhãn M Một vết hệ chuyển trạng thái gán nhãn M = (Q, q0) chuỗi hữu hạn hành động a1a2 …an với a1 = q0, 1,…,n) , , (i = Như vết hệ chuyển trạng thái gán nhãn M chuỗi hành động quan sát mà M thực từ trạng thái khởi tạo q0 Ví dụ 2.3: Cho hệ chuyển trạng thái gán nhãn M = (Q, hình 2.3 in q0 q1 , , q0) send ack q2 Hình 2.3: Hệ chuyển trạng thái gán nhãn TIEU LUAN MOI download : skknchat@gmail.com 35  Loại bỏ đỉnh không đến từ đỉnh vào, đỉnh không đến đỉnh kết từ cung vào, cung đỉnh Giải thuật 3.6: Loại bỏ cung rỗng ε Input: M = (Q, , , q0, F) Output: M′ = (Q′, , ′, q0, F) không chứa cung rỗng 1: For each rule (q1, , q2) in 2: if q2 in F then 3: For each rule (qi, a, q1) where a in 4: add rule (qi, a, q2) to 5: delete rule (q1, , q2) from 6: End For 7: else 8: For each rule (q2, a, qi) where a in 9: add rule (q1, a, qi) to 10: delete rule (q1, , q2) from 11: 12: do End For For each state qi that is unreached from q0 or to state in F 13: remove qi from Q 14: delete transactions outgoing from and ingoing to qi 15: End For 16: Return M′ Thuật tốn đơn định hóa Giải thuật 3.7 mơ tả phương pháp xây dựng ôtômát đơn định từ ôtômát không đơn định Với ôtômát không đơn định M = (Q, , , q 0, F), xây dựng ôtômát đơn định M′ = (Q′, , ′, q0′, F) tương đương với M sau:  Q′ = 2Q, TIEU LUAN MOI download : skknchat@gmail.com 36  q0′ = { q0},  F′ tập tất tập Q có chứa phần tử F: F′ = { S Q | S F },  ′ xác định sau: ′({q1,q2, , qk}, a) = Giải thuật 3.7: Đơn định hóa ơtơmát Input: M = (Q, , , q0, F) , ′, q0′, F′) otomat đơn định Output: M′ = (Q′, 1: Khởi tạo, q0′ = { q0}, Q′ = { q0′} 2: 3: lấy 4: Q′ 5: Xét a 6: Tìm 7: Q′ = Q′ 8: = ′( , a) = chưa xử lý while a 9: while Q′ thay đổi 10: F′ = { 11: return M′ Q′ | F } Thuật tốn tối tiểu hóa Giải thuật 3.8 mơ tả phương pháp tối tiểu hóa ơtơmát hữu hạn đơn định M Tuần tự bước thuật toán tiến hành sau:  Thiết lập phân hoạch theo định nghĩa 0-tương đương ={Q10,Q20} Q10 = F, Q20 = Q – F  Xây dựng k+1 từ k Xây dựng Qik ( i = 1, 2, …) tập k lớp (k+1)–tương đương Hai trạng thái q1 q2 nằm Qik chúng (k+1)–tương đương tức (q1, a) (q2, a) k–tương đương với a bảng chữ vào Điều có nghĩa (q1, a) (q2, a) nằm lớp tương đương k TIEU LUAN MOI download : skknchat@gmail.com 37  Lặp lại bước để thiết lập k k = k+1  Xây dựng ơtơmát cực tiểu M′ với Q′ tập lớp tương đương phân hoạch k Các quy tắc thu cách thay trạng thái q lớp tương đương tương ứng [q] Tập trạng thái kết lớp tương đương chứa trạng thái kết M Trạng thái vào lớp tương đương chứa trạng thái q0 M Giải thuật 3.8: Xây dựng ôtômát tối tiểu Input: Cho trước ôtômát M = (Q, , , q0, F) Output: Ơtơmát tối tiểu M′ = (Q′, , ′, q0′, F′) tương đương với M 1: Khởi tạo, Q10 = F, Q20 = Q – F 2: 3: for each Qjk-1 in k 5: Qik = {qj1} where qj1 in Qjk-1 6: for each qjt in Qjk-1 7: if qjt k+1 qj1 then 8: add qjt to Qik 9: remove qjt from Qjk-1 10: end if 11: end for 12: add Qik to 13: while Qjk-1 is not empty 14: while 15: for each rule (q1, a, q2) in 16: 17: k k+1 k+1 replace by ([q1], a, [q2]) return M′ TIEU LUAN MOI download : skknchat@gmail.com 38 Ví dụ 3.3: Cho ơtơmát hình 3.6-d thu từ ví dụ 3.2 Hãy tối tiểu hóa ơtơmát 1) Loại bỏ quy tắc rỗng (theo thuật toán 3.6) Với cung rỗng từ q0 đến q1, tìm cung từ q1 (q1, a, q2) Chúng ta loại bỏ cung rỗng từ q0 đến q1 thêm vào cung từ q0 đến q2 với nhãn a Tiến hành tương tự với cung rỗng từ q0 đến q3, q6, q9, q13 Tiếp theo, ta loại bỏ đỉnh không đến từ trạng thái q0 cung từ đỉnh Các đỉnh q1, q3, q6, q9, q13 cung (q1, a, q2), (q3, a, q4), (q6, a, q7), (q9, b, q10), (q13, b, q14) bị loại bỏ Với cung rỗng từ q2 đến q18, tìm cung vào q2 (q0, a, q2) Chúng ta tiến hành loại bỏ cung rỗng từ q2 đến q18 thêm vào cung từ q0 đến q18 với nhãn a Tiến hành tương tự cho cung rỗng từ q5, q8, q12, q17 Tiếp theo ta loại bỏ tất đỉnh không đến đỉnh kết từ cung vào tương ứng với đỉnh Đánh số lại thứ tự đỉnh thu đồ thị tương ứng loại bỏ quy tắc rỗng mơ tả hình 3.7–a a q0 a q1 a q2 b c b q3 b q8 a c q4 a q5 c q6 b q7 Hình 3.7–a: Ơtơmát loại bỏ quy tắc rỗng TIEU LUAN MOI download : skknchat@gmail.com 39 2) Đơn định hóa ơtơmát (theo thuật tốn 3.7) Xây dựng ơtơmát M′ = (Q′, , ′, q0′, F′) đơn định, tương đương với ơtơmát hình 3.7–a Chúng ta xây dựng quy tắc chuyển trạng thái M′ sau: Chúng ta xây dựng quy tắc chuyển trạng thái đến phần tử theo thuật toán 3.7, tập trạng thái khởi tạo {q0}, ký hiệu [q0] Ta thấy từ [q0] đến [q8, q1, q2] qua cung với nhãn a đến [q3, q5] qua cung với nhãn b Các tập trạng thái [q8, q1, q2], [q3, q5] kết nạp vào tập trạng thái Q′ ôtômát M′ Từ trạng thái [q8, q1, q2] đến trạng thái [q8] qua cung với nhãn b c Trạng thái [q8] kết nạp vào Q′ Tiến hành tương tự Q′ khơng có thay đổi thu ôtômát đơn định M′ với tập trạng thái kết F′ = { [q1, q2, q8], [q8] }, đánh số lại trạng thái ôtômát M′ ta thu đồ thị chuyển trạng thái mô tả hình 3.7–b a b q1 c q0 q5 a b q2 c a q3 b q4 Hình 3.7–b: Ơtơmát đơn định 3) Tối tiểu hóa (Thuật tốn 3.8) Xây dựng ôtômát tối tiểu tương đương với ôtômát có đồ thị chuyển trạng thái hình 3.7–b Theo thuật tốn 3.8 xây dựng phân hoạch Q2 } Q10 = {q1, q5}, Q20 = { q0, q2, q3, q4} = {Q10, TIEU LUAN MOI download : skknchat@gmail.com 40 Chúng ta xét tiếp quan hệ 1–tương đương để tính Ta dễ dàng kiểm tra q1 q5 1–tương đương nên Q11 = {q1 }, Q21 = { q5} Tương tự ta xây dựng Q31 = {q0, q3}, Q41 = {q2}, Q51 = {q4} Tiếp theo xét quan hệ 2–tương đương để tính Trước tiên ta có Q12 = {q1 }, Q22 = { q5} Các trạng thái q0 q3 quan hệ 2–tương đương nên Q32 = {q0}, Q42 = { q3} Q52 = {q2 }, Q62 = { q4} Như lớp tương đương phân hoạch chứa trạng thái qi Q nên phân hoạch không thay đổi so với phân hoạch số lớp tương đương phân hoạch số trạng thái ơtơmát có đồ thị chuyển hình 3.7–b Vậy ơtơmát tối tiểu 3.2.4 Độ phức tạp tính tốn Tập D xây dựng D = { Σ* | | | maxLength} Ta có: size(D) = n1 + n2 + + nmaxLength = n.(nmaxLength – 1)/(n - 1) Trong đó, n số phần tử bảng chữ Σ Độ phức tạp giải thuật isTraceOfC( , T) O(maxLength) Do độ phức tạp giải thuật makeTraceSet(C, maxLength) O(maxLength)*O(nmaxLength) = O(maxLength*nmaxLength) Ta lại có size(L) size(D) nên độ phức tạp thuật toán makeDFA(L) nhỏ độ phức tạp giải thuật sinh tập dẫn xuất makeTraceSet(C, maxLength) Vậy độ phức tạp toàn q trình xây dựng mơ hình thành phần phần mềm C O(maxLength*nmaxLength) TIEU LUAN MOI download : skknchat@gmail.com 41 Chương 4: Thực nghiệm 4.1 Công cụ xây dựng mơ hình thành phần phần mềm Chương đề xuất hai phương pháp cho việc xây dựng mơ hình mơ tả xác hành vi thành phần phần mềm Phương pháp thứ xây dựng mơ hình sử dụng thuật toán học L* cho việc học lặp lặp lại xây dựng cập nhật mô hình ứng viên để thu mơ hình tương thích với thành phần phần mềm cần mơ hình hóa Phương pháp thứ hai xây dựng mơ hình sử dụng thuật tốn Thompson xây dựng ơtơmát hữu hạn mơ hình xác mơ tả hành vi 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 Trong phương pháp thứ nhất, 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ính tương thích mơ hình ứng viên với thành phần phần mềm Việc cài đặt giải thuật học thông qua tương tác với đối tượng Teacher khó khăn Hơn nữa, với mơ hình ứng viên đưa phải thực kiểm tra tính tương thích với thành phần phần mềm thơng qua giải thuật Vasilevskii – Chow nên độ phức tạp lớn Trong luận văn, cài đặt công cụ xây dựng mơ hình thành phần phần mềm sử dụng thuật tốn Thompson (gọi GenModelTool) Hình 4.1 kiến trúc GenModelTool Đầu vào công cụ bảng chữ gồm tập tất hành động quan sát thành phần phần mềm tập dẫn xuất chuỗi hành động thực thành phần GenModelTool trả ơtơmát hữu hạn đốn nhận tập dẫn xuất TIEU LUAN MOI download : skknchat@gmail.com 42 Alphabet GenModelTool Executable Experiments Set Finite State Automata as Accurate Model Hình 4.1: Kiến trúc cơng cụ sinh mơ hình Cơng cụ xây dựng ngôn ngữ java với đầu vào lưu file input.txt Dòng lưu bảng chữ tập tất hành động quan sát thành phần phần mềm C Các dòng dòng ghi dẫn xuất chuỗi hành động thực C từ trạng thái khởi tạo Hình 4.2 giao diện cơng cụ ví dụ minh họa Sau mở tệp input.txt, liệu đầu vào hiển thị tab input hình Lựa chọn chức Generate, chương trình gọi hàm makeDFA, trình bày giải thuật 3.5, xây dựng ơtơmát hữu hạn đốn nhận tập dẫn xuất đầu vào Khi đó, đầu cơng cụ biểu diễn tab output Lựa chọn chức lưu tệp, chương trình lưu ơtơmát hữu hạn thu tệp output.txt Hình 4.2: Giao diện GenModelTool TIEU LUAN MOI download : skknchat@gmail.com 43 4.2 Thực nghiệm Giả sử thành phần phần mềm C Sender component với giả thiết sau:  Tập hành vi quan sát C {in, send, ack},  Tập dẫn xuất thực C {in, in send, in send ack} Hãy xây dựng mơ hình mơ tả xác hành vi thành phần Sender Input: Alphabet = {in, send, ack } Tập dẫn xuất L = {in, in send, in send ack} Output: Ơtơmát hữu hạn M = (Q, Σ, , q0, F) đoán nhận tập dẫn xuất L Thử nghiệm với GenModelTool: Trước tiên, liệu đầu vào đọc từ tệp input.txt vào tab input công cụ GenModelTool mơ tả hình 4.3 Khi thực chức generate, chương trình gọi giải thuật makeDFA để xây dựng ơtơmát đốn nhận L theo bước sau: Hình 4.3: Đầu vào cho cơng cụ GenModelTool TIEU LUAN MOI download : skknchat@gmail.com 44 Xây dựng biểu thức quy tương đương ngôn ngữ L: in in send in send ack Với biểu thức quy thành phần, giải thuật xây dựng otomat hữu hạn tương đương sau:  Với biểu thức quy thành phần in, ta xây dựng ôtômát hữu hạn thành phần M1 = (Q1, 1, 1, q0 , F1), đó: Q1 = {q1, q2}, = {in}, = {(q1, in, q2)}, q0 = q1, F1 = {q2}  Với biểu thức quy thành phần in send, ta xây dựng ôtômát hữu hạn thành phần M2 = (Q2, 2, 2, q0 , F2), đó: Q2 = {q3, q4, q5}, = {in, send}, = {(q3, in, q4), (q4, send, q5)}, q0 = q3, F2 = {q5}  Với biểu thức quy thành phần in send ack, ta xây dựng ôtômát hữu hạn thành phần M3 = (Q3, 3, 3, q0 , F3), đó: Q3 = {q6, q7, q8, q9}, = {in, send, ack}, = {(q6, in, q7), (q7, send, q8), (q8, ack, q9)}, q0 = q6, F3 = {q9} Hợp ôtômát thành phần ta thu ôtômát hữu hạn M = (Q, , , q0, F) tương đương với biểu thức quy biểu diễn ngôn ngữ L sau:  Ta thêm trạng thái để làm trạng thái vào hay trạng thái khởi tạo ôtômát M, ký hiệu q0 Khi đó, tập trạng thái Q xây dựng cách hợp tập trạng thái ôtômát thành phần thu được: Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9}  Tập hành vi xây dựng cách hợp tập thu được: = {in, send, ack}  Tập quy tắc đoán nhận xây dựng cách hợp tập quy tắc ôtômát thành phần {(q0, , q01), (q0, , q02), (q0, , q03)} được: = {(q0, , q01), (q0, , q02), (q0, , q03), (q1, in, q2), (q3, in, q4), (q4, send, q5), (q6, in, q7), (q7, send, q8), (q8, ack, q9)} TIEU LUAN MOI download : skknchat@gmail.com 45  Tập trạng thái chấp nhận (trạng thái kết) xây dựng cách hợp trạng thái kết M1, M2, M3 được: F = {q2, q5, q9} Để đơn giản hóa, loại bỏ quy tắc tắc ôtômát sau: tập quy Với quy tắc (qi, , qj) ta loại bỏ trạng thái qj đồng thời thay quy tắc qj (qj, , qk) quy tắc (qi, , qk) với Σ Khi đó, ta ôtômát M = (Q, , , q0, F) tương đương hình 4.4, đó:  Q = {q0, q1, q2, q3, q4, q5, q6 },  = {in, send, ack},  = {(q0, in, q1), (q1, send, q2), (q2, ack, q3), (q0, in, q4), (q4, send, q5), (q0, in, q6)},  F = {q3, q5, q6},  Trạng thái khởi tạo q0 Hình 4.4: Một Ơtơmát đầu cơng cụ GenModelTool 4.3 Ý nghĩa cơng cụ xây dựng mơ hình Trong hai đề xuất đưa chương 3, đề xuất thứ phương pháp xây dựng mơ hình sử dụng thuật toán học L* Phương pháp giải pháp tồn diện cho việc xây dựng mơ hình thành phần phần mềm Mơ hình thu ôtômát tối tiểu mô tả xác hành vi thành phần TIEU LUAN MOI download : skknchat@gmail.com 46 Tuy nhiên, phương pháp chưa cài đặt khó khăn trình bày Đề xuất thứ hai phương pháp xây dựng mơ hình sử dụng thuật toán Thompson Trong đề xuất này, chúng tơi cài đặt cơng cụ GenModelTool sinh mơ hình thành phần phần mềm cách tự động Công cụ có ý nghĩa quan trọng việc mơ hình hóa tự động thành phần phần mềm, sở cho việc áp dụng kỹ thuật kiểm chứng mơ hình kiểm thử tự động nhằm nâng cao chất lượng phần mềm Hơn nữa, công cụ GenModelTool cịn có ý nghĩa quan trọng khác cung cấp đầu vào cho công cụ sinh giả định AGTool [9] Trong phương pháp kiểm chứng đảm bảo giả định [10], thay tiến hành kiểm chứng tồn hệ thống phân rã thành thành phần nhỏ kiểm chứng riêng biệt thành phần Khơng tính tổng qt, xét hệ thống gồm hai thành phần M1 M2 Mục đích phương pháp kiểm chứng xem hệ thống có thỏa mãn thuộc tính p hay không mà không cần ghép nối hai thành phần M1 M2 Để làm điều đó, cần sinh giả thiết A(p) cho A(p) phải đủ mạnh để M1 thỏa mãn thuộc tính p, đủ yếu để M2 thỏa mãn AGTool công cụ hỗ trợ cho việc sinh giả định A(p) Đầu vào công cụ mơ hình thành phần phần mềm thuộc tính yêu cầu kiểm chứng p Trong trường hợp này, AGTool nhận đầu vào hệ chuyển trạng thái gán nhãn (Labeled Transition System – LTS) M1, LTS M2 LTS p Mỗi LTS biểu diễn dãy quy tắc chuyển trạng thái (transitions) trạng thái khởi tạo (initial state) theo định dạng (transition, transition,…, transition; initial state), transition = (state, action, state) Giả sử M1 LTS Input, M2 LTS Output ví dụ 2.4 giả thiết p LTS p ví dụ 2.5 Khi đó, đầu vào AGTool tệp có định dạng sau:  (0,in,1),(1,send,2),(2,ack,0);0  (0,send,1),(1,send,1),(1,out,2),(2,ack,0);0  (0,in,1),(1,out,0);0 Như vậy, từ đầu công cụ GenModelTool ơtơmát hữu hạn, chuyển thành LTS tương ứng làm đầu vào cho công cụ AGTool TIEU LUAN MOI download : skknchat@gmail.com 47 KẾT LUẬN Trong ngữ cảnh phát triển phần mềm hướng thành phần, thành phần phần mềm thường coi hộp đen, phát triển bên thứ ba nên thường mã nguồn, hành vi trạng thái chúng Chúng ta cần xây dựng mơ hình thành phần phần mềm, mơ tả hành vi tương ứng để làm sở cho việc kiểm chứng mơ hình kiểm thử tự động Trong luận văn, đề xuất hai phương pháp xây dựng mơ hình thành phần phần mềm Phương pháp thứ xây dựng mơ hình sử dụng giải thuật học L*, giải thuật sử dụng phương pháp học để thu mơ hình tương ứng thơng qua việc tương tác với đối tượng Teacher Ở bước lặp, giải thuật xây dựng mơ hình ứng viên, truy vấn tới Teacher để kiểm tra mô hình ứng viên có tương thích với thành phần phần mềm C khơng Nếu tương thích giải thuật dừng ta thu mơ hình tương thích mơ tả hành vi thành phần C Trái lại Teacher trả phản ví dụ phản ảnh khác C mơ hình ứng viên Giải thuật tiếp tục tiến hành cập nhật lại mô hình ứng viên dựa vào phản ví dụ trả Teacher Giải thuật tìm mơ hình xác tối ưu mơ hành vi thành phần C nhiên việc cài đặt gặp nhiều khó khăn, độ phức tạp lớn thành phần Teacher khó cài đặt Phương pháp thứ hai xây dựng mơ hình mơ tả xác hành vi thành phần phần mềm sử dụng thuật tốn Thompson Ý tưởng phương pháp xây dựng biểu thức quy sinh ngơn ngữ L(C), sau xây dựng ơtơmát hữu hạn mơ hình mơ tả hành vi C tương đương với biểu thức quy Về thực nghiệm, chúng tơi cài đặt cơng cụ GenModelTool sinh mơ hình tự động cho phương pháp xây dựng mơ hình sử dụng thuật tốn Thompson 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 khơng sở cho việc áp dụng kỹ thuật kiểm chứng mơ hình kiểm thử tự động mà cịn đầu vào cho cơng cụ AGTool, cơng cụ sinh giả định hỗ trợ cho kỹ thuật kiểm chứng đảm bảo giả định TIEU LUAN MOI download : skknchat@gmail.com 48 Hướng phát triển 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, đề xuất hai giải pháp cho việc xây dựng mơ hình mơ tả xác hành vi thành phần phần mềm Giải pháp thứ xây dựng mơ hình dựa giải thuật học L* để thu mơ hình tối ưu tương ứng với thành phần phần mềm C, nhiên giải pháp chưa cài đặt thành chương trình Giải pháp thứ hai xây dựng mơ hình tương ứng với thành phần phần mềm C dựa giải thuật Thompson, giải pháp cài đặt để thu mơ hình tương ứng với thành phần phần mềm C cách tự động, nhiên mơ hình chưa phải mơ hình tối ưu, việc tối ưu mơ hình thu từ giải thuật dựa Thompson đề xuất giải thuật 3.6, 3.7 3.8 Hướng nghiên cứu cài đặt giải thuật tối ưu hóa mơ hình thu từ giải pháp hai nghiên cứu khả cài đặt giải thuật học L* để sinh mô hình xác thành phần phần mềm C cách tự động TIEU LUAN MOI download : skknchat@gmail.com 49 TÀI LIỆU THAM KHẢO Tiếng việt [1] Nguyễn Văn Ba (2002), Ngơn ngữ hình thức, NXB Khoa học kỹ thuật, Hà Nội [2] Đồn Văn Ban (2007), Ơtơmát ngơn ngữ hình thức, Đại học Thái Ngun [3] Đỗ Đức Giáo (2004), Toán rời rạc, NXB đại học QGHN [4] Đặng Huy Ruận (2002), Lý thuyết ngơn ngữ hình thức ôtômát, NXB Đại học QGHN Tiếng Anh [5] A.Nerode (1958), "Linear Automaton Transformations", Proc of the American Mathemat-ical Society, no 9, pp 541 – 544 [6] D.Angluin (Nov.1987), "Learning regular set from queries and counter examples", Information and Computation [7] E M Clarke, O Grumberg, and D Peled (1999), "Model Checking", The MIT Press [8] M.P.Vasilevskii (Aug 1973), "Failure Diagnosis of Automata", Kibernetika, no 4, pp 98 – 108 [9] P.N.Hung (2009), An assumption regeneration tool for modular verification of evolving component–based software, http://www.coltech.vnu.edu.vn/~hungpn/AGTool/ [10] P.N.Hung (2009), Assume-Guarantee verification of Evolving component based software [11] Ken Thompson (June 1968), "Regular expression search algorithm", Communications of the ACM 11(6), pp 419–422, http://doi.acm.org/10.1145/363347.363387 [12] R.L.Rivest and R.E.Schapire (Apr 1993), "Inference of finite automata using homing sequences", Information and Computation [13] T S Chow (May 1978), "Testing software design modeled by finitestate machine", IEEE Transactions on Software Engineering, vol 4, no 3, pp 178–187 TIEU LUAN MOI download : skknchat@gmail.com ... hình tự động? ?? cho nghiên cứu Đề tài nhằm mục đích nghiên cứu phương pháp xây dựng mơ hình tự động mơ tả xác hành vi hệ thống, làm sở cho việc áp dụng kỹ thuật kiểm chứng mô hình kiểm thử tự động. .. nghiên cứu phương pháp xây dựng tự động mơ hình mơ tả xác hành vi thành phần phần mềm Trong chương này, đề xuất hai giải pháp cho việc xây dựng mơ hình thành phần phần mềm Giải pháp thứ xây dựng. .. Bài tốn đặt cần xây dựng mơ hình mơ tả xác hành vi thành phần phần mềm Dưới hai đề xuất phương pháp xây dựng mơ hình thành phần phần mềm Phương pháp thứ phương pháp xây dựng mơ hình sử dụng thuật

Ngày đăng: 27/06/2022, 09:12

Hình ảnh liên quan

Hình 2.1: Một hệ thống chuyển trạng thái được gán nhãn. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.1.

Một hệ thống chuyển trạng thái được gán nhãn Xem tại trang 8 của tài liệu.
Hình 2.2– a: Hệ chuyển trạng thái được gán nhãn không đơn định. Hình  2.2–a    mô  tả  một  hệ  chuyển  trạng  thái  được  gán  nhãn  L  =  ( Q,    ,   , q 0),trong đó: Q = {q0, q1, q2},      = {a, b, c},  q0  là trạng thái khởi  đầu, và    = {(q 0, a, q1 - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.2.

– a: Hệ chuyển trạng thái được gán nhãn không đơn định. Hình 2.2–a mô tả một hệ chuyển trạng thái được gán nhãn L = ( Q, , , q 0),trong đó: Q = {q0, q1, q2}, = {a, b, c}, q0 là trạng thái khởi đầu, và = {(q 0, a, q1 Xem tại trang 9 của tài liệu.
Hình 2.2– b: Hệ chuyển trạng thái được gán nhãn đơn định. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.2.

– b: Hệ chuyển trạng thái được gán nhãn đơn định Xem tại trang 10 của tài liệu.
Hình 2.4: Ghép nối song song hai hệ chuyển trạng thái được gán nhãn. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.4.

Ghép nối song song hai hệ chuyển trạng thái được gán nhãn Xem tại trang 13 của tài liệu.
Hình 2.5: LTS của thuộc tính p và LTS lỗi tương ứng của p. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.5.

LTS của thuộc tính p và LTS lỗi tương ứng của p Xem tại trang 14 của tài liệu.
Hình 2.6: Xây dựng LTS ghép nối song song Input || Output ||perr.Input || Output  - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.6.

Xây dựng LTS ghép nối song song Input || Output ||perr.Input || Output Xem tại trang 15 của tài liệu.
Hình 2.7: Minh họa ôtômát M được mô tả ở trên. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.7.

Minh họa ôtômát M được mô tả ở trên Xem tại trang 18 của tài liệu.
Hình 2.8: Phương pháp chuyển một ôtômát M thành LTS L. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 2.8.

Phương pháp chuyển một ôtômát M thành LTS L Xem tại trang 19 của tài liệu.
3.1.1 Phương pháp xây dựng mô hình sử dụng thuật toán L* - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

3.1.1.

Phương pháp xây dựng mô hình sử dụng thuật toán L* Xem tại trang 23 của tài liệu.
Định nghĩa 3.1: Bảng quan sát (S, E, T) được gọi là bảng đóng nếu nếu S,      Σ thì   ′   S,      E sao cho T(   ) = T( ′e) - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

nh.

nghĩa 3.1: Bảng quan sát (S, E, T) được gọi là bảng đóng nếu nếu S, Σ thì ′ S, E sao cho T( ) = T( ′e) Xem tại trang 24 của tài liệu.
Giải thuật 3.1: L* học một mô hình chính xá cM của C. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

i.

ải thuật 3.1: L* học một mô hình chính xá cM của C Xem tại trang 26 của tài liệu.
gán nhãn an toàn LTS Mi như một mô hình ứng viên của C. Hình 3.4 mô tả sơ đồ thuật toán VC kiểm tra sự tương thích giữa M i và C - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

g.

án nhãn an toàn LTS Mi như một mô hình ứng viên của C. Hình 3.4 mô tả sơ đồ thuật toán VC kiểm tra sự tương thích giữa M i và C Xem tại trang 27 của tài liệu.
3.2 Phương pháp xây dựng mô hình sử dụng thuật toán Thompson  - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

3.2.

Phương pháp xây dựng mô hình sử dụng thuật toán Thompson Xem tại trang 28 của tài liệu.
Hình 3.5–c: Ôtômát thành phần. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 3.5.

–c: Ôtômát thành phần Xem tại trang 34 của tài liệu.
Hình 3.6–b mô tả cách thức xây dựng ôtômát thành phần đoán nhận biểu  thức  chính  quy  ab  từ  các  ôtômát  cơ  sở  được  mô  tả  trong  hình  3.6–a - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 3.6.

–b mô tả cách thức xây dựng ôtômát thành phần đoán nhận biểu thức chính quy ab từ các ôtômát cơ sở được mô tả trong hình 3.6–a Xem tại trang 37 của tài liệu.
Hình 3.6–a: Ôtômát thành phần. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 3.6.

–a: Ôtômát thành phần Xem tại trang 37 của tài liệu.
Hình 3.6–d: Ôtômát đoán nhận tập dẫn xuất đã cho. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 3.6.

–d: Ôtômát đoán nhận tập dẫn xuất đã cho Xem tại trang 38 của tài liệu.
Ví dụ 3.3: Cho ôtômát như trên hình 3.6-d thu được từ ví dụ 3.2. Hãy tối tiểu hóa ôtômát trên - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

d.

ụ 3.3: Cho ôtômát như trên hình 3.6-d thu được từ ví dụ 3.2. Hãy tối tiểu hóa ôtômát trên Xem tại trang 42 của tài liệu.
Hình 3.7–b: Ôtômát đơn định. 3)Tối tiểu hóa  (Thuật toán 3.8)  - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 3.7.

–b: Ôtômát đơn định. 3)Tối tiểu hóa (Thuật toán 3.8) Xem tại trang 43 của tài liệu.
Hình 4.2: Giao diện GenModelTool.GenModelTool  - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 4.2.

Giao diện GenModelTool.GenModelTool Xem tại trang 46 của tài liệu.
Hình 4.1: Kiến trúc công cụ sinh mô hình. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 4.1.

Kiến trúc công cụ sinh mô hình Xem tại trang 46 của tài liệu.
Hình 4.3: Đầu vào cho công cụ GenModelTool. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 4.3.

Đầu vào cho công cụ GenModelTool Xem tại trang 47 của tài liệu.
Hình 4.4: Một Ôtômát đầu ra của công cụ GenModelTool. - (LUẬN văn THẠC sĩ) nghiên cứu phương pháp xây dựng mô hình tự động

Hình 4.4.

Một Ôtômát đầu ra của công cụ GenModelTool Xem tại trang 49 của tài liệu.

Mục lục

  • DANH MỤC HÌNH VẼ

  • DANH MỤC THUẬT TOÁN

  • 2.1 Hệ thống chuyển trạng thái được gán nhãn

  • 2.2 Phép ghép nối song song

  • 2.4 Thành phần phần mềm

  • 2.5 Ôtômát hữu hạn trạng thái

  • 3.2.2 Xây dựng mô hình

  • 3.2.3 Tối ưu hóa mô hình

  • 3.2.4 Độ phức tạp tính toán

  • 4.1 Công cụ xây dựng mô hình thành phần phần mềm

  • 4.3 Ý nghĩa công cụ xây dựng mô hình

  • TÀI LIỆU THAM KHẢO

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

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

Tài liệu liên quan