Minh họa mô hình thành phần phần mềm

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 53)

Chương 6 Kết luận

3.1 Minh họa mô hình thành phần phần mềm

Trong Hình 3.1, các sự kiệncác chuỗi hành vi là các sự kiện và các chuỗi hành vi của môi trường sẽ tác động vào thành phần phần mềm thông qua

giao diện hệ thống.

Phần chủ động sẽ nhận các yêu cầu này và gọi các dịch vụ từ phần thụ động để xử lý sau đó sẽ trả kết quả lại môi trường. Các tiến trình được biểu diễn bằng ba mũi tên song song nhau thể chỉ ra rằng phần chủ động chấp nhận các lời gọi song song được thể hiện bằng các tiến trình đa luồng.

Giao diện thành phần là phần giao tiếp giữa phần chủ động và phần thụ động. Phần này là một trong những ưu điểm của mô hình mong muốn được phát triển, có nghĩa là hệ thống cho phép phần thụ động và phần chủ động tách rời nhau. Điều này giúp cho những hệ thống phát triển dựa trên mô hình này có thể triển khai trên nhiều nền tảng khác nhau như dịch vụ Web, tác tử di động và các hệ thống nhúng, v.v.

Phần thụ động với các hình vẽ biểu diễn tập hợp các thành phần phần mềm thụ động có vai trò cung cấp các dịch vụ cho phần chủ động. Các mũi tên song song thể hiện rằng các thành phần phần mềm trong phần thụ động này cũng hỗ trợ thực thi song song.

3.3.2 So sánh các mô hình thành phần phần mềm

Phần này sẽ trình bày sự so sánh một số tính năng của các mô hình thành phần phần mềm hiện có nhằm mục đích phân tích đánh giá các ưu nhược điểm của các mô hình thành phần phần mềm. Đối với những mô hình dựa trên sự mô tả kiến trúc cho hệ thống dựa trên thành phần ADLs (Architecture Description Languages) [80], các mô hình này chỉ tập trung vào thiết kế và ghép các thiết kế. Trong khi đó UML là ngôn ngữ hợp nhất cũng chỉ đưa ra hệ thống cú pháp để dùng trong phân tích thiết kế [81]. PECOS là một mô hình thành phần phần mềm [64], tuy nhiên mô hình này tập trung vào hỗ trợ thiết kế và ghép các thiết kế. Các mô hình trên không phát triển thành phần phần mềm từ những thành phần có sẵn, không có các kho chứa các thành phần phần mềm. Trong cấp độ triển khai, các hệ thống này không hỗ trợ phát triển các thành phần từ thành phần phần mềm có sẵn và ghép các thành phần. Các mô hình EJB [82], OSGi [83], Fractal [84,85], COM [86], CCM (CORBA Component) [87], v.v. cho phép phát triển các thiết kế từ các thiết kế có sẵn và ghép các thiết kế. Trong quá trình triển khai, các nền tảng này không hỗ trợ phát triển từ các thành phần phần mềm có sẵn. Các công nghệ JavaBeans, .NET, Web Services hỗ trợ thiết kế các thành phần từ đầu và ghép các thành phần khi triển khai, tuy nhiên các công nghệ này không hỗ trợ phát triển thành phần phần mềm từ các thành phần phần mềm có sẵn [19,88–90]. Đối với các công nghệ Koala [91], SOFA [92], và SCA [93], các công nghệ này hỗ trợ thiết kế các thành phần phần từ đầu, cho phép ghép các thiết kế và ghép các thành phần trong quá trình triển khai. Mô hình X-MAN hỗ trợ thiết kế các thành phần từ đầu, ghép các thiết kế, và cho phép ghép các thành phần phần mềm trong quá trình triển khai [65]. Tuy nhiên tất cả các mô hình trên đều chưa hỗ trợ hệ thống thời gian thực hướng thành phần. Đặc biệt, chưa có mô hình nào hỗ trợ khả năng phân tích các yếu tố tài nguyên cho hệ thống thời gian thực. Toàn bộ tổng hợp trên được trình bày trong Bảng 3.1.

Bảng 3.1: Bảng so sánh các mô hình thành phần phần mềm hiện tại

Phân loại Các mô hình

thành phần phần mềm

Thiết kế Triển khai

Ràng buộc thời gian Ràng buộc tài nguyên Có sẵn các thành phần từ đầu Ghép các thiết kế Trích chọn Phát triển từ có sẵn Ghép các thành phần Thiết kế và không kho chứa

Acme-like ADLs UML2.0, PECOS

7 3 7 7 7 7 7

Thiết kế và chỉ có kho chứa

EJB, OSGi, Fractal, COM

3 3 7 7 7 7 7

Triển khai với kho chứa thành phần JavaBeans, .NET, Web Services 3 7 7 7 3 7 7 Thiết kế với kho chứa

Koala, SOFA, Kobra, SCA

3 3 3 3 7 7 7

Thiết kế và triển khai với kho chứa

X-MAN 3 3 3 3 3 7 7

3.4 Thể thức tương tác tương tranh ràng buộc thời gian

Các thành phần phần mềm tương tác với nhau và tương tác với môi trường cần phải tuân theo một thể thức nhất định. Trong phần này, luận án trình bày thể thức tương tác tương tranh cho các thành phần phần mềm thời gian thực gồm đặc tả thể thức tương tác cho thành phần phần mềm, mô hình hóa các hành vi của môi trường bằng ôtômát thời gian. Đồng thời, luận án cũng đưa ra thuật toán kiểm chứng sự tuân thủ chuỗi hành vi của môi trường với thể thức tương tác trong thành phần phần mềm.

3.4.1 Thể thức tương tác

Thể thức tương tác là một trong những phần quan trọng nhất trong mô hình thành phần phần mềm, đã có rất nhiều công trình nghiên cứu về chủ đề này [15,51,53,55,94,95]. Các nghiên cứu đã đề cập đến những chủ đề khác nhau chẳng hạn như thể thức tương tác, hợp đồng, quan hệ đầu vào đầu ra của giao diện thành phần, tính đồng bộ và bất đồng bộ. Tuy nhiên, các kỹ thuật này không trực quan, không đủ mạnh để đặc tả thể thức tương tác các thành phần thời gian thực.

Một thể thức tương tác được đặc tả trong thành phần phần mềm là một tiền điều kiện cho thứ tự lời gọi các dịch vụ trong thành phần đó. Khi môi trường muốn sử dụng các dịch vụ trong thành phần phần mềm, chuỗi hành vi của môi trường phải tuân thủ thể thức của thành phần phần mềm. Trong

hệ thống thời gian thực, khi một dịch vụ được gọi thì cần một khoảng thời gian để thực thi. Nếu các dịch vụ bị gọi quá dày hệ thống có thể không đáp ứng được và có thể gây lỗi. Bởi vậy, cần phải đặc tả khoảng thời gian tối thiểu giữa hai lời gọi liên tiếp cho những dịch vụ cần thời gian thực thi. Một khả năng nữa cần phải xem xét khi đặc tả loại ràng buộc thời gian này đó là các thành phần phần mềm cung cấp các dịch vụ theo cách song song. Trong trường hợp này các ràng buộc thời gian không áp dụng cho các dịch vụ tương tranh. Chúng ta xét một ví dụ sau:

Ví dụ 3.1. Cho một hệ thống điều tiết không khí và nhiệt độ được minh họa như trong Hình 3.2. Hệ thống này có hai khối điều khiển cảm biến 1, ký hiệu

(KĐKCB1), khối điều khiển cảm biến 2, ký hiệu (KĐKCB2), khối điều khiển

thiết bị 1, ký hiệu (KĐKT B1), khối điều khiển thiết bị 2, ký hiệu (KĐKT B2),

khối điều khiển thiết bị 3, ký hiệu (KĐKT B3), đóng vai trò là các thành phần

phần mềm và khối điều khiển trung tâm, ký hiệu (KĐKT T), đóng vai trò là

môi trường của các thành phần này. Các cảm biến đo thông tin của môi trường lần lượt viết tắt tương ứng A: áp suất, Đ: độ ẩm, N: nhiệt độ, và tên các thiết bị điều chỉnh nhiệt độ, gió và độ ẩm được viết tắt tương ứng Nh: nhiệt độ, Gi: gió, Đâ: độ ẩm. Dãy hành động của KĐKCB1 KĐKCB2 được minh họa bằng biểu thức chính quy dưới đây.

(S1(A1Đ1N1)∗F1)∗, (S2(A21Đ21N21)∗F2)∗, (S2(A22Đ22N22)∗F2)∗, và các dãy hành động thuộc KĐKT B1, KĐKT B2, KĐKT B3 như sau:

(SB1(N h1Gi1Đˆa1)∗FB1)∗, (SB2(N h2Gi2Đˆa2)∗FB2)∗, (SB3(N h3Gi3Đˆa3)∗FB3)∗ Khối ĐK trung tâm Cảm biến A21, Đ21, N21 Cảm biến A1, Đ1, N1 Vị trí 1 Vị trí 2 KĐKCB2 Thiết bị Nh1, Gi1, Đâ1 Thiết bị Nh2, Gi2, Đâ2 Thiết bị Nh3, Gi3, Đâ3 Vị trí 4 Vị trí 5 Vị trí 6 KĐKCB1 KĐKTB1 KĐKTB2 KĐKTB3 Cảm biến A22, Đ22, N22 Vị trí 3

Khối KĐKTT gửi một chuỗi yêu cầu ω = (S1S2A1A21A22Đ1N1Đ21Đ22F1N21N22F2) cho khối cảm biến KĐKCB1 KĐKCB2. Câu hỏi đặt ra là liệu các khối cảm biến KĐKCB1 KĐKCB2 có đáp ứng được yêu cầu của KĐKT T hay không? tức là ω có thỏa thể thức của khối KĐKCB1 KĐKCB2 hay không? Chuỗi ω thỏa thể thức của KĐKCB1 KĐKCB2 vì nó thỏa đối với phép chiếu chuỗi ω trên từng bảng chữ cái của nhóm cảm biến. Vấn đề này được làm sáng tỏ trong các ví dụ tiếp theo. Ký hiệu S1, S2 F1, F2 tương ứng với trạng thái bắt đầu và trạng thái kết thúc của KĐKCB1 KĐKCB2.

Để khái quát hóa, đặt Σi, i = 1, k, là bảng chữ cái biểu diễn tên của một nhóm các dịch vụ trong một thành phần phần mềmC, k ∈ N. ĐặtR≥0 là tập số thực không âm biểu diễn miền thời gian. Đặt Ω = Ski=1Σi là tập tất cả các dịch vụ của thành phần C cung cấp. Lý thuyết này quy định các dịch vụ trong cùng bảng chữ cái Σi thực thi tuần tự, còn các dịch vụ trong các bảng chữ cái khác nhau thì được phép thực thi song song. Với mỗi Σi, các dịch vụ có thể trùng với các dịch vụ ở bảng chữ cái khác nhưng chúng không chứa nhau. Tức là, Σi là tập cực đại các dịch vụ cần để thực thi một cách tuần tự. Khi k = 1 thì không có sự tương tranh trong thành phần phần mềm. Mỗi dịch vụ trong Ω cần một khoảng thời gian để thực thi, được xác định bằng ánh xạ δ : Ω 7→ R≥0. Do đó, một dịch vụ a∈ Ω cần tối thiểu δ(a) đơn vị thời gian để hoàn thành nhiệm vụ.

Một thể thức đặc tả một ràng buộc trên thứ tự thời gian của các dịch vụ trong một bảng chữ cái thứ Σi riêng rẽ và điều này được mô hình hóa một cách hiệu quả bằng biểu thức chính quy Ei trên bảng chữ cái Σi.

Định nghĩa 3.1 (Thể thức tương tác). Một thể thức tương tác π là một bộ

h(Σ1,E1), . . . ,(Σk,Ek), δi. Trong đó δ : Ω →R≥0, và với mọi i = 1, k, Ei là biểu thức chính quy trên bảng chữ cái Σi, Ω =Ski=1Σi.

Ví dụ 3.2. Ví dụ này minh họa thể thức tương tác của các thành phần phần mềm trong Ví dụ 3.1. Đặts1 = {S1, A1,Đ1, N1, F1} πs1 tương ứng với tập các dịch vụ và thể thức của khối KĐKCB1. Đặts2 =

{S2, A21,Đ21, N21, A22,Đ22, N22, F2} πs2 tương ứng với tập các dịch vụ và thể thức của khối KĐKCB2.

ĐặtB1 = {SB1, N h1, Gi1,Đˆa1, FB1} πB1 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1. ĐặtB2 ={SB2, N h2, Gi2,Đˆa2, FB2} πB2 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1.

ĐặtB3 ={SB3, N h3, Gi3,Đˆa3, FB3} πB3 tương ứng với tập các dịch vụ và thể thức của khối KĐKT B1.

(i) Ta có thể thức πs1 của KĐKCB1 như sau: πs1 =h(Σs1,Es1), δs1i, trong đó

s1,Es1) = ({S1, A1,Đ1, N1, F1}, pref(S1(A1Đ1N1)∗F1)∗. (ii) Ta có thể thức πs2 của KĐKCB2 như sau:

πs2 =h(Σs21,Es21),(Σs22,Es22), δs2i, trong đó

s21,Es21) = ({S2, A21,Đ21, N21, F2}, pref((S2(A21Đ21N21)∗F2)∗), (Σs22,Es22) = ({S2, A22,Đ22, N22, F2}, pref((S2(A22Đ22N22)∗F2)∗).

(iii) Thể thức πB1 của KĐKT B1 như sau: πB1 =h(ΣB1,EB1), δB1i, trong đó

B1,EB1) = ({SB1, N h1, Gi1,Đˆa1, FB1}, pref((SB1(N h1Gi1Đˆa1)∗FB1)∗),

(iv) Thể thức πB2 của KĐKT B2 như sau: πB2 =h(ΣB2,EB2), δB1i, trong đó

B2,EB2) = ({SB2, N h2, Gi2,Đˆa2, FB2}, pref((SB2(N h2Gi2Đˆa2)∗FB2)∗),

(v) Thể thức πB3 của KĐKT B3 như sau: πB3 =h(ΣB3,EB3), δB3i, trong đó

B3,EB3) = ({SB3, N h3, Gi3,Đˆa3, FB3}, pref((SB3(N h3Gi3Đˆa3)∗FB3)∗).

Ở đây, δ(S1) = δ(F1) = δ(S2) = δ(F2) = 1, δ(SB1) = δ(FB1) = δ(SB2) =

δ(FB2) = δ(SB3) = δ(FB3) = 1 đơn vị thời gian, nghĩa là thời gian khởi động và thời gian kết thúc của các bộ điều khiển được giả định là 1 đơn vị thời gian. δ(χs) = 5, χs là các dịch vụ còn lại trong πSi, i = 1,2. δ(χB) = 5, χBj là các dịch vụ còn lại trong πBj, j=1,2,3.

Như vậy, Ví dụ 3.2 đã minh họa thể thức tương tác trong các thành phần phần mềm của hệ thống thời gian thực trong Ví dụ 3.1. Ký hiệupref biểu diễn biểu thức chính quy tiền tố đóng (pref ix−closed) là biểu thức chính quy được

biểu diễn bằng ôtômát với trạng thái bất kỳ là trạng thái kết thúc.

Khi một hệ thống hoạt động, các dịch vụ phải tuân thủ các thể thức của thành phần phần mềm của nó, tức là tuân thủ các yếu tố về thứ tự thực hiện

và ràng buộc thời gian. Để biểu diễn ngữ nghĩa của các hoạt động này, luận án sử dụng ngôn ngữ thời gian và ôtômát thời gian làm mô hình của hệ thống. Do đó, ngôn ngữ thời gian biểu diễn các chuỗi hành vi trong hệ thống này.

Một từ thời gian trên bảng chữ cái Ω là một chuỗi ω = (a1, τ1)(a2, τ2). . .(an, τn) trong đó τi−1 ≤ τi, i = 1, n, τ0 = 0. Dãy hành vi này thể hiện hành động thứ ai xảy ra tại thời điểm thứ τi. Cho một thể thức π

như Định nghĩa 3.1. Đặt untimed(ω) = (a1a2. . . an), với mỗi từ ζ ∈Ω∗ được ký hiệu bởi ζi là phép chiếu của ζ trên Σi, tức là một từ nhận được từ ζ bằng cách loại bỏ các ký tự không thuộc Σi. Đặt L(E) là ngôn ngữ sinh bởi biểu thức chính quy E. Sự tuân thủ thể thức tương tác của một thành phần phần mềm được khái quát trong Định nghĩa 3.2.

Định nghĩa 3.2 (Sự tuân thủ thể thức). Một từ thời gian ω = (a1, τ1)(a2, τ2). . .(an, τn) tuân thủ thể thức π, ký hiệu bởi ω |= π, khi và chỉ khi với mọi ik thì các điều sau đúng.

(i) untimed(ω)i ∈ L(Ei), và

(ii) đặt untimed(ω) =aj1aj2. . . ajmi, thì τjl+1−τjlδ(ajl) với mọi l < mi.

Ví dụ 3.3. Giả sử KĐKTT gửi một chuỗi yêu cầu các dịch vụ ω = (S1,0)(S2,0)(A1,5)(A21,6)(A22,11)(Đ1,11)(N1,16)(Đ21,17)(Đ22,18)(F1,22) (N21,22)(N22,25)(F2,30) cho các khối cảm biếnKĐKCB1 vàKĐKCB2. Chúng ta kiểm tra xem KĐKCB1 KĐKCB2 có đáp ứng được yêu cầu này hay không? Theo Định nghĩa 3.2, ta có

(i) untimed(ω)s

1 = S1A1Đ1N1F1 ∈ L(Es1), và

(ii) untimed(ω) =S1, A1,Đ1, N1, F1, thì τjl+1 −τjlδ(ajl) với mọi l < mi.

t 0 5 6 11 16 17 18 22 25 30 S1 S2 A1 Đ1 N1 F1 A21 Đ21 N21 F2 A22 Đ22 N22 KĐKCB1 KĐKCB2

Hình 3.3: Minh họa chuỗi hành động ω trên trục thời gian.

Để thuận tiện cho việc phân tích các chuỗi hành động, ví dụ này coi đơn vị thời gian tính theo giây. Tại hành động S1, thời điểm khởi tạo τS1 = 0,

Như vậy hệ thống đã khởi tạo xong và sẵn sàng cho hành động A1 hoạt động. Đến giây thứ 11 bắt đầu gọi hành động Đ1, τĐ1 − τA1 = 6 ≥ δ(A1) = 5, với

cách tương tự chúng ta có thể tính cho các dịch vụ còn lại. Vậy, chuỗi ω = (S1,0)(S2,0)(A1,5)(A21,6)(A22,11)(Đ1,11)(N1,16)(Đ21,17)(Đ22,18)(F1,22) (N21,22)(N22,25)(F2,30) tuân thủ thể thức của KĐKCB1 KĐKCB2. Nếu hành động Đ1 xảy ra tại thời điểm τĐ1 = 9, ta có τĐ1−τA1 = 4≤ δ(A1) = 5, thì

chuỗi ω đã cho vi phạm thể thức πs1 KĐKCB1 không đáp ứng kịp yêu cầu.

Thể thức π là một tập các cặp (Σ,E). Do đó, theo lý thuyết ngôn ngữ hình thức, biểu thức chính quy và ngôn ngữ chính quy đóng với phép hợp, phép giao và phép lấy phần bù. Trong phần này, luận án kế thừa toàn bộ những lý thuyết đó để phục vụ cho việc biểu diễn các hành vi của thành phần phần mềm trong các trường hợp riêng lẻ cũng như khi kết hợp chúng với nhau, riêng trường hợp mô hình hóa các hoạt động song song, tương tranh của các thành phần với nhau, các phép toán sẽ được định nghĩa riêng rẽ.

Trong trường hợp ghép song song các giao diện thành phần, giả sử cho hai thành phần phần mềm C1 và C2 với hai chuỗi hành vi tương ứng là ω1 và ω2. Thành phần phần mềm C1 hoạt động song song với thành phần phần mềm C2, thì thể thức của thành phần phần mềm ghép được ký hiệu là π1||π2, và chuỗi thực thi ω1||ω2 biểu diễn tiến trình hoạt động song song của hai thành phần phần mềm này và phải thỏa thể thức π1||π2, ký hiệu bởi ω1||ω2 |= π1||π2. Luận án định nghĩa phép toán ghép song song của hai thể thức theo Định nghĩa 3.3.

Định nghĩa 3.3 (Ghép song song hai thể thức). Cho hai thể thức π =

h(Σ1,E1), . . . ,(Σk,Ek), δi π0 = h(Σ01,E01), . . . ,(Σh0,E0h), δ0i. Phép ghép song song của π với π0 là một thể thức π||, ký hiệu π|| = π||π0, π|| = h(Σi∪Σ0j,Ei

E0j), δ||i, i = 1, k, j = 1, h, trong đó δ|| : S

i=1,k,j=1,hi ∪Σ0j) 7→ R≥0, tức là với mọi từ thời gian ω|| =ω||ω0, ω |=π ω0 |=π0 thì ω|| |=π||.

Trong Ví dụ 3.3, KĐKCB1 và KĐKCB2 thực thi song với nhau. Trong

KĐKCB2 cũng có hai tiến trình thực thi song song.

Trong trường hợp ghép nối tiếp, thành phần phần mềm C2 ghép nối tiếp

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 53)

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

(166 trang)