Xem mẫu

LOGO

Đặc tả hình thức
Giới thiệu về ESC/Java2
Thủ thuật và cạm bẫy

Nguyễn Thị Minh Tuyền

Nội dung slide này được dịch từ các slide của David Cok, Joe Kiniry, Eric Poll

1

Nội dung
1.  Đặc tả thừa kế
2.  Aliasing
3.  Object invariants
4.  Giả thuyết không nhất quán
5.  Exposed references
6.  \old
7.  Viết đặc tả thế nào

Nguyễn Thị Minh Tuyền

2

Đặc tả hình thức

Nội dung
1.  Đặc tả thừa kế
2.  Aliasing
3.  Object invariants
4.  Giả thuyết không nhất quán
5.  Exposed references
6.  \old
7.  Viết đặc tả thế nào

Nguyễn Thị Minh Tuyền

3

Đặc tả hình thức

Behavioural subtyping
v Giả sử rằng Child mở rộng từ Parent
§  Behavioural subtyping = các đối tượng từ lớp con
Child ứng xử giống các đối tượng từ lớp cha Parent.
§  Nguyên tắc: mã nguồn sẽ ứng xử như mong đợi nếu
ta khai báo một đối tượng Child trong đó một đối
tượng Parent đã được cài đặt như mong đợi.

Nguyễn Thị Minh Tuyền

4

Đặc tả hình thức

Behavioural subtyping
v Một số ràng buộc bởi behavioural
subtyping:
§  Bất biến trong lớp con mạnh hơn bất biến trong lớp
cha.
§  Đối với mỗi phương thức:
•  Điều kiện trước trong lớp con yếu hơn điều kiện trước
trong lớp cha
•  Điều kiện sau trong lớp con mạnh hơn điều kiện sau
trong lớp cha.

v JML đạt được behavioural subtyping
bằng kế thừa đặc tả: bất cứ lớp con
nào cũng kế thừa đặc tả từ lớp cha
của nó.
Nguyễn Thị Minh Tuyền

5

Đặc tả hình thức

nguon tai.lieu . vn