1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Đặc tả hình thức: Chương 3 - Nguyễn Thị Minh Tuyền

69 3 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 69
Dung lượng 1,3 MB

Nội dung

Bài giảng Đặc tả hình thức: Chương 3 do Nguyễn Thị Minh Tuyền biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm Nguyên tử và quan hệ, signature và Field, các phép toán,...Mời các bạn cung tham khảo!

LOGO Đặc tả hình thức Giới thiệu Alloy Nguyễn Thị Minh Tuyền Nguyễn Thị Minh Tuyền Nội dung v Nguyên tử quan hệ v Signature Field v Các phép tốn Nguyễn Thị Minh Tuyền Đặc tả hình thức Tài liệu tham khảo v Sách tham khảo: §  Software Abstractions: Logic, Language, and Analysis, Revised edition, Daniel Jackson, 2012 v Tải phần mềm + tài liệu + ví dụ mẫu: §  http://alloy.mit.edu/alloy/ Nguyễn Thị Minh Tuyền Đặc tả hình thức v Alloy phương pháp phân tích mơ hình hóa theo hướng trừu tượng hóa phần mềm §  B, OCL (Object Constraint Language), VDM (Vienna Development Method), Z v Điểm chung: §  Cung cấp khái niệm trừu tượng hóa phần mềm cách ngắn gọn trực tiếp so với ngôn ngữ lập trình §  Dựa vào cấu trúc tốn học cổ điển: tập hợp quan hệ §  Mơ tả hành vi (behavior) theo kiểu khai báo §  Sử dụng ràng buộc Nguyễn Thị Minh Tuyền Đặc tả hình thức Một số điểm khác v B §  Khái niệm giống ngơn ngữ lập trình trừu tượng ngơn ngữ đặc tả v OCL §  Rất khác mặt cú pháp v B, VDM Z thiết kế thiên chứng minh (proof) phân tích đơn giản v B, VDM Z diễn đạt tốt Alloy §  Cấu trúc Alloy hỗ trợ logic bậc (first order logic) §  Các ngơn ngữ khác hỗ trợ cấu trúc bậc cao quantification v Alloy hỗ trợ số nguyên chuỗi Nguyễn Thị Minh Tuyền Đặc tả hình thức Alloy UML v Khái niệm đồ họa, ràng buộc OCL tương tự UML Alloy gọn nhẹ xác v UML có nhiều khái niệm mơ hình hóa mà Alloy bỏ qua (biểu đồ use case, biểu đồ trạng thái, …) v Biểu đồ quan hệ Alloy dựa vào UML Nguyễn Thị Minh Tuyền Đặc tả hình thức Alloy – Đặc điểm v Nhỏ gọn, dễ sử dụng, có khả biểu diễn thuộc tính cách ngắn gọn tự nhiên v Ngữ nghĩa toán học đơn giản đồng v Phân tích ngữ nghĩa tự động cách hoàn chỉnh hiệu Nguyễn Thị Minh Tuyền Đặc tả hình thức Ví dụ v Ta muốn biểu diễn §  Mơ hình hóa mối quan hệ bố mẹ/con §  Mơ hình hóa quan hệ vợ chồng §  Mơ hình hóa quan hệ anh chị em §  Tăng cường số ràng buộc sinh học thông qua vị từ thứ tự bậc (ví dụ có mẹ) §  Tăng cường số ràng buộc xã hội thơng qua vị từ bậc (ví dụ vợ khơng phải anh em) §  Xác nhận biện luận tồn số quan hệ (ví dụ khơng có vợ mà người bố mẹ với mình) Nguyễn Thị Minh Tuyền Đặc tả hình thức Ví dụ v Một danh sách email khách hàng Từ tên khách hàng ta lấy địa email FriendBook Ted -> ted@gmail.com Ryan -> ryan@hotmail.com WorkBook Pilard -> pilard@hcmus.edu.vn Ryan -> ryan@hcmus.edu.vn Nguyễn Thị Minh Tuyền Đặc tả hình thức Nội dung v Nguyên tử quan hệ v Signature Field v Các phép toán Nguyễn Thị Minh Tuyền 10 Đặc tả hình thức Chuyển vị v ~ p v lấy ảnh đối xứng quan hệ p, nghĩa đảo ngược thứ tự phần tử tuple v Ví dụ: §  example = {(a0,a1,a2,a3), (b0,b1,b2,b3)} §  ~example = {(a3,a2,a1,a0), (b3,b2,b1,b0)} v Biểu diễn mối quan hệ cha mẹ sử dụng ~ nào? §  ~children Nguyễn Thị Minh Tuyền 55 Đặc tả hình thức Dot join hai tuple v p.q : Thực dot join hai tuple lại với kết gì? (s1, ,sm) (t1, ,tm) v Nếu sm ≠ t1 kết rỗng v Nếu sm = t1 kết là: (s1, ,sm-1,t2, ,tm) v Ví dụ: §  {(a,b)}.{(a,c)} = {} §  {(a,b)}.{(b,c)} = {(a,c)} v Vậy {(a)} {(a)} ? Không định nghĩa v p.s định nghĩa p s quan hệ đơn Nguyễn Thị Minh Tuyền 56 Đặc tả hình thức Ví dụ v {(N0, A0)} {(A0, D0)} = {(N0, D0)} v {(N0, D0)} {(N0, D0)} = {} v {(N0, D0)} {(D1)} = {} v {(N0)} {(N0, D0)} = {(D0)} v {(N0, D0)} {(D0)} = {(N0)} v {(B0)} {(B0, N0, D0)} = {(N0, D0)} Nguyễn Thị Minh Tuyền 57 Đặc tả hình thức Bài tập v Kết phép tốn sau gì? {(a,b)}.{(c)} {(a)}.{(a,b)} {(a,b)}.{(b)} {(a)}.{(a,b,c)} {(a,b,c)}.{(c)} {(a,b)}.{(a,b,c)} {(a,b,c,d)}.{(d,e,f)} {(a)}.{(b)} Nguyễn Thị Minh Tuyền 58 Đặc tả hình thức Dot join hai quan hệ v p.q v p q hai quan hệ mà quan hệ khơng đồng thời hai quan hệ đơn v p.q quan hệ có cách lấy kết hợp tuple từ p tuple từ q nối lại với Nguyễn Thị Minh Tuyền 59 Đặc tả hình thức Ví dụ v to: ánh xạ message thành tên mà định gởi đến v address: ánh xạ tên thành địa §  to = {(M0,N0),(M0,N2), (M1,N2),(M2,N3)} §  address = {(N0,D0), (N0,D1),(N1,D1),(N2,D3)} M0 N0 D0 M1 N1 D1 M2 N2 D3 v to.address ánh xạ message thành địa mà định gởi §  to.address = {(M0,D0), (M0,D1),(M0,D3),(M1,D3)} Nguyễn Thị Minh Tuyền 60 N3 to address Đặc tả hình thức Ví dụ v Sử dụng phép join để tìm Matt cháu Matt §  matt.children // Matt’s children §  matt.children.children // Matt’s grandchildren Nguyễn Thị Minh Tuyền 61 Đặc tả hình thức Box Join v p[q] v Về mặt ngữ nghĩa giống dot join, lấy tham số thứ tự khác §  p[q] ≡ q.p v Ví dụ: cháu Matt? §  children[matt] // Matt’s children §  children.children[matt] // Matt’s grandchildren §  children[children[matt]] // Matt’s grandchildren Nguyễn Thị Minh Tuyền 62 Đặc tả hình thức Transitive Closure v Một quan hệ nhị phân transitive tuple a->b b->c chứa a->c, hay nói cách khác r.r in r v Transitive closure ^r quan hệ nhị phân r: S x S có sau điều hướng thơng qua r không xa ^r = r + r.r + r.r.r+ Nguyễn Thị Minh Tuyền 63 Đặc tả hình thức Ví dụ v  Một quan hệ address biểu diễn danh sách địa với nhiều mức (ánh xạ alias group đến group, alias địa chỉ) transitive closure là: G0 A0 D0 address ^address - address G1 A1 A2 D2 D1 address = {(G0,A0),(G0,G1),(A0,D0),(G1,D0),(G1,A1),(A1,D1),(A2,D2)} ^address = {(G0,A0),(G0,G1),(A0,D0),(G1,D0),(G1,A1),(A1,D1),(A2,D2), (G0,D0),(G0,A1),(G1,D1),(G0,D1)} Nguyễn Thị Minh Tuyền 64 Đặc tả hình thức Ví dụ v Nếu ta muốn tìm tổ tiên hay cháu Matt làm nào? §  matt.^children // Matt’s descendants §  matt.^(~children) // Matt’s ancestors v Để biểu diễn “Khơng có người tổ tiên họ” làm nào? §  no p: Person | p in p.^(~children) Nguyễn Thị Minh Tuyền 65 Đặc tả hình thức Reflexive-transitive closure v Một quan hệ reflexive chưa tuple a-> cho nguyên tử a Hay nói cách khác iden in r v Một reflexive-transitive closure *r định nghĩa *r = ^r + iden v Ví dụ: (S0,S1) (S1,S2) (S2,S3) (S4,S7) r Nguyễn Thị Minh Tuyền 66 (S0,S1) (S1,S2) (S2,S3) (S4,S7) (S0,S2) (S0,S3) (S1,S3) (S0,S0) (S1,S1) (S2,S2) (S3,S3) (S4,S4) (S7,S7) ^r *r Đặc tả hình thức Giới hạn miền ảnh v Phép toán giới hạn sử dụng để lọc quan hệ từ miền hay ảnh cho trước v Nếu s tập hợp r quan hệ v s s chứa tuple r kết thúc với phần tử s v Ví dụ: §  §  §  §  §  Man = {(M0),(M1),(M2),(M3)} Woman = {(W0),(W1)} children = {(M0,M1),(M0,M2),(M3,W0),(W1,M1)} Man Man = {(M0,M1),(M0,M2),(W1,M1)}// parent-son Nguyễn Thị Minh Tuyền 67 Đặc tả hình thức Override v p ++ q v p q hai quan hệ với bậc v Kết giống hợp p q ngoại trừ tuple q thay tuple p v Bất tuple p khớp với tuple q bắt đầu với phần tử loại bỏ §  p ++ q = p – (domain(q) one V} v với phần tử s S, field... pilard@hcmus.edu.vn Ryan -> ryan@hcmus.edu.vn Nguyễn Thị Minh Tuyền Đặc tả hình thức Nội dung v Nguyên tử quan hệ v Signature Field v Các phép tốn Nguyễn Thị Minh Tuyền 10 Đặc tả hình thức Nguyên

Ngày đăng: 08/05/2021, 13:16