LOGO
Đặc t hình thc
Nguyn Th Minh Tuyn
Các module trong Alloy
Nguyn Th Minh Tuyn 1
Đặc t hình thc
Module trong Alloy
vAlloy là mt h thng module cho
phép module hóa vic s dng li các
mô hình.
vMt module định nghĩa mt mô hình
và có th xem mô hình này là mt mô
hình con ca mô hình khác.
vĐể thun li cho vic tái s dng, các
module có th được tham s hóa
trong mt hoc nhiu signature
2
Nguyn Th Minh Tuyn
Đặc t hình thc
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] }
3
Nguyn Th Minh Tuyn
Đặc t hình thc
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] }
4
Nguyn Th Minh Tuyn
Đặc t hình thc
Khai báo module
vDòng đầu tiên ca mi module là
module header
module modulePathName
vModule có th import mt module
khác vi câu lnh open ngay sau
header
open modulePathName
5
Nguyn Th Minh Tuyn