Quan hệ nhị phân với các lượng từ

Một phần của tài liệu LUẬN VĂN:CHUYỂN ĐỔI ĐẶC TẢ UML VỚI OCL SANG ĐẶC TẢ ALLOY doc (Trang 31 - 33)

Hình 6. Chuyển quan hệ nhị phân với lượng từ[3]

Vế trái của hình vẽ trên biểu diễn liên kết nhị phân giữa 2 lớp với lượng từ tham gia. Vế phải là biểu diễn nhị phân của 2 lớp, nhưng lúc này ta không quan tâm tới lượng tử tham gia của 2 lớp trong mối liên hệ.

Giải thích viết tắt cho hình 6.

ra : Tên vai trò của Class B với Class A, ra : B -> set A rb : Tên vai trò của Class A với Class B, rb : A->set B

la..ha : Với một đối tượng là thể hiện của Class B thì số lượng đối tượng của Class A liên hệ với nó trong đoạn từ la đến ha tương tự như vậy với lb..hb.

Cả ra, rb đều được gọi với thuật ngữ chung là mút liên kết -association end .

Biểu diễn ràng buộc bằng OCL

Như đã thấy trong Hình 8 để vế trái và vế phải tương đương nhau thì ta phải thêm vào vế phải ràng buộc OCL[5]. Ràng buộc được đưa ra nhằm biểu diễn ràng buộc về số lượng la..ha và lb..hb thành các ràng buộc OCL[5].

Ràng buộc OCL được thêm vào Ràng buộc tương đương trong Alloy

A->forAll(a | a.rb->size >= lb and a.rb- >size <= hb) and B->forAll(b | b.rb- >size>=la and b.rb->size <= ha)[4]

all a : A | #a.rb >=lb and #a.rb <=hb all b: B | #b.ra >=la and #b.ra <=ha

Các ràng buộc sẽ được đặt trong các sự kiện trong Alloy[2], điều đó đảm bảo các ràng buộc sẽ luôn luôn được tham chiếu trong suốt quá trình thực thi chương trình.

Ví dụ

24 Hình 7. Ví dụ chuyển quan hệ nhị phân với lượng từ

Sau khi chuyển thì lúc này chúng ta không cần quan tâm tới lượng từ tham gia liên kết của 2 lớp nữa.

Dưới đây chúng ta sẽ chuyển vế phải của Hình 9 sang biểu diễn Alloy[2]. Ở đây mỗi một lớp chuyển thành một ký hiệu trong Alloy[2], các ràng buộc OCL[5] chuyển tương ứng thành các biểu thức logic Alloy[2].

Bảng 4. Chuyển đặc tả OCL của lớp Student sang Alloy

UML[1] và đặc tả OCL Biểu diễn Alloy

class Student sig Student

class Teacher sig Teacher

Student->forAll(s | s.study->size >=5 and s.study->size <=10) and

Teacher->forAll(t | t.teach->size >=25 and t.teach->size <=50)

all s : Student | #s.study >=5 and #s.study <=10

all t : Teacher | #t.teach >=25 and t.teach <=50

study : Student -> set Teacher chuyển thành một trường trong sig Student

teach : Teacher -> set Student chuyển thành một trường trong sig Teacher

25

Biểu diễn đặc tả Alloy

Hình 8. Đặc tả Alloy lớp Student

Một phần của tài liệu LUẬN VĂN:CHUYỂN ĐỔI ĐẶC TẢ UML VỚI OCL SANG ĐẶC TẢ ALLOY doc (Trang 31 - 33)

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

(51 trang)