Ghép giao diện thành phần

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 98 - 103)

Chương 4 Đặc tả và mô hình hóa giao diện thời gian thực

4.4. Ghép giao diện thành phần

Phép ghép các giao diện thành phần là một trong những nội dung quan trọng trong lý thuyết giao diện. Luận án xét hai trường hợp của phép ghép: Ghép song song và ghép nối tiếp. Cho hai giao diện độc lập I và I0 có thể ghép song song với nhau để nhận được một giao diện mới. Giao diện mới này có thể cung cấp hai dịch vụ cùng một thời điểm miễn thời gian đáp ứng dịch vụ gần giống nhau.

Định nghĩa 4.9 (Ghép song song giao diện). Đặt I = hX, Y, ξi I0 =

hX0, Y0, ξ0i là hai giao diện sao cho (X ∪ Y) ∩ (X0 ∪ Y0) = ∅. Phép ghép song song giữa I I0, ký hiệu I||I0, là giao diện hXX0, YY0, ξ00i, ở đây ξ00 : (V(X∪X0∪YY0)×Time)∗ → F(X∪X0∪YY0) ×Intv được định nghĩa như sau:

V là tập tất cả các phép gán trên tập các đầu vào và đầu ra XX0∪YY0. Đối với a ∈ V, a|X biểu thị sự giới hạn của phép gán a trên X (tương tự với X0, Y, Y0).

ξ00((a1, τ1). . .(an, τn)) = (ξf((a1|XY, τ1). . .(an|XY, τn))∧

ξf0((a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn)), ξτ(a|XY, τ)∩ξ0(a|X0∪Y0, τ).

Định 4.2 (Dãy trạng thái đến được). Đặt I00 = I||I0. Một dãy trạng thái (a1, τ1). . .(an, τn) là một dãy trạng thái đến được của I00 khi và chỉ khi (a1|XY, τ1). . .(an|XY, τn) là dãy trạng thái đến được của I

(a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn) là dãy trạng thái đến được của I0.

Chứng minh. Theo Định nghĩa 4.9, ta có I||I0 = hXX0, Y

Y0, ξ00i, trong đó ξ00((a1, τ1). . .(an, τn)) = (ξf((a1|XY, τ1). . .(an|XY, τn)) ∧

ξf0((a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn)), ξτ(a|XY, τ)∩ξτ0(a|X0∪Y0, τ).

Để ngắn gọn, ta ký hiệu σ là một dãy phép gán, tức là σ = (a1, τ1). . .(an, τn). Với một phép gán hạn chế trên các tập đầu vào đầu ra tương ứng, thì σ|XY = (a1|XY, τ1). . .(an|XY, τn) và σ|X0∪Y0 = (a1|X0∪Y0, τ1). . .(an|X0∪Y0, τn).

Ta dùng quy nạp theo độ dài của dãy các trạng thái.

Bước cơ sở: Kết quả này đúng với trạng tháis =, trạng thái rỗng, vì là trạng thái đến được của bất kỳ giao diện nào. Giả sử rằng kết quả đúng với trạng thái

Bước quy nạp:Đặt alà phép gán bất kỳ hạn chế trên (X∪Y), ký hiệu làai|XY, và hạn chế trên (X0∪Y0) là ai|X0∪Y0, i = 1, n.

Giả sử rằng (a, τ) |= ξ(σ), theo Định nghĩa 4.9 suy ra (a|XY, τ) |=

ξ(σ|XY), do đó (a|XY, τ) ∈ S(I). Từ khi (a, τ) |= ξ(σ), ta cũng nhận

được (a|X0∪Y0, τ) |= ξ0(σ|X0∪Y0), điều này suy ra (a|X0∪Y0, τ) ∈ S(I0). Theo giả thiết, kết quả này đúng với trạng tháissuy ras.(a|XY, τ) |=ξ(σ|XY) và s.(a|X0∪Y0, τ) |= ξ(σ|X0∪Y0).

Chiều ngược lại: Xét cùng một thời điểm. Đặt cặp (a|XY, τ) là một phép gán trên tập biến đầu vào và đầu ra XY của giao diện I sao cho (a|XY, τ) |= ξ(σ|XY), trong đó τξ(σ|XY)τ, theo giả thiết quy nạp kết quả đúng cho trạng thái s, điều này suy ra s.(a|XY, τ) ∈ S(I). Đồng thời, đặt (a|X0∪Y0, τ) là một phép gán trên tập biến đầu vào và đầu ra X0 ∪ Y0 của giao diện I0 sao cho (a|X0∪Y0, τ0) |= ξ(σ|X0∪Y0), trong đó

τ0 ∈ξτ(σ|X0∪Y0). Bằng giả thiết quy nạp, kết quả này đúng cho trạng thái

s, điều này suy ra s.(a|X0∪Y0, τ0) ∈ S(I0). Dựa trên Mục 1 của Định nghĩa

4.9, Đặt cặp (a, τ00) là phép gán, trong đó a = a|XYa|X0∪Y0, đó là,

a =a|XYX0∪Y0 và τ00 ∈ ξτ(σ|XY)∩ξτ(σ|X0∪Y0). Dựa theo giả thiết quy nạp suy ra s.(a, τ00) ∈S(I00), do đó (a, τ00) |=ξ00(σ).

Ngoài kỹ thuật ghép các giao diện theo cách song song, chúng ta có thể ghép hai giao diện theo cách ghép nối tiếp với nhau. Tức là, một số đầu vào của giao diện thứ hai nối với một số đầu ra của giao diện thứ nhất. Nhằm đảm bảo tính đúng đắn, luận án giới hạn một biến đầu vào của giao diện thứ hai chỉ nối tối đa một biến đầu ra của giao diện thứ nhất, dù một số biến đầu vào của giao diện thứ hai nối với cùng một đầu ra của giao diện thứ nhất.

Cho hai giao diện I= hX, Y, ξivà I0 =hX0, Y0, ξ0i sao cho (X∪Y)∩(X0∪

Y0) =∅. Một phép ghép nối tiếp từIvàoI0là một tập các cặpθY×X0mà thỏa

∀(y, x),(y0, x0) ∈ θ.(x = x0 ⇒ y = y0). Đặt = {xX0|∃yY.(y, x)θ}. Một phép nốiθ thực hiện một phép gánatrên ((X∪X0)\)∪YY0 trở thành phép gán trên (X∪X0∪YY0) khi |((XX0)\)∪YY0 =a|((XX0)\)∪YY0, và đối với x, luận án định nghĩa (x) = a(y) ở đây y là thành phần duy nhất trong Y sao cho (y, x) ∈θ.

Định nghĩa 4.10 (Ghép nối tiếp giao diện). Phép ghép nối tiếp của I I0 tương ứng với phép nối θ, ký hiệu II0, là giao diện I00 =hX00, Y00, ξ00i, trong đó

X00= (X ∪X0)\Xθ, Y00 =YY0.

Với mọi s = (a1, τ1). . .(am, τm) trong đó ai là một phép gán trên ((X ∪

X0)\)∪YY0, ξf00(s) =∃Xθ.(ξf(((a1)θ|XY, τ1). . .((am)θ|XY, τm))∧

ξf0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm)) ∧ ρθ∧ ∀Y.(ξf(((a1)θ|XY, τ1). . .((am)θ|XY, τm)) ∧ ρθ

in(ξf0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm))))), ρθ = V

(y,x)∈θx =

y. Phép ghép đối với thời gian ξ00τ(s) = b + I, trong đó ξτ(((a1)θ|XY, τ1). . .((am)θ|XY, τm)) = [b, e], ξτ0(((a1)θ|X0∪Y0, τ1). . .((am)θ|X0∪Y0, τm)) = I, và b + I là khoảng thời gian nhận được bằng cách dịch chuyển I đi b đơn vị thời gian.

Trong Định nghĩa 4.10, luận án giả sử rằng giao diện thứ hai nhận kết quả đầu ra của giao diện thứ nhất ngay khi kết quả xuất hiện. Ngoài ra, để sử dụng như các đầu vào của giao diện thứ 2, bất kỳ kết quả đầu ra của giao diện thứ nhất phải thỏa các điều kiện đầu vào của giao diện thứ 2. Điều kiện này được chụp một cách chính xác bởi định nghĩa của ξ00. Phép ghép song song và nối tiếp của hai giao diện I vàI0 được minh họa trong Hình 4.2. Trong hình này, Phần (a) minh họa phép ghép song song và Phần (b) minh họa cho phép ghép nối tiếp. X1 I1 Y1 X2 I2 Y2 X1 I1 Y1 I2 Y2 X2 D el ay (a) (b)

Cho hai giao diệnI1 với các tập đầu vào và đầu ra lần lượt làX1, Y1, và I2

với tập đầu vào và đầu ra tương ứng X2, Y2. Đối với phép ghép song song, giao diện ghép có đầu vào là X1∪X2 và tập đầu ra là Y1∪Y2. Giao diện này sẽ trả kết quả tại đầu ra khi tính toán xong, do đó thời gian cho tính toán là thời gian lớn nhất của hai giao diện thành phần. Trường hợp ghép nối tiếp, một số biến đầu ra của giao diện I1 sẽ nối với một số biến thuộc tập biến đầu vào của I2, trong trường hợp này là được định nghĩa trong Định nghĩa 4.10. Như vậy, tập biến đầu vào của giao diện ghép sẽ là (X1∪X2\), tập biến đầu ra được giữ nguyên và bằng Y1 ∪Y2. Thời gian cho một bước tính toán của giao diện ghép là tổng thời gian lớn nhất của hai giao diện. Do không phải tất cả các biến đầu ra của giao diện I1 đều nối với giao diện I2 nên trong hình minh họa Phần (b) của Hình4.2 có thành phần “Delay” để chỉ độ trễ cần phải đồng bộ tại đầu ra của giao diện ghép.

Định lý 4.3. Đặt I, I0 I00 là các giao diện, θ θ0 là các phép ghép tương ứng giữa I với I0 và giữa I0 với I00, những điều sau đây đúng.

(i) I||I0 ≡ I0||I,

(ii) (I||I0)||I00≡ I||(I0||I00),

(iii) (II0).θ0I00 ≡I(I00I00).

Chứng minh. Trong định lý này chúng ta lần lượt cần chứng minh 3 công thức sau đây.

(i) I||I0 ≡ I0||I,

(ii) (I||I0)||I00≡ I||(I0||I00), (iii) (II0).θ0I00 ≡I(I00I00).

Ta sẽ chứng minh các trường hợp riêng rẽ. Trong phần đầu, ta xây dựng giao diện mới từ các giáo diện đã cho. Để ngắn gọn, đặt σ là một dãy phép gán,

σ = (a1, τ1). . .(an, τn) và σ|XY, σ|X0∪Y0, σθ|XYσθ0|XY bị hạn chế tương ứng trên XY, X0∪Y0, θ|XY, θ0|XY.

1. Đặt I1 = I||I0 và I2= I0||I. Ta cần chỉ ra rằng I1 ≡ I2. Đầu tiên, theo Định nghĩa 4.9, ta có I1 = I||I0 = hXX0, YY0, ξ1i, ở đây ξ1f(σ) =

ξf(σ|XY)∧ξf0(σ|X0∪Y0) và ξ1τ(σ) =ξτ(σ|XY)∩ξτ0(σ|X0∪Y0). sau đó ta có

I2 =I0||I=hXX0, YY0, ξ2itrong đóξ2f(σ) =ξf0(σ|X0∪Y0)∧ξf(σ|XY) và

ξ2τ(σ) =ξτ0(σ|X0∪Y0)∩ξτ(σ|XY). Theo kết quả trên suy ra ξ1f(σ) ≡ξ2f(σ) và ξ1τ(σ) ≡ξ2τ(σ) do đó I1 ≡I2.

2. Trong phần này chúng ta phải chứng minh (I||I0)||I00 ≡ I||(I0||I00). Xét vế trái của công thức, ta có I1 = I||I0 thì I2 = I1||I00. Xét về phải công thức, xây dựng I3 = I0||I00 sau đó I4 =I||I3. Ta chứng minh rằng I2 ≡ I4. Tương tự như trường hợp đầu tiên, Theo Định nghĩa 4.9, ta cũng có kết quả sau

I2 ≡I4, suy ra (I||I0)||I00 ≡ I||(I0||I00).

3. Để chứng minh công thức (II0).θ0I00≡ I(I00I00), ta phải xây dựng vế trái và vế phải của công thức như sau:

Từng bước một ta xây dựng vế trái.

Đầu tiên, đặt I1 = II0, theo Định nghĩa 4.10 ta có I1 = hX1, Y1, ξ1i, trong đó

X1 = (X ∪X0)\, Y1 =YY0.

ξ1f(σ) =∃Xθ.(ξfθ|XY)∧ξ0fθ|X0∪Y0)∧ρθ∧ ∀Y.(ξfθ|XY)∧

ρθin(ξf0(σθ|X0∪Y0)))), ρθ = V

(y,x)∈θx = y. Đối với thành

phần thời gian ξ1τ(σ) = b + I0, ở đây ξτθ|XY) = [b, e], và

ξτ0(σθ|X0∪Y0) = I0, và b+I0 là khoảng thời gian nhận được bằng cách dịch chuyển I0 đi b đơn vị thời gian.

Thứ hai, đặt I2 =I10I00, ta có I2 =hX2, Y2, ξ2i, trong đó

X2 = (X1∪X00)\X1θ0, Y2 =Y1∪Y00, và

ξ2f(σ) = ∃X1θ0.(ξ1fθ0|X1∪Y1) ∧ ξf00(σθ0|X00∪Y00) ∧ ρθ0 ∧ ∀Y1.(ξ1fθ0|X1∪Y1)∧ρθ0 ⇒ in(ξf00(σθ0|X00∪Y00)))), ρθ0 =V

(y,x)∈θ0x=

y. Đối với thành phần thời gian ξ2τ(σ) = b1 + I00, trong đó

b1 +I00 là khoảng thời gian nhận được bằng cách dịch I00 đi b1

đơn vị thời gian.

Ta xây dựng vế phải của công thức như sau: Đặt I3 = I00I00, sau đó

I4 =II3. Theo Định nghĩa 4.10 ta có I3 =hX3, Y3, ξ3i, trong đó

X3 =X0∪X00\0, Y3 = Y0∪Y00.

ξ3f(σ) = ∃00.(ξf0(σθ0|X0∪Y0) ∧ ξf00(σθ0|X00∪Y00) ∧ ρθ0 ∧ ∀Y0.(ξf0(σθ0|X0∪Y0)∧ρθ0 ⇒ in(ξf00(σθ0|X00∪Y00), ρθ0 = V

(y,x)∈θ0x = y.

Đối với thành phần thời gian ξ3τ(σ) = b0 + I00, ở đây

ξτ0(σθ0|X0∪Y0) = [b0, e0], và ξτ00(σθ0|X00∪Y00) =I00, và b0+I00 là khoảng thời gian nhận được bằng cách dịch chuyển I00 đi b0 đơn vị thời gian.

X4 =XX3\Xθ, Y4 =YY3.

ξ4f(σ) =∃Xθ.(ξ(σθ|XY)fξ3fθ|X3∪Y3)∧ρθ∧ ∀Y.(ξfθ|XY)∧

ρθin(ξ3fθ|X3∪Y3)))), ρθ = V

(y,x)∈θx = y. Đối với thành

phần thời gian ξ4τ(s) = b + I3, ở đây ξτθ|XY) = [b, e], và

ξ3τθ|X3∪Y3) =I3, và b+I3 là khoảng thời gian nhận được bằng cách dịch chuyển I3 đi b đơn vị thời gian.

Để chứng minh I2 ≡ I4. Theo Định nghĩa 4.5, ta cần chứng minh

ξ2(σ) ≡ ξ4(σ). Theo các mục trên, với mọi s ∈ S(I)∩ S(I0)∩S(I00). Giao diện I2 và I4 được ghép bởi phép ghép nối tiếp I,I0,I00, do đó

X2 = X4 và Y2 = Y4. Xét cặp (a, τ) ∈ S(I) ∩ S(I0) ∩ S(I00), trong đó a là một phép gán bất kỳ tại trạng thái s trên tập các đầu vào và đầu ra của những giao diện này sao cho phép gán a |= ξ2f(σ), sau đó ta chứng minh rằng công thức ∀Y.(ξfθ|XY) ∧ ρθ

in(ξ3fθ|X3∪Y3))) đúng. Từ khi a |= ξ2f(σ) suy ra a |=ξfθ|XY)∧

ρθξf0(σθ|X0∪Y0) ∧ ξf00(σθ|X00∪Y00) ∧ ρθ0. Do đó a |= ξ3fθ|X3∪Y3), suy ra a |= in(ξ3fθ|X3∪Y3)), công thức ∀Y.(ξfθ|XY) ∧ ρθ

in(ξ3fθ|X3∪Y3))) đúng. Cuối cùng a|=ξ4f(σ).

Chứng minh theo hướng ngược lại: Tương tự như trường hợp trên, Giả sử rằng a|=ξ4f(σ).

Ta cũng chứng minh công thức ∀Y1.(ξ1fθ0|X1∪Y1) ∧ ρθ0 ⇒

in(ξf00(σθ0|X00∪Y00))) đúng với tất cả các phép gán a, suy ra ξ2f(σ) ≡

ξ4f(σ). Xét thành phần thời gian ta có ξ2τ(σ) ≡ξ4τ(σ), do đó I2 ≡I4, nghĩa là (II0).θ0I00 ≡I(I00I00).

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 98 - 103)

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

(166 trang)