Chương 4 Đặc tả và mơ hình hóa giao diện thời gian thực
5.4. Hợp đồng thời gian-tài nguyên
5.4.1. Thiết kế thời gian-tài nguyên
Các thành phần phần mềm được hình thành từ các yếu tố như phương thức, thuộc tính, v.v. Luận án mở rộng thiết kết thời gian bằng cách bổ sung đặc tả tài nguyên để trở thành thiết kế thời gian - tài nguyên như một đặc tả cơ bản trong việc phát triển các thành phần phần mềm hệ thống thời gian thực. Một đặc tả phải đảm bảo biểu diễn đầy đủ các khía cạnh trong một thành phần phần mềm gồm thành phần chức năng và thành phần phi chức năng. Như vậy, một thiết kế sẽ có tập thuộc tính, đặc tả chức năng, ràng buộc thời gian và đặc tả thành phần phi chức năng để chi tiết hóa các yếu tố liên quan đến các phương thức trong quá trình hoạt động.
Một phương thức có dạng op(X, Y), trong đó op biểu diễn tên phương thức,X là tập biến đầu vào,Y là tập biến đầu ra của phương thức. Phương thức
op(X, Y) được đặc tả bằng một thiết kế thời gian - tài nguyên trên tập các biến đầu vàoX và tập các biến đầu ra Y,X∩Y =∅. ĐặtR là cơng thức lơgíc tân từ cấp 1 biểu diễn mối quan hệ giữa đầu vào và đầu ra. Đặt a là một phép gán các giá trị trên tập (X∪Y),ρlà một véctơ n thành phần,n tương ứng với số thành phần phi chức năng được biểu diễn, biểu diễn các tài nguyên được sử dụng cho phương thức. Một thiết kế tài nguyên - thời gian được định nghĩa như sau:
Định nghĩa 5.15 (Thiết kế thời gian-tài nguyên). Mỗi phương thức op(X, Y)
được đặc tả bởi một thiết kế có dạng D(op)=hϑ, ξ, ψ, d, ρi, trong đó:b
(i) ϑ biểu diễn tập các biến được dùng bởi phương thức op, (ii) ξ biểu diễn đặc tả chức năng và là vị từ có dạng như sau:
p`f R =b p⇒ R
Ở đây, p là tiền điều kiện của phương thức op mà dựa trên đó phương thức có thể được kích hoạt, và R là một cơng thức lơgíc tân từ cấp 1 đặc tả quan hệ trên tập biến X∪Y, tức là R sẽ đảm bảo rằng nếu điều kiện đầu vào thỏa p thì thiết kế sẽ đảm bảo đầu ra thỏa R,
(iii) ψ biểu diễn đặc tả thành phần tài nguyên có dạng như sau: q `n S =b q ⇒ S
Trong đó, q là tiền điều kiện ràng buộc tài nguyên của phương thức trong thiết kế hay chính là sự giả định về tài nguyên được sử dụng trong phương thức op. S là một vị từ biểu diễn hậu điều kiện ràng buộc trên các thành phần tài nguyên được dùng trong phương thức. S có mối liên hệ với các biến tài nguyên trong RES,
(iv) d là một số nguyên dương, biểu diễn khoảng thời gian tối thiểu mà hệ thống có thể gọi phương thức, và
(v) ρ là một véctơ n phần tử đặc tả yếu tố tài nguyên sử dụng cho thiết kế. Trong định nghĩa, chỉ số f trong `f để phân biệt với chỉ số n trong `n, f viết tắt cho chữ chức năng và n viết tắt cho chữ phi chức năng.
Ví dụ 5.3. Ví dụ này minh họa một thiết kế cho cảm biến A1 đo nhiệt độ tại vị trí 1 trong Ví dụ 3.1. Thiết kế của cảm biến A1, ký hiệu bằng DA1, được biểu diễn như sau: DA1=h{xb A1, yA1}, xA1 ≥ 0 `f (xA1 ≥ 0 ∧ yA1 =
xA1), ψ,(1%,10KB,1%,1µW,20KB),3i.
Vị từ q trong phần đặc tả phi chức năng ψ của phương thức op không chỉ biểu diễn tiền điều kiện về tài ngun mà cịn đóng vai trị là bộ bảo vệ cho phương thức op, nghĩa là phương thức op chỉ có thể thực thi nếu mơi trường cung cấp đủ các yêu cầu về tài nguyên. Nếu hai phiên bản thực thi của hai phương thức op1 và op2 tương tranh thì có nghĩa là mơi trường thực thi thỏa đồng thời các điều kiện của hai phương thức.
Trong ngữ cảnh tiến hóa phần mềm, một thiết kế có thể được thay thế bằng một thiết kế khác miễn là thiết kế mới cung cấp dịch vụ tốt hơn và sử dụng ít tài nguyên hơn thiết kế ban đầu, gọi là sự làm mịn thiết kế. Sự làm mịn này được tính tốn trên cả khía cạnh thời gian và tài nguyên, và được định nghĩa như sau:
Định nghĩa 5.16 (Làm mịn thiết kế). Cho hai thiết kế của phương thức op(X, Y), D(op) = (ϑ, ξ, ψ, d, ρ) và D0(op) = (ϑ, ξ0, ψ0, d0, ρ0). D0 được nói là làm mịn của D, ký hiệu bởi D vD0 khi và chỉ khi thỏa mãn các điều kiện sau:
(i) p⇒ p0, R0 ⇒ R,
(ii) q ⇒ q0, S0 ⇒ S,
(iii) d0 ≤ d, và (iv) ρ0 ≤ ρ.
Khi ghép nối tiếp hoặc tương tranh của các thiết kế, chúng ta cần xét sự tương tác các hành vi của hai thiết kế và sự kết hợp các thành phần
phi chức năng. Loại tiêu thụ, ký hiệu bởi c, như năng lượng, thiết bị lưu trữ,
v.v. và loại chiếm dụng ký hiệu là u như tài nguyên bộ nhớ trong, hiệu năng CPU, băng thông mạng, các thiết bị ngoại vi, v.v. Chữ cái c vàu tương ứng với từ tiêu thụ (consume) và chiếm dụng (utilize).
Định nghĩa 5.17 (Ghép nối tiếp thiết kế). Đặt D1(op) =b hϑ1, ξ1, ψ1, d1, ρ1i và D2(op)=hϑb 2, ξ2, ψ2, d2, ρ2i là hai thiết kế. Một phép nối nối tiếp giữa hai thiết kế, ký hiệu .θ, được định nghĩa như sau:
D1.θD2=hϑ, ξ, ψ, d, ρi, trong đób
(i) ϑ =b ϑ1∪ϑ2,
(ii) Đặt ξ kết hợp với bộ tham số x, ký hiệu ξ(x) thì ξ =b ∃v•ξ1∧ξ2, và (iii) ψ =b ∃ρ1, ρ2 •(ψ1[ρ1/ρ]∧ψ2[ρ2/ρ]∧ρ|u = max(ρ1|u, ρ2|u))∧ρ|c = ρ1|c ⊕
ρ2|c∧d=d1+d2.
Trong định nghĩa này, biểu thức ρ|u có ký hiệu “|” là phép chiếu của ρtrên tập các thành phần tài nguyên được sử dụng cho thực thi. Biểu thức ψ[x1/x] với ký hiệu “/” là phép thế thành phầnx vào thành phần x1 trong biểu thức ψ. Hàm max(ρ1|u, ρ2|u) là hàm tính tốn các thành phần tài ngun bị chiếm dụng và biểu thức ρ|c = ρ1|c ⊕ ρ2|c sẽ tính tốn lượng tài ngun tiêu thụ cho D1.θD2. Biểu thức d = d1 +d2 là tính tốn khoảng thời gian tĩnh đảm bảo cho thiết kế D1.θD2 có thể đáp ứng được yêu cầu mơi trường.
Trong q trình phát triển hệ thống, có một cách khác để ghép các thiết kế với nhau đó là hai phương thức thực thi song song. Khi các thiết kế được sử dụng thì mơi trường sẽ gán các bộ dữ liệu thỏa điều ràng buộc đầu vào của hai thiết kế, và các thiết kế này phải đảm bảo kết quả đầu ra thỏa u cầu của mơi trường. Dó đó, phép ghép song song của hai thiết kế được định nghĩa một cách hình thức như sau:
Định nghĩa 5.18 (Ghép song song thiết kế). Đặt D1 =b hϑ1, ξ1, ψ1, d1, ρ1i và D2=hϑ2, ξ2, ψ2, d2, ρ2b i là hai thiết kế. Một phép song song, ký hiệu bởi ||, giữa
hai thiết kế được biểu thị như sau:
D1||D2 =b hϑ, ξ, ψ, d, ρi, trong đó
(i) ϑ =b ϑ1∪ϑ2, (ii) ξ =b ξ1∧ξ2,
(iii) Đặt ψ1 = q1(ρ1) `n S(ρ1) và ψ2 = q2(ρ2) `n S(ρ2) thì ψ = q(ρ) `n S(ρ),
(a) q(ρ) =∃ρ1, ρ2•(q1(ρ1)∧q2(ρ2)∧ρ|u =ρ|u1 ⊕ρ|u2 ∧ρ|c = ρ|c1⊕ρ|c2, và
(b) S(ρ) =∀ρ1, ρ2•(ρ|u =ρ|u1⊕ρ|u2 ∧ρ|c = ρ|c1⊕ρ|c2∧q(ρ)∧q(ρ2)⇒ ∃d1, d2•(d=max(d1, d2)∧ S(ρ1)∧ S(ρ2))).
Trong định nghĩa này, biểu thức q(ρ) đúng khi và chỉ khi tồn tại một bộ phận u, c trong ρ1 và ρ2 sao cho q1(ρ1) và q2(ρ2) đúng. Tương tự như vậy S(ρ)
đúng khi và chỉ khi bất kỳ một bộ phận ρ|u nào trong ρ1|u, ρ2|u, và ρ|c nào trong ρ|c,ρ2|c sao cho nếu cả q1(ρ1) và q2(ρ2) đúng và có một bộ phậnd =max(d1, d2)
đúng.
Hai thiết kế có thể được sử dụng thay thế cho nhau khi xét trên khía cạnh sử dụng tài nguyên. Thiết kế nào có chức năng đáp ứng được yêu cầu và tài nguyên sử dụng tương đương với thiết kế cịn lại có thể được sử dụng. Yếu tố này giúp cho việc gia tăng khả năng lựa chọn trong quá trình phát triển hệ thống phần mềm.
Định nghĩa 5.19 (Tương đương sử dụng tài nguyên). Hai thiết kế D = (ϑ, ξ, ψ, d, ρ) và D0 = (ϑ, ξ, ψ0, d, ρ0) tương đương nhau trên phương diện sử dụng tài nguyên khi và chỉ khi q ⇒ q0 và q0 ⇒ q và với mọi thành phần trong ρ, ρ0 thì ρ=ρ0.
5.4.2 Hợp đồng thời gian - tài nguyên
Một hợp đồng có thể cung cấp một số giao diện, tuy nhiên trong định nghĩa hình thức, luận án có thể nhóm chúng lại thành một giao diện khai báo một số dịch vụ mà thành phần phần mềm cung cấp cũng như một số dịch vụ mà thành phần cần từ các thành phần khác để có thể hoạt động.
Định nghĩa 5.20 (Giao diện hợp đồng). Một giao diện của hợp đồng là một bộ ba thành phần I =b hFd, M dp, M dri, trong đó
Fd là tập hữu hạn các thuộc tính, và
M dp và M dr là sự khai báo tập các phương thức. Mỗi phương thức trong M dp và M dr có dạng op(X, Y), tương ứng với từng thiết kế D =
hϑ, ξ, ψ, d, ρi đã cho, trong đó X là tập các biến đầu vào và Y là tập các biến đầu ra. M dp là tập các phương thức cung cấp, M dr là tập các phương thức yêu cầu, M dp∩M dr =∅.
Một hợp đồng của một thành phần phần mềm thời gian thực đặc tả các tính chất của nó, nghĩa là mỗi phương thức được khai báo trong giao diện liên quan đến thiết kế. Tập các thiết kế cho mỗi giao diện thành phần được biểu diễn bằng MSpec trong hợp đồng. Các tài nguyên cần được khai báo, điều này hình thành trường Rd trong hợp đồng. Các biến tài nguyên và các biến trong giao diện được khởi tạo bởi I. Để các thành phần phần mềm thời gian thực cung cấp dịch vụ như mong đợi, các ràng buộc tài nguyên được yêu cầu chặt chẽ. Do đó, hợp đồng cần một trường biểu diễn tài nguyên bất biến, luận án ký hiệuInvRd. Giả sử InvRd được đảm bảo khi thành phần phần mềm được khởi tạo và trong suốt thời gian hoạt động bởi kỹ thuật tự động cập nhật tài ngun của chính nó. Luận án bổ sung một đặc tả tường minh thể thức tương tác của hợp đồng mà các phương thức khi thực thi luôn phải tuân thủ là thể thức tương tác thời gian - tài nguyên ℘. Một hợp đồng thời gian - tài nguyên được định nghĩa như
sau:
Định nghĩa 5.21 (Hợp đồng thời gian - tài nguyên). Một hợp đồng thời gian - tài nguyên là một bộ C=hI, I, Rd, MSpec,Inv,InvRd, ℘i, trong đó
(i) I = (Ip,Ir) là một giao diện. Đặt M d= M dp∪M dr, Fd=Fdp∪ Fdr, (ii) I là sự khởi tạo các giá trị ban đầu cho từng thuộc tính trong tập Fd, (iii) Rd là sự khai báo tài nguyên, các giá trị này được nhập từ môi trường sử
dụng hợp đồng,
(iv) MSpec là đặc tả phương thức, chúng liên quan đến từng phương thức op(X, Y) trong tập M d = M dp ∪ M dr tương ứng với từng thiết kế
D =hϑ, ξ, ψ, d, ρi,
(v) Inv là tập các ràng buộc bất biến của hợp đồng được biểu diễn bằng cặp
(Invp,Invr), trong đó Invp là cơng thức lơgíc thời gian tuyến tính LTL ràng buộc trên tập thuộc tính cung cấp và Invr là cơng thức lơgíc thời gian tuyến tính LTL ràng buộc trên tập thuộc tính yêu cầu trong hợp đồng. Như vậy, Invp biểu diễn các tính chất bất biến của giá trị trong các biến của Fdp mà dựa trên đó có thể truy cập bất kỳ thời gian nào từ các thành phần phần mềm khác. Do đó, Invp được thỏa bởi I. Invr biểu diễn các tính chất bất biến cho các biến trong Fdr khi được cung cấp,
(vi) InvRd cho biết các điều kiện tài nguyên dưới dạng dịch vụ của thành phần có thể thực thi được, được thỏa bởi R , và
(vii) ℘ là một thể thức tương tác mô tả thể thức thực thi các phương thức có trong thành phần phần mềm, các thành phần phần mềm được phép thực thi đồng thời tại trạng thái đang xét của tài nguyên.
Định nghĩa trên có thể được dùng cho cả thành phần phần mềm trong phần thụ động và phần chủ động. Điều khác nhau duy nhất là phần chủ động sẽ cung cấp tài nguyên và yêu cầu cho các thành phần trong phần thụ động sau đó nhận kết quả tính tốn được trả về từ thành phần thụ động.
Trong một số tình huống, các hợp đồng có thể được thay thế nhau nhằm tìm ra các tối ưu cho việc sử dụng các hợp đồng miễn là các hợp đồng được hiểu theo nghĩa cung cấp các dịch vụ tốt hơn nhưng tiêu thụ tài nguyên ít hơn.
Định nghĩa 5.22 (Làm mịn hợp đồng). Hợp đồng C1 =
hI1, I1, Rd1, MSpec1,Inv1,InvRd
1, ℘1i được gọi là làm mịn bởi hợp
đồng C2 = hI2, I2, Rd2, MSpec2,Inv2,InvRd
2, ℘2i, ký hiệu C1 v C2 khi và chỉ khi các điều kiện sau thỏa mãn.
(i) Fd1 ⊆ Fd2, Rd1 ⊆ Rd2, và I2|Fd1 = I1|Fd1, I2|Rd
1 ≤ I1|Rd
1 (trong đó đối với các hàm f, f1, f2 và một tập A, f|A biểu thị sự hạn chế của f trên A biểu thức f1 ≤ f2 cho biết f1, f2 cùng một miền giá trị f1(ăa) ≤ f2(ăa) với mọi ăa trong miền của chúng,
(ii) M dp1 ⊆ M dp2, M dr2 ⊆M dr1,
(iii) Với mọi phương thức op được khai báo trong M dp1 thì MSpec1(op) ⊆
MSpec2(op),
(iv) Với mọi phương thức op được khai báo trong M dr2 thì MSpec2(op) ⊆
MSpec1(op),
(v) Inv2 ⇒ Inv1,
(vi) Sự bất biến tài nguyên bị yếu dưới phép làm mịn, tức là InvRd
1 ⇒ InvRd 2|Rd 1, và (vii) ℘1|M dp 1 ⊆℘2|M dp 1 và ℘2|M dr 2 ⊆ ℘1|M dr 2.
Nói một cách đơn giản, trong hợp đồng C2, nhiều dịch vụ và chức năng với chất lượng tốt hơn hợp đồng C1, và ít địi hỏi tài nguyên và yêu cầu từ môi trường.
Khi ghép các hợp đồng, cần kiểm tra độ tương thích của các hợp đồng với nhau nhằm đảm bảo rằng trong q trình ghép giảm được khơng gian tìm kiếm. Mục đích này hướng đến tự động hóa trong q trình phát triển phần mềm.
Định nghĩa 5.23 (Độ tương thích của các hợp đồng).
Đặt C1 = hI1, I1, Rd1, MSpec1,Inv1,InvRd
1, ℘1i và C2 =
hI2, I2, Rd2, MSpec2,Inv2,InvRd
2, ℘2i là hai hợp đồng. C1 tương thích với
C2 khi và chỉ khi các điều kiện sau thỏa được.
(i) Tập các thuộc tính và các phương thức cung cấp của chúng tương thích nhau. Tức là f ∈ Fd1 ∩ Fd2 suy ra I1(f) = I2(f) và op ∈ M dp1 ∩M dp2 suy ra MSpec1(op) ⇔ MSpec2(op), và
(ii) Tập các phương thức cung cấp và tập các phương thức yêu cầu tương thích nhau (đối với kết nối): Với mọi op ∈ M dr1 ∩M dp2, điều này đúng với MSpec1(op) v MSpec2(op) và với mọi op ∈ Mr2∩M dp1, điều này đúng với MSpec2(op) vMSpec1(op).
Để phát triển những hệ thống phức tạp, chúng ta ghép các hợp đồng với nhau cho đến khi thỏa các yêu cầu hệ thống theo cách ghép song song, nối tiếp hoặc phép cắm. Sau đây luận án định nghĩa phép ghép song song hai hợp đồng.
Định nghĩa 5.24 (Ghép song song thể thức thời gian-tài nguyên). Cho hai hợp đồng có khả năng ghép được C1 = hI1, I1, Rd1, MSpec1,Inv1,InvRd
1, ℘1i và
C2 = hI2, I2, Rd2, MSpec2,Inv2,InvRd
2, ℘2i. Phép ghép song song của hai
hợp đồng C1 và C2 ký hiệu bởi Cq = C1||C2 là một hợp đồng C =
hI, I, Rd, MSpec,Inv,InvRd, ℘i các thành phần trong hợp đồng mới được tính như sau:
(i) I = (Ip1∪ Ip2,Ir1∪ Ir2),
(ii) I =I1∪I2, (iii) Rd =Rd1⊕Rd2,
(iv) MSpec = MSpec1∪MSpec2, trong đó M dr = M dr1∪M dr2, M dp = M dp1∪
M dp2,
(v) Inv được tính như sau: Inv= Inv1∧ Inv2, (vi) InvRd =InvRd
1 ] InvRd
2, và (vii) ℘ =℘1||℘2.
Luận án sử dụng toán tử ] để kết hợp các thành phần trong các thành phần bất biến tài nguyên, và tốn tử có ngữ nghĩa như sau: Giả sử Υ,Υ ,Υ là
các điều kiện tài ngun,InvRd(Υ) =InvRd
1(Υ1)]InvRd
2(Υ2)=∃Υb 1,Υ2•(Υ|c = Υ1|c+ Υ2|c∧Υ|u = Υ1|u+ Υ2|u).
Ngồi cách ghép song song, chúng ta có thể ghép các hợp đồng bằng phương pháp ghép nối tiếp.
Định nghĩa 5.25 (Ghép nối tiếp hợp đồng thời gian-tài nguyên). Cho hai hợp đồng có khả năng ghép được C1 = hI1, I1, Rd1, MSpec1,Inv1,InvRd
1, ℘1i và