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
28File đính kèm:
bai_giang_nhap_mon_cong_nghe_phan_mem_chuong_5_dac_ta_z_nguy.pdf

