Minh họa phép giao hai khoảng (a) và phép ghép nối tiếp hai khoảng (b)

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số phương pháp mô hình hoá và kiểm chứng hình thức cho các hệ thống thời gian thực hướng thành phần luận án TS máy tính 94801 (Trang 42 - 53)

Chương 6 Kết luận

2.5 Minh họa phép giao hai khoảng (a) và phép ghép nối tiếp hai khoảng (b)

dịch vụ và cung cấp trong e2 đơn vị thời gian. Giả sử một phép gán bất kỳ trên tập biến đầu vào được thực hiện tại thời điểmτ2 và trả kết quả tại tập biến đầu ra tại thời điểm τ20. Như vậy, tổng thời gian cho hai khoảng liên tiếp I1,I2 là

I =I1.θI2 =b1+I2 = [b1+b2, b1+e2].

Luận án định nghĩa ơtơmát khoảng một cách hình thức theo Định nghĩa

2.7.

Định nghĩa 2.7. Một ôtômát khoảng một bộ năm thành phần M=hQ,b Σ, q0, T,Γi được mô tả như sau:

(i) Q là tập hữu hạn các trạng thái, (ii) Σ là tập hữu hạn các hành động, (iii) q0 ∈Q là trạng thái khởi đầu,

(iv) T :Q×Σ×Time×Q là tập các quan hệ dịch chuyển, và (v) Γ ⊆Q là tập các trạng thái kết thúc.

Như vậy, một trạng thái của ôtômátM là một cặp (q, d) ∈Q×R≥0. Trạng thái khởi tạo của M là cặp (q0,0) và trạng thái kết thúc của M là cặp (q, d) sao cho q ∈ Γ. Một dịch chuyển trong ôtômátM là một bộ gồm (q, a,[b, e], q0) ∈

T. Trong trường hợp khơng có ràng buộc thời gian, một dịch chuyển có dạng (q, a, q0) ∈T.

2.3 Bài tốn kiểm chứng hệ thống thời gian thực

Song song với quá trình phát triển trong lĩnh vực phát triển phần mềm, các kỹ thuật kiểm chứng phần mềm cũng được cải tiến và ngày càng giải quyết những vấn đề phức tạp và khó. Kiểm chứng phần mềm được phát triển nhằm mục đích chứng minh phần mềm được sản xuất ra đúng với yêu cầu thiết kế. Để giải quyết bài tốn này, phương pháp hình thức là một cách tiếp cận tốt nhất. Khi dùng phương pháp hình thức, các nhà phát triển có thể khắc phục nhiều nhược điểm của cách tiếp cận truyền thống. Đó là áp dụng phương pháp hình thức vào tất cả các giai đoạn trong phát triển phần mềm, bắt đầu từ ngay pha thiết kế. Một lỗi được phát hiện trong giai đoạn thiết kế có thể giảm nhiều lỗi trong các giai đoạn phát triển sau này. Các kỹ thuật đã được áp dụng trong lĩnh vực kiểm chứng hệ thống được tóm tắt trong một số mục sau đây.

1. Mơ hình hóa hệ thống thời gian thực: Các phương pháp được áp dụng cho bài tốn này là sử dụng ơtơmát thời gian [5], biểu thức chính quy thời gian [35], ơtơmát khoảng (Duration Automata) [36], Timed Petri Nets [37], v.v.

2. Đặc tả các tính chất của hệ thống: Các kỹ thuật dùng để đặc tả tính chất của hệ thống như: Timed regular expression, Timed LTL [1,3], WCTL [38], Timed CTL [1,3], MITL [6], DC [31] v.v.

3. Cơng cụ kiểm chứng: Có hai cách tiếp cận trong việc phát triển các công cụ kiểm chứng hệ thống thời gian thực được trình bày cụ thể như sau:

(a) Dựa trên mơ hình: Gồm các cơng cụ Kronos [39], HyTech [40], UP- PAAL [41], UPPAAL-SMC [42] và các phiên bản mở rộng, PRISM [43], MRMC [44], v.v.

(b) Dựa trên chứng minh định lý: Hiện nay, với hướng tiếp cận này, rất hiếm các công cụ được áp dụng cho hệ thống thời gian thực, có thể kể ra cơng cụ điển hình là PSV [45], hầu hết chỉ áp dụng cho hệ thống phi thời gian như: PVS phiên bản gốc, CafeOBJ, v.v. Ngoài ra, một số cơng cụ phát triển để kiểm tra tính thỏa được của các cơng thức lơgíc, đó là các cơng cụ sử dụng SAT-solver như Z3, MiniSAT, v.v.

2.3.1 Đặc tả và mơ hình hóa hệ thống

Mơ hình hóa hệ thống là một phần quan trọng trong bài toán kiểm chứng phần mềm. Mơ hình của hệ thống là một dữ liệu vào của bộ kiểm chứng mơ hình. Do đó, mơ hình phải phản ảnh chi tiết và đầy đủ các hành vi của hệ thống cần kiểm chứng. Phương pháp phát triển phần mềm thời gian thực dựa trên thành phần dù có nhiều ưu điểm nhưng do các thành phần phần mềm được coi là “hộp đen” nên cần phải có phương pháp đặc tả các thành phần phần mềm một cách chi tiết, đầy đủ các chức năng và thuộc tính của hệ thống, và phải có tính trừu tượng cao để có thể dễ dàng áp dụng các kỹ thuật trong phương pháp kiểm chứng mơ hình. Hiện nay, một trong những phương pháp nổi bật nhất là sử dụng lý thuyết giao diện thành phần [15,46–51]. Các lý thuyết này đề cập đến các khía cạnh khác nhau về lý thuyết giao diện như tính đồng bộ, bất đồng bộ, ràng buộc thời gian, quan hệ vào/ra, v.v. Đối với hệ thống thời gian thực, người ta sử dụng ôtômát thời gian hoặc những lý thuyết tương đương để mơ hình hóa hệ thống.

Để biết được các giao diện thành phần hoạt động như thế nào, cần phải biểu diễn hữu hạn các hành vi của giao diện thành phần, có một số cơng trình điển hình như Đại số giao diện (Interface Algebra) đã mơ tả được các thành phần phần mềm bằng giao diện một cách ngắn gọn, rõ ràng [52–54]. Lý thuyết này đã đề cập đến các kỹ thuật đối với giao diện như: Cắm môi trường vào giao diện, làm mịn, các thao tác ghép các giao diện để có thể mơ tả được hệ thống phức tạp. Các phương pháp kiểm chứng cũng được đưa ra trong các lý thuyết này.

Kế tiếp đến các cơng trình lý thuyết sau được phát triển để có thể ứng dụng cho giao diện thành phần thời gian thực như Đại số giao diện cho hệ thống thời gian thực [55], phát triển mơ hình cho giao diện hệ thống thời gian thực [15,51], giao diện thời gian [56–58]. Tuy nhiên, chưa có phương pháp tồn diện cho lĩnh vực này.

2.3.2 Đặc tả tính chất của hệ thống

Đối với bài tốn kiểm chứng, các tính chất của hệ thống thời gian thực được đặc tả bằng các hệ lơgíc thời gian. Phương pháp đầu tiên là dùng hệ tốn mệnh đề. Hệ tốn mệnh đề đã mệnh đề hóa các phát biểu bằng các ký hiệu, từ đó kết hợp với các phép tốn trong lơgíc để hình thành nên cơng thức

trong lơgíc mệnh đề. Bài tốn chứng minh các cơng thức lơgíc đồng nhất đúng, đồng nhất sai sẽ có ứng dụng rất lớn trong việc chứng minh một chương trình máy tính chạy đúng hay sai. Tồn bộ kiến thức được trình bày trong cuốn sách lơgíc trong khoa học máy tính (Logic in Computer Science: Modelling and Reasoning about Systems) [59]. Tiếp theo có nhiều phương pháp được đề xuất như sử dụng LTL [30], CTL [3,60], RE [35], và MITL, MTL [6,7], DC [31], v.v.

2.3.3 Bài tốn kiểm tra tính rỗng

Khi cần kiểm chứng một hệ thống nào đó, đầu tiên, một thiết kế hoặc một cài đặt nào đó của hệ thống được mơ hình hóa bằng một mơ hình, phổ biến là một ơtơmát. Tiếp theo, một tính chất của hệ thống cần kiểm chứng được đặc tả bằng một trong các hệ lơgíc [1,3]. Các nhà nghiên cứu áp dụng bài tốn kiểm tra tính rỗng của ngơn ngữ để thực hiện việc kiểm chứng này. Đặt mơ hình của hệ thống là M, đặt ngôn ngữ của M là L(M). Đặt S là một đặc tả tính chất nào đó của hệ thống thể hiện bằng ngơn ngữ L(S). Khi thực hiện kiểm chứng

các tính chất của hệ thống, người ta kiểm tra xem L(M) có thỏa mãnL(S) hay

khơng? Điều này khó chứng minh bằng cách so sánh trực tiếp hai ngôn ngữ. Do vậy, người ta sẽ tìm ngơn ngữ bù của L(S), ký hiệu ¬L(S), rồi kiểm tra

giao củaL(M) với ¬L(S) có rỗng hay khơng, ký hiệu L(M)∩ ¬L(S) =∅? Nếu L(M)∩ ¬L(S) = ∅ khẳng định mơ hình của chương trình thỏa một tính chất được đặc tả bằng S, trường hợp ngược lại khẳng định khơng thỏa u cầu và

có thể cơ lập các lỗi để khắc phục. Nhưng điều quan trọng là khi mơ hình hóa hệ thống có đảm bảo được sự tương đương giữa chương trình phần mềm với mơ hình được đưa vào kiểm chứng. Đây là bài toán được nghiên cứu nhiều trong lĩnh vực kiểm chứng phần mềm.

2.4 Tổng kết chương

Chương này trình bày các kiến thức cơ bản và được sắp xếp một cách hệ thống làm cơ sở cho các nghiên cứu trong các phần tiếp theo của luận án. Phần 2.1 trình bày các khái niệm về kỹ nghệ phần mềm dựa trên thành phần. Bắt đầu từ các định nghĩa về thành phần phần mềm của các tác giả Clement Szyperski, Bertrand Meyer, Heineman và Councill, luận án xác định các tính chất và đặc tính của thành phần phần mềm như thế nào. Dựa trên những định nghĩa này, luận án xác định được phạm vi các yếu tố cần nghiên cứu như: phát triển mơ hình cho thành phần phần mềm, các kỹ thuật đặc tả các thành

phần phần mềm thời gian thực bằng giao diện thời gian thực và đặc tả bằng hợp đồng thời gian với ràng buộc tài nguyên, và các kỹ thuật phát triển hệ thống theo hướng ghép thành phần phần mềm với nhau cho đến khi thỏa các yêu cầu của hệ thống, tức là kỹ thuật phát triển phần mềm tăng dần (Software incremental development).

Phần tiếp theo trong chương này, luận án trình bày các kiến thức về hệ thống thời gian thực. Những kiến thức này làm nền tảng cho sự nghiên cứu các yêu cầu và đặc tính của hệ thống thời gian thực gồm nguyên lý hoạt động, kỹ thuật mơ hình hóa, những ưu nhược điểm của lý thuyết thời gian thực. Luận án lựa chọn những ưu điểm của lý thuyết này để phát triển các nghiên cứu tiếp theo trong luận án. Luận án lựa chọn ôtômát thời gian, ôtômát trọng số và ôtômát khoảng là những lý thuyết tổng quát nhất cho bài tốn mơ hình hóa các hành vi của hệ thống thời gian thực.

Phần cuối cùng của chương trình bày về bài tốn kiểm chứng hệ thống thời gian thực và tóm lược các lý thuyết liên quan gồm các hệ lơgíc để biểu diễn các tính chất cần kiểm chứng của hệ thống như: lơgíc thời gian tuyến tính, biểu thức chính quy thời gian, lơgíc cây tính tốn, lơgíc hệ mét v.v. Luận án lựa chọn phương pháp kiểm chứng mơ hình nhưng được áp dụng cho bài toán kiểm chứng từng thành phần phần mềm riêng rẽ để giảm độ phức tạp, phương pháp này dựa trên chiến lược chia để trị. Như vậy, hệ thống được phát triển dựa trên cách ghép dần từng thành phần phần mềm và các tính chất của hệ thống được đảm bảo.

Trong chương này, luận án đã trình bày tổng quát các lý thuyết cơ bản về hệ thống thời gian thực, các phương pháp và kỹ thuật phát triển phần mềm dựa trên thành phần và các cách tiếp cận áp dụng trong bài toán kiểm chứng phần mềm. Các lý thuyết này được sử dụng làm kiến thức nền tảng cho sự nghiên cứu các phần tiếp theo của luận án.

CHƯƠNG 3

Mơ hình thành phần phần mềm

thời gian thực và thể thức tương tác

Chương này đề xuất mơ hình cho thành phần mềm thời gian thực dựa trên thành phần và đề xuất thể thức tương tác giữa các phương thức trong cùng một thành phần, giữa các thành phần với nhau và giữa các thành phần với mơi trường trên cả khía cạnh chức năng và phi chức năng.

3.1 Giới thiệu

Mơ hình thành phần phần mềm được sử dụng như là một tập các quy tắc xác định sự tương tác và các tiêu chuẩn kết hợp cụ thể đối với các thành phần phần mềm trong hệ thống thời gian thực. Trong thời gian qua, một số công nghệ như CORBA, EBJ, COM, DCOM và .NET, v.v. là những công nghệ được triển khai và phát triển rất mạnh, đem lại nhiều ứng dụng trong thực tế [17–19,61]. Bên cạnh đó, có các hệ thống hình thức và bán hình thức như Uniframe [63], BIP [14,62], PECOS [20,64], X-MAN [21,65], v.v. Trong đó,

BIP (Behaviour-Interaction-Priority) là một bộ khung hỗ trợ phát triển phần mềm dựa trên thành phần. Mơ hình BIP (lấy trùng tên với bộ khung BIP) được chia thành ba tầng, (i) tầng thành phần gồm các thành phần phần mềm nguyên tử mà các thành phần phần mềm tương tác với nhau bằng cách thức truyền nhận thông điệp, (ii) tầng thứ hai là tầng giao thức tương tác gồm một tập các thành phần, mỗi thành phần quản lý một lớp các tương tác. Tầng giao thức làm nhiệm vụ thăm dò các tương tác được kích hoạt và thực thi sau khi

giải quyết các sự xung đột nội bộ hoặc được sự trợ giúp từ tầng thứ ba. Tầng thứ ba là tầng giao thức giải quyết xung đột, tầng này được cài đặt các thuật toán giải quyết xung đột để giải quyết các xung đột được yêu cầu từ tầng thứ 2. Tuy nhiên, mơ hình BIP khơng hỗ trợ hệ thống thời gian thực, các thành phần phần mềm được kết nối với nhau bằng các kết nối sau đó được cải tiến dựa trên kỹ thuật truyền thông điệp, xử lý tương tác tương tranh. Mơ hình này khơng cho phép đặc tả các yếu tố ràng buộc tài nguyên, không thể đánh giá và phân tích tính hiệu quả sử dụng tài nguyên của hệ thống thời gian thực ngay tại giai đoạn đầu của quá trình phát triển phần mềm. Sự khác biệt giữa mơ hình do luận án đề xuất với mơ hình BIP được thể hiện trên các khía cạnh cụ thể như sau: các phương thức trong thành phần phần mềm được đặc tả một cách chi tiết bằng thiết kế thời gian và thiết kế thời gian với các ràng buộc tài nguyên, các thành phần phần mềm được mơ hình hóa và biểu diễn bằng hợp đồng thời gian thực với đầy đủ các yếu tố từ tập thuộc tính, giao diện, đặc tả mã nguồn, các thành phần bất biến, v.v. Đặc biệt, thể thức tương tác tương tranh được bổ sung trực tiếp trong hợp đồng, điều này cho phép chúng ta có thể tiến hành kiểm chứng từng phần đối với việc môi trường gọi các dịch vụ từ thành phần phần mềm [14,62].

PECOS được đề xuất trong một dự án cùng tên của Châu Âu được phát triển cho thành phần phần mềm hệ thống nhúng gồm các mục tiêu (i) Phát triển mơ hình thành phần phần mềm dựa trên thành phần hướng đến đặc tả hành vi và các thuộc tính và các ràng buộc phi chức năng. (ii) Tạo ra kho chứa các thành phần sử dụng cho mơ hình này. (iii) Tạo một mơi trường thành phần tương tác cho việc kết hợp các ứng dụng nhúng từ các thành phần phần mềm trên hai khía cạnh chức năng và các ràng buộc phi chức năng (năng lượng và kích thước mã nguồn). (iv) Tạo một mơi trường thành phần để cài đặt, thực thi, kiểm tra, điều chỉnh ứng dụng dựa trên sự giới hạn về tài nguyên. Tuy nhiên, mơ hình này khơng mở rộng cho hệ thống thời gian thực dựa trên thành phần trên các môi trường khác, chưa hỗ trợ chế độ đa luồng, chưa chỉ ra sự tương tác giữa các thành phần phần mềm theo cách thức có thể kiểm sốt được. Đặc biệt, khơng áp dụng cách tiếp cận phương pháp tính đúng đắn dựa trên cách xây dựng và thiết kế bằng hợp đồng [20,64].

Mơ hình X-MAN cho phép đặc tả các thành phần phần mềm ngun tử dưới dạng một ngơn ngữ lập trình cụ thể. Tại mức trừu tượng hóa, các thành phần phần mềm nguyên tử được biểu diễn bằng một tập các hợp đồng gồm tiền điều kiện, hậu điều kiện, v.v. Thành phần phần mềm hợp thành được hình

thành bằng cách kết nối các thành phần phần mềm nguyên tử dựa trên các bộ kết nối và bộ điều phối, phương pháp kiểm chứng các thành phần phần mềm theo chiều dọc (vertical) và chiều ngang (horizontal). Tuy nhiên, mơ hình này khơng hỗ trợ hệ thống thời gian thực dựa trên thành phần, không hỗ trợ đặc tả và phân tích tính hiệu quả của việc sử dụng tài nguyên hệ thống. Bên cạnh đó, thành phần bất biến không được đề cập, sự khác biệt này rất lớn so với đề xuất trong luận án, đó là thành phần bất biến cho hợp đồng thời gian trên cả hai phương diện chức năng và phi chức năng và được biểu diễn bằng lơgíc thời gian tuyến tính [21,65].

Các mơ hình trên trở nên phổ biến và được áp dụng nhiều trong việc phát triển hệ thống dựa trên mơ hình và mơ hình hóa các hành vi của hệ thống. Tuy nhiên, các mơ hình này hoặc là khơng hỗ trợ mức trừu tượng hóa bậc cao hoặc là có các ngơn ngữ riêng với bộ ký pháp hạn chế nên khó có thể kết hợp trực tiếp với các ngơn ngữ lập trình khác. Hơn nữa, những mơ hình này chỉ tập trung vào thiết kế và chức năng của các thành phần và đối tượng. Lý thuyết rCOS có thể được coi là một kỹ thuật mơ hình hóa nhưng thể thức tương tác trong rCOS không hỗ trợ đặc tả tương tranh và thiếu phần giao diện yêu cầu [66,67].

Một phần của tài liệu (LUẬN án TIẾN sĩ) một số phương pháp mô hình hoá và kiểm chứng hình thức cho các hệ thống thời gian thực hướng thành phần luận án TS máy tính 94801 (Trang 42 - 53)

Tải bản đầy đủ (PDF)

(166 trang)