giáo trình môn đặc trả hình thức bản đầy đủ cho sinh viên công nghệ phần mềm tham khảo, giáo trình này còn một số thiếu sót mong các bạn thông cảm và đóng góp ủng hộ ý kiến nhằm hoàn thiện hơn ,chúc các bạn hoc tốt
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM -o0o G NĐ T NG N T C Số ỉ: 2TC Hệ đào ạo: Đại học Ngành: Công nghệ phần mềm Khoa: Công nghệ thông tin TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM -o0o G NĐ T NG N T Số ỉ: 2TC Hệ đào ạo: Đại học Ngành: Công nghệ phần mềm Khoa: Công nghệ thông tin Năm ọc: 2015-2016 hoa Ụ LỤ N Đ 1.1 Mụ iêu mô ọ 1.2 Mộ số k iệm bả N 13 Á SỞ Đ 13 LO MỆN ĐỀ 13 2.2 LO Ị Ừ 21 2.3 LÝ UYẾ ẬP ỢP 23 N 26 Đ Á ÀN P ẦN B N 26 3.1 Đ K ỂU DỮ L ỆU 26 3.2 Đ ÀM 28 3.3 Đ ĐỆ QUY 30 3.4 Á QUY Ắ 3.5 Á S ĐỒ 3.6 Á ĐỐ 3.7 Á ÍN OÁN 32 ẠN ỢN Á 33 ÌN Ọ 35 ÀN BUỘ 38 N 43 Đ À ÍN ĐÚN ĐẮN 4.1 Á P ÀM 43 N P ÁP K ỂM 4.2 CHỨN M N Ớ ÍN ĐÚN ĐẮN 43 Á LUẬ SUY D ỄN 46 N 52 N ÔN N Ữ Đ Z 52 5.1 p ầ gô gữ 52 5.2 iả đồ (s emas) 58 5.3 p ép oá rê giả đồ 67 ƯƠNG 1.1 TR Đ T ụ tiêu ọ Cung cấp kiến thức cốt lõi: Về p ươ g p áp ì ức dựa rê sở toán học chặt chẽ Một số kỹ thuậ đặc tả ngôn ngữ đặc tả thông dụng iúp gười học: Có khả ă g diễn tả yêu cầu toán từ trình phân tích hệ thống Mô tả cách xử lý yêu cầu cách chặt chẽ đú g đắn Hệ thống hóa lại kiểu liệu vật lý kiểu liệu trừu ượng Giới thiệu ngôn ngữ đặc tả thông dụ g: DM, Z, … 1.2 t số k i iệ bả Các phương pháp hình thức (formal methods) Trong tin học, thuật ngữ p ươ g p áp ì đặc tả hình thứ , …) ức (ngôn ngữ hình thức, ườ g đượ dù g để kỹ thuật dựa rê sở toán học dùng trình mô tả chi tiế (đặc tả), phát triển kiểm chứng hệ thống phần mềm ũ g Cách tiếp cậ ày p ần cứng ườ g áp dụng cho hệ thống có kết cấu chặt chẽ, đòi ỏi độ tin cậy tính an toàn cao, đảm bảo trình xây dựng phát triển hệ thống xảy lỗi p ươ g p áp ì ứ đặc biệt hiệu ro g giai đoạ đầu xây dựng hệ thố g ( ường giai đoạ xá định yêu cầu đặc tả hệ thống), nhiên chúng dùng toàn quy trình phát triển hệ thống p ươ g p áp ì ức xếp loại theo mứ độ khác nhau: Mức 0: Đặc tả hình thứ sử dụ g để đặc tả hệ thố g rước phát triển Trong nhiều rường hợp việc sử dụ g p ươ g p áp ì ức giai đoạn tỏ đặc biệt hiệu quả, mặt chi phí Mức 1: Phát triển kiểm chứng hình thức áp dụ g để tạo mộ ươ g rì ( ay hệ thống) cách tự động, dựa rê tả hình thứ ó rướ Quá rì đặc ày đặc biệt thích hợp hệ thố g đòi ỏi độ tin cậy tính an toàn cao Mức 2: Chứng minh tự động Đặc tả (specification) Mô tả cấu trúc hoạ động vật hiệ mô tả mứ độ k , ượ g, rì g ũ g ó iệc ể mô tả mứ độ chi tiết Có nhiều ngôn ngữ o p ép đặc tả: - Ngôn ngữ tự nhiên: tiếng Việt, tiếng Anh, tiế g P áp, … - Ngôn ngữ loài vậ : - Ngôn ngữ lập rì - Ngôn ngữ hình thức: Là ngôn ngữ với từ vựng, cú pháp, ngữ g ĩa đượ đị g ĩa ó, im, mèo, … : Pas al, , ++, Java, S arp, isual Basi , … ặt chẽ dựa rê sở toán học Đặc tả hình thức (formal specification) Đặc tả hình thứ đặc tả với tính chất: - Chính xác quán - Ngắn gọ đầy đủ - Có thể xử lý máy vi tính Đặc tả hình thức có ứng dụ g - sau: Sử dụ g ro g giai đoạn phân tích, thiết kế, nhằm mụ đ ạo phác hoạ chi tiết, cụ thể chặt chẽ hệ thống xây dựng - Trong trình xây dựng hệ thố g, đặc tả công cụ định ướ g để đảm bảo hệ thố g xây dựng cách phù hợp đầy đủ - Sau hệ thố g xây dự g ì đặc tả g vai rò ướ đo để kiểm chứng, khẳ g định hệ thố g tạo ó đú g đắn tin cậy hay không Ví dụ mô tả trình xây dựng phần mề t eo ì t ước Cách 1: Dùng ngôn ngữ tự nhiên Quy trình xây dựng phần mềm tiến hành qua bước: Xá định yêu cầu Phân tích Thiết kế Lập trình Kiểm chứng Bảo trì Sau tiế thể chuyể xo g gược lại bước chuyển giao kết o bước có o bướ rướ ếu phát lỗi sau trình lại tiếp tục Cách 2: Dùng sơ đồ Xá định Phân tích Thiết kế Lập trình Kiểm chứng Bảo trì iai đoạn Chuyển kết Đánh giá: Qua âm đến kết thực chuyển giao giai đoạn: - Cách 1: + Độ xác không cao, gây hiểu lầm + Dài dòng mô tả đầy đủ + Thích hợp cho việc mô tả chi tiết - Cách 2: + Độ xá ă g lê + Trình bày ngắn gọn, trực quan + Phù hợp cho việc mô tả cách tổng quát 1.3 Lịch sử r đời phát triển c đặc tả hình thức Các kỹ thuật đặc tả hình thứ sử dụng ngành Tin học suốt 30 ăm qua ( nhữ g ăm đầu thập niên 70) Có nhiều mô ì ngôn ngữ đặc tả đượ đời đa số ú g dựa rê ũ g sở toán học Các ngôn ngữ đặc tả thiết kế đời để sử dụng cho nhiều mụ đ k Các ngôn ngữ ày phân loại theo tiêu chí chính: Mứ đ trừu tượng hoá: Việ đặc tả hệ thống có nhiều mứ độ khác nhau.có thể ngôn ngữ đặc tả dù g để mô tả hệ thống ĩ ỏ, g ũ g ó ũ g ể hệ thống cầ đặc tả to lớn phức tạp quy mô oạ động Mứ độ trừu ượng hoá quyế định ngôn ngữ đặc tả dù g để mô tả hệ thống Nếu bao quát nhiều thứ cồng kềnh, g ếu giản nhiều khả ă g ứng dụng Phạm vi ứng dụng: Mỗi ngôn ngữ đặc tả phục vụ cho hay số lĩ ường thiết kế nhằm mụ đ vực cụ thể Ví dụ: dụng thiết kế mạch số; phép toán mệ chứng minh thuậ oá DM thiết kế để sử đề sử dụng tro g đặc tả oá ; UN Y đượ dù g ro g đặc tả kiểm chứng hệ thố g so g so g;… Mụ đí sử dụng: Một ngôn ngữ đặc tả cho mộ ro g đối ượ g o ườ g thiết kế nhằm phục vụ gười máy Điều k ó k ă p ải du g oà đượ điều này, ngôn ngữ gầ gũi với ngôn ngữ tự nhiên o gười máy tính khó phân tích, xử lý diễn giải; gược lại, gần với ngôn ngữ máy k ă ì o gười gặp khó ro g trình sử dụng Lịch sử phát triển: Các ngôn ngữ đặc tả không hình thức: Thế hệ thứ nhất: Booch, Rumbaugh Thế hệ thứ hai: UML Thế hệ thứ ba: OOCL – Object-oriented Change and Learning (dùng khoa học nhận dạng trí tuệ nhân tạo – biểu diễn tri thức) Các ngôn ngữ đặc tả hình thức: OCL, Predicate Calculus, CDM, UNITY, VDM, Z Object-Z (Z++), VDM++ 1.4 Đặc tả hình thức quy trình phát triển phần mềm 1.4.1 Quy trình chung Vấn đề xảy qui trình phát triển phần mềm không sử dụng đặc tả hình thức ới việ xá đị yêu ầu k ô g rõ rà g => iểu yêu ầu - eo ữ g ướ g k au k g gười u g ấp, p riể p ầ mềm - K ók ă ro g việ đá giá p ù ợp iế kế ươ g rì ự i với yêu ầu xá đị Mô hình phần mềm thiết kế không theo chuẩn => - Việc hiểu mô hình phần mềm > - ươ g rì eo ướng khác lập trình viên - sai Các thuộc tính module thự i ro g ươ g rì k ô g mô tả rõ ràng Việc kiểm thử phần mềm phát lỗi gk ô g ể vị trí lỗi Đá giá đưa sản phẩm cho khách hàng muộn so với quy định 1.4.2 Qui trình phát triển phần mềm sử dụng đặc tả hình thức 5.2 Giả đồ (s e 5.2.1 Giới t iệu s) u g Trong ngôn ngữ Z có thành phần ngôn ngữ : ngôn ngữ toán ngôn ngữ giả đồ Ngôn ngữ toán họ sử dụng nhiều phần khác giai đoạn thiết kế : đặc tả đối ượ g, đặc tả ràng buộc mối quan hệ chúng, v.v ro g k i đó, gô ô g i k gói phầ mụ đ gữ giả đồ đượ dù g để tạo nên bảng mô tả, kết hợp, g au, đồng thời đặ ê o ú g để sử dụng lại cho k Việ đị g ĩa đặ ê , ũ g ượ g ết sức cần thiế k ả ă g sử dụng thành phầ , o rì đặc tả Nó giúp đối o đặc tả ngắn gọn, xác, tránh trùng lắp rõ ràng, dễ hiểu 5.2.2 Đị g ĩ Giả đồ (schema) cú pháp Z o p ép gười đặc tả đị g ĩa k niệm, yếu tố gồm nhiều thành phần thông tin khác nhau, có ràng buộc với nhau, giố g k iệm cấu trúc ngôn ngữ lập rì ; đồng thời đặt tên cho cấu trúc Một giả đồ bao gồm phần: phần khai báo biến phần vị từ diễn tả ràng buộc biến Ta biểu diễn giả đồ theo dạng sau : Theo chiều ngang : [khai báo | ràng bu c] Theo chiều dọc : 58 khai báo ràng bu c Ví dụ : hay : 5.2.3 To tử đặt tê Nhằm mụ đ đặt tên cho giả đồ, tiện cho việc sử dụng lại sau này, ngôn ngữ Z cung cấp toán tử riê g, ký hiệu : , để thuận lợi cho việc soạn thảo, ký hiệu ày viết lại thành ^= Tên ^= [khai báo | ràng bu c] Tên khai báo ràng bu c Ví dụ : hay : 59 5.2.4 Giả đồ tươ g đươ g Hai giả đồ gọi ươ g đươ g au ếu chúng có biến có ràng buộc giống biến Ví dụ : giả đồ sau ươ g đươ g : 5.2.5 t số g i ú Để giả đồ giản dễ đọ , a ó ể thực ngắt khai báo thành nhiều dòng khác nhau, khai báo dòng giả lược dấu chấm phẩy ( ; ) gă K i p ép ối dòng phép nối liền - (conjunction) Ví dụ : giả đồ ví dụ phần biểu diễn lại sau : 60 Nếu giả đồ giản khai báo biến mà không nêu ràng buộc cụ thể biến ta bỏ phần vị từ bê dụ : K i đó, giản đồ ươ g đươ g với giả đồ sau : 5.2.6 Giả đồ đượ sử ụ g kiểu ữ liệu Trong ngôn ngữ Z, kiểu liệu tập o rước (N, Z, Q, R, ), tập Power set, kiểu tự tích Decartes nhiều tập hợp Ngoài ra, ta sử dụng giả đồ kiểu liệu, sau k i đặt tên cho giả đồ phép oá đặt tên ^= Ví dụ ta có giả đồ : N khai báo : s : SchemaOne tức s biến, phần tử thuộc kiểu SchemaOne, s bao gồm thành phần: a số nguyên c tập gồm số nguyên 61 Ví dụ : a đị g ĩa kiểu liệu Date, bao gồm ô g i ( g, gày) sau : rước hế , a ó đị g ĩa kiểu liệu tự để mô tả tháng, bao gồm 12 giá trị riêng lẻ sau : Sau a đị g ĩa kiểu Date : 5.2.7 Giả đồ đượ sử ụ g tro g Một giả đồ, sau k i đượ đị k ib o g ĩa đặt tên, sử dụng khai báo Kết biến có giả đồ có mặ ro g k báo đó, với ràng buộ ươ g ứ g quy định giả đồ Xét ví dụ sau, với giả đồ SchemaTwo, gần giống với S emaO e g ó thêm số ràng buộc, tập c phải khác rỗ g, đồng thời a phải phần tử c K i ập hợp : 62 bao gồm tất tập c Z c có chứa phần tử số Ta biểu diễn tập hợp ày hoặ eo ũ g ó ô g ường, không sử dụng giả đồ sau : ể biểu diễn theo cách khác, sử dụ g đối ượng thuộc kiểu SchemaTwo : Ví dụ : Trở lại giả đồ mô tả kiểu Date : Nếu ta định g ĩa ập ay ói á g ó3 gày sau : k , ập : 5.2.8 Giả đồ đượ sử ụ g tro g biểu t ứ lượ g từ N k ẳ g định, giả đồ sử dụ g kiểu liệu nên xuất biểu thứ lượng từ Ví dụ : hay 63 Vị từ phát biểu eo 5.2.9 Giả đồ đượ sử ụ g Xét giả đồ S ema ree k sau : ị từ sau : Ta phát biểu : để diễn tả số nguyên a tập số c thỏa ràng buộc SchemaThree ì ũ g ỏa ràng buộc SchemaTwo Phát biểu rê ươ g đươ g với phát biểu sau : N vậy, ta nhận thấy toàn phần khai báo giả đồ đượ lược bỏ, có phần ràng buộ giữ lại 64 5.2.10.Dạ g uẩ K i đị g ĩa giả đồ giả đồ, phần khai báo giả đồ bả số ràng buộc nhấ định Chính vậy, sử dụng giả đồ â ó ứa sẵn vị từ ràng buộc ày ũ g dễ bị "bỏ quên", phần khai báo giả đồ giả lược (xem phần trên) Vì vậy, để tránh gây nhầm lẫn, ta nên chuyển giả đồ dạng cho tất ràng buộ nằm phần ràng buộ bê Một giả đồ theo dạng gọi giả đồ chuẩn, thao tác chuyển toàn ràng buộc xuống phầ giả đồ gọi chuẩn hóa giả đồ Ví dụ : Xét giả đồ sau : Thoạt nhìn, ta g ĩ giả đồ ày ươ g đươ g với giả đồ SchemaTwo, nhiên, thân kiểu số tự hóa lại iê N ó rà g buộc Do vậy, ta chuẩn sau : Ví dụ : Xét giả đồ Date : 65 Ta chuẩn hóa giả đồ lại sau : 5.2.11.Đặt lại tê ầ tro g giả đồ t ro g rì đặc tả, đôi k i ần phải đặt lại tên thành phần giản đồ Bằng cách ta tạo nên giả đồ có kết cấu ràng buộc với giả đồ ũ g ó p ần với ê ý g ĩa k ú p áp để đổi tên giả đồ : Nếu Schema giả đồ, ta ký hiệu : giả đồ tạo nên bằ g đổi tên thành phần tên old Schema thành new Ví dụ : giả đồ SchemaTwo, thay a q c s, ta có : k i đó, giả đồ kết ươ g đươ g với giả đồ : 66 ươ g ự làm vậy, muố đị g ĩa kiểu liệu StartDate từ kiểu liệu Date, ta sau : K i đó, giả đồ ươ g đươ g : Nếu a đị g ĩa êm giả đồ FinishDate : K i đó, S ar Da e i is Da e đượ xem kiểu liệu khác nhau, ú g có thành phần có ràng buộ ươ g ự 5.3 é to 5.3.1 P é ối liề ( o ju Cho giả đồ S lên biế au trê giả đồ tio ) thể hiệ sau, với P Q vị từ diễn tả ràng buộc ươ g ứng: 67 Ta ký hiệu : ST để biểu diễn phép nối liền giả đồ S T Kết giả đồ tạo nên cách gộp biến S T lại, đồng thời thực phép nối liền vị từ ràng buộc P Q Lưu : Nếu giả đồ S T có thành phần giống thành phần phải có kiểu giống giả đồ Nếu không giả đồ S T k ô g xá định 5.3.2 P é đổi tê (De or tio ) Giả sử ta có giả đồ State mô tả trạng thái hệ thống, có thành phần a, b với ràng buộc P Mỗi đối ượng s : State biểu diễn trạng thái hợp lệ hệ thống Để biểu diễn thao tác lên trạ g đó, a ần sử dụng trạng thái : trạng thái rước thực thao tác trạng thái sau thực hiệ trạ g ao Để phân biệt ày, a dù g p ép đặ ê để tạo nên giả đồ mới, cách thêm dấu nháy (’) vào sau ê giả đồ ũ g ê ất biế khai báo giả đồ : 68 Để đặc tả thao tác, ta đưa ả trạ g S a e S a e’ vào p ần khai báo giả đồ Một giả đồ thao tác có dạng : Ngôn ngữ Z quy định cách thức biểu diễn giả đồ S a e S a e’, diễ ức biểu sau : 5.3.3 P é ối rời (Disju Cho giả đồ S lên biế tio ) thể hiệ sau, với P Q vị từ diễn tả ràng buộc ươ g ứng: Ta ký hiệu : ST 69 để biểu diễn phép nối rời giả đồ S T Kết giả đồ tạo nên cách gộp biến S T lại, đồng thời thực phép nối rời vị từ ràng buộc P Q ươ g ự rê p ép ối liền, tất thành phần (các biến) xuất giản đồ thành phần phải có kiểu liệu Tất ràng buộc có xuất phần k báo phải chuyển sang phần vị từ ràng buộc giả đồ thành phần rước thực phép nối rời 5.3.4 P é đị (Neg tio ) Cho giả đồ S thể hiệ sau, với P vị từ diễn tả ràng buộc lên biến ươ g ứng: k i giả đồ phủ định S có dạng : Lưu ý : phép phủ định áp dụng cho giả đồ chuẩn hóa (tức tất ràng buộ phải chuyển sang phần vị từ ràng buộ bê dưới) 70 Ví dụ : Giả đồ Date biểu diễn ngày tháng hợp lệ, Date biểu diễn tất cặp (month, day) ngày tháng hợp lệ 5.3.5 P é lượ g từ ó Ta lượng từ hóa số thành phần giả đồ để tạo giả đồ Nếu Q lượng từ dec phầ k báo, k i giả đồ đượ lượng từ hóa có dạng : Giả đồ ày tạo thành cách bỏ p ần có phần khai báo dec lượng từ hóa chúng bằ g lượng từ Q phần vị từ ràng buộ bê Ví dụ : Cho giả đồ sau : K i đó, b : B S giả đồ : b : B S giả đồ : 71 72 [...]... đề E nếu E F luôn có chân trị đú g K i đó a viết là E F Ta có thể nói cách khác: E có hệ quả logic là F 2.1.6 gu ê tắ t t ế 1 Quy tắc 1: trong dạng mệ mệ đề ươ g đươ g logi đề E, nếu ta thay thế biểu thức con F bởi một dạng ì dạng mệ đề u được vẫ ò ươ g đươ g logi với E 17 2 Quy tắc 2: Giả sử dạng mệ đề E(p, q, r,…) là một hằ g đú g Nếu ta thay thế nhữ g ơi p xuất hiện trong E bởi một dạng mện đề... một mệ ư g uỳ ý a A, b B,…thì ta ay x, y,… bằng những phần tử cố đị đề P(a, b,…), ức là chân trị của ó oà oà xá đị K i đó x, y,… gọi là các biến tự do của vị từ Nói một cách khác, một vị từ là một hàm số dạng: f: X B ro g đó: X Ví dụ: P( ) B … và B = {0, 1} ‘‘ là một số nguyên tố’’ là một vị từ theo một biến tự do nN f: N B Với n = 2, 5, 7, 11 ta có các mệ ta có các mệ đề đú g P(2), P(5),... ỢP ỉ nhắc lại một số khái niệm ơ bản nhấ , ũ g ư á ký iệu dùng trong lý thuyết tập hợp mà thôi : a) Nếu a là một phần tử thuộc tập hợp A, ta viết a , gược lại ta viết a A b) Tập hợp A thoả một tính chấ ào đó, ất ở đây được biểu diễ dưới dạng một vị từ p(x), ta viết : A = {x U /p(x)}, ro g đó U được gọi là tập vũ trụ Ví dụ : A = {x N / x là số nguyên tố} A = {x Z / x2