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

TÓM TẮT LUẬN VĂN Nghiên cứu phương pháp kiểm chứng mô hình phần mềm dựa trên SAT

21 644 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 332,19 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trên thế giới đã có rất nhiều bài báo, đề tài, công trình nghiên cứuvề kiểm chứng mô hình, về các hướng khác nhau của kiểm chứng môhình nhưng hướng nghiên cứu tập trung vào giải quyết vấ

Trang 1

ĐINH QUANG ĐẠT

NGHIÊN CỨU PHƯƠNG PHÁP KIỂM CHỨNG MÔ

HÌNH PHẦN MỀM DỰA TRÊN SAT

Ngành: Công Nghệ Thông Tin

Chuyên ngành: Công Nghệ Phần Mềm

Mã số: 60 48 10

TÓM TẮT LUẬN VĂN THẠC SĨ

Hà Nội - 2013

Trang 2

Trên thế giới đã có rất nhiều bài báo, đề tài, công trình nghiên cứu

về kiểm chứng mô hình, về các hướng khác nhau của kiểm chứng môhình nhưng hướng nghiên cứu tập trung vào giải quyết vấn đề bùng nổkhông gian trạng thái trong kiểm chứng mô hình luôn luôn là đề tàimang lại nhiều tranh luận, cảm hứng cũng như nghiên cứu nhất Tácgiả muốn nghiên cứu về vấn đề kiểm chứng mô hình liên quan tới vấn

đề bùng nổ không gian trạng thái của kiểm chứng mô hình với một kỹthuật mới nhất hiện nay đó là Bounded Model Checking (BMC) dựatrên SAT Đồng thời dựa trên các kết quả đã được nghiên cứu tìm hiểu,tác giả cũng cài đặt thực nghiệm sử dụng kỹ thuật đã nghiên cứu, tìmhiểu

Chương 1: Kiểm chứng mô hình 1.1 Giới thiệu về kiểm chứng mô hình

1.1.1 Giới thiệu

Tầm quan trọng cũng như sự phức tạp của hệ thống ICT tăng lênnhanh chóng Các hệ thống ICT không còn độc lập, mà được nhúngvào một hệ thống lớn, tương tác và kết nỗi với các thành phần và hệthống khác Do đó, chúng trở nên dễ bị lỗi - số các lỗi phát triển theocấp số nhân đối với số các tương tác với các thành phần hệ thống Đặcbiệt, tính tương tranh và tính không đơn định của mô hình tương tác hệthống lại khó xử lý với các kỹ thuật chuẩn Độ phức tạp của hệ thốngICT ngày càng tăng cùng với những áp lực làm cho thời gian phát triển

hệ thống, điều này đã làm cho việc cung cấp các hệ thống ICT với ítkhuyết điểm là vô cùng khó khăn và phức tạp

1.1.2 Kiểm định trong phần cứng và phần mềm

Trang 3

Kiểm định hệ thống được sử dụng để xác minh xem hệ thống có đạtđược những đặc tính nhất định Các đặc tính được kiểm chứng có thểrất cơ bản, ví dụ, một hệ thống không nên đến được trạng thái mà ở đó

tiến trình không thể thực hiện (kịch bản của deadlock), và chủ yếu được

lấy từ đặc tả của hệ thống Đặc tả này quy định những gì hệ thống phảilàm và những gì không, và do đó tạo nên cơ sở cho bất kỳ hoạt độngkiểm định nào Một khuyết điểm được tìm thấy một khi hệ thống khôngđáp ứng được một trong các thuộc tính của đặc tả Hệ thống được xemxét là "đúng" (correct) khi hệ thống thỏa mãn tất cả các thuộc tính lấy

từ đặc tả của hệ thống Vì vậy, tính đúng đắn luôn luôn tương đối vớiđặc tả, và không có một thuộc tính tuyết đối của hệ thống Một sơ đồcủa kiểm định được mô tả trong hình 1

Thi ế t k ế

(Design)

Ki ể m ch ứ ng (Verification)

Không tìm th ấ y

l ỗ i Tìm th ấ y l ỗ i

Hình 1: Sơ đồ kiểm định hệ thống

1.1.3 Kiểm chứng mô hình

Kiểm chứng mô hình (Model Checking) là một kỹ thuật kiểm chứng

xem xét tất cả các trạng thái có thể của hệ thống theo cách vét cạn.Tương tự như chương trình chơi cờ của máy tính kiểm tra những nước

đi có thể, model checker, công cụ giúp cho việc kiểm chứng mô hình,

xem xét tất cả các kịch bản hệ thống có thể xảy ra theo một cách có hệ

thống Model checker kiểm tra tất cả các trạng thái có liên quan của hệ

thống để kiểm tra xem chúng có thỏa mãn với đặc tính mà bạn mong

Trang 4

muốn hay không Nếu trạng thái gặp phải là vi phạm đặc tính đang xem

xét, model checker sẽ cung cấp một phản ví dụ cho thấy việc làm thế

nào mà mô hình có thể tới được trạng thái không mong muốn Phản ví

dụ cũng mô tả một đường dẫn thực thi có thể dẫn tới từ những trạngthái khởi tạo của hệ thống tới những trạng thái vi phạm thuộc tính đangđược kiểm chứng Với sự giúp đỡ của mô phỏng, người sử dụng có thểxem lại các kịch bản vi phạm để có được những thông tin gỡ lỗi có ích

và tích hợp các mô hình phù hợp (xem hình 2)

Ki ể m ch ứ ng mô hình (Model checking)

Y ề u c ầ u

(Requirements)

L ỗ i đị a ph ươ ng (Location error)

Th ỏ a mãn

(satisfied)

H ệ th ố ng (System)

Đặ c t ả thu ộ c tính

(Property specification)

Mô hình h ệ th ố ng (System model)

Vi ph ạ m, ph ả n ví d ụ (Violated, counterexample)

Mô ph ỏ ng (Simulation)

Mô hình hóa (Modeling)

Hình th ứ c hóa

(Formalizing)

Hình 2: Sơ đồ tổng quan hướng tiếp cận kiểm chứng mô hình

1.1.4 Các tiến trình trong kiểm chứng mô hình

Trong việc áp dụng kiểm chứng mô hình để thiết kế các pha khácnhau như sau:

• Pha Modeling:

Mô hình hóa hệ thống dưới sự xem xét bằng cách sử dụng

ngôn ngữ mô tả mô hình của model checker bằng tay.

Kiểm tra tính đúng đắn trước tiên và các đánh giá nhanhcủa mô hình để thực thi một vài mô phỏng

Mô hình hóa các đặc tính để kiểm tra sử dụng ngôn đặc tảcác thuộc tính

Trang 5

• Pha Running: chạy model checker để kiểm tra tính hợp lệ của

thuộc tính trong mô hình hệ thống

• Pha Analysis:

Thuộc tính có an toàn hay không?→ kiểm tra thuộc tínhtiếp theo (nếu có thể);

Thuộc tính có vi phạm hay không?→

∗ Phân tích phản ví du được sinh ra từ mô phỏng

∗ Làm mịn mô hình, thiết kế, và các thuộc tính

• Cho phép tập trung vào những đặc tính quan trọng trước tiên.Không có đặc tả yêu cầu nào trọn vẹn là cần thiết

• Dễ dàng tích hợp trong vòng đời phát triển hiện có;

• Dựa trên một nền tảng toán học vững chắc;

Mặt yếu của kiểm chứng mô hình:

• Chưa phù hợp với các ứng dụng chuyên về cơ sở dữ liệu

Trang 6

• Tính toán không hiệu quả đối với hệ thống vô hạn trạng thái hoặcluận lý về kiểu dữ liệu trừu tượng.

• Không kiểm chứng hệ thống thực sự

• Kiểm tra những trạng thái yêu cầu Không có đảm bảo nào làkiểm tra được hết các trạng thái

• Vướng phải vấn đề bùng nổ không gian trạng thái

• Đòi hỏi phải có một số chuyên gia trong việc trừu tượng hóa hệthống để có được mô hình hệ thống nhỏ hơn với ít thuộc tínhtrạng thái hơn

• Không đảm bảo mang lại kết quả chính xác

• Không cho phép kiểm tra một cách tổng quát

Định nghĩa 1.1 Hệ thống dịch chuyển(Transition Systems)

Một hệ thống dịch chuyển TS là một bộ (S , Act, −→, I, AP, L) với

• S là tập hợp các trạng thái,

• Act là tập hợp các hành động,

• −→⊆ S × Act × S là một quan hệ dịch chuyển,

• I ⊆ S là tập hợp các trạng thái khởi tạo,

• AP là tập hợp những mệnh đề nguyên tử, và

• L : S −→ 2 AP là một nhãn của hàm.

Trang 7

T S được gọi là hữu hạn nếu S , Act, và AP là hữu hạn.

1.2.2 Logic thời gian

Đối với các hệ thống phản ứng (reactive systems), tính đúng đắn

phụ thuộc vào sự thực thi của hệ thống, không chỉ là đầu vào và đầu

ra của việc tính toán mà còn là vấn đề công bằng (fairness) Logic thời

gian là một hình thức vượt trội để xử lý các vấn đề này Logic thời gian

mở rộng logic mệnh đề hoặc logic tân từ bằng cách cho phép chuyểntới hành vi vô hạn của một hệ thống phản ứng Chúng cung cấp các kýhiệu một cách trực quan nhưng có một nền tảng toán học chính xác đểdiễn tả tính chất về mối quan hệ giữa các nhãn trạng thái trong thưc thi.Các hình thức cơ bản của thời gian được thể hiện trong phần lớn cáclogic thời gian bao gồm hai toán hạng:

♢(hay còn được ký hiệu là F): cuối cùng trong tương lai.

(hay còn được ký hiệu là G): bây giờ và sau này trong tương lai.

1.2.2 Logic thời gian tuyến tính (LTL)

Lý luận của logic thời gian tuyến tính qua những dấu vết tuyến tínhtheo thời gian Ở mỗi thời điểm, chỉ có một lịch trình trong tương laithực sự xảy ra Thông thường, lịch trình được định nghĩa như bắt đầu

ở “hiện tại” (now), trong các bước thời gian hiện hành, và tiến triển vô

hạn trong tương lai

Định nghĩa 1.2 Công thức của mệnh đề LTL

Những công thức của mệnh đề logic thời gian PTL trong thời gian

tuyến tính được định nghĩa quy nạp như sau:

- Mọi mệnh đề cơ bản v ∈ V là công thức.

- Hợp của hai mệnh đề là một mệnh đề.

- Nếu φ và ψ là các công thức thì Xφ và φUψ cũng là các công thức.

Định nghĩa 1.3 Quan hệ nắm giữ LTL

Quan hệ σ |= φ (σ nắm giữ của φ) được định nghĩa quy nạp như sau:

- σ |= v (với v ∈ V) khi và chỉ khi v ∈ σ0(V)

Trang 8

- Ngữ nghĩa của phép hợp được định nghĩa như bình thường.

- σ |= Xφ khi và chỉ khi σ1|= φ.

- σ |= φU khi và chỉ khi với một số k ≥ 0, σ| k |= ψ và σ| j |= φ nắm giữ với mọi 0 ≤ j ≤ k.

Những công thức PTL hữu ích khác có thể được đưa ra như những

từ viết tắt: Fφ (“cuối cùng φ”) được định nghĩa như true U φ; nó khẳng

định rằngφ nắm giữ của một vài hậu tố Công thức kép Gφ ≡ ¬F¬φ

(“luôn luôn”φ) yêu cầu φ nắm giữ tất cả các hậu tố Công thức φWψ

(“ φ chờ đợi ψ”,“φ trừ khi ψ”) được định nghĩa như (φUψ)∨Gφ và yêu

cầuφ nắm giữ cho đến khi ψ không nắm giữ; không giống như φUψ,

nó không yêu cầuψ trở thành đúng ở sau cùng

1.2.3 Logic tính toán cây CTL

Các công thức PTL khẳng định các thuộc tính của các hành vi đơn

lẻ, nhưng chúng cũng quan tâm đến giá trị của hệ thống: chúng ta nóirằng công thứcφ nắm giữ của T (viết là T |= φ) nếu φ nắm giữ của tất

cả các hoạt động củaT Theo nghĩa này, các công thức PTL biểu thị

các tính chất đúng đắn của hệ thống Sự hiện diện của một hoạt động

thỏa mãn một thuộc tính nhất định không thể biểu thị trong PTL Các

thuộc tính có khả năng như vậy thuộc về logic thời gian phân nhánh

như logic CTL Trong mô hình thời gian nhánh, tại mỗi thời điểm t có

thể có rất nhiều khả năng trong tương lai Với những khả năng tương

lai tương ứng là một đường đi được tổ chức từ t Do đó, một đường đi

biểu diễn một khả năng xảy ra trong tương lai Các toán tử thường biểuthị hoặc là “A” nghĩa là với mọi khả năng trong tương lai diễn tả luônluôn, chắc chắn hoặc là “E” nghĩa là có thể tồn tại khả năng tương laidiễn tả sự có thể, không chắc chắn

Định nghĩa 1.4 Công thức mệnh đề CTL

Các công thức của mệnh đề CTL được định nghĩa quy nạp như sau:

- Mọi mệnh đề nguyên tử v ∈ V đều là công thức.

- Hợp của hai mệnh đề là một mệnh đề.

Trang 9

- Nếu φ và ψ là các công thức thì EXφ, EGφ, và φEUψ là các công thức.

Định nghĩa 1.5 Quan hệ nắm giữ CTL

Quan hệ T , s |= φ được định nghĩa theo quy nạp như sau:

- T , s |= v (với v ∈ V) khi và chỉ khi v ∈ s(V).

- Ngữ nghĩa của phép hợp được định nghĩa như bình thường.

- T , s |= EXφ khi và chỉ khi tồn tại một s-path s0s1 sao cho

T , s1|= φ.

- T , s |= EGφ khi và chỉ khi có một s-path s0s1 sao cho T , s i |=

φ nắm giữ với mọi i.

- T , s |= φEUψ khi và chỉ khi tồn tại một s-path s0s1 và k ≥ 0 sao cho T , s k |= ψ và T , s i |= φ nắm giữ với mọi 0 ≤ j < k.

Các công thức CTL được suy ra gồm có EFφ ≡ true EU φ, AXφ ≡

¬EX¬φ, và AGφ ≡ ¬EFφ Những biểu diễn của CTL và PTL có thể

được so sánh bằng cách phân tích các thuộc tính của những hệ thốngdịch chuyển có thể được xây dựng Nó chỉ ra rằng, không thể xếp gộp

logic vào nhau được Trong khi PTL không thể đủ khả năng để thể

hiện các các tính chất về khả năng, thì tính công bằng không thể được

trình bày trong CTL Cụ thể hơn, không có công thức CTL làm cho hệ thống hợp lệ với trường hợp công thức PTL là FGφ Đặc biệt, không

có sự tương ứng với AFAGφ(xem hình 3): mọi hoạt động của hệ thốngdịch chuyểnT thỏa mãn FGp (hoặc là ở trạng thái s0mãi mãi hoặc là

kết thúc ở trạng thái s2), nhưngT , s0 ̸|= AFAGp (với hoạt động ở tại trạng thái s0luôn luôn có những khả năng chuyển tới trạng thái s1)

S 0 S 1 S 2

Hình 3: Một hệ thống dịch chuyển T mà T |= FGp nhưng T ̸|= AFAGp.

Chương 2: Vấn đề bùng nổ trạng thái và giải quyết hướng cổ điển

Trang 10

2.1 Vấn đề của bùng nổ không gian trạng thái trong kiếm chứng

mô hình

Số lượng các trạng thái của một mô hình có thể rất to lớn Một ví

dụ, xem xét hệ thống gồm n tiến trình, mỗi tiến trình có m trạng thái.

Do đó, sự hợp thành không đồng bộ của các tiến trình có thể có m n trạng thái Tương tự vậy, trong n − bit bộ đếm, số lượng các trạng thái

của bộ đếm trong là hàm mũ của số lượng các bit, nghĩa là có 2n Trongkiểm chứng mô hình vấn đề này được biết như vấn đề bùng nổ trạngthái Tất cả các công cụ kiểm chứng đều gặp phải vấn đề này, và đây làđiều không thể tránh khỏi Tuy nhiên, đã có nhiều kỹ thuật được đươcđua ra để giải quyết vấn đề bùng nổ trạng thái Những kỹ thuật nàythường xuyên được sử dụng trong các ứng dụng công nghiệp của kiểmchứng mô hình Đã có nhiều tiến bộ quan trọng trong việc giải quyếtvấn đề bùng nổ trạng thái Một trong những tiến bộ quan trọng đầu tiên

là sử dụng kiểm chứng mô hình biểu trưng (symbolic model checking)

với lược đồ quyết định nhị phân (BDD) Trong hướng tiếp cận này, mộttập hợp các trạng thái được biểu diễn bởi BDD thay vì biểu diễn danhsách của mỗi trạng thái riêng lẻ Biểu diễn BDD thường theo hàm mũnhỏ trong thực tiễn Kiểm chứng mô hình với các BDD được thực thi

sử dụng thuật toán điểm cố định (fixed point) Một hướng đi khác đang

được áp dụng nhiều trong ngành công nghiệp hiện nay là kiểm chứng

mô hình giới hạn (bounded model checking) khai thác bộ giải công cụ SAT (SAT Solver) để tìm kiếm các phản ví dụ của độ dài giới hạn Luận

văn nêu tìm hiểu về kiểm chứng mô hình biểu trưng với BDD và tậptrung vào kiểm chứng mô hình giới hạn dựa trên SAT

2.2 Cách giải quyết theo hướng tiếp cận cổ điển với BDD

Ý tưởng chính của kiểm chứng mô hình tượng trưng là thể hiện

và thao tác với một hệ thống hữu hạn chuyển trạng thái như một hàmBoolean Cụ thể, các lược đồ quyết định nhị phân sắp xếp (OBDDs) làmột dạng chính tắc của các công thức Boolean OBDDs về bản chất là

cô đọng hơn so với các dạng chuẩn truyền thống, hơn nữa OBDDs cóthể thao tác rất hiệu quả

Xem xét các công thức Boolean qua n biến x1, x2, , x n Một lược đồquyết định nhị phân (BDD) là đồ thị có hướng không có vòng và cómột gốc với hai loại đỉnh là đỉnh kết thúc và đỉnh không kết thúc Mỗi

Trang 11

đỉnh không kết thúc v được gán nhãn bởi một biến var(v) và có hai phần tử kế tiếp, low(v) và high(v) Mỗi đỉnh kết thúc v được gán nhãn bởi 0 hoặc 1 qua hàm Boolean value(v) Một BDD với gốc v xác định một hàm Boolean f v (x1, , x n) theo cách sau:

• Các nút lá được ánh xạ tới các nút lá, và các đỉnh được ánh xạ tớicác đỉnh

• Với mọi nút lá v, value(v) = value(H(v)).

• Với mọi đỉnh v:

• var(v) = var(H(v)).

• H(low(v)) = low(H(v)).

• H(high(v)) = high(H(v)).

Các Biểu đồ chuyển trạng thái có thể được thể hiện với các BDD như

sau Trước tiên, phải thể hiện các trạng thái về n biến trạng thái Boolean

v = (v1, v2, , v n ) Sau đó, thể hiện quan hệ chuyển R như công thức

Boolean về trạng thái các biến

Biểu diễn chính tắc của các hàm Boolean có thể đạt được bằng cáchthay thế hai hạn chế trên cây quyết định nhị phân:

Trang 12

• Các biến xuất hiện trong cùng thứ tự theo mỗi đường từ gốc tới

lá (Viết x < y biểu diễn x là trước y trong sắp xếp này)

• Không có cây con đẳng cấu hoặc các đỉnh dư thừa trong lược đồ.Kích cỡ của các BDD phụ thuộc vào sự lựa chon sắp xếp các biến Ví

dụ, BDD thể hiện cho so sanh n-bit là tuyến tính với sắp xếp tốt, nhưng

sẽ là theo hàm mũ với sắp xếp tồi

Biểu đồ chuyển trạng thái có thể được thể hiện với BDD như sau Trước

tiên, thể hiện các trạng thái theo n biến Boolean v = (v1, , v n) Sau đó,

thể hiện quan hệ chuyển R như một công thức Boolean theo các biến

kế tiếp Cuối cùng, chuyển f R thành một BDD

Thủ tục T oBDD lấy đầu vào là một công thức CTL f (v) và trả về là

một BDD thể hiện chính xác các trang thái của hệ thống thỏa mãn côngthức CTL Các phép toán thời gian được xử lý như sau:

• ToBDD(EX f (v)) = ToBDD(∃v f R (v, v′)∧ f (v′)).

• ToBDD(EF f (v)) = L f p(λZ.ToBDD( f (v) ∨ EXZ)).

• ToBDD(E[ f (v)∪g(v)]) = L f p(λZ.ToBDD(g(v)∨( f (v)∧EXZ))) Nếu f (v) có dạng ∃v i g, thì ToBDD( f (v)) = ToBDD(g| v i←0∨ g| v i←1)

Cuối cùng, để xem công thức f (v) là true trong tập các trạng thái khởi tạo I(v), kiểm tra xem liệu công thức I(v) ⇒ f (v) có nắm giữ hay

không Cách giải quyết vấn đề bùng nổ không gian trạng thái bằngcách sử dụng kiểm chứng mô hình tượng trưng với BDD đã được ápdụng từ lâu nhưng hiện nay đã không còn áp dụng nhiều nữa vì nhữngnguyên nhân, hạn chế sau:

• BDD phải lưu giữ các trạng thái, nên nó thường xuyên trở nênquá lớn với các hệ thống lớn

• Việc chọn cách sắp xếp các biến rất quan trọng cho việc thu vềnhững BDD nhỏ, thường tốn thời gian hoặc phải làm thủ công,

và đôi khi, không tồn tại những cách sắp xếp biến hiệu quả,

Ngày đăng: 13/04/2015, 16:32

HÌNH ẢNH LIÊN QUAN

HÌNH PHẦN MỀM DỰA TRÊN SAT - TÓM TẮT LUẬN VĂN Nghiên cứu phương pháp kiểm chứng mô hình phần mềm dựa trên SAT
HÌNH PHẦN MỀM DỰA TRÊN SAT (Trang 1)
Hình thức hóa - TÓM TẮT LUẬN VĂN Nghiên cứu phương pháp kiểm chứng mô hình phần mềm dựa trên SAT
Hình th ức hóa (Trang 4)
Hình 4: Một đường dẫn dạng lasso. - TÓM TẮT LUẬN VĂN Nghiên cứu phương pháp kiểm chứng mô hình phần mềm dựa trên SAT
Hình 4 Một đường dẫn dạng lasso (Trang 17)
Hình 5: Biểu đồ lớp các yêu cầu của hệ thống thư viện - TÓM TẮT LUẬN VĂN Nghiên cứu phương pháp kiểm chứng mô hình phần mềm dựa trên SAT
Hình 5 Biểu đồ lớp các yêu cầu của hệ thống thư viện (Trang 20)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w