Bài giảng Nhập môn công nghệ phần mềm: Chương 5 - Nguyễn Thanh Bình

28 39 0
Bài giảng Nhập môn công nghệ phần mềm: Chương 5 - Nguyễn Thanh Bình

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin 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 cung cấp cho người đọc các kiến thức: Giới thiệu, kiểu dữ liệu, vị từ, sơ đồ trạng thái, sơ đồ thao tác, toán tử sơ đồ, quan hệ, partial function,... Mời các bạn cùng tham khảo.

ðặ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 Jean René Abrial ðại học Oxford ngơn ngữ đặc tả hình thức ñược sử dụng rộng rãi dựa lý thuyết tập hợp ký hiệu toán học sử dụng sơ ñồ (schema) dễ hiểu CuuDuongThanCong.com https://fb.com/tailieudientucntt Giới thiệu Gồm bốn thành phần kiểu liệu (types) • dựa khái niệm tập hợp sơ đồ trạng thái (state schemas) • mơ tả biến ràng buộc biến sơ ñồ thao tác (operation schemas) • mơ tả thao tác (thay ñổi trạng thái) toán tử sơ ñồ (schema operations) • ñịnh nghĩa sơ ñồ từ sơ ñồ ñã có Kiểu liệu kiểu liệu tập hợp 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} CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểu liệu Các phép toán tập hợp Hội: A∪B Giao: A∩B Hiệu: A⁄B Tập con: A⊆B Tập tập con: P A • ví dụ: P {a, b} = {{}, {a}, {b}, {a, b}} Kiểu liệu số kiểu liệu ñã ñượ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 định nghĩa kiểu liệu ANSWER == yes | no [PERSON] • sử dụng cặp ký hiệu [ ] ñể ñịnh nghĩa kiểu CuuDuongThanCong.com https://fb.com/tailieudientucntt Kiểu liệu Khai báo kiểu x:T • x phần tử tập T Ví dụ • • • • x:R n:N 3:N red : {red, blue, green} Vị từ Một vị từ (predicate) sử dụng để định nghĩa tính chất biến/giá trị Ví dụ x>0 π∈R CuuDuongThanCong.com https://fb.com/tailieudientucntt Vị từ Có thể sử dụng tốn tử lơ-gíc để định nghĩa 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 = (¬ (x ∈ S)) ∨ (x ∈ T) Vị từ Các toán tử khác (∀x : T • A) • A với x thuộc T • Ví dụ: (∀x : N • x - x =0) (∃x : T • A) • A ñúng với số giá trị x thuộc T • Ví dụ: (∃x : R • x + x = 4) {x : T | A} • biểu diễn phần tử x T thỏa mãn A • Ví dụ: N = {x : Z | x ≥ 0} 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 biến trạng thái khởi gán biến thao tác biến biến trạng thái có bất biến • điều kiện mà ln đúng, biểu diễn vị từ 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Sơ ñồ thao tác Khởi gán biến Khai báo thao tác biến kí hiệu ∆ biểu diễn biến trạng thái bị thay đổi thao tác kí hiệu ‘ (dấu nháy ñơn) biểu diễn giá trị biến 13 Sơ đồ thao tác Thao tác có tham số vào tên tham số vào kết thúc kí tự “?” tên tham số kết thúc kí tự “!” 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ụ ðặc tả hệ thống ghi nhận nhân viên vào/ra tòa nhà làm việc Kiểu liệu [Staff] kiểu hệ thống Trạng thái hệ thống bao gồm • tập hợp người sử dụng hệ thống user • tập hợp nhân viên vào in • tập hợp nhân viên ñang out bất biến hệ thống 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ ðặc tả thao tác ghi nhận nhân viên vào 17 Ví dụ ðặc tả thao tác ghi nhận nhân viên 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ ðặc tả thao tác kiểm tra nhân viên vào hay Thao tác cho kết phần tử kiểu QueryReply == is_in | is_out ðặc tả thao tác 19 Ví dụ Khởi tạo hệ thống 20 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ (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ụ (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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ (tiếp) Cải tiến thao tác CheckIn Xử lý thêm hai trường hợp lỗi name? ñã ñược ghi nhận name? chưa ñược ñăng ký 29 Ví dụ (tiếp) Cải tiến thao tác CheckIn Xử lý thêm hai trường hợp lỗi 30 15 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ (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ự biểu diễn (x, y) Tích ðề-các hai kiểu T1 T2 T1 x T2 (x, y) : T1 x T2 32 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quan hệ Quan hệ (relation) tập 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) viết • Ví dụ Lưu ý kí hiệu ↔ dành cho kiểu kí hiệu dành cho giá trị 34 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quan hệ Domain Range tập hợp thành phần thứ quan hệ gọi domain (miền) • kí hiệu: dom • ví dụ: dom(directory) = {mary, john, jim, jane} tập hợp thành phần thứ hai quan hệ gọi 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 phần tử miền S ñã bị loại bỏ Nghĩa là: 36 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quan hệ Phép trừ miền (domain subtraction) Ví dụ: Khi đó: 37 Ví dụ ðặc tả danh bạ điện thoại gồm tên người số ñiện thoại Sử dụng kiểu [Person, Phone] ðặc tả trạng thái hệ thống 38 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Khởi tạo hệ thống Thêm số điện thoại 39 Ví dụ cải tiến ? Tìm số điện thoại người Tìm tên theo số điện thoại 40 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Xóa số điện thoại người 41 Ví dụ Xóa mục danh bạ ứng với tên Xóa mục danh bạ ứng với tập tên 42 21 CuuDuongThanCong.com https://fb.com/tailieudientucntt Partial Function quan hệ mà phần tử domain cho giá trị range ký hiệu nghĩa 43 Partial Function Ví dụ Có thể áp dụng tốn tử hàm 44 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt Partial Function Toán tử tải hàm (Function Overriding) thay mục vào mục ký hiệu ví dụ lưu ý 45 Ví dụ ðặc tả hệ thống quản lý ngày sinh sử dụng kiểu [Person, Date] người có ngày sinh khởi tạo hệ thống 46 23 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Thêm người vào hệ thống 47 Ví dụ ðiều xảy name? ∉ dom(bb) Chỉnh sửa ngày sinh Xóa người 48 24 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Tìm ngày sinh người 49 Ví dụ Tìm ngày sinh người trường hợp tìm khơng thấy 50 25 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Tìm ngày sinh người thơng báo tìm thấy 51 Ví dụ Tìm người ngày sinh 52 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt Total Function ñịnh nghĩa ánh xạ từ tất giá trị domain ñến range ký hiệu nghĩa 53 Total Function Ví dụ 54 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Total Function Sử dụng ñể ñịnh nghĩa số Ví dụ 55 Các ký hiệu Tốn tử lơ-gíc Tập hợp Quan hệ Hàm 56 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt ... nghĩa 53 Total Function Ví dụ 54 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Total Function Sử dụng để định nghĩa số Ví dụ 55 Các ký hiệu Tốn tử lơ-gíc Tập hợp Quan hệ Hàm 56 28... người trường hợp tìm khơng thấy 50 25 CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ Tìm ngày sinh người thơng báo tìm thấy 51 Ví dụ Tìm người ngày sinh 52 26 CuuDuongThanCong.com https://fb.com/tailieudientucntt... Cặp phần tử có thứ tự biểu diễn (x, y) Tích ðề-các hai kiểu T1 T2 T1 x T2 (x, y) : T1 x T2 32 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quan hệ Quan hệ (relation) tập cặp phần

Ngày đăng: 11/01/2020, 19:26

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan