Xem mẫu

LOGO

Đặc tả hình thức
Các module trong Alloy

Nguyễn Thị Minh Tuyền

Nguyễn Thị Minh Tuyền

1

Module trong Alloy
v Alloy là một hệ thống module cho
phép module hóa việc sử dụng lại các
mô hình.
v Một module định nghĩa một mô hình
và có thể xem mô hình này là một mô
hình con của mô hình khác.
v Để thuận lợi cho việc tái sử dụng, các
module có thể được tham số hóa
trong một hoặc nhiều signature

Nguyễn Thị Minh Tuyền

2

Đặc tả hình thức

Ví dụ
module util/relation
-- r is acyclic over the set s
pred acyclic [r: univ->univ, s: set univ] {
all x: s | x !in x.^r
}
module family
open util/relation as rel
sig Person {
parents: set Person
}
fact { acyclic [parents, Person] }
Nguyễn Thị Minh Tuyền

3

Đặc tả hình thức

Ví dụ
module util/relation
-- r is acyclic over the set s
pred acyclic [r: univ->univ, s: set univ] {
all x: s | x !in x.^r
}
module fileSystem
open util/relation as rel
sig Object {}
sig Folder extends Object {
subFolders: set Folder
}
fact { acyclic [subFolders, Folder] }
Nguyễn Thị Minh Tuyền

4

Đặc tả hình thức

Khai báo module
v Dòng đầu tiên của mỗi module là
module header
module modulePathName
v Module có thể import một module
khác với câu lệnh open ngay sau
header
open modulePathName

Nguyễn Thị Minh Tuyền

5

Đặc tả hình thức

nguon tai.lieu . vn