Nghiên cứu phương pháp xây dựng mô hình tự động : Luận văn ThS. Công nghệ thông tin: 60 48 10

53 21 0
Nghiên cứu phương pháp xây dựng mô hình tự động : Luận văn ThS. Công nghệ thông tin: 60 48 10

Đ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 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 toá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 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 đoá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 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 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 kiểm thử tự động mà cịn 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 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ó ′ 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 Đị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 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 send ack q2 Hình 2.3: Hệ chuyển trạng thái gán nhãn , , q0) 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, 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 toá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 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 replace by ([q1], a, [q2]) return M′ k+1 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 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, 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 tồn q trình xây dựng mơ hình thành phần phần mềm C O(maxLength*nmaxLength) 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 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 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 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)} 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 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 tốn Thompson Trong đề xuất này, 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 quát, 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 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 toá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, 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 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 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 Nguyên [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

Ngày đăng: 23/09/2020, 22:20

Mục lục

  • Mục lục

  • DANH MỤC HÌNH VẼ

  • DANH MỤC THUẬT TOÁN

  • Chương 1: Giới thiệu

  • 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.1.2 Giải thuật Vasilevskii-Chow

  • 3.2.1 Sinh dẫn xuất

  • 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

  • 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

  • 4.2 Thực nghiệm

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

  • KẾT LUẬN

  • TÀI LIỆU THAM KHẢO

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

Tài liệu liên quan