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.3. Hệ thống thời gian-tài nguyên
Mơ hình thành phần phần mềm của luận án được sử dụng để liên kết giữa đặc tả và với mã nguồn chương trình. Luận án chia thành hai loại thành phần riêng biệt, loại thụ động chuyên cung cấp các dịch vụ cho hệ thống và loại chủ động chịu tránh nhiệm thực thi các luồng theo cơ chế tương tranh.
Định nghĩa 5.27 (Thành phần phần mềm thụ động). Thành phần phần mềm thụ động thời gian thực là một bộ PC =b hC, M codei, trong đó C đồng nhất với tên của thành phần, bao gồm các thành phần sau:
(i) Một hợp đồng C=hI, I, Rd, MSpec,Inv,InvRd, ℘i được thực thi bởi PC. (ii) Một ánh xạ M code gán mỗi phương thức op trong M dp một thiết kế được
xây dựng từ các toán tử cơ bản, với giả định sử dụng và tiêu thụ một lượng tài nguyên, và các lời gọi tới các phương thức m trong M dr, và M code thỏa MSpec(op) vM code(op) đối với tất cả phương thức op trong M dp.
Ngữ nghĩa của mơ hình như sau. Khi một thành phần phần mềm được thực thi, mọi ràng buộc của nó với mơi trường được thực hiện qua hợp đồng của nó. Thứ tự thực thi của các dịch vụ phải tuân thủ thể thức ℘ của thành phần. Khi xét trường hợp W CET của một phương thức, chúng ta cần biết bao nhiêu lời gọi phải đợi trước khi được phục vụ. Trong mơ hình này, luận án dành phần này cho môi trường hệ thống điều khiển.
Định lý 5.3. Đặt PCi =hCi, M codeii, i=1,2 là thành phần phần mềm thụ động.
PC1 được gọi là làm mịn bởi PC2, ký hiệu PC1 v PC2 khi và chỉ khi C1 vC2.
Chứng minh. Giả sử PC2 làm mịn PC1. Theo Định nghĩa 5.27 thành phần PC1
có hC1, M code1i và thành phần PC2 có hC2, M code2i. Điều này suy ra C1 v C2. Ngược lại, giả sửC1 v C2. Theo Định nghĩa5.22, ta có với mọi phương thức
op được khai báo trong M dp1 thì MSpec1(op) ⊆ MSpec2(op) và với mọi phương thức op được khai báo trong M dr2 thì MSpec2(op)⊆ MSpec1(op). Từ những điều này suy ra M code1 v M code2. Suy ra PC1 vPC2.
Ở điểm này, chúng ta có một số các tính chất hữu ích cho phát triển hệ thống dựa trên thành phần. Tức là kết hợp hai thành phần, nếu nó đóng, sẽ là làm mịn của riêng chúng, và sự kết hợp này là đơn điệu với các toán hạng tương ứng với từng quan hệ làm mịn nếu sự tương thích khơng bị vi phạm.
Phần chủ động của hệ thống bao gồm một số tiến trình và một giao diện yêu cầu Ir mà nó có thể cắm vào phần thụ động. Một tiến trình có thể là một thực thi của một chương trình có sử dụng dịch vụ từ phần thụ động để phản hồi lại các sự kiện của môi trường. Các sự kiện này không được điều khiển bởi hệ thống. Do đó, các sự kiện hữu ích từ mơi trường và các dịch vụ hệ thống cùng với đặc tả của chúng và thể thức tương tác hình thành hợp đồng giữa hệ thống và mơi trường.
Định nghĩa 5.28 (Giao diện của hệ thống). Giao diện hệ thống là một bộ
IS = hEvt, F d, SM dpi, trong đó SM dp là tập hữu hạn các phương thức, F d là một tập hữu hạn các thuộc tính, Evt là tập hữu hạn các sự kiện.
Định nghĩa 5.29 (Hợp đồng của hệ thống). Hợp đồng hệ thống là một bộ SysC=hIs, SM Spec, Inv, Behavi, trong đó
(i) Is= hEvt, F d, SM dpi là giao diện hệ thống,
(ii) SM Spec là đặc tả phương thức liên quan đến mỗi phương thức op(X, Y)
trong SM dp với một thiết kế D(op) = (ϑ, ξ, ψ, d, ρ),
(iii) Inv là thành phần bất biến được đặc tả bằng lơgíc thời gian tuyến tính (LTL), và
(iv) Behav là sự mơ tả hành vi bên ngồi là một tập hữu hạn của {evt, m|evt∈
Evt, m ∈SM dp}∗. Mỗi hành vi của Behav được gọi đặc tả tiến trình.
Định nghĩa 5.30 (Thành phần phần mềm chủ động). Thành phần phần mềm chủ động là một bộ AC = hC, SysC, M codei bao gồm
(i) Một hợp đồng C với tập giao diện cung cấp rỗng Ip =h∅,∅i,
(ii) Một hợp đồng hệ thống SysC=hIs, SM Spec, Inv, Behavi,
(iii) Các tiến trình thực thi gọi các dịch vụ trong M code gán mỗi phương thức op trong SM dp một thiết kế được xây dựng từ các toán tử cơ sở. Điều kiện sau sẽ thỏa bởi M code : (SM Spec(op) vM code(op)) với mọi op∈SM dp.
Một hệ thống trong mơ hình thành phần của luận án là một thành phần phần mềm chủ động cắm vào một thành phần phần mềm thụ động đóng.
Định nghĩa 5.31 (Hệ thống). Hệ thống là một cặp thành phần phần mềm chủ động AC = hC, SysC, M codei và một thành phần phần mềm thụ động PC =
hC0, M code0i, ký hiệu là System= hAC, PCi, sao cho C C0.