1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ Công nghệ thông tin: Đặc tả và kiểm chứng từng phần cho phần mềm dựa trên biểu đồ tuần tự

149 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

LÊ CHÍ LUẬN

LUAN AN TIEN Si NGANH CONG NGHE THONG TIN

Hà Nội — 2018

Trang 2

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Trang 3

Mục lục

Chương 1 GIỚI THIỆU - 1

1.1 Đặt vấn dé cece cree ence een nhu ng kh ng vn va 11.2 Các đóng góp chính của luận ấn bì

1.3 B6 cục của luận ấn 222v 6

Chương 2 KIÊN THUC NEN TẢNG 8

2.1 Mô hình của thành phần phần mềm 8

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

2.1.2 Vet ccc cence cence tee beet e bene k vn k vs 11

2.1.3 Phép ghép nối song song - - - 12

2.1.4 LTS an toàn, thuộc tính an toàn, tính thỏa mãn và LTS lỗi 13

2.2 Ôtômát hữu hạn trạng thái đơn định 152.3 OtOmat VàO/Tâ cece cece tee e eee cette teen enna 21

2.4 Kiểm chứng giả định - đảm bao (Assume - Guarentee Verification) 22

2.4.1 Lý thuyết giả định cc c2 teen eee 22

2.4.2 Bộ công cụ LTSA (Labelled Transition Systems Analyzer) 23

2.5 Kết Wan ccc cece eee e eee e beeen nh nà va 24

Chương 3 PHƯƠNG PHÁP SINH MO HÌNH VA KIEM CHUNG

TÍNH DUNG DAN THIET KE CHO CAC PHAN MEM DUA TREN

THÀNH PHAN 2.0.0.0 ccccccecc cece teense cease enseeeneeenas 25

3.1 Giới thiệu Q0 Q Q n n ng een ee ete x 25

3.2 Các nghiên cứu liên quan - ch 27

3.3 Phân tích biểu đồ tuần tự 293.3.1 Định dạng của đầu vào biểu đồ tuần tự 303.3.2 Sinh biểu thức chính quy cho phân đoạn Option 343.3.3 Sinh biểu thức chính quy cho phân đoạn Break/Critical/Strict 353.3.4 Sinh biểu thức chính quy cho phân đoạn Alternative 353.3.5 Sinh biểu thức chính quy cho phân đoạn Loop 39

Trang 4

3.3.6 Sinh biểu thức chính quy cho phân đoạn Consider 36

3.3.7 Sinh biểu thức chính quy cho phân đoạn Ïgnore 37

3.3.8 Sinh biểu thức chính quy cho phan đoạn Parallel và Sequencing 373.3.9 Sinh biểu thức chính quy cho biểu đồ tuần tự 38

3.4 Sinh mơ hình cho thành phần sử dụng thuật tốn CNNFA 39

3.4.1 Tổng quan về CNNEA e nnn 393.4.2 Sinh biểu diễn CNNFA cho các biểu thức chính quy thành phan 403.4.3 Phương pháp duyệt biểu thức chính quy 43

3.4.4 Sinh các mơ hình cho các thành phần 43

3.4.5 Tối wu hĩa mơ hình - . - 45

3.4.6 Ví dụ sinh mơ hình cho thành phần phần mềm bằng thuật tốnCNNEA nen ent ng ng kh kg ng vn và 483.5 Kiểm chứng tính đúng đắn của biểu đồ tuần tự 53

4.1 Giới thiỆU Q0 ng nh vn ene e eee x xà 654.2 Các nghiên cứu liên quan - -cccccccssS 674.3 Phân tích biểu đồ tuần tự thành các khối đơn 68

4.3.1 Định dạng của đầu vào biểu đồ tuần tự 68

4.3.2 Phân tích biểu đồ tuần tự thành các khối đơn 70

4.4 Sinh mơ hình từ các khối đơn của biểu đồ tuần tự 73

4.4.1 Thuật tốn xác định tập các luật chuyển 5 cho ơtơmát vao/ra từ khốiđơn khơng chứa phân đoạn nào 74

4.4.2 Thuật tốn xác định tập các luật chuyển 6 cho ơtơmát vao/ra từ khối

đơn chỉ chứa phân đoạn ĨpfiØn ccccccSVS 74

4.4.3 Thuật tốn xác định tập các luật chuyển 6 cho ơtơmát vao/ra từ khối

đơn chỉ chứa phân đoạn AlfernaliU€ ch kh va 76

4.4.4 Thuật tốn xác định tập các luật chuyển 6 cho ơtơmát vào/ra từ khối

đơn chỉ chứa phân đoạn ÙoØ0Đ ccc Sa 77

4.4.5 Thuật tốn xác định tập các luật chuyển 6 cho ơtơmát vào/ra từ khối

đơn chỉ chứa phân đoạn Ưreak c cv 78

ii

Trang 5

4.4.6 Thuật toán xác định tập các luật chuyển 6 cho ôtômát vao/ra từ khối

đơn chỉ chứa phân đoạn Parallel cà 79

4.4.7 Thuật toán xác định tập các luật chuyển 6 cho ôtômát vao/ra từ khối

đơn chỉ chứa phân đoạn 6Si7iCE c2 Sa 80

4.4.8 Thuật toán xác định tập các luật chuyển 6 cho ôtômát vào/ra từ khối

đơn chỉ chứa phân đoạn r?fieal cà Sa 81

4.4.9 Thuật toán xác định tập các luật chuyển ð cho ôtômát vào /ra từ khối

đơn chỉ chứa phân đoạn Consiđer cẶcccScc 81

4.4.10 Thuật toán xác định tập các luật chuyển 6 cho ôtômát vào/ra từ

khối đơn chỉ chứa phân đoạn Ïgnore 82

4.5 Xây dựng ôtômát vào/ra cho đối tượng từ biểu đồ tuần tự 83

4.6 Sinh đặc tả Promela từ Ôtômát vào/ra 86

4.7 Công cụ hỗ trợ và thực nghiệm - 90

4.7.1 Kiến trúc công GỤ - c2 2222262221221 eens 904.7.2 Thực nghiệm -ccccS c2 914.8 Thao lan occ cece cece cece eee eee e bebe bene eee xxx v2 944.0 Kết luận cece cece cence eben ene beeteteteteeenenens 94Chương 5 MOT SỐ CẢI TIEN PHƯƠNG PHAP KIEM CHUNGGIA ĐỊNH - DAM BẢO 96

5.1 Giới thi6u one ng ene ng kg nee ens 965.2 Các nghiên cứu liên quan 1 cee eens 985.3 Phương pháp sinh gia định sử dung thuật toán L* 100

5.3.1 Thuật toán L” HQ Q Q Q Q Q n n ng ng n1 v2 1005.3.2 Sinh giả định sử dụng thuật toán Ƒ* 101

5.3.3 Cập nhật bang quan sất c cà 1025.4 Cải tiến phương pháp sinh giả định sử dụng thuật toán L* 102

5.4.1 Một ví dụ về lặp vô hạn 102

5.4.2 Cải tiến về phân tích phan ví dụ 104

5.4.3 Cải tiến giảm số truy vấn thành viên 107

5.4.4 Công cụ hỗ trợ và thực nghiệm 107

5.4.5 Thao luận ng HH nh sa 1085.5 Phương pháp sinh giả định nhỏ nhất cục bộ 109

5.5.1 Kỹ thuật cải tiến cho trả lời truy vấn thành viên 109

5.5.2 Sinh giả định nhỏ nhất cục bộ -: 110

5.5.3 Cải tiến kỹ thuật cập nhật cho bảng quan sát 111

5.5.4 Phân tích kết quả truy vẫn ứng viên 114

5.5.5 Ví dụ minh họa ccSSẶSSSSx 1155.5.6 Công cụ hỗ trợ và thực nghiệm 117

11

Trang 6

5.5.7 Thảo luận HH ng sa 118

5.6 Kết luận 0Q 2Q ence beeen ene nu eees 119

Chương 6 KẾT LUẬN cccccccằ cà 121

6.1 Các kết quả đạt được c c2 c2 ees 121

6.2 Những hạn chế và hướng nghiên cứu tiếp theo 122

1V

Trang 7

Danh sách hình vẽ

Các đóng góp chính của luận ấn 6

Một hệ thống chuyển trạng thái được gn nhãn 9

Hệ chuyển trạng thái được gan nhãn không đơn định 10

Hệ chuyển trạng thái được gan nhãn đơn định 11

Ghép nối song song hai UT§ 13

LTS của thuộc tính p và LTS lỗi tương Ứng 14

Xây dựng LTS ghép nối song song Input||Output||perr - - - 1

Minh họa ôtômát M được mô tả ở Ví dụ 2.8 17

Phương pháp chuyển một ôtômát M thành LTS M' 18

Biểu diễn của biểu đồ tuần tự bởi tệp XML 30

Biểu đồ tuần tự của thành phần M¡ trong hệ thống Mod2 31

Biểu đồ tuần tự của thành phần M2 trong hệ thống Mod2 32

Tép XML sau khi chuẩn hóa mô tả dit liệu của biểu đồ tuần tựHinh LH eee 34Biểu diễn CNNFA của ôtômát đuôi Mix thành phan J|K theocông thỨc 3.3 0 00.000 ng n k k k k va 42Biểu diễn CNNFA của ôtômát đuôi M7, thành phần J.K theocông thức 3Ä.4 0000000 va 42Biểu diễn CNNFA của ôtômát đuôi Mf thành phần J* theo côngthite 5 1 aằ na 43Ôtômát đuôi dang nén theo thuật toán CNNFA của thành phầnM, trong hệ thống Mod2 cố 54Ôtômát khong đơn định theo thuật toán CNNFA 55

Ôtômát tối thiểu cuối cùng sau khi đã tối thiểu hóa 55

LTS [cex] được tao ra từ phan ví dụ cex 56

Quá trình sinh giả định sử dụng thuật toán 7* 56

Kiến trúc công cụ sinh mô hình và kiểm chứng tính đúng đắnthiết kế cho các phần mềm dựa trên thành phan 58

Biểu diễn của biểu đồ tuần tự bởi tệp XML 69

Biểu đồ tuần tự của hệ thống đặt vé 70

Dinh dạng XML của biểu đồ tuần tự 72

Trang 8

Kiến trúc công cu sinh biểu diễn PROMELA và quy trình kiểm

Tương tác giữa Learner va Teacher trong quá trình sinh giả định 100

Kiểm tra tính thỏa mãn của mỗi ứng viên tại lần lặp thứ¿ 102

Cho hệ thống M = Mj||Mz và thuộc tínhp 103Các ứng viên tương ứng cho T1, To, T3, và T1 105

Mối quan hệ giữa L(A) và L(Awy) co 109Hệ thống minh họa SỐ SẺ 115

Sinh giả định bởi phương pháp trong [25] và phương pháp đề xuất 116

Kiểm chứng Tl5SSTRONGEST = As||Aorg bang LTSA 116Kết quả kiểm chứng ISsTRONGEST = As||Aorg bang LTSA 117

vi

Trang 9

Danh sách bảng

Thời gian sinh các biéu thức chính quy 61

Thời gian sinh mô hinh 2 Ặ Q Q Q Q Q S 62

Kết quả sinh giả định QC cv 62Biểu diễn các thành phần của EDTFA trong PROMELA 87

So sánh kết quả đề xuất va kết qua nghiên cứu trong [90] 92So sánh kết quả của công cụ đề xuất và phương pháp trong [90] 93

Kết quả thực nghiệm với một số biểu đồ tuần tự 93

Bang quan sát 7,7,7», và T¡ trong khi kiểm chứng M 104

Môi trường thực nghiệm Ặ Q Q So 107

Kết quả thực nghiệm S2 108

Môi trường thực nghiệm 2 Ặ Q Q Q Q c 117

Kết quả thực nghiệm 2 S Q 118

vii

Trang 10

cex Counter Example Phan vi du

CNNFA Compressed NNFA Tên gọi của một phương

pháp chuyển biểu thức chính

quy về ôtômát hữu hạn

không đơn định

CP List Check Point List Danh sách điểm kiểm soát

DEA Deterministic Finite State Au- | Ôtômát hữu hạn trang thái

FA Finite State Automata Ôtômát hữu han trạng thái

FSP Finite State Process Tiến trình hữu han trạngthái

1/O Au- | Input/ Output Automata Otomat vao/ra

LTL Linear Temporal Logic Logic thời gian tuyến tính

LTS Labeled Transition System Hệ thống chuyển trạng thái

được gán nhãn

LISA Labelled Transition Systems | Công cụ hỗ trợ kiểm chứngAnalyzer với đặc tả là hệ thống chuyển

trạng thái được gán nhãn

MQ Result | Membership Query Result Kết qua truy vấn thành viên

MYNNFA McNaughton/Yamada NNFA_ | Tên gọi của một loại ôtômát

hữu hạn không đơn định

theo McNaughton và

nas Non-Accepting States Cac trang thai khong két

viii

Trang 11

Giai nghia -Tam dich

Ôtômát hữu han khong don

NNFA Normal Nondeterministic Fi- | Tên gọi của một loại 6t6matnite Automata hữu hạn không đơn định

OT Observation Table Bang quan sat

PML Process Meta Language or Pro- | Ngon ngữ kiểm chứng mô

tocol Meta Language hinh do Gerard J Holzmanndé xuat

SPIN Simple Promela Interpreter Công cu kiểm chứng tinh

đúng đắn của mô hình phầnmềm

UFSM Unknown Finite State Machine | Máy hữu han trạng thai

không xác định

UML Unified Modeling Language Ngôn ngữ mô hình hóa

thống nhất

UNSAT Unsatisfiable Không thỏa mãn

XML eXtensible Markup Language | Ngôn ngữ đánh dấu mở rộng

ix

Trang 12

Lời cam đoan

Tôi xin cam đoan day là công trình nghiên cứu do tôi thực hiện dưới sự hướng

dẫn của PGS TS Phạm Ngọc Hùng và PGS TS Hồ Si Dam tại bộ môn Côngnghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ, Đạihọc Quốc gia Hà Nội Các số liệu và kết quả trình bày trong luận án là trungthực, chưa được công bố bởi bất kỳ tác giả nào hay ở bất kỳ công trình nào

Tác giả

Trang 13

Toi xin chân thành cảm ơn các thay cô giáo khoa Công nghệ thông tin, trường

Đại học Công nghệ, Dại học Quốc Gia Hà Nội, đặc biệt là các Thầy Cô trong

Bộ môn Công nghệ Phần mềm đã tận tình đào tạo, cung cấp cho tôi những kiến

thức vô cùng quý giá, đã tạo điều kiện tốt nhất cho tôi về môi trường làm việctrong suốt quá trình học tập, nghiên cứu tại Trường.

Đồng thời tôi xin chân thành cảm ơn các đồng nghiệp trong khoa Công nghệ

thông tin, trường Dại học Công nghệ Giao thông vận tải đã tạo mọi điều kiện,bồ trí thời gian tốt nhất dành cho tôi trong suốt quá trình làm nghiên cứu sinh.Cuối cùng, tôi xin chân thành cẩm ơn những người than trong gia đình cùng

toàn thể bạn bè đã luôn giúp đỡ, động viên tôi những lúc gặp phải khó khăn

trong suốt quá trình học tập và nghiên cứu.

xi

Trang 14

Tóm tắt

Luận án đề xuất một số phương pháp hỗ trợ sinh tự động mô hình đặc tả

hành vi của thiết kế phần mềm dựa trên thành phần dưới dạng biểu đồ tuần tựUML 2.0 và kiểm chứng tính đúng đắn của các thiết kế này một cách hiệu quả.

Các nghiên cứu của luận án hướng đến giải quyết các khó khăn trong việc sinh

mô hình một cách tự động và hướng đến giải quyết bài toán bùng nổ không giantrạng thái trong kiểm chứng mô hình Cụ thể luận án đã đạt được ba kết quả

chính như sau.

Luận án đã đề xuất một phương pháp hoàn chỉnh nhằm tự động sinh mô hình

và kiểm chứng từng phần cho các thiết kế phần mềm được biểu diễn bằng biểuđồ tuần tự UML 2.0 Ý tưởng chính của phương pháp này là tự động sinh mô

hình đặc tả hành vi của các biểu đồ tuần tự biểu diễn dưới dạng các máy hữu

hạn trạng thái được gan nhãn (Labeled Transition Systems - LTSs) Các mô

hình này cùng với thuộc tính cần kiểm chứng (chỉ cho các thuộc tính an toàn)sẽ được cung cấp cho phương pháp kiểm chứng giả định - đảm bảo (assume-guarantee verification) nhằm kiểm chứng tính đúng đắn của hệ thống mà không

cần ghép nối các mô hình của các thành phần lại với nhau Bằng cách áp dụng

phương pháp kiểm chứng này, bài toán bùng nổ không gian trạng thái hứa hẹn

được giải quyết Một công cụ hỗ trợ cũng đã được cài đặt và thực nghiệm với

một số ví dụ điển hình nhằm minh chứng cho tính đúng đắn và tính hiệu quả

của phương pháp đề xuất.

Luận án đề xuất một phương pháp sinh mô hình và kiểm chứng tính đúngđắn của cho các biểu đồ tuần tự UML 2.0 Trong phương pháp này, các môhình được biểu diễn dưới dạng các ôtômát vào/ra (I/O automata) ứng với cácđối tượng từ biểu đồ tuần tự UML 2.0 Với phương pháp đặc tả này, chúng takhông làm mất tính hướng đối tượng của thiết kế phần mềm trong các biểu đồtuần tự Nghién cứu này cũng đề xuất một phương pháp chuyển đổi từ đặc tảdưới dạng ôtômát vào/ra sang đặc tả PROMELA để có thể sử dụng bộ công cụSPIN nhằm kiểm chứng tính đúng đắn của hệ thống Với giải pháp này, chúngta có thể kiểm chứng nhiều loại thuộc tính hơn so với việc chỉ hỗ trợ thuộc tính

xii

Trang 15

an toàn như đóng góp đầu tiên của luận án Một công cụ hỗ trợ phương phápđề xuất cũng đã được cài đặt và thực nghiệm với một số hệ thống đơn giản vàthu được kết quả khả quan bước đầu.

Luận án đề xuất hai cải tiến nhằm nâng cao tính hiệu quả của phương pháp

kiểm chứng giả định — dam bảo sử dụng Thuật toán học L* - được biết đến như

là một phương pháp tiềm năng nhằm giải quyết bài toán bùng nổ không gian

trạng thái trong kiểm chứng mô hình Cải tiến thứ nhất tập trung vào việc giảmthiểu các truy van lặp lại và giải pháp lựa chọn hậu tố (suffix) khi xử lý phan

ví dụ trong quá trình học và sinh các ứng cử viên giả định của Thuật toán L*.

Với cải tiến này, tính hiệu quả của phương pháp kiểm chứng giả định — đảm bao

được cải thiện đáng kể Một công cụ hỗ trợ cũng đã được cài đặt và áp dụng chomột số ví dụ điển hình nhằm minh chứng cho tính hiệu quả của những cải tiến

này Cải tiến thứ hai là đề xuất một giải pháp mới nhằm sinh ra các giả định cóngôn ngữ nhỏ nhất cục bộ (giả định nhỏ nhất cục bộ) so với các giả định đượcsinh ra bởi phương pháp hiện tại Các giả định này sẽ hiệu quả hơn trong việc

kiểm chứng lại tính đúng đắn của hệ thống trong tương lai khi một số thành

phần bị tiến hóa.

xiii

Trang 16

Chương 1

GIỚI THIỆU

1.1 Đặt vẫn đề

Phát triển phần mềm dựa trên công nghệ hướng thành phần

(Component-based Software Development - CBSD) đang được quan tâm như là cách tiếp cận

chủ yếu để xây dựng các phần mềm hiện nay Phần mềm dựa trên thành phần

được xây dựng bằng cách ghép nối các thành phần đã có sẵn Các thành phần

này hoặc do công ty tự phát triển trước đó hoặc được cung cấp bởi bên thứ ba.Với cách tiếp cận này, chúng ta có thể giảm đáng kể chi phí và thời gian phattriển trong khi vẫn đảm bảo được chất lượng của phần mềm Tuy nhiên, một

trong những hạn chế lớn nhất của công nghệ hướng thành phần là làm thế nào

để đảm bảo rằng các thành phần sau khi ghép nối với nhau có thể cộng tác để

đạt được mục tiêu của hệ thống - việc đảm bao cơ chế “plug-and-play” Dac biệt,

đối với những ứng dụng yêu cầu chất lượng cao như các hệ thống điều khiển

tên lửa, máy bay, an ninh quốc phòng, v.v thì việc dam bảo tính đúng đắn củathiết kế trước khi thực hiện các pha tiếp theo là bắt buộc Hiện tại, các công

nghệ hỗ trợ phát triển hướng thành phần chỉ cho phép kiểm tra khả năng ghép

nối giữa các thành phần chứ không có cơ chế đảm bảo tính cộng tác của chúng.

Kết quả, các sản phẩm phần mềm hiện nay có chất lượng thấp, không đáp ứng

yêu cầu.

Để giải quyết các nhược điểm của CBSD, hiện nay cùng với chứng minh địnhlý (theorem proving) [36], kiểm chứng mô hình (model checking) [23, 73] được

biết đến như một giải pháp phổ biến để giải quyết vấn đề này Để áp dụng các

phương pháp kiểm chứng mô hình, ta cần phải xây dựng các mô hình đặc tảhành vi của hệ thống cần kiểm chứng [27, 26, 88] Những mô hình này thườngđược biểu diễn bằng các máy hữu hạn trạng thái đơn định Các nghiên cứu hiện

Trang 17

tai hầu hết giả sử các mô hình này đã có và đúng đắn [54, 52, 51] Tuy nhiên,giả thiết này rất khó đáp ứng trong thực tế vì việc xây dựng mô hình cho cácphần mềm là một công việc khó khăn và tiềm an nhiều lỗi Trong thực tế, các

thiết kế biểu diễn bằng UML 2.0 rất phổ biến ở các công ty Nếu như chúng tacó cơ chế chuyển đổi dang đặc tả UML 2.0 sang các máy hữu hạn trạng tháiđơn định thì khả năng ứng dụng sẽ tốt hơn Làm thế nào để kiểm chứng tínhđúng đắn của biểu đồ tuần tự nói riêng và các thiết kế nói chung là vấn đề mở

và chưa có lời giải thỏa đáng.

Giả sử chúng ta đã có các mô hình của các thành phần mô tả chính xác hành

vi của chúng Để áp dụng các phương pháp kiểm chứng mô hình, chúng ta phảichép nối các mô hình này để thu được một mô hình ghép nối duy nhất của hệthống Mô hình sau khi được ghép nối kết hợp với đặc tả thuộc tính cần kiểmtra là dữ liệu vào đối với các công cụ kiểm chứng Tuy nhiên, số lượng trạng tháicủa mô hình ghép nối thường rất lớn nên vấn đề bùng nổ không gian trạng tháicó thể xảy ra khi kiểm chứng các phần mềm có kích thước lớn Khó khăn trongviệc xây dựng mô hình và vấn đề bùng nổ không gian trạng thái được xem là

nguyên nhân chủ yếu cho việc khó áp dụng các phương pháp kiểm chứng mô

hình trong thực tế Kiểm chứng từng phần (modular verification) [30, 62, 65] làgiải pháp hứa hẹn nhằm xử lý sự bùng nổ không gian trạng thái đối với kiểm

chứng mô hình Trong cách tiếp cận này, thay vì kiểm chứng trên toàn bộ mô

hình ghép nối, chúng ta chỉ cần kiểm chứng trên từng mô hình của mỗi thànhphần riêng biệt Khi tất cả các thành phần đã được kiểm chứng, chúng ta có thể

kết luận phần mềm thỏa mãn thuộc tính cần kiểm chứng mà không cần ghép

nối các mô hình của các thành phần với nhau Kiểm chứng giả định - đảm bảo

(Assume — Guarentee Verification) [25, 33] và sau đó được cải tiến trong [52|

là hiện thực hóa của tư tưởng kiểm chứng từng phần Trong phương pháp này,

để kiểm chứng các hệ thống con một cách riêng biệt, chúng ta cần các giả định

(assumptions) về môi trường mà mỗi hệ thống con sẽ được thực hiện ứng với

thuộc tính cần kiểm chứng [24] Tuy nhiên, độ phức tap của việc sinh giả định

còn cao Hơn nữa, các phương pháp này chỉ mới giải quyết được các hệ thốngđơn giản gồm hai thành phần Các phần mềm thực tế thường có nhiều hơn hai

thành phần và ý tưởng của các phương pháp này khó tổng quát hóa cho trường

hợp này.

Mặc dù đã có nhiều nghiên cứu quan tâm giải quyết vấn đề đặc tả và kiểm

chứng tính đúng đắn của thiết kế phần mềm dựa trên thành phần, các vấn đề

sau vẫn còn là các bài toán mở và chưa có giải pháp thỏa đáng.

Trang 18

e Chưa có giải pháp để xây dựng mô hình đặc tả hình thức hành vi của từng

thành phần phần mềm nói riêng và hệ thống dựa trên thành phần nói chung.

Cần đề xuất một giải pháp đầy đủ từ đầu đến cuối cho bài toán kiểm chứng

mô hình phần mềm dựa trên thành phần, từ bước sinh đặc tả hình thức đến

áp dụng công cụ kiểm chứng để nhận được kết quả về tính đúng đắn củathiết kế Mặc dù đã có nhiều phương pháp và công cụ kiểm chứng mô hình

phần mềm khác nhau với yêu cầu đầu vào là các đặc tả hình thức phù hợp

tương ứng, bản thân việc sinh các đặc tả hình thức đúng đắn, tiêu chuẩn

hóa, từ các tài liệu thiết kế phần mềm là một thách thức cần giải quyết.

Hạn chế này là nguyên nhân chính dẫn đến việc khó áp dụng các phươngpháp kiểm chứng mô hình trong thực tế.

e Biểu đồ tuần tự UML là một tài liệu thiết kế phần mềm tiêu chuẩn Đã

có các nghiên cứu về kiểm chứng tính đúng đắn của biểu đồ tuần tự UML,

nhưng không tách biệt quá trình sinh mô hình với bước kiểm chứng mô

hình Việc tự động sinh mô hình từ biểu đồ tuần tự UML và cho phép sự

dụng lại mô hình một cách hợp lý là rất cần thiết.

e Với sự tăng nhanh về kích thước cũng như sự phức tạp của phần mềm, việc

kiểm chứng và đảm bảo tính đúng đắn của phần mềm ngày càng trở nên

quan trọng và ngày càng khó khăn hơn do các phần mềm ngày càng phức

tạp Hiện tại, chưa có một giải pháp đủ tốt để giải quyết vấn đề này.

e Chưa có một công cụ đủ tốt tích hợp các giải pháp trên trong một công cụkiểm chứng nhằm tự động hóa quá trình đặc tả và kiểm chứng cho thànhphần phần mềm dựa trên biểu đồ tuần tự.

Mục tiêu của luận án để giải quyết các vấn đề nêu trên Kiểm chứng mô hình

cho phần mềm dựa trên thành phần là một giải pháp đảm bảo chất lượng phần

mềm ngay từ bước thiết kế Thách thức của kiểm chứng mô hình là cần có các

đặc tả hình thức tiêu chuẩn, đúng đắn và công cụ phù hợp Đã có nhiều nghiêncứu về phương pháp kiểm chứng mô hình phần mềm và một số bộ công cụ kiểmchứng khác nhau đã được phát triển Để áp dụng kiểm chứng mô hình trong

thực tiễn, cần lựa chọn giải pháp, sinh mô hình đặc tả đúng, phù hợp với phương

pháp kiểm chứng và yêu cầu của bộ công cụ kiểm chứng được lựa chọn Một

cách lý tưởng, phương pháp đề xuất cần xây dựng mô hình cho mỗi thành phần

phần mềm bằng cách phân tích tất cả các biểu đồ UML đặc tả các khung nhìn

khác nhau về thành phần này Tuy nhiên, do hạn chế về thời gian nên phạm vinghiên cứu của luận án này là các thiết kế của các thành phần phần mềm được

Trang 19

biểu diễn dưới dang các biểu đồ tuần tự UML bởi đây là biểu đồ có hành vi chitiết nhất trong các biểu đồ UML, một loại tài liệu thiết kế phần mềm phổ biến

và nghiên cứu xuyên suốt quy trình, đề xuất giải quyết các khó khăn thách thức

gặp phải, hoàn thiện thuật toán nâng cao tính hiệu quả khi áp dụng thực tiễn

để có thể nhận được kết quả kiểm chứng cuối cùng Mục tiêu của luận án là đề

xuất một số phương pháp hỗ trợ sinh tự động mô hình đặc tả hành vi của thiết

kế phần mềm dưới dạng biểu đồ tuần tự UML và kết hợp phương pháp kiểmchứng giả định - đảm bảo kiểm chứng tính đúng đắn của các thiết kế này mộtcách hiệu quả Mặt khác, luận án đề xuất phương pháp sinh mô hình và kiểmchứng tính đúng đắn của các biểu đồ tuần tự UML sử dụng ôtômát vào/ra vàcông cụ kiểm chứng SPIN Để giải quyết một số hạn chế trong kiểm chứng giảđịnh - đảm bảo, luận án đề xuất một phương pháp để tạo ra các giả định nhỏnhất cục bộ cho phương pháp kiểm chứng giả định - đảm bảo và hai cải tiến

nhằm giảm độ phức tạp trong việc sinh giả định Luận án hướng đến một giải

pháp đầy đủ cho việc kiểm chứng tính đúng đắn của các thiết kế có khả năng

ứng dụng trong thực tế.

Đối tượng nghiên cứu của luận án là thiết kế của các hệ thống phần mềm

dựa trên thành phần Các phần mềm này được phát triển bằng cách ghép nốicác thành phần sẵn có với chất lượng cao Đây là giải pháp phổ biến nhất hiệnnay để phát triển các ứng dụng vì nó giảm thiểu thời gian cũng như chi phíphát triển trong khi vẫn đảm bảo được chất lượng phần mềm Tuy nhiên, chúng

ta chưa có cơ chế đảm bảo tính cộng tác giữa các thành phần Hệ quả là cácthành phần không thể cộng tác được với nhau sau khi được ghép nối Một cáchlý tưởng, phương pháp đề xuất cần xây dựng mô hình cho mỗi thành phần phần

mềm bằng cách phân tích tất cả các biểu đồ UML đặc tả các khung nhìn khác

nhau về thành phần này Tuy nhiên, do hạn chế về thời gian nên phạm vi nghiên

cứu của luận án này là các thiết kế của các thành phần phần mềm được biểu

diễn dưới dạng các biểu đồ tuần tự UML 2.0 bởi đây là biểu đồ có hành vi chỉtiết nhất trong các biểu đồ UML Để đạt được mục tiêu nghiên cứu, luận án

sẽ tiến hành khảo sát các giải pháp đã có Từ đó, luận án sẽ xác định các hạnché/van đề chưa giải quyết được và đề xuất phương pháp mới hoặc cải tiến cácphương pháp hiện có Các công cụ hỗ trợ và thực nghiệm cũng sẽ được tiến hành

nhằm minh chứng cho tính hiệu quả của các đề xuất/cải tiến.

Trang 20

1.2 Các đóng góp chính của luận án

Luan án đạt được ba kết quả chính gồm: (i) phương pháp sinh mô hình và

kiểm chứng tinh đúng đắn thiết kế cho các phần mềm dựa trên thành phần, (ii)phương pháp sinh mô hình và kiểm chứng tính đúng đắn của các biểu đồ tuầntự UML 2.0 sử dụng ôtômát vào/ra và công cụ kiểm chứng SPIN va (iii) hai cảitiến cho phương pháp kiểm chứng giả định - đảm bảo Chi tiết các đóng góp của

luận án được mô tả như sau.

Đề xuất một phương pháp hoàn chỉnh nhằm tự động sinh mô hình và kiểmchứng từng phần cho các thiết kế phần mềm được đặc tả bằng biểu đồ tuần tự

UML 2.0 Ý tưởng chính của phương pháp này là tự động sinh mô hình đặc tả

hành vi của các biểu đồ tuần tự biểu diễn dưới dạng các máy hữu hạn trạng tháiđược gán nhãn (LTSs) Các mô hình này cùng với thuộc tính được kiểm chứng(chỉ cho các thuộc tính an toàn) sẽ được cung cấp cho phương pháp kiểm chứng

giả định - đảm bảo nhằm kiểm chứng tính đúng đắn của hệ thống mà không

cần ghép nối các mô hình của các thành phần lại với nhau Bằng cách áp dụng

phương pháp kiểm chứng này, bài toán bùng nổ không gian trạng thái hứa hẹn

được giải quyết Một công cụ hỗ trợ cũng đã được cài đặt và thực nghiệm với

một số ví dụ điển hình nhằm minh chứng cho tính đúng đắn và tính hiệu quả

của phương pháp đề xuất.

Đề xuất một phương pháp sinh mô hình được biểu diễn dưới dạng các ôtômát

vào/ra cho các đối tượng từ biểu đồ tuần tự UML 2.0 Với phương pháp đặc

tả này, chúng ta không làm mất tính tương tác giữa các đối tượng của thiết kế

phần mềm trong các biểu đồ tuần tự Nghién cứu này cũng đề xuất một phươngpháp chuyển đổi từ đặc tả dưới dạng ôtômát vào/ra sang đặc tả PROMELA đểcó thể sử dụng bộ công cụ SPIN nhằm kiểm chứng tính đúng đắn của hệ thống.Với giải pháp này, chúng ta có thể kiểm chứng nhiều loại thuộc tính hơn so vớiviệc chỉ hỗ trợ thuộc tính an toàn như đóng góp đầu tiên của luận án Một công

cụ hỗ trợ phương pháp đề xuất cũng đã được cài đặt và thực nghiệm với một sốhệ thống đơn giản và thu được kết quả khả quan bước đầu.

Đề xuất hai cải tiến nhằm nâng cao tính hiệu quả của phương pháp kiểm

chứng giả định - đảm bảo sử dụng thuật toán học L* - được biết đến như là một

phương pháp tiềm năng nhằm giải quyết bài toán bùng nổ không gian trạng thái

trong kiểm chứng mô hình Cải tiến thứ nhất tập trung vào việc giảm thiểu các

truy vấn lặp lai và giải pháp lựa chon hậu tố (suffix) khi xử lý phan ví du trong

Trang 21

ví dụ điển hình nhằm minh chứng cho tính hiệu quả của những cải tiến này Cảitiến thứ hai là đề xuất một giải pháp mới nhằm sinh ra các giả định có ngônngữ nhỏ nhất so với các giả định được sinh ra bởi phương pháp hiện tại Cácgiả định này sẽ hiệu quả hơn trọng việc kiểm chứng lại tính đúng đắn của hệ

thống trong tương lai khi một số thành phần bị thay đổi.

Các kết quả nghiên cứu trên không phải là các kết quả rời rạc mà chúngcó mối liên hệ chặt chẽ trong việc tích hợp với nhau tạo thành một giải pháphoàn chỉnh từ việc tự động sinh mô hình đến kiểm chứng như được mô tả trong

Hình 1.1 Từ đó, nghiên cứu hướng đến một giải pháp đầy đủ cho việc kiểm

chứng tính đúng đắn của các thiết kế cho các ứng dụng trong thực tế.

Trang 22

các biểu đồ tuần tự UML 2.0 được trình bày trong Chương 3 Chương 4 trìnhbày phương pháp sinh mô hình và kiểm chứng tính đúng đắn của các biểu đồtuần tự UML 2.0 sử dung SPIN Trong phương pháp này, các mô hình được đặc

tả dưới dang ôtômát vào/ra nhằm giữ được tính tương tác giữa các đối tượng.

Một giải pháp chuyển đổi từ đặc tả ôtômát vào/ra sang Promela cũng được

trình bay trong chương này Chương 5 trình bày hai cải tiến nhằm giảm chi phí

khi sinh giả định cho phương pháp kiểm chứng giả định - đảm bảo Cải tiến thứnhất đề xuất một giải pháp nhằm giảm thiểu các truy vấn lặp lại và giải pháp

lựa chọn hậu tố (suffix) khi xử lý phan vi dụ trong quá trình hoc và sinh các ứng

cử viên giả định của Thuật toán L* Cải tiến thứ hai là đề xuất một giải pháp

mới nhằm sinh ra các giả định có ngôn ngữ nhỏ nhất so với các giả định được

sinh ra bởi phương pháp hiện tại Cuối cùng, tổng kết các kết quả nghiên cứu

của luận án và các hướng nghiên cứu tiếp theo được trình bày trong Chương 6.

Trang 23

Chương 2

KIÊN THỨC NÊN TẢNG

Chương này giới thiệu các khái niệm và các phương pháp cơ bản được sử

dụng trong luận án này Các khái niệm cơ bản gồm mô hình của thành phần

phần mềm, ôtômát hữu hạn trạng thái đơn định, ôtômát vào/ra, v.v Phương

pháp kiểm chứng giả định - đảm bảo và các khái niệm liên quan cũng được giới

thiệu trong chương này.

2.1 Mô hình của thành phần phần mềm

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

Mỗi thành phần phần mềm được đặc tả bởi một mô hình dùng để biểu diễn

các hành vi quan sát được của thiết kế ứng với các thành phần phần mềm Mô

hình này được biểu diễn bằng hệ chuyển trạng thái được gan nhãn (LabeledTransition System — LTS) Bảng chữ cái Ð là tập tất cả những hành động của

thành phan phần mềm Act là tập tất cả những hành động quan sát được củathành phần phần mềm Hành động không quan sát được (hành động bên trong)

của thành phần phần mềm được ký hiệu là r Một trạng thái đặc biệt của hệthống - trạng thái lỗi ứng với các lỗi có thể xảy ra được ký hiệu là z Một hệthống chuyển trạng thái được gán nhãn được định nghĩa như sau.

Định nghĩa 2.1 (Hệ thống chuyển trạng thái được gán nhãn [58, 73, 25, 89])

LTS là một bộ gồm bốn thành phần (Q,aM,6,qo), trong đó:

e Q là một tập khác rỗng hữu han các trang thái,

e aM C Act là tập các hành động quan sát được, gọi là bang chữ cái của M,

© 5 CQxaM U{r} x Q là hàm chuyển trạng thái, va

Trang 24

Hình 2.1: Một hệ thống chuyển trạng thái được gán nhãn.

® qo € Q là trạng thái bắt dau.

Kí hiệu g; + q; khi hành động với nhãn a chuyển hệ thống từ trạng thái ø đến

trạng thái ạ;, lic đĩ (ø, a,g;) € 5 Nghia là khi hệ thống ở trạng thái g;, nếu thực

hiện một hành động a thì chuyển sang q; Tương tự, hệ thống dang ở trạng thái

qj nêu thực hiện một hành động a’ chuyển tới trạng thái q, Khi đĩ, ta được một

dãy các hành động q¡ + qj + ge [25].

Một cách tổng quát, nếu ta cĩ một chuỗi các hành động q¡ — +; gy biểu

diễn hệ thống thì khi nĩ ở trạng thái ø nĩ cĩ thể thực hiện một chuỗi các hành

động àaa a„ và kết thúc ở trạng thái qq.

LTS Il = ({r}, Act, 6,7) là một LTS chỉ chứa trạng thái lỗi của hệ thống [25].

Xét một LTS M =(Q,aM, ð, go) vig, € Q, a,a; € aM, với 1 <i<n ta cĩ:

ego © (q.a,g) €6

đ102 dr, a đa a3 Gn ;

#'2————>( © 340.đ1 đụ: T= % FHS đa —> —? gan = đ.

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

Hình 2.1 là một ví dụ về hệ chuyển trạng thái được gan nhãn M = (Q,aM,6,q),

trong đĩ:

e Q = {q0, 1, ga} là tập các trạng thai của M,

® aM = {in, send, ack} là tập các hành động của M,

sị= {(qo, in, g1), (q1, send, q2), (q2, ack, qo)} là các quy tắc chuyển trạng thái,

eg € Q là trạng thái bat đầu.

Trang 25

Hình 2.2: Hệ chuyển trạng thái được gán nhãn không đơn định.

Định nghĩa 2.2 (Kích thước của một LTS [51, 50]) Kích thước của LTS

M = (Q,aM,6,qo) là số trạng thái của M va được ky hiệu là |MỊ, trong đó [MỊ

= /Q/.

Ví dụ 2.2 Xét một LTS M cho bởi Hình 2.1, khi đó [M/=/Q/=8.

Định nghĩa 2.3 (LTS đơn định và không đơn định [46]) Mot LTS M =

(Q,aM,6,qo) là không đơn định nếu nó chứa một chuyển trạng thái r hoặc nếuA(q,a,q) va (q,a,q") € 6 sao cho d # q" Ngược lại, M được gọi là hệ chuyển

trạng thai được gan nhãn đơn định.

Chú ý 2.1 Cho LTS M = (Q,aM,6,qo) va M' = (Q',aM"', 6’, qh) Khi đó ta hiểurằng M’ được chuyén dịch từ M bởi chuyén trang thái a khi va chỉ khi (q0, đ, qạ) €

6,aM =aM',Q=Q! va6=6' Kí hiệu: M > M!' [25].

Vi dụ 2.3 Hệ thống chuyén trạng thái được gán nhãn đơn định va không đơn

Hình 2.2 là hệ chuyển trạng thái được gán nhãn không đơn định M =

(Q,aM,6,q9), trong đó: Q = {qo,gi,ga}, aM = {in, send, ack}, qo là trạng thaikhởi đầu, va 6 = {(qo, in, q1), (qo, send, qa), (qi, send, qa), (ga, ack, qo)} Hệ thống ở

trạng thái qo, nếu thực hiện một hành động in thì có thể dẫn tới trạng thái gihoặc chuyển tới q Khi đó, trạng thái kế tiếp của q khi tác động cùng mộthành động in là không xác định duy nhất, không tất định Khi đó ta gọi là hệchuyển trạng thái được gán nhãn không đơn định Hệ chuyển trạng thái đượcgán nhãn mô tả trên Hình 2.3 gọi là hệ chuyển trạng thái được gán nhãn đơn

định O trạng thái q; nào đó nếu tác động một hành động a; thì hệ thống sẽ dẫn

tới trạng thái xác định duy nhất gp.

10

Trang 26

Hình 2.3: Hệ chuyển trang thái được gán nhãn đơn định.

2.1.2 Vết

Định nghĩa 2.4 (Vét (trace) [25, 46]) Một vét trên ngôn ngữ của một hệ

chuyén trạng thái được gan nhãn M = (Q,aM,6,qo) là một chuỗi hữu han các

hành động ayaz an vdia; € aM (i = 1, ,n) sao cho tồn tại một chuỗi các

trang thái bắt dau bằng trạng thái khởi đầu, cụ thé qoạn q„ Ma (qi-1,4i,G) € ỗ,

q¡ € Q 0Uới ¡ = 1, ,m.

Như vậy, một vết o trên ngôn ngữ của hệ chuyển trạng thái được gán nhãn Mlà một chuỗi các hành động quan sát được sao cho M có thể thực hiện từ trạngthái khởi tạo qo Ngôn ngữ của M, ký hiệu là L(M), chứa tất cả các vết trên M.

Ví dụ 2.4 Hệ chuyén trạng thái được gan nhãn M = (Q,aM,ô,qo) trên Hình 2.8

là đơn định.

Trong đó: Q = {q0,%,q@},aM = fin, send,ack}, qo là trạng thái khởi đầu, và

ð = {(qo, in, ai), (gi, send, ga), (qa, ack, qo)} Với hệ chuyển trạng thái M được cho

trên Hình 2.3, dãy các hành động in send ack là một vết trên M Ở trạng thái

qo, hành động in được thực thi, khi đó hệ thống dẫn tới trạng thái q, tiếp tụcthực hiện hành động send hệ thống chuyển đến trạng thái qo, tiếp đến, thực hiện

hành động ack hệ thống trở lại trang thái ạo Hoàn toàn tương tự vết in sendack in send cũng là vết trên M Xét một chuỗi hành động in send in send acktrên M Từ trạng thái khởi tao qo thực thi hành động in hệ thống dẫn tới trạngthái mi, tiếp tục thực thi hành động send hệ thống dan tới trạng thái qo, ở trangthái ạ› hệ thống không thể thực hiện được hành động in Ta nói dãy hành động

trên không phải là một vết trên M.

Chú ý 2.2 Cho aM C Act, ta ky hiệu otaM là vét thu được bằng cách loại bỏkhởi ơ moi hành động a sao cho a ý aM Một vét o = ataa a„ạ là một uết hữu

11

Trang 27

hạn trên hệ chuyển trạng thái được gan nhãn M Ta ky hiệu hệ chuyển trạng thái

được gan nhan My = (Q,aM, 6, q0) uới Q = {qo, g1; - › dn} va 6 = {(Gi-1, ai, Gi)

2.1.3 Phép ghép nối song song

Tốn tử ghép nối song song, được ký hiệu “||” là phép tốn ghép nối haithành phần phần mềm bằng việc đồng bộ các hành vi chung trên bảng chữ cái

và đan xem các hành động cịn lại Giả sử cĩ hai hệ chuyển trạng thái được gán

nhãn là My = (QI,aÄ, ði, gả) và M2 = (Q2, aM, ổa, g4), phép ghép nối song songgiữa M, và M2, ký hiệu A⁄4||Mạ được định nghĩa như sau: Nếu M, = II hoặc

Mạ = II thì M/:|LM¿ = II Trái lại, Mi||Ma = (Q,aM, ơ, go), trong đĩ: Q = Qi x Qe,

aM = aM, UaMa, qo = (qj, 9) và hàm 6 được mơ tả như sau [25, 73]:

Vi dụ 2.5 Mé hành ghép nối song song hai hệ chuyén trạng thái được gan nhãn

Input va Output như trên Hành 2.4 Ghép nối hai mơ hành được mơ tả trên Hình2.4, hành động send va ack là dong bộ, những hành động con lại dan xen nhau.

Từ các quy tắc đã cho, ta cĩ: M' = (Q1,aM",ð',qạ), vot:

Trang 28

' * Output

Hình 2.4: Ghép nối song song hai LTS.

® q = (0,a), và

e 6 = {((0,a), in, (1,ø)), (1, a), send, (2, b)), ((2, b), out, (2, c)), ((2, e), ack, (0, a))}.

2.1.4 LTS an toàn, thuộc tính an toàn, tinh thỏa mãn va LTS lỗi

Định nghĩa 2.5 (Hệ chuyền trạng thái được gán nhãn an toàn [25, 73])

LTS an toàn (Safety LTS) là một LTS không chứa trang thái lỗi m.

Định nghĩa 2.6 (Thuộc tính an toàn (Safety property) [25, 73])

Thuộc tính an toàn là thuộc tính đúng tại mọi trạng thái của hệ thống.

Trong nghiên cứu nay, một thuộc tính an toàn p được biểu diễn dưới dang mộthệ chuyén trạng thái được gán nhãn an toàn p = (Qp œp, Sp, đo):

Định nghĩa 2.7 (Hệ chuyển trạng thái được gan nhãn lỗi [25]) Hệ

chuyén trạng thái được gan nhãn lỗi (Error LTSs) của một thuộc tính

PF (Qp, ap, 6, q0); kú hiệu là Perr = (Q U {7}, @perr, 6’, q0); trong do:

APerr = ap, 6’ = ôU {(q,a,7)|a € ap} va lạ! € Q sao cho (q,a,q') € 6.

ere

Trang 29

LTS của thuộc tính P Error LTS Perr

Hình 2.5: LTS của thuộc tính p và LTS lỗi tương ứng.

Chú ý 2.3 Dé xác định thành phần M có thỏa mãn thuộc tính p uới M va p

được biểu diễn bằng các LTSs an toàn, phép hợp Ml|p.„„ được tính Nếu kết quả

có thể đạt được đến trạng thái x, M vi phạm p va ngược lại [25, 73].

Ví dụ 2.6 Xây dựng hệ chuyén trang thái được gan nhãn lỗi từ hệ chuyển trạng

thái tương ứng uới thuộc tính p.

Hình 2.5 biểu diễn cách thức xây dựng hệ chuyển trạng thái lỗi tương ứng

với thuộc tính p Theo Dịnh nghĩa 2.7, hệ chuyển trạng thái lỗi của thuộc tính

p được xác định: perry = (QU {7}, aperr, 6’, G0), trong đó:

e Tap các hành vi là œpe;; = ap = {in, out},

e Tập trang thái của per, là QU {rr} = {i, ti, wr},

e Trạng thái khởi tao là qo, và

e Tập các quy tắc chuyển trạng thái là ð' = {(i, in, it), (ii, out, i),

(it, in, 7), (¡, out, a)}.

Dinh nghĩa 2.8 (Tinh thỏa mãn (Satisfiability) [25, 73, 23, 7]) Mot hệ

chuyén trang thái được gan nhãn M duoc gọi là thỏa man thuộc tính p, ky hiệu

M Ep khi va chỉ khi Vo € L(M) ta có (otap)e L(p).

Việc kiểm chứng thành phần M có thoả mãn thuộc tính p, ta biểu diễn cả M

và Perr bởi các LTSs an toàn, sau đó thực thi phép ghép nối song song M||perr.Nếu LTS thu được sau khi ghép nối tồn tai một vết đưa đến trạng thái 7 Lúc

đó, ta khang định thành phần M không thỏa thuộc tính p Ngược lại, M thoả

mãn thuộc tính ø.

14

Trang 30

Ví dụ 2.7 Kiểm chúng hệ chuyển trạng thái ghép nối song song được gán nhãn

như trong Ví dụ 2.5 có thỏa man thuộc tính p được trình bay ở Vi dụ 2.6.

Xây dựng hệ chuyển trạng thái ghép nối song song được gan nhãn

Input||Output||perr được mô tả trong Hình 2.6 Từ sơ đồ ghép nối song songnhư Hình 2.6, ta dé dàng kiểm tra được trang thái lỗi z không thể tới được khi

bắt đầu từ trạng thái khởi dau (0,a,i) Vì vậy, hệ chuyển trạng thái ghép nối

song song được gấn nhãn Input||Output thỏa mãn thuộc tính p.

2.2 Ôtômát hữu hạn trạng thái đơn định

Định nghĩa 2.9 (Ôtômát hữu hạn trạng thái [25, 46, 82, 32, 77])

Ôtômát hữu hạn trang thái (Finite State Automata - FA) là một bộ năm

15

Trang 31

M =(Q,aM,ô,qo, F), trong đó:

e Q là tập hữu hạn khác rỗng các trang thái,

e aM C Act là một tập hữu hạn khác rỗng các hành động, con gọi là bang chữcái của M,

e qoC Q là trạng thái khởi tạo hay trang thái ban dau,e F CQ là tập các trạng thái kết thúc, va

e ô là hàm chuyển có dang:

o Nếu hàm chuyển là ánh xa 6: Q x aM + Q thà M được gọi là ôtômát

hữu hạn đơn định (deterministic finite automata - DFA).

o Nếu hàm chuyển là ánh xa 6: Q x aM —› 29 thà M được gọi là ôtômát

hữu hạn không đơn định (nondeterministic finite automata - NFA)

Chú ý 2.4 Một ôtômát hữu hạn trạng thái M va một uết ơ, ta ký hiệu ô(q, ø)

để chỉ trạng thái của M sau khi đọc vét ơ bắt đầu từ trạng thái q Vét o được

rem là đoán nhận bởi ôtômát hữu hạn M = (Q,aM,6,q0,F) nếu như ð(q,ơ) €

F Ngôn ngữ đoán được đón nhận bởi ôtômát M định nghĩa như sau L(M) =

mới ổ(g¡, a2) = q2 € Q Công việc trên tiếp diễn đến khi xảy ra một trong nhữngtrường hợp sau:

e Ôtômát đọc hết vết vào ơ = œ1as a„ và 5(dn—1;4n) = dn € F, lúc đó ta

khẳng định vết o được đoán nhận bởi ôtômát M.

e Ôtômát đọc hết vết vào o = atas da„ và ỗ(Œn—1; #„) = In ¢ F, lúc đó ta nói

rằng vết o không được đoán nhận bởi ôtômát M, hoặc

e Ôtômát M đọc đến a; (j < n) và 5(qj-1,4;) không xác định, lúc đó ta nói

rằng ôtômát M không đoán nhận vết o.

Chú ý 2.5 Biểu dién ôtômát hữu hạn trạng thái

16

Trang 32

Hình 2.7: Minh họa ôtômát M được mô tả ở Ví dụ 2.8.

Có nhiều phương pháp để biểu diễn ôtômát hữu hạn trạng thái Thứ nhất,ôtômát có thể được diễn tả bởi hàm chuyển trạng thái, được thể hiện từ Định

nghĩa 2.9 Thứ hai, ôtômát có thể được diễn tả bằng đồ thị Ở luận án này, hàm

chuyển trạng thái mô tả bởi một đồ thị có hướng, sao cho mỗi trạng thái tươngứng là một đỉnh Nếu đầu vào là a € D> ở trạng thái ạ, ôtômát chuyển đến trạng

thái p (p = 6(q,a)) thì tương ứng tồn tại một cung từ đỉnh ạ đến đỉnh p với nhãntương ứng là a Đỉnh ứng với trạng thái khởi tạo có mũi tên trỏ vào, vòng tròn

kép thể hiện đỉnh ứng với trạng thái kết thúc, những đỉnh còn lại được mô tảbởi vòng tròn đơn Ví dụ 2.8 minh họa cho hai cách biểu diễn của một ôtômátAM, biểu diễn bằng hàm chuyển trang thái 6 và biểu diễn bằng đồ thị có hướng

Ta dé dàng kiểm tra được rằng một vết aaaa € L(M), nhưng vết aaaab ¢ L(M).

Chú ý 2.6 Ôtômát hữu hạn trạng thái M được gọi là tiền tố đóng (prefix-closed)

nếu ngôn ngữ được L(M) đoán nhận là tiền tố đóng, nghĩa là uới mỗi uết ơ €L(M) thì tat cả moi tiền tố của ơ đều thuộc L(M) [25].

Chú ý 2.7 Ôtômát M thu vé khi thực hiện giải thuật học L* J6, 22] là ôtômátday du, tối thiểu va tiền tố đóng Do đó, nó sẽ chứa một số trạng thái không kếtthúc Để có được hệ thông chuyén trạng thái được gan nhãn M' từ ôtômát M ta

17

Trang 33

Hình 2.8: Phương pháp chuyển một ôtômát M thành LTS M’.

bỏ đi moi trạng thái không kết thúc va mọi quy tắc chuyển trang thái tới trangthái không kết thúc ấu Cách chuyén một ôtômát M thành một hệ chuyển trạng

thái được gan nhãn M' được định nghĩa như sau.

Định nghĩa 2.10 (Chuyển đổi ôtômát sang LTS [25, 51, 50]) Với mỗiôtômát M = (QUnas,aM,6,q0,Q), ta xác định được hệ thống chuyển trang thái

được gan nhãn M' tương ứng là: M' = (Q,œM,ôn (Q x aM x Q),qo) vdi nas

(non-accepting states) là tập các trang thái không kết thúc.

Ví dụ 2.9 Hình 2.8 biểu diễn phương pháp chuyển một ôtômát M thành mộthệ chuyén trạng thái được gan nhãn M' Dễ nhận thay, ôtômát M có q là trạng

thái kết thúc duy nhất Vì vay, chúng ta loại bỏ trạng thái qo va mọi quy tắc

chuyển trạng thái đến trang thái qo kết quả thu được một hệ chuyển trạng thái

M' như Hình 2.8.

Định nghĩa 2.11 (Ôtômát tối thiểu [51, 50]) Ôtômát có số trang thái ít

nhất trong các ôtômát hữu hạn cùng đoán nhận ngôn ngữ L được gọi là ôtômát

tối thiểu của ngôn ngữ L.

Định nghĩa 2.12 (Trạng thái tương đương [82]) Hai trạng thái q va q›

được gọi là tương đương, ky hiệu q = qo nếu cả hai trạng thái ð(q\,+) va (qo, +)đều là những trạng thái kết thúc hoặc ca hai đều là không kết thúc vdi mọi

Định nghĩa 2.13 (Trang thái k tương đương [82]) Hai trạng thái q va q›

được gợi lak — tương đương, ký hiệu qi Xp q nếu cả hai trang thái ð(@\,+) vaô(qa.+) đều là những trạng thái kết thúc hoặc ca hai đều là không kết thúc với

mọi ø€ S” có độ dài nhỏ hơn k (k > 0).

Chú ý 2.8 Quan hệ & va =, là những quan hệ tương đương (có day du tínhchat phan xa, đối zứng va bắc cầu) Các lớp tương đương của hai quan hệ nay sẽtạo ra các phân hoạch m va m„ của Q Các phan tử của mạ là các lớp k - tươngđương.

18

Trang 34

Định nghĩa 2.14 (Trang thái k + 1 - tương đương [82]) Hai trạng thái ạ

va qo được gọi là k+ 1 - tương đương, nếu các điều kiện sau được thỏa mãn:

e Chúng là k — tương đương, va

e ð(gi,d) va 5(q2,a) cũng lak — tương đương uới moiae 3`.

Định nghĩa 2.15 (Định nghĩa về biểu thức chính quy [47, 2, 13]) Cácbiểu thúc chính quy được dùng để biểu diễn ngôn ngữ chính quy Tập Ð là bảng

chữ cái, ngôn ngữ chính quụ trên © được định nghĩa một cách đệ quụ như sau:

e \,a€ là các biểu thức chính quy tương ứng của các ngôn ngữ 0, {a}.

e Nếu r va s là các biểu thúc chính quy ứng uới các ngôn ngữ Ly va Ls, thà(r|s) (r.s), (r*) là các biểu thúc chính quụ tương ứng uới các ngôn ngữ L„UL„,

Định nghĩa 2.17 (Khối cơ bản và khối không cơ bản [18, 19]) Khối cơ

ban là một biểu thúc chính quy con của R mà chúa tối thiểu một lần xuất hiện

của các kí tự trong bảng chữ cái Các khối không cơ bản là các thành phần của

biểu thức chính quy được chia tách bởi các khối cơ bản.

Mỗi một khối cơ bản có thêm hai thuộc tính gọi là n va star Thuộc tính n

trong khối cơ bản bằng \ khi và chỉ khi khối cơ bản đó đoán nhận vết rỗng,ngược lại thuộc tính này bằng 0 Thuộc tinh star để chỉ có hay không có một kítự “*” trên biểu thức chính quy gắn với khối này.

Định nghĩa 2.18 (NNFA (normal NFA) [18, 19]) NNFA là NFA ở đó moi

cạnh đều đưa đến cùng một trạng thái có cùng nhãn NNFA được định nghĩa là

một bộ sáu như sau (>,Q.,ô,T,F, A), uới:

19

Trang 35

© A:Q—>} là ánh xạ cho các trạng thái q € Q thành một nhãn A(q) thuộc 3.

Chú ý 2.10 Một McNaughton/Yamada NNFA (MYNNFA) [74] là một NNFA

trong đó trạng thái khởi tạo uới bậc vao là 0.

Định nghĩa 2.19 (Ôtômát đuôi của MYNNFA [18, 19]) M =

(5,Q,ð,T = {qo}, F, A) là một NNFA MT = (=7,Q7,67, 17, F?, AT), uới 5? =D

Q” = Q- {qo}, 6” = {[x,y] € ð|z # qo}, I” = {y: [ao,y] € 5}, F = F — {qo},

AT= A,

Dinh nghĩa 2.20 (Cặp của tập hợp [18, 19]) Cho hai tập G va A,

pair(G, H) = {[G, H]} nếu cả G va H đều khác rỗng, trái lại pair(G, H) = 0.

Chú ý 2.11 Dat nredy = FEIT, — 64,, ta xem biểu diễn trễ của nó là Id Ta

cũng có thể gọi biểu diễn trễ của 5 là lồ Cả hai ld va lỗ đều là một danh sách

các cặp của hai tập hợp.

Định nghĩa 2.21 (CNNFA [18, 19]) Biểu diễn ƠNNFA (Compresscd

NNFA) của một ôlômát đuôi MYNNFA MT = (X1,.Q1r.ðA lập Fh, Ady)

là biểu diễn nén va được định nghĩa bởi bộ bay thành phần PT =

(=5,Q5,1db, 165,15, FẺ Ad), uới:e 5 = MỊ, là bang chữ cái,

Trang 36

Từ một ôtômát đuôi MYNNFA MT = (D7, QT,ðT, TT, FT, AT), ta có thể xây

dựng được ôtômát ban đầu MYNNFA M = (%,Q,6,/, F, A) như sau:

5=*#”,Q=QU{4ø}.ð = ð” U{[ao, ylly € 17}, 1 = {a0},

F=F' U{q}ny,4=A’, (2.4)

với {qo} nạ; = {qo} nếu ny = {A},ngược lai {qo} nạ; = 9.

Chú ý 2.12 Thinh thoảng chúng ta không viét © trong NNFA, MYNNFA,6tômát đuôi MYNNFA va CNNFA khi nó đã rõ rùng Nhiều lúc, ta cho phép tap

các nhãn A là không xác định uới trạng thát có bậc uào là 0.

Trong CNNFA, ta biểu diễn các tập hợp F và I bằng cách sử dụng cấu trúc

dữ liệu gọi là F-Forest và I-Forest theo cách thức:

e Mỗi tập được biểu diễn tương ứng bởi một cây nhị phân.

e Dùng danh sách liên kết đôi để nối các lá của cây với nhau.

e Gốc của cây chứa con trỏ đến danh sách lá của cây.

e Hợp của hai tập hợp là một cây mới có gốc mới, hai tập đó trở thành cây

con phải và cây con trái của cây mới Phép hợp này có thể thức hiện được

trong thời gian đơn vị đối với hai tập hợp không giao nhau.

2.3 Ôtômát vào/ra

Hiện nay, có rất nhiều định nghĩa về ôtômát vào/ra (I/O automata) trong

các nghiên cứu [72, 28, 64, 90] Trong nghiên cứu này, tác giả định nghĩa lạiôtômát vào/ra hướng sự kiện được trình bày trong Định nghĩa 2.22 và được sử

dụng trong Chương 4.

Định nghĩa 2.22 (Ôtômát vào/ra) Ôtômát vao/ra là một bộ sáu có thứ tu

Q'= (Q.5 59,ä, qo, F), trong đó:

® Q= {4i,4a, qn} là tập các trạng thái,

«5` ={(c.e)|ceŒ,ec E!} là tập các ky tự vao,

© S2 ={(c,e)|ce Œ,ec EY} là tập các ky tu ra,

e® ôố=Qx(C x E) — Q là tập các luật chuyén 5(qi, (c,e)) = đj,

e qo là trang thái khởi dau, va

e F=( fi, fo, fm} là tập trang thái kết thúc.

21

Trang 37

2.4 Kiểm chứng giả định — đảm bảo (Assume — Guarentee

2.4.1 Lý thuyết giả định

Kiểm chứng từng phan (modular verification) [39, 15, 16, 14, 62, 66] được biếtđến như là một giải pháp tiềm năng nhằm giải quyết bài toán bùng nổ khônggian trạng thái trong kiểm chứng mô hình (model checking) Thay vì tiến hànhkiểm chứng trên toàn bộ hệ thống gồm các thành phần được ghép nối với nhau,cách tiếp cận này tiến hành kiểm chứng trên từng thành phần riêng biệt Vớicách tiếp cận này, van đề bùng nổ không gian trạng thái hứa hen sẽ được giảiquyết Một trong những phương pháp kiểm chứng hiện thực hóa ý tưởng này làphương pháp kiểm chứng giả định - đảm bảo (assume-guarantee verification -

AGV) Phương pháp nay được đề xuất đầu tiên trong [80, 55] và tiếp tục được

phát triển trong [25, 33, 34, 10, 11] Trong phương pháp này, một hệ thống cầnkiểm chứng được chia thành các hệ thống con và kiểm chứng từng hệ thốngcon một cách riêng biệt Bằng cách kết hợp các kết quả kiểm chứng riêng biệt

này, chúng ta có thế kết luận tính đúng đắn của hệ thống so với thuộc tính cầnkiểm chứng Bằng cách kiểm chứng riêng biệt trên từng hệ thống con (với kíchthước nhỏ hơn nhiều so với kích thước của hệ thống ghép nối), bài toán bùng

nổ không gian trạng thái hứa hẹn được giải quyết Thông thường, hành vi của

một hệ thống con phụ thuộc vào các hệ thống con khác mà chúng có tương tác

với nhau Vì vậy, để kiểm chứng các hệ thống con một cách riêng biệt, chúng

ta cần các giả định (assumptions) về môi trường mà mỗi hệ thống con sẽ được

thực hiện ứng với thuộc tính cần kiểm chứng [24].

Trong phương pháp kiểm chứng giả định - đảm bảo, bài toán kiểm chứng

được biểu diễn bằng bộ ba (A(p)) M (p), trong đó M là một thành phan ứngvới hệ thống con cần được kiểm chứng, p là thuộc tính cần kiểm chứng, và A(ø)

là môi trường mà M sẽ được sử dụng Cho dù ký hiệu của bộ ba này tương tựnhư bộ ba được đề xuất bởi Hoare [44] nơi mà A(p) là tiền điều kiện và p là hauđiều kiện, ý nghĩa của ký hiệu này là A(p) là ràng buộc trên hành vi của A7 NêuM với ràng buộc bởi A(p) thỏa mãn p thì công thức (A(p)) M (p) đúng Trong

nghiên cứu của tác giả, để kiểm tra một công thức giả dinh(A(p)) M (p), với M,A(p) và p được biểu diễn bằng các LTSs, phương pháp giả định - đảm bảo tínhtoán trên công thức A(p)||M||per và kiểm tra xem trạng thai z có thể đến được

trong LTS kết quả hay không Nếu có, thì công thức vi phạm, ngược lại công

22

Trang 38

thức thỏa mãn yêu cầu Giả định A(p) được định nghĩa như sau.

Định nghĩa 2.23 (Giả định (Assumption) [25]) Với một hệ thống gồm hai

hệ thông con MỊ va Mo, để kiểm chúng hệ thống nay uới thuộc tính p mà không

cần ghép nối chứng uới nhau, chúng ta cần tim một giá định A(p) thỏa man điều

kiện A(p) đủ mạnh đối uới M, để thỏa mãn p, nhưng đủ yếu để Mz thỏa mãn

A(p) Một cách hành thúc, A(p) phải thỏa mãn hai luật sau (gọi là các luật gia

hệ thống AMH||Ma thỏa mãn p mà không cần ghép MỊ uới Mo Với cách tiếp cận

nàu, chúng ta có thể kiếm chứng riêng biệt trên từng hệ thống con Kết quả là

bài toán bùng nổ không gian trạng thái hứa hẹn được giải quyết.

Định nghĩa 2.24 (Giả định yếu nhất (Weakest assumption) [33]) Với

một hệ thống con M, va thuộc tính cần kiểm chứng p, giả định yếu nhất, ký

hiệu la Aw, có nghĩa rằng đối uới bat kỳ môi trường E của My, My|\|E E p khi

va chủ khi E | Ap.

2.4.2 Bộ công cu LTSA (Labelled Transition Systems Analyzer)

LTSA [73] là công cu hỗ trợ kiểm chứng với đặc tả là LTS LTS thường đượcbiểu diễn dưới dạng hình học Tuy nhiên, đối với những LTS có số lượng trạngthái lớn thì phương pháp biểu diễn hình học không khả thi Khi đó, ký pháptiễn trình hữu hạn trạng thái (Finite States Processes - FSP) được dùng để biểudiễn LTS, từ đó có thể biểu diễn các LTS có kích thước lớn tốt hơn.

Đầu vào là các tiến trình hữu han trạng thái (FSPs) Sau khi đã đặc tả thiếtkế của bài toán bằng FSP ta tiến hành kiểm chứng thiết kế bằng việc dùng côngcụ hỗ trợ kiểm chứng LTSA để phân tích giả định LTS vừa được tạo ra.

Luận án sử dụng công cụ LTSA để kiểm tra tinh đúng đắn của giả định được

tạo ra bởi các kết quả đề xuất trong luận án Với mục đích này, ta kiểm tra

xem liệu một giả định được tạo ra A(p) đấp ứng các luật giả định - đảm bao

(tức là, (A(p)) ||“ (p) và (true) |LMa (A(p))) bằng cách kiểm tra hệ thống ghép

nối A(p)||Mi||perr qua công cụ LTSA Nếu công cụ LTSA trả về kết quả giống

như kết quả kiểm chứng của chúng ta cho mỗi minh họa hệ thống, giả định A(ø)

được tạo ra là đúng.

23

Trang 39

2.5 Kết luận

Trong chương này, tác giả trình bày các kiến thức nền tảng được sử dụng

trong luận án Phần thứ nhất trình bày phương pháp đặc tả từng thành phầnphần mềm, thuộc tính cần kiểm chứng và giả định bằng hệ thống chuyển trạng

thái được gán nhãn LTS và các kiến thức liên quan như vết, phép ghép nối songsong, thuộc tính an toàn, thuộc tính lỗi, v.v Các khái niệm về ôtômát hữu hạn

trạng thái đơn định (DFAs) được trình bày ở phần hai Phần thứ ba trình ba

trình bày về ôtômát vao/ra (Input/Output Automata) Cuối cùng trình bày các

kiến thức cơ bản quan trọng về kiểm chứng giả định - dam bao và công cụ LTSAlà công cụ hỗ trợ kiểm chứng với đặc tả là LTS Lý thuyết về kiểm chứng giả

định - dam bảo được sử dụng trong Chương 3 và Chương 5.

24

Trang 40

Chương 3

PHƯƠNG PHÁP SINH MÔ HÌNH VÀ KIEM

CHUNG TÍNH DUNG DAN THIET KE CHO CÁC

PHAN MEM DUA TREN THANH PHAN

Chương này dé xuất một phương pháp sinh mô hình tu động cho biểu đồ

tuần tự nhằm giảm độ phức tạp so với các phương pháp hiện tại Phương pháp

này sẽ được tích hợp với phương pháp kiểm chứng giả định - đảm bảo để có

được một giải pháp tổng thể nhằm kiểm chứng tính đúng đắn của biểu đồ tuần

tự UML 2.0 và hướng đến giải quyết bài toán bùng nổ không gian trạng tháitrong kiểm chứng mô hình Một công cụ hỗ trợ giải pháp này cũng được cài đặtvà áp dụng cho một số ví dụ để minh chứng cho tính tính đúng đắn và hiệu quả

của phương pháp đề xuất.

3.1 Giới thiệu

Đảm bảo chất lượng là một trong những vấn đề cấp thiết và tiêu tốn nhiềuchi phí trong quá trình phát triển phần mềm Tự động hóa toàn bộ hoặc mộtsố bước trong quá trình này là mục tiêu hướng tới của các công ty phần mềm

nhằm nâng cao chất lượng và giảm thiểu chi phí Đặc biệt, đối với những sảnphẩm có yêu cầu chất lượng cao như các hệ thống điều khiển máy bay, ga tàu,an ninh quốc phòng, y tế, v.v các phương pháp hình thức sẽ được yêu cầu áp

dụng nhằm đảm bảo tính đúng đắn của thiết kế trước khi thực hiện các pha tiếp

theo Nếu thiết kế ngay từ đầu không đúng và không được kiểm chứng/đảm bảochất lượng thì về sau chúng ta sẽ mất rất nhiều chi phí để phát hiện và sửa chữalỗi Cùng với chứng minh định lý (theorem proving) (35, 36], kiểm chứng môhình (model checking) [23, 73] được biết đến như một giải pháp pho biến để giải

25

Ngày đăng: 29/06/2024, 14:53

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w