Thành phần

Một phần của tài liệu Xây dựng ngôn ngữ mẫu cho lập trình dựa trên thành phần (Trang 30)

Bây giờ chúng ta hình thức hóa khái niệm của thành phần. Qua trực giác, một thành phần bị động là một sự thực hiện của một hợp đồng sử dụng các dịch vụ từ các thành phần bị động khác thông qua các hợp đồng của chúng [6].

Định nghĩa 6 (Thành phần bị động):

Một thành phần bị động là một bộ Comp Ctr Mcode, . Hợp đồng Ctr được nói là được thực hiện bởi Comp, ở đây Comp là tên của thành phần, nó gồm có:

Một hợp đồng Ctr  (Ip,Ir),MSpec Init Inv Inv Pro, , p, r, 

Mcode gán mỗi phương thức op trong Mdp với một thiết kế được xây dựng từ những phép toán cơ bản, và phương thức trong Ir như những phép chiếu của thiết kế này trong bất kỳ phương thức opMdr là được thay thế bởi ?op op! (bắt đầu và kết thúc hành động của nó) trên

{? ,!m m m| Mdr} được chứa trong Pro. Điều kiện sau đây sẽ được thỏa mãn bởi Mcode: (MSpec op( )ô Mcode op( ))và Invp được bảo toàn bởi bất cứ phép toán nào được sử dụng trong Mcode.

Sự thực hiện của mọi phương thức m sẽ được tương thích với mức độ tương tranh của chúng trong Pro, ví dụ hoặc một phương thức m sử dụng phương thức không là loại trừ, hoặc một số bản sao phù hợp của m là có giá trị.

Vì vậy, một thành phần sẽ là đúng bởi thiết kế của nó, sự thực thi các phương thức của nó sẽ là đúng theo sự đặc tả của chúng. Phần chủ động bao gồm một vài tiến trình và một giao diện đòi hỏi có thể được gắn vào phần bị động. Một tiến trình được miêu tả bởi một chương trình sử dụng các dịch vụ từ phần bị động để tác động trở lại với các sự kiện từ môi trường của hệ thống. Các sự kiện là không được điều khiển bởi hệ thống, vì thế các sự kiện từ môi trường cùng các dịch vụ hệ thống với sự đặc tả và giao thức tương tác của nó hình thành hợp đồng giữa hệ thống và môi trường của nó.

Định nghĩa 7 (Giao diện hệ thống):

Một giao diện hệ thống là một cặp SI ( ,E Fd SMd, p), ở đây SMdp là một tập hữu hạn các phương thức, Fd là một tập hữu hạn các thuộc tính, và E là một tập hữu hạn các sự kiện.

Định nghĩa 8 (Hợp đồng hệ thống):

Một hợp đồng hệ thống là một bộ S Ctrys  SI SMSpec Inv Behav, , , , ở đây:

SI ( ,E Fd SMd, p) là một giao diện hệ thống

Mspec là sự đặc tả phương thức, kết hợp mỗi phương thức op(in, out) trong SMdp với một thiết kế ,FP, ở đây ( \ ( inout))Fd

Behav là một sự miêu tả hành xử bên ngoài, là một tập con hữu hạn của { ,e m e| E m, SMdp}. Mỗi phần tử của Behav được gọi là một sự đặc tả tiến trình.

Chúng ta sử dụng các phần tử của Behav như sự đặc tả hệ thống. Một cách không hình thức, ý nghĩa cho một chuỗi α trong Behav là nếu môi trường hệ thống đề nghị chuỗi các sự kiện như sự xảy ra trong α thì hệ thống đề nghị chuỗi các dịch vụ (các phương thức) được đặc tả bởi α trong trình tự này. Các phần tử của Behav được miêu tả bởi các tiến trình chạy song song.

Định nghĩa 9 (Thành phần chủ động):

Một thành phần chủ động ActComp Ctr S Ctr Mcode, ys , bao gồm:

Một hợp đồng Ctr  (Ip,Ir),MSpec Init Inv Inv Pro, , p, r,  với giao diện cung cấp là rỗng, Ip   ( , ).

Một hợp đồng hệ thống S Ctrys  SI SMSpec Inv Behav, , , 

Một tiến trình thực thi Mcode gán mỗi phương thức op trong SMdp với một thiết kế được xây dựng từ các phép toán cơ bản và phương thức

trong Ir như những phép chiếu của thiết kế này trong bất kỳ phương thức opMdr là được thay thế bởi ?op op! (bắt đầu và kết thúc hành động của nó) trên {? ,!m m m| Mdr} là được chứa trong Pro. Điều kiện sau đây sẽ được thỏa mãn bởi Mcode: (MSpec op( )ô Mcode op( ))với mọi

p

opSMd .

Định nghĩa 10 (Hệ thống):

Một hệ thống một cặp của một thành phần chủ động

, ys ,

ActComp Ctr S Ctr Mcode và một thành phần bị động Comp Ctr Mcode', '

với sự ghép nối CtrCtr'.

Vì thế, một hệ thống thành phần là một hệ thống đóng, không đòi hỏi bất kỳ dịch vụ nào từ môi trường của nó, và cung cấp các dịch vụ của nó tới môi trường như các phản ứng của nó tới các sự kiện kích thích từ môi trường. Sự đặc tả hệ thống là hợp đồng hệ thống SysCtr. Hai hệ thống là tương đương nếu chúng có cùng đặc tả, ví dụ chúng có hợp đồng hệ thống tương đương. Định lý dưới đây chỉ ra đặc điểm quan trọng nhất của lập trình dựa trên thành phần [6].

Định lý (Hệ thống tương đương): Cho S (ActComp Comp, ') là một hệ thống được hình thành bởi thành phần chủ động ActComp Ctr S Ctr Mcode, ys ,  thành phần bị động Comp' Ctr Mcode', '. Cho Comp'' Ctr Mcode'', '' là thành phần bị động như là CtrCtr''. Khi đó (ActComp Comp, '') cũng là một hệ thống tương đương với S.

CHƯƠNG 3. NGÔN NGỮ MẪU ĐẶC TẢ THÀNH PHẦN

Một phần của tài liệu Xây dựng ngôn ngữ mẫu cho lập trình dựa trên thành phần (Trang 30)

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

(57 trang)