Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 28 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
28
Dung lượng
304,35 KB
Nội dung
1 ðặc tả Z (5) Nguyễn Thanh Bình Khoa Công nghệ Thông tin Trường ðại học Bách khoa ðại học ðà Nẵng 2 Giới thiệu ñược ñề xuất bởi Jean René Abrial ở ðại học Oxford ngôn ngữ ñặc tả hình thức ñược sử dụng rộng rãi nhất dựa trên lý thuyết tập hợp ký hiệu toán học sử dụng các sơ ñồ (schema) dễ hiểu 2 3 Giới thiệu Gồm bốn thành phần cơ bản các kiểu dữ liệu (types) • dựa trên khái niệm tập hợp các sơ ñồ trạng thái (state schemas) • mô tả các biến và ràng buộc trên các biến các sơ ñồ thao tác (operation schemas) • mô tả các thao tác (thay ñổi trạng thái) các toán tử sơ ñồ (schema operations) • ñịnh nghĩa các sơ ñồ mới từ các sơ ñồ ñã có 4 Kiểu dữ liệu mỗi kiểu dữ liệu là một tập hợp các phần tử Ví dụ {true, false} : kiểu lô-gíc N: kiểu số tự nhiên Z: kiểu số nguyên R: kiểu số thực {red, blue, green} 3 5 Kiểu dữ liệu Các phép toán trên tập hợp Hội: A ∪ B Giao: A ∩ B Hiệu: A ⁄ B Tập con: A ⊆ B Tập các tập con: P A • ví dụ: P {a, b} = {{}, {a}, {b}, {a, b}} 6 Kiểu dữ liệu một số kiểu dữ liệu cơ bản ñã ñược ñịnh nghĩa trước kiểu số nguyên Z kiểu số tự nhiên N kiểu số thực R có thể ñịnh nghĩa các kiểu dữ liệu mới ANSWER == yes | no [PERSON] • sử dụng cặp ký hiệu [ và ] ñể ñịnh nghĩa kiểu cơ bản mới 4 7 Kiểu dữ liệu Khai báo kiểu x : T • x là phần tử của tập T Ví dụ • x : R • n : N • 3 : N • red : {red, blue, green} 8 Vị từ Một vị từ (predicate) ñược sử dụng ñể ñịnh nghĩa các tính chất của biến/giá trị Ví dụ x > 0 π ∈ R 5 9 Vị từ Có thể sử dụng các toán tử lô-gíc ñể ñịnh nghĩa các vị từ phức tạp Và: A ∧ B Hoặc: A ∨ B Phủ ñịnh: ¬ A Kéo theo: A ⇒ B Ví dụ (x > y) ∧ (y > 0) (x > 10) ∨ (x = 1) (x > 0) ) ⇒ x/x = 1 ( ¬ (x ∈ S)) ∨ (x ∈ T) 10 Vị từ Các toán tử khác (∀x : T • A) • A ñúng với mọi x thuộc T • Ví dụ: (∀x : N • x - x =0) (∃x : T • A) • A ñúng với một số giá trị x thuộc T • Ví dụ: (∃x : R • x + x = 4) {x : T | A} • biểu diễn các phần tử x của T thỏa mãn A • Ví dụ: N = {x : Z | x ≥ 0} 6 11 Sơ ñồ trạng thái Cấu trúc sơ ñồ trạng thái gồm tên sơ ñồ khai báo biến ñịnh nghĩa vị từ 12 Sơ ñồ trạng thái ðặc tả Z chứa các biến trạng thái khởi gán biến các thao tác trên các biến biến trạng thái có thể có các bất biến • ñiều kiện mà luôn ñúng, biểu diễn bởi các vị từ 7 13 Sơ ñồ thao tác Khởi gán biến Khai báo thao tác trên biến kí hiệu ∆ biểu diễn biến trạng thái bị thay ñổi bởi thao tác kí hiệu ‘ (dấu nháy ñơn) biểu diễn giá trị mới của biến 14 Sơ ñồ thao tác Thao tác có thể có các tham số vào và ra tên tham số vào kết thúc bởi kí tự “?” tên tham số ra kết thúc bởi kí tự “!” 8 15 Sơ ñồ thao tác Kí hiệu Ξ mô tả thao tác không thể thay ñổi biến trạng thái 16 Ví dụ 1 ðặc tả hệ thống ghi nhận các nhân viên vào/ra tòa nhà làm việc Kiểu dữ liệu [Staff] là kiểu cơ bản mới của hệ thống Trạng thái của hệ thống bao gồm • tập hợp các người sử dụng hệ thống user • tập hợp các nhân viên ñang vào in • tập hợp các nhân viên ñang ra out bất biến của hệ thống 9 17 Ví dụ 1 ðặc tả thao tác ghi nhận một nhân viên vào 18 Ví dụ 1 ðặc tả thao tác ghi nhận một nhân viên ra 10 19 Ví dụ 1 ðặc tả thao tác kiểm tra một nhân viên vào hay ra Thao tác này cho kết quả là phần tử của kiểu QueryReply == is_in | is_out ðặc tả thao tác 20 Ví dụ 1 Khởi tạo hệ thống [...]... = {28 737 3, 39 8620, 8294 83, 4 930 28} 35 Quan h Phép tr mi n (domain subtraction) ký hi u: bi u di n quan h R v i các ph n t trong mi n S ñã b lo i b Nghĩa là: 36 18 Quan h Phép tr mi n (domain subtraction) Ví d : Khi ñó: 37 Ví d 2 ð c t danh b ñi n tho i g m tên ngư i và s ñi n tho i S d ng ki u cơ b n [Person, Phone] ð c t tr ng thái h th ng 38 19 Ví d 2 Kh i t o h th ng Thêm m t s ñi n tho i 39 Ví... i ch có m t ngày sinh duy nh t kh i t o h th ng 46 23 Ví d 3 Thêm m t ngư i vào h th ng 47 Ví d 3 ði u gì x y ra n u name? ∉ dom(bb) Ch nh s a ngày sinh Xóa m t ngư i 48 24 Ví d 3 Tìm ngày sinh c a m t ngư i 49 Ví d 3 Tìm ngày sinh c a m t ngư i trư ng h p tìm không th y 50 25 Ví d 3 Tìm ngày sinh c a m t ngư i thông báo khi tìm th y khi ñó 51 Ví d 3 Tìm nh ng ngư i cùng ngày sinh 52 26 Total Function... tên Xóa các m c trong danh b tên ng v i m t t p các 42 21 Partial Function là quan h mà m i ph n t trong domain cho m t giá tr duy nh t trong range ký hi u nghĩa là 43 Partial Function Ví d Có th áp d ng các toán t hàm 44 22 Partial Function Toán t quá t i hàm (Function Overriding) thay th m t m c vào b i m t m c m i ký hi u ví d lưu ý 45 Ví d 3 ð c t h th ng qu n lý ngày sinh s d ng ki u cơ b n m i... BadCheckIn1 ∨ BadCheckIn2 31 Quan h C p ph n t di n có th t ñư c bi u (x, y) Tích ð -các c a hai ki u T1 và T2 T1 x T2 (x, y) : T1 x T2 32 16 Quan h Quan h (relation) là t p các c p ph n t có th t Ví d : 33 Quan h Có th ký hi u quan h T ↔ S == P (T x S) directory : Person ↔ Number Ánh x c p ph n t có th t (x, y) có th vi t • Ví d Lưu ý kí hi u ↔ dành cho ki u kí hi u dành cho giá tr 34 17 Quan h Domain và... c: ∨ 23 Toán t sơ ñ Các sơ ñ ñã có T o các sơ ñ m i Schema3 == Schema1 ∧ Schema2 Schema4 == Schema1 ∨ Schema2 24 12 Ví d 1 (ti p) C i ti n thao tác StaffQuery Thao tác StaffQuery chưa ñ c t trư ng h p l i • name? ∉ users 25 Ví d 1 (ti p) C i ti n thao tác StaffQuery ð c t l i ki u QueryReply QueryReply == is_in | is_out | not_registered Khi ñó RobustStaffQuery == StaffQuery ∨ BadStaffQuery 26 13 Ví... tác cho trư ng h p ghi nh n thành công 27 Ví d 1 (ti p) C i ti n thao tác CheckIn M r ng thao tác cho trư ng h p ghi nh n thành công Khi ñó GoodCheckIn == CheckIn ∧ Success 28 14 Ví d 1 (ti p) C i ti n thao tác CheckIn X lý thêm hai trư ng h p l i 1 name? ñã ñư c ghi nh n 2 name? chưa ñư c ñăng ký 29 Ví d 1 (ti p) C i ti n thao tác CheckIn X lý thêm hai trư ng h p l i 30 15 Ví d 1 (ti p) C i ti n thao... 25 Ví d 3 Tìm ngày sinh c a m t ngư i thông báo khi tìm th y khi ñó 51 Ví d 3 Tìm nh ng ngư i cùng ngày sinh 52 26 Total Function ñ nh nghĩa ánh x t t t c giá tr c a domain ñ n range ký hi u nghĩa là 53 Total Function Ví d 54 27 Total Function S d ng ñ ñ nh nghĩa h ng s Ví d 55 Các ký hi u Toán t lô-gíc T ph p Quan h và Hàm 56 28 . john, jim, jane} tập hợp các thành phần thứ hai trong một quan hệ ñược gọi là range • kí hiệu: ran • ví dụ: ran(directory) = {28 737 3, 39 8620, 8294 83, 4 930 28} 36 Quan hệ Phép trừ miền (domain. ∨ BadCheckIn2 32 Quan hệ Cặp phần tử có thứ tự ñược biểu diễn (x, y) Tích ðề-các của hai kiểu T1 và T2 T1 x T2 (x, y) : T1 x T2 17 33 Quan hệ Quan hệ (relation) là tập các cặp phần tử. hiệu: biểu diễn quan hệ R với các phần tử trong miền S ñã bị loại bỏ Nghĩa là: 19 37 Quan hệ Phép trừ miền (domain subtraction) Ví dụ: Khi ñó: 38 Ví dụ 2 ðặc tả danh bạ ñiện thoại