OCL
Giảng viên hướng dẫn: đào thị hường
Nhóm sinh viên:
phạm gia điền
Bùi thị phương
Vũ việt tuấn
Tr ầ n t h à n h l ộ c
OCL là gì?
•
OCL viết tắt của Object Constraint Language
•
Là ngôn ngữ giới hạn đối tượng
•
Là 1 thành phần trong OMG(Object Management Group)
•
Object Management Group: quản lý nhóm đối tượng
2
OCL Language
•
OCL là một ngôn ngữ ràng buộc đối tượng; do đó, một biểu đồ OCL được đảm bảo để được mà
không bị nghĩ sai tác dụng. khi một kiểu OCL được đánh giá, nó chỉ đơn giản là trả về một giá trị.
Nó không thể thay đổi bất cứ điều gì trong mô hình. Điều này có nghĩa rằng phân tich của hệ
thống sẽ không bao giờ thay đổi vì sự đánh giá của một biểu đồ OCL, mặc dù một biểu OCL có
thể dùng để xác định một sự thay đổi trạng thái (ví dụ, trong một bài điều kiện).
3
OCL Language
•
OCL không phải là một ngôn ngữ lập trình; do đó, nó không phải là có thể viết chương trình logic
hoặc kiểm soát sự kiện trong OCL. Bạn không thể gọi quá trình khởi tạo hoặc hoạt động truy vấn
trong OCL. Bởi vì OCL là một ngôn ngữ mô hình trong lần đầu tiên nơi, biểu thức OCL không theo
định nghĩa trực tiếp thực thi.
4
OCL Language
•
OCL là một ngôn ngữ để mỗi mô hình OCL có một loại. Để được hình thành tốt, mô hình OCL phải
phù hợp các quy tắc sử dụng phù hợp của ngôn ngữ. Ví dụ, bạn không thể so sánh một số nguyên
với một chuỗi. mỗi Classifier xác định trong một mô hình UML đại diện cho một loại OCL riêng
biệt. Ngoài ra, OCL bao gồm một tập hợp các định nghĩa trước bổ sung các loại.
5
Sử dụng OCL để làm gì?
Mô tả input, output của
Ngôn ngữ truy vấn
Sác định kiểu trong class
phương thức
OCL
Mô tả các rang buôc
phương thức
Xác định tính bất biến cho
Xác định quy tắc, thuộc tính
đối tượng
cho UML
6
Cú pháp OCL
•
Khai báo ngữ cảnh
•
Cú pháp khai báo ngữ cảnh
•
Từ khóa seft
•
Tiền điều kiện/hậu điều kiện – pre/post condition
7
Khai báo ngữ cảnh
•
OCL là một ngôn ngữ hình thức, chúng được biểu diễn dưới dạng biểu thức.Biểu thức OCL dùng để
đặc tả cho UML luôn luôn phải gắn liền với một đối tượng trong mô hình UML. Do vậy trước khi
tiến hành biểu diễn biểu thức OCL chúng ta phải khai báo ngữ cảnh mà biểu thức OCL tham gia.
8
Cú pháp khai báo 1 ngữ cảnh
•
Khai báo một ngữ cảnh bắt đầu bằng từ khóa context và tiếp đến là tên ngữ cảnh.
•
Ví dụ: khai báo ngữ cảnh có tên là Person: context Person
9
Từ khóa seft
•
Biểu thức OCL luôn được đặt trong một ngữ cảnh cụ thể, và đ ể chỉ ra thể hiện của đối tượng
trong ngữ cảnh đó chúng ta sử dụng từ khóa seft.
10
Khai báo biến bất biến
•
Khai báo một bất biến bắt đầu với từ khóa inv, tiếp đến là tên của bất biến.
•
Ví dụ:
context Class --khai báo ngữ cảnh có tên là Class
inv : seft. numberOfSdudents > 50 --Khai báo giá trị bất biến.
11
Tiền điều kiện/hậu điều kiện – pre/post condition
•
Tiền điều kiện và hậu điều kiện là các ràng buộc liên kết tới phương thức của một phân loại lớp.
•
Tiền điều kiện chứa một biểu thức OCL (trả về kết quả Boolean).Biểu thức OCL này phải được đánh giá là
đúng bất cứ khi nào phương thức bắt đầu thực thi, nhưng việc đánh giá này chỉ áp dụng cho thể hiện thực thi
phương thức
•
Hậu điều kiện cũng được biểu diễn bằng một biểu thức OCL (trả về kết quả Boolean). Việc đánh giá biểu thức
OCL tại thời điểm kết thúc thực thi phương thức.
•
Dùng @pre để tham chiếu đến giá trì tiền điều kiện
12
Cú pháp
•
context Typename::operationName(para1 : Type1, para2 : Type2,...)Return Type
•
pre: --Khai báo các tiền điều kiện
•
post: --Khai báo các hậu điều kiện
13
Cú pháp khác
14
Cú pháp khác
15
The end
16