Thành phần thụ động

Một phần của tài liệu Mô hình hóa giao diện của các thành phần trong các hệ thống dựa trên thành phần (Trang 25 - 27)

Định nghĩa 4 (Thành phần thụ động). Một thành phần thụ động thời gian thực là một bộ Comp= Ctr , Dep , SDep , Mcode, SInv ,

Trong đó Comp là tên để nhận diện thành phần, bao gồm

Hợp đồng Ctr= Fd , Md , Rd , Mspec , Init , Inv .

Tập Dep chứa các tên của thành phần, mỗi phần tử trong Dep là tên của thành phần mà Comp phụ thuộc vào.

SDep là tập các biến trong Π (biểu thị sự tương tác với lịch trình).

SInv là một vị từ trên các biến vSDep ( để thể hiện các giả định về thông tin mà bộ lịch trình có thể dựa vào khi phương thức Comp được gọi tới).

Mcode gán cho mỗi phương thức op trong Md một thiết kế xây dựng từ các hoạt động cơ bản (như được nêu trong [32] với một giả định tiêu thụ thời gian phù hợp như trong đặc tả của tài nguyên) và phương thức gọi có mẫu

call (Comp ,C , op1 ),trong đóop1là một phương thức trong thành phần C

nằm trong Dep. Tên của phương thức, các biến tài nguyên và biến cục bộ sử dụng trong đặc tả và triển khai phương thức op1 (in, out )trong thành phần

thụ động C (với tên là C) là cục bộ trong C và được đặt với tiền tố “C.”để tránh xung đột với các biến được sử trong các thành phần bị động khác. Cho Env ký hiệu cho vị từ

UDep ( Inv (Ctr (U )) ∧SInv (U ))

(chúng tôi sử dụng Ctr(U) để biểu thị các hợp đồng của thành phần U, Inv (Ctr(U)) để biểu thị sự bất biến của hợp đồng của thành phần U, Dep(U) để biểu thị tên các thành phần mà U phụ thuộc vào và SInv(U) để biểu thị bất biến hệ thống lịch của thành phần U). Điều kiện sau sẽ được thỏa mãn bởi Mcode: Env|= (Mspec(op) Mcode(op)), và Inv được bảo toàn bằng bất kỳ hoạt động nào sử dụng trong Mcode. Cho CDep , và opC . Khi đó call(Comp,C,op) được định nghĩa là Schedule(Comp,C)||C.op , trong đó

Schedule(Comp,C) là một thiết kế sử dụng biến trong SDep(C) (giá trị của các biến này thể hiện lời gọi hiện tại tới một phương thức của C; chúng ta hy vọng tiền điều kiện của Schedule(Comp,C) có thể suy ra từ SInv(C)). Đối với quy tắc

cấu trúc song song, Schedule (Comp,C)||C.op được suy ra từ đặc

tả chức năng của C.op, nhưng có thể mất nhiều thời gian để thực hiện.

Hợp đồng Ctr được cho rằng có thể thực thi bởi Comp. Trong định nghĩa của thành phần Comp, nó đòi hỏi rằng

cho mỗi phương thức op trong hợp đồng của Comp theo giả định (Inv(Ctr(U )) ∧

SInv(U )) . Diễn giải bằng lời có nghĩa là tất cả các thành phần mà

Comp phụ thuộc vào phải đảm bảo cácbất biếnvà phương thức của thành phần Comp

được thực thi một cách chính xác. Ngoài ra tất cả các hoạt động trong Comp phải đảm bảo các bất biến của Comp. Vì vậy, op có thể được sử dụng như là một dịch vụ thích hợp với đặc tả Mspec(op). Làm thế nào để chắc chắn ∧U Dep (Inv(Ctr(U))∧SInv(U

)) được đảm bảo? Việc thực thi của op dựa vào các phương thức trong các thành phần có tên trong Dep. Nhưng việc thực hiện các phương thức đó cuối cùng có thể dựa vào

op. Tình trạng này có thể gây ra suy diễn lòng vòng và có thể làm cho op được thực hiện không đúng. Tình trạng này sẽ không xảy ra nếu chúng ta thực hiện tốt các phương thức dưới đây.

Định nghĩa 5. Phương thức triển khai tốt được định nghĩa đệ quy như sau:

U Dep

1. Nếu op là một phương thức trong một thành phần với mã Mcode(op) bao gồm từ các lệnh cơ bản thì op là triển khai tốt.

2. Nếu op là một phương thức trong một thành phần với mã Mcode(op) bao gồm từ các lệnh cơ bản và các cuộc gọi tới một phương pháp triển khai tốt thì op là triển khai tốt.

Vì vậy, phương thức triển khai tốt không chứa các cuộc gọi phương thức đệ quy, mặc dù các phương thức có chứa các cuộc gọi phương thức đệ quy luôn luôn có thể chấm dứt và có ngữ nghĩa xác định.

Cho Comp = Ctr , Dep , SDep , Mcode, SInv . Cho Dep là quan hệ nhị phân được

định nghĩa như sau

Dep =ˆ{(C1,C 2 )| C 2∈ Dep (C1)}

(Tức là C1 Dep C2 nếu sự thực thi của phương thức trong C1 chứa các lời gọi tới phương thức trong C2 ). Cho Dep+ và Dep* là suy dẫn đóng cửa và suy dẫn đóng và phản xạ cửa các phản xạ của Dep tương ứng.

Bằng cách liên tục thay thế tên phương thức thực thi, chúng ta có:

Định lý 3. Cho Comp = Ctr , Dep , SDep , Mcode, SInv và op là phương thức triển khai tốt trong Comp. Khi đó, sẽ có một chương trình P không có sự xuất hiện của phương thức gọi như sau CDep+(Comp)Inv (C ) |=Mspec (op ) P .

Một phần của tài liệu Mô hình hóa giao diện của các thành phần trong các hệ thống dựa trên thành phần (Trang 25 - 27)

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

(49 trang)
w