Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Đặc tả Z - Nguyễn Thanh Bình
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ểu2
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ó
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Đặc tả Z - Nguyễn Thanh Bình", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Nhập môn công nghệ phần mềm - Chương 5: Đặc tả Z - Nguyễn Thanh Bình
ð 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 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 1 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 ó 3 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} 4 2 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}} 5 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 6 3 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} 7 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 8 4 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) 9 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} 10 5 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 11 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 12 6 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 13 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 “!” 14 7 Sơ ñ thao tác Kí hi u Ξ mô t thao tác không th thay ñ i bi n tr ng thái 15 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 16 8 Ví d 1 ð c t thao tác ghi nh n m t nhân viên vào 17 Ví d 1 ð c t thao tác ghi nh n m t nhân viên ra 18 9 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 19 Ví d 1 Kh i t o h th ng 20 10 Ví d 1 Tóm l i Sơ ñ tr ng thái: các thành ph n/ñ i t ư ng c a h th ng B t bi n: ràng bu c gi a các ñ i t ư ng Các s ơ ñ thao tác • ði u ki n trên các tham s vào • Quan h gi a tr ng thái tr ư c và sau • Tham s k t qu Kh i gán 21 Ví d 1 Hãy ñ c t các thao tác Register: thêm vào m t nhân viên m i QueryIn: cho bi t nh ng nhân viên ñang vào/làm vi c 22 11 Toán t sơ ñ Các s ơ ñ có th ñư c k t h p ñ t o ra các s ơ ñ m i Các toán t sơ ñ Và: ∧ Ho 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í 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 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 tác CheckIn Khi ñó CheckInReply == ok | already_in | not_registered RobustCheckIn == GoodCheckIn ∨ BadCheckIn1 ∨ BadCheckIn2 31 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 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à Range t p h p các thành ph n th nh t trong m t quan h ñư c g i là domain (mi n) • kí hi u: dom • ví d : dom(directory) = {mary, 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) = {287373, 398620, 829483, 493028} 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í d 2 có th c i ti n ? Tìm s ñi n tho i c a m t ng ư i Tìm tên theo s ñi n tho i 40 20 Ví d 2 Xóa s ñi n tho i c a m t ng ư i 41 Ví d 2 Xóa các m c trong danh b ng v i m t tên Xóa các m c trong danh b ng v i m t t p các tên 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 [Person, Date] m i ng ư 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 ñ 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 p h p Quan h và Hàm 56 28
File đính kèm:
- bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_5_dac_ta_z_nguy.pdf