Chương 4 Đặc tả và mơ hình hóa giao diện thời gian thực
4.6. Mơ hình hóa hành vi của giao diện
Do hành vi của giao diện thời gian thực là vô hạn, chúng ta cần biểu diễn hữu hạn các hành vi này để có thể kiểm sốt được chất lượng của các dịch vụ của thành phần phần mềm do mơi trường sử dụng. Đối với giao diện có ràng buộc thời gian, luận án mở rộng ôtômát khoảng để biểu diễn chuỗi hành vi của giao diện và môi trường bằng cách bổ sung hàm gán nhãn điều kiện ràng buộc trên trạng thái và hàm gán nhãn thời gian. Đối với thời gian, có hai sự mở rộng được xem xét là mối liên hệ giữa khoảng thời gian với trạng thái và mối liên hệ
khoảng thời gian với các dịch chuyển. Định nghĩa hình thức ơtơmát khoảng giao diện như sau:
Định nghĩa 4.13(Ơtơmát khoảng gán nhãn). Một ôtômát khoảng trên tập biến đầu vào X và tập biến đầu ra Y là một bộ MI = hQ,Σ, X, Y, q0, T, Λ,Γi, trong
đó X ∩Y =∅ gồm các thành phần 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) X, Y tương ứng là tập biến đầu vào và tập biến đầu ra, (iv) q0 ∈Q là trạng thái khởi tạo của M,
(v) T ⊆S×Σ×S là tập các quan hệ dịch chuyển thời gian,
(vi) Λ = (Λf, Λτ), Λf : S → F(X ∪Y) là hàm gán nhãn trên mỗi trạng thái của M với một biểu thức lơgíc tân từ cấp 1 chỉ mối quan hệ giữa tập biến đầu vào X với tập biến đầu ra Y, Λτ : S → Intv gán nhãn thời gian lên trạng thái của M, và
(vii) Γ ⊆Q là tập trạng thái kết thúc.
Như vậy, một cấu hình của M là một cặp (s, d) ∈S×T ime. một cấu hình
(s, d) cho biết ôtômátM ở trạng thái svới dđơn vị thời gian. Vậy cấu hình khởi tạo của M là cặp (q0,0), và một cấu hình chấp nhận được của M là cặp (s, d), trong đó s∈ Γ. Một dịch chuyển của M hoặc có dạng (s, d) −→˚δ (s, d+ ˚δ), ở đây
(˚δ ∈T ime) và ˚δ ≥0) hoặc là dịch chuyển rời rạc có dạng (s, d) −→c (s0,0), ở đây
c ∈Σ, Λτ(s) = I, (s, c, s0) ∈T và d ∈I. Mặt khác, một dịch chuyển rời rạc chỉ có thể xảy ra tại thời điểm được kích hoạt.
Để một ơtơmát khoảng biểu diễn được hành vi của giao diện thành phần, luận án định nghĩa ôtômát khoảng giao diện trong Định nghĩa 4.14.
Định nghĩa 4.14 (Ơtơmát khoảng giao diện). Một ôtômát khoảng giao diện
I(MI) là bộ ba hX ∪ {ăx}, Y ∪ {ăy}, ξi trong đó X và Y là tập hữu hạn tương ứng với tập biến đầu vào và đâu ra. xă là biến mới trên tập hành động Σ, v yălà biến mới trên tập trạng thái Q. Quan hệ ξ(σ.(a, τ)) = (Λf(s)∧W
(s,c,s0)∈T(ăx = c) ⇒
(ăy =s0), Λτ(s)), τ ∈ Λτ(s), trong đó a(ăy) =s0 và σ là dãy tính tốn dẫn đến s.
Trong Định nghĩa 4.14, ơtơmát khoảng giao diện I(MI) hoạt động khơng đơn định. Do đó, bin ăx v ăy được bổ sung và đóng vai trị là bin iu khin. Bin ăx tại tập biến đầu vào nhận giá trị là “true” hoặc “false” sẽ quyết định
biến {ăy} tại tập biến đầu ra là “true” hoặc “false” sẽ làm cho ôtômát khoảng giao diện I(MI) trở nên đơn định.
Một dãy thực thi của ôtômát khoảng giao diện được khái quát trong Định nghĩa 4.15.
Định nghĩa 4.15 (Dãy thực thi). Một dãy thực thi của một ôtômát khoảng giao diện I(M) =hX {x}, Yă ∪ {y}, ξiă là một dãy các trạng thái s1s2. . . sn sao cho ai |= Λf(si) và τi ∈ Λτ(si), ở đây si = (ai, τi) và ξ(s1. . . si−1) = Λi, i = 1, n.
Tập tất cả các trạng thái của I(M) ký hiệu bởi S(I(M)).
S S1 S2 F (X,Y) F2 (X,Y) I2 F1 (X,Y) I1 F1(X,Y) F2(X,Y) S S S F (X,Y) F (X,Y) hX hY
Hình 4.3: Minh họa ơtơmát khoảng giao diện và môi trường
Tương tự như vậy luận án cũng định nghĩa ơtơmát khoảng cho mơi trường trong đó mỗi trạng thái s được gán nhãn vớihX(σ) vàhY(σ) trong đó σ là một dãy tính tốn dẫn tới s.
Định nghĩa 4.16 (Ơtơmát khoảng cho mơi trường). Một ôtômát khoảng hữu hạn môi trường ME được định nghĩa giống như Định nghĩa 4.13 ngoại trừ hàm gán nhãn Λf :S → F(X)× F(X ∪Y) và Λτ : S → Intv.
Tương tự như trường hợp của ôtômát khoảng giao diện, một ôtômát khoảng môi trường được định nghĩa như dưới đây:
Định nghĩa 4.17. Ơtơmát khoảng mơi trường là một bộE(ME) =hX{ăx}, Y∪ {ăy}, hX∧in∈ yăin, hYi trong đó hX(σ.(a, τ)) =ΛX(s)∧i ∈s+ và hY(σ.(a, τ)) = (ΛY(s)∧(s,x,ă y)ă ∈T, ΛYτ).
Hình 4.3 minh họa cho định nghĩa ơtơmát khoảng giao diện và ôtômát khoảng môi trường.
Định lý 4.7. Cho ôtômát khoảngMIvà một ôtômát khoảng cho môi trường ME. Giao diện môi trườngE(ME) cắm vào giao diệnI(MI)khi và chỉ khi ME là đồ thị con của MI, và với mọi s ∈ S(E), ΛX(s) ⇒ in(Λf(s)), ΛX(s)∧Λf(s) ⇒ ΛY(s)
và ΛYτ(s) ⊆ Λτ(s).
Chứng minh. Đặt GraphM = hVM, EMi là một đồ thị có hướng biểu diễn bảng chuyển của ôtômát M, where VM là tập các đỉnh tương ứng với tập trạng thái
QM của M, và tập các cạnh tương ứng với tập dịch chuyển TM và được gán nhãn bằng hàm ΛM đã được định nghĩa như trong Định nghĩa 4.13.
Đặt GraphE = hVE, EEi là đồ thị có hướng biểu diễn ơtơmát ME với VE
là tập các đỉnh tương ứng với tập trạng thái QE, tập các cạnh tương ứng với tập các dịch chuyểnTE và được gán nhãn bằng hàm ΛE, trong đóΛE được định nghĩa như trong Định nghĩa 4.16. Sử dụng phương pháp quy nạp để chứng minh
định lý này.
(i) Bước cơ sở: Kết quả này đúng với trạng thái s = , vì là trạng thái khởi tạo của bất kỳ giao diện nào, nghĩa là tương ứng với s, đó là đỉnh khởi tạo của GraphM và GraphE. Quy nạp theo độ dài của các trạng thái.
(ii) Bước quy nạp: Giả sử kết quả này đúng với trạng tháis ∈S(E), chúng
ta chứng minh nó đúng với s.(a, τ). Theo giả thiết, E(E) cắm vào I(M). Đặt s.(a, τ) là dãy trạng thái đến được sao cho s.(a, τ) ∈S(E(E),I(M)). Điều này suy ra s.(a, τ) là một đường đi trong đồ thị GraphM và cũng là đường đi trong đồ thị GraphE. Theo Định nghĩa 4.7 và giả thiết
E(E) cắm vào I(M). Công thức dưới đây đúng hX(a, τ) ∧in ∈ πin ⇒
in(ξ(a, τ)), ξf(a, τ) ∧ hX(a, τ) ⇒ hYf(a, τ) và ξτ(a, τ) ⊆ hYτ(a, τ) suy ra S(E(E),I(M)) ⊆ S(I(M)), tức là với mọi s ∈ S(E) tập trạng thái S(E(E))⊆ S(I(M)). Do đó, GraphE ⊆ GraphM. Vì E(E) cắm vào I(M), tức là cơng thức hX(a, τ)∧in ∈ πin ⇒ in(ξ(a, τ)), ξf(a, τ)∧hX(a, τ) ⇒
hYf(a, τ) và ξτ(a, τ) ⊆ hYτ(a, τ) đúng. Theo Định nghĩa 4.17, và theo
giả thiết với mọi s ∈ S(E) suy ra công thức ΛX(s) ⇒ in(Λf(s)),
ΛX(s) ∧ Λf(s) ⇒ ΛY(s), và Λτ(s) ⊆ ΛYτ(s) đúng. Theo hướng ngược lại: Giả sử GraphE ⊆ GraphM và với mọi s ∈ S(E), các công thức
ΛX(s) ⇒ in(Λf(s)), ΛX(s) ∧Λf(s) ⇒ ΛY(s), và ΛYτ(s) ⊆ Λτ(s) đúng. Suy ra E(E) cắm vào I(M). Vậy, phép cắm giữa ôtômát môi trường với ôtômát giao diện là quyết định được.
4.7 Tổng kết chương
Chương 4 đã đề xuất một kỹ thuật hiệu quả trong việc đặc tả, mơ hình hóa hệ thống thời gian thực dựa trên thành phần. Các đóng góp chính được thể hiện qua những kết quả như sau.
Thứ nhất, thành phần phần mềm thời gian thực được đặc tả bằng giao diện thời gian thực gồm tập biến đầu vào và tập biến đầu ra, quan hệ giữa tập biến đầu vào và tập biến đầu ra và thời gian thực thi của thành phần phần mềm thỏa các ràng buộc của quan hệ trong giao diện. Giao diện có mức trừu tượng cao nên phương pháp biểu diễn ngắn gọn, tường minh. Sự đảm bảo tính đúng đắn của thành phần phần mềm được biểu diễn bằng quan hệ đầu vào đầu ra là một cơng thức lơgíc vị từ. Quan hệ trên tập biến đầu vào và đầu ra này đảm bảo rằng nếu môi trường gán một bộ dữ liệu thỏa điều kiện đầu vào của giao diện thì giao diện sẽ đảm bảo kết quả đầu ra thỏa yêu cầu của môi trường trong khoảng thời gian đã cho.
Thứ hai, quy mô của hệ thống được phát triển tăng dần dựa trên các kỹ thuật ghép các giao diện để phát triển các hệ thống phức tạp, có quy mơ lớn. Các kỹ thuật này đảm bảo việc phát triển hệ thống đúng đắn dựa trên phương pháp ghép các biểu thức lơgíc trong giao diện. Do đó, hệ thống được phát triển đảm bảo được tính chất. Khi mơi trường muốn sử dụng các dịch vụ từ giao diện, môi trường phải cắm vào giao diện. Dựa trên sự kiểm tra các điều kiện khi cắm mơi trường vào giao diện, chúng ta có thể kiểm chứng được hệ thống cần phát triển thông qua phép cắm này.
Thứ ba, do các chuỗi hành vi của giao diện và môi trường thời gian thực là vô hạn, chương này đã đưa ra phương pháp biểu diễn hữu hạn các hành vi của giao diện và môi trường bằng ôtômát khoảng. Với ưu thế có thể đặc tả được thời gian tối thiểu và thời gian tối đa của quá trình sử dụng dịch vụ từ mơi trường, ơtơmát khoảng rất phù hợp để giải quyết bài tốn địi hỏi đánh giá chất lượng dịch vụ trên hai khía cạnh sử dụng thời gian.
Các đóng góp chính của nghiên cứu này được công bố tại Kỷ yếu của Hội nghị Quốc tế “Third International Conference on Knowledge and Systems Engineering” (KSE 2011). Kết quả của nghiên cứu này có thể áp dụng trong q trình phát triển hệ thống thời gian thực dựa trên thành phần nhờ sự ngắn gọn, súc tích trong đặc tả và kỹ thuật ghép các giao diện thời gian thực bằng toán học. Tuy nhiên, kỹ thuật đặc tả và kiểm chứng này vẫn còn một số hạn chế cần
được cải tiến trong tương lai như bổ sung các đặc tả tài nguyên cho giao diện thời gian thực, cài đặt công cụ để hỗ trợ trong quá trình phát triển hệ thống thời gian thực bằng phương pháp này.
CHƯƠNG 5
Đặc tả và kiểm chứng bằng hợp đồng thời gian thực với ràng buộc tài nguyên
Chương này luận án đề xuất kỹ thuật đặc tả thành phần phần mềm thời gian thực bằng hợp đồng thời gian và hợp đồng thời gian với ràng buộc tài nguyên. Kỹ thuật này dựa trên cách tiếp cận tính đúng đắn bởi cách xây dựng và thiết kế bằng hợp đồng nhằm hướng đến mục tiêu giảm thiểu lỗi trong quá trình phát triển hệ thống thời gian thực dựa trên thành phần.
5.1 Giới thiệu
Phát triển phần mềm thời gian thực dựa trên thành phần được xem là phương pháp chính trong phát triển hệ thống phần mềm thời gian thực. Tuy nhiên, phương pháp này đối mặt với các bài tốn như tính đúng đắn của hệ thống khi ghép các thành phần phần mềm, vấn đề bùng nổ không gian trạng thái khi kiểm chứng các tính chất của hệ thống, v.v. Để giải quyết những vấn đề trên, người ta có thể dùng lý thuyết giả định - đảm bảo để giải quyết vấn đề bùng nổ không gian trạng thái trong kiểm chứng [99,100], sử dụng lý thuyết giao diện nhằm đặc tả thành phần phần mềm ở mức trừu tượng cao để dễ dàng áp dụng vào bài toán kiểm chứng [48,55,94,97,101,102]. Các lý thuyết trên đã giải quyết được một số khía cạnh như tính đồng bộ và bất đồng bộ của hệ thống, các ràng buộc thời gian, quan hệ giữa tập biến đầu vào/đầu ra. Tuy nhiên, các lý thuyết vẫn chưa đưa ra giải pháp tổng thể để giải quyết vấn đề bài toán phát triển phần mềm dựa trên thành phần. Bên cạnh đó, kỹ thuật phát triển phần mềm theo cách tiếp cận thiết kế bằng hợp đồng được đánh giá là kỹ thuật phát
triển phần mềm ít lỗi hơn các phương pháp khác [69], nhưng kỹ thuật này chưa áp dụng nhiều trong phát triển phần mềm thời gian thực.
Trong chương này, luận án áp dụng cách tiếp cận tính đúng đắn bởi cách xây dựng [12,69] và thiết kế bằng hợp đồng [70,103] để đặc tả hệ thống thời gian thực bằng hợp đồng thời gian và hợp đồng thời gian có ràng buộc tài nguyên. Luận án sử dụng thiết kế để đặc tả phương thức trong thành phần phần mềm và được coi như phần tử cơ bản hình thành nên thành phần phần mềm thời gian thực. Một thiết kế là một đặc tả của một phương thức gồm tập đầu vào, đầu ra của phương thức, quan hệ giữa các biến đầu vào và đầu ra, các ràng buộc phi chức năng. Từ các thiết kế, luận án sử dụng hợp đồng thời gian để đặc tả thành phần phần mềm thời gian thực. Một hợp đồng là một đặc tả chi tiết và đầy đủ các yếu tố trong thành phần phần mềm thời gian thực gồm giao diện hợp đồng để cho biết hợp đồng cung cấp cho mơi trường những dịch vụ gì và cần dịch vụ nào để có thể thực thi được, phần khởi tạo sẽ khởi tạo các biến trong thành phần phần mềm, phần đặc tả phương thức cho biết mỗi phương thức liên quan đến thiết kế thời gian như thế nào. Đặc biệt, yếu tố bất biến trong hợp đồng được đặc tả bằng cơng thức lơgíc thời gian tuyến tính (LTL) với mục đích đảm bảo rằng các thành phần phần mềm ln thỏa một tính chất nào đó của hệ thống [104]. Do đó, tính đúng đắn của các đặc tả trong mơ hình được chứng minh chính xác dựa trên các phương pháp phát triển chúng.
Trên khía cạnh sử dụng hiệu quả các tài nguyên, một trong những thách thức đối với các ứng dụng trên hệ thống vật lý - điều khiển học (Cyber-physical systems) nói chung và đối với hệ thống thời gian thực nói riêng đó là sự phụ thuộc rất nhiều vào cách phát triển phần mềm và nền tảng phần cứng mà các hệ thống đó được cài đặt như sức mạnh CPU, năng lượng, băng thông mạng, bộ nhớ trong và thiết bị lưu trữ ngoài, v.v. gọi chung là tài nguyên hệ thống. Một số kỹ thuật đã ước lượng bộ nhớ tĩnh dựa trên mã nguồn [105], phân tích độ chính xác sự tiêu thụ bộ nhớ trong chương trình lơgíc [106], sự tiêu thụ tài nguyên trong thời gian thực thi [107], và dự đoán sự thiêu thụ tài nguyên dựa trên kịch bản [108], v.v. Tuy nhiên, các cơng trình nghiên cứu này đều chọn cách tiếp cận hoặc dựa trên mã nguồn chương trình, mã thực thi chương trình hoặc cho chương trình thực thi mà không tiếp cận từ đặc tả hệ thống. Chương này cũng bổ sung ràng buộc tài nguyên vào thiết kế thời gian dưới dạng một véctơ có số thành phần tương ứng với số thành phần tài nguyên cần đặc tả để sử dụng trong q trình phân tích đánh giá tính hiệu quả của việc sử dụng tài nguyên hệ thống của thành phần phần mềm. Khi một phương thức được kích hoạt thì
mơi trường hệ thống phải cung cấp cho dịch vụ đó một số tài nguyên để dịch vụ đó có thể thực hiện được. Tiếp theo, khi phương thức thực thi thì lượng tài nguyên của hệ thống sẽ bị chiếm dụng hoặc bị tiêu thụ hoặc cả hai. Do đó, sau một số bước thực thi, tài nguyên của hệ thống có thể khơng cịn đủ để cung cấp cho các dịch vụ, điều này dẫn đến hệ thống hoặc có cần nguồn cấp ổn định hoặc hệ thống bị dừng.
Từ các hợp đồng, luận án kết hợp với mã nguồn chương trình để tạo thành thành phần phần mềm, như vậy một thành phần phần mềm có đầy đủ đặc tả và mã nguồn. Đặc tính này giúp cho hệ thống thời gian thực khi được triển khai có thể được phát triển từ nhiều ngơn ngữ lập trình khác nhau. Với cách tiếp cận này, hệ thống được phát triển có thể áp dụng cho những hệ thống tự tích hợp và những hệ thống có thực thi trên nhiều mơi trường khác nhau.
Khi mơi trường muốn sử dụng các dịch vụ của thành phần phần mềm, các yêu cầu của môi trường phải tuân thủ thể thức tương tranh thời gian trong hợp đồng. Do đó, luận án sử dụng thể thức tương tác trong Chương 3 để đảm bảo rằng nếu môi trường tuân thủ thể thức tương tác của hợp đồng thì hợp đồng đảm bảo được tính đúng đắn của hệ thống. Nếu chuỗi hành vi của mơi trường được mơ hình hóa bằng ơtơmát thời gian [5], thỏa thể thức tương tranh thời gian thực điều này chứng tỏ rằng thành phần phần mềm được phát triển thỏa thiết kế đã cho. Hệ thống được phát triển bằng cách ghép dần các thành phần phần mềm và trong q trình ghép, tính đúng đắn của hệ thống ln được đảm bảo thông qua các phép ghép các thành phần này.
5.2 Các nghiên cứu liên quan
Hiện nay, lý thuyết phát triển phần mềm dựa trên thành phần đã được nghiên cứu và là cách tiếp cận chính trong phát triển phần mềm. Đã có nhiều nghiên cứu trong lĩnh vực này như phát triển phần mềm dựa trên thành phần [9,70], các công nghệ được triển khai trên thực tế như CORBA, EBJ, COM, DCOM và .NET [17–19], v.v. Tuy nhiên, các công nghệ này dựa trên những ngơn ngữ lập trình riêng rẽ, chưa hỗ trợ đủ mạnh cho hệ thống thời gian thực. Lý thuyết về giao diện được đề xuất như là một cách tiếp cận khác cho phát