Từ mô hình lò vi sóng (Hình 5.2) chúng ta có thể đặc tả hệ thống trong CafeOBJ bằng mô đun MO với các thành phần được mô tả trong Hình 5.3. Trong đó, *[Sys]* là khai báo kiểu Sys chính là không gian trạng thái của hệ thống, bop lb là khai báo
phương thức trực quan kiểm tra các hằng nhãn có thuộc trạng thái tương ứng hay không. Trong đó các hằng nhãn bao gồm st (start), cl (close), ht (heat), err (error) và các ký hiệu “~” trước nhãn ở trong trạng thái trong Hình 5.1 thể hiện nhãn đó không thuộc trạng thái.
Hình 5.3: Đặc tả của lò vi sóng trong CafeOBJ.
Trước khi đặc tả hê thống trong CafeOBJ bằng mô đun MO, ta tạo mô đun LABEL nhằm đặc tả cho các nhãn trong mỗi thái. Các nhãn này được xem như các hằng và chúng sẽ được kiểm tra các quan hệ giữa các nhãn bằng phương thức “_=_” được mô tra trong Hình 5.4.
*[Sys]* -- không gian trạng thái của hệ thống [Label] -- Khai báo nhãn Label
-- Khai báo toán tử trực quan bop lb : Sys Label -> Bool {memo} --Các hành động
bop warm : Sys -> Sys bop cook : Sys -> Sys bop done : Sys -> Sys bop open : Sys -> Sys bop close : Sys -> Sys bop start : Sys -> Sys bop reset : Sys -> Sys
Chương 5: Đặc tả và kiểm chứng hệ thống lò vi sóng Phạm Ngọc Thắng
Hình 5.4: Mô đun LABEL trong CafeOBJ.
Từ đó chúng ta sẽ đặc tả hệ thống trong CafeOBJ bằng mô đun MO với kế thừa một số thuộc tính và phương thức của mô đun LABEL và các hành động trong hệ thống sẽ được mô tả trong chương trình.