Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
154 KB
Nội dung
1 Các kỹ thuật ñặc tả (4) 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 2 Nội dung Khái niệm ñặc tả Tại sao phải ñặc tả ? Phân loại các kỹ thuật ñặc tả Các kỹ thuật ñặc tả 2 3 Khái niệm ñặc tả ðặc tả (specification) ñịnh nghĩa một hệ thống, mô-ñun hay một sản phẩm cần phải làm cái gì không mô tả nó phải làm như thế nào mô tả những tính chất của vấn ñề ñặt ra không mô tả những tính chất của giải pháp cho vấn ñề ñó 4 Khái niệm ñặc tả ðặc tả là hoạt ñộng ñược tiến hành trong các giai ñoạn khác nhau của tiến trình phần mềm: ðặc tả yêu cầu (requirement specification) • sự thống nhất giữa những ngưới sử dụng tương lai và những người thiết kế ðặc tả kiến trúc hệ thống (system architect specification) • sự thống nhất giữa những người thiết kế và những người cài ñặt ðặc tả môñun (module specification) • sự thống nhất giữa những người lập trình cài ñặt mô-ñun và những người lập trình sử dụng mô-ñun 3 5 Tại sao phải ñặc tả ? Hợp ñồng sự thống nhất giữa người sử dụng và người phát triển sản phẩm Hợp thức hóa sản phẩm làm ra phải thực hiện chính xác những gì mong muốn Trao ñổi giữa người sử dụng và người phát triển giữa những người phát triển Tái sử dụng 6 Phân loại các kỹ thuật ñặc tả ðặc tả phi hình thức (informal) ngôn ngữ tự nhiên tự do ngôn ngữ tự nhiên có cấu trúc các kí hiệu ñồ họa ðặc tả nữa hình thức (semi-informal) trộn lẫn cả ngôn ngữ tự nhiên, các kí hiệu toán học và các kí hiệu ñồ họa ðặc tả hình thức (formal) kí hiệu toán học • ngôn ngữ ñặc tả • ngôn ngữ lập trình 4 7 ðặc tả hình thức hay không hình thức ? ðặc tả hình thức chính xác (toán học) hợp thức hóa hình thức (công cụ hóa) công cụ trao ñổi: khó ñọc, khó hiểu khó sử dụng ðặc tả không hình thức dễ hiểu, dễ sử dụng mềm dẻo thiếu sự chính xác nhập nhằng 8 Ứng dụng ñặc tả hình thức ứng dụng trong các giai ñoạn sớm của tiến trình phát triển hạn chế lỗi trong phát triển phần mềm ứng dụng chủ yếu trong phát triển các hệ thống “quan trọng” (critical systems) hệ thống ñiều khiển hệ thống nhúng hệ thống thời gian thực 5 9 Chi phí phát triển khi sử dụng ñặc tả hình thức 10 Các kỹ thuật ñặc tả Trình bày một số kỹ thuật Máy trạng thái hữu hạn Mạng Petri ðiều kiện trước và sau Kiểu trừu tượng ðặc tả Z 6 11 Máy trạng thái hữu hạn (state machine) mô tả các luồng ñiều khiển biểu diễn dạng ñồ thị bao gồm tập hợp các trạng thái S (các nút của ñồ thị) tập hợp các dữ liệu vào I (các nhãn của các cung) tập hợp các chuyển tiếp T : S x I → S (các cung có hướng của ñồ thị) • khi có một dữ liệu vào, một trạng thái chuyển sang một trạng thái khác 12 Máy trạng thái hữu hạn Ví dụ 1 ðặt máy xuống ðặt máy xuống ðợi Quay số Kết nối ðổ chuông ðàm thoại Âm mời quay số Nhấc máy Thời gian ñợi kết thúc Máy bận Thuê bao ñược gọi nhấc máy Thông báo quay số sai Số ñúng Số sai Bấm số Kết nối ñược 7 13 Máy trạng thái hữu hạn Ví dụ 2 Hệ thống cần mô tả bao gồm một nhà sản xuất, một nhà tiêu thụ và một kho hàng chỉ chứa ñược nhiều nhất 2 sản phẩm Nhà sản xuất có 2 trạng thái • P1: không sản xuất • P2: ñang sản xuất Nhà tiêu thụ có 2 trạng thái • C1: có sản phẩm ñể tiêu thụ • C2: không có sản phẩm ñể tiêu thụ Nhà kho có 3 trạng thái • chứa 0 sản phẩm • chứa 1 sản phẩm • chứa 2 sản phẩm 14 Máy trạng thái hữu hạn Giải pháp 1: mô tả tách rời các thành phần P1 P2 Sản xuất Gửi vào kho C1 C2 Tiêu thụ Lấy từ kho 0 1 Lấy từ kho 2 Lấy từ kho Gửi vào kho Gửi vào kho 8 15 Máy trạng thái hữu hạn Giải pháp 1 không mô tả ñược sự hoạt ñộng hệ thống cần mô tả sự hoạt ñộng kết hợp các thành phần của hệ thống 16 Máy trạng thái hữu hạn Giải pháp 2: mô tả kết hợp các thành phần Gửi vào kho Lấy từ kho Gửi vào kho Tiêu thụ Tiêu thụ Sản xuất Sản xuất <0, P2, C2> <0, P2, C1> <0, P1, C2> <0, P1, C1> Tiêu thụ Tiêu thụ Sản xuất Sản xuất <1, P2, C2> <1, P2, C1> <1, P1, C2> <1, P1, C1> Tiêu thụ Tiêu thụ Sản xuất Sản xuất <2, P2, C2> <2, P2, C1> <2, P1, C2> <2, P1, C1> Lấy từ kho Gửi vào kho Lấy từ kho Gửi vào kho Lấy từ kho 9 17 Máy trạng thái hữu hạn Giải pháp 2 mô tả ñược hoạt ñộng của hệ thống số trạng thái lớn biểu diễn hệ thống phức tạp hạn chế khi ñặc tả những hệ thống không ñồng bộ o các thành phần của hệ thống hoạt ñộng song song hoặc cạnh tranh 18 Mạng Petri (Petri nets) thích hợp ñể mô tả các hệ thống không ñồng bộ với những hoạt ñộng ñồng thời mô tả luồng ñiều khiển của hệ thống ñề xuất từ năm 1962 bởi Carl Adam Có hai loại mạng Petri (cổ ñiển) mạng Petri mở rộng 10 19 Mạng Petri Gồm các phần tử một tập hợp hữu hạn các nút () một tập hợp hữu hạn các chuyển tiếp () một tập hợp hữu hạn các cung (→) • các cung nối các nút với các chuyển tiếp hoặc ngược lại mỗi nút có thể chứa một hoặc nhiều thẻ () 20 Mạng Petri Ví dụ t2 p1 p2 p3 p4 t3 t1 [...]... vi t và 2 ngư i ñ c ? Mô t trư ng h p h p thư nh n ch ch a nhi u nh t 3 thư ? 30 15 M ng Petri Ví d 4: tình hu ng ngh n (dead-lock) P1 P2 P3 t1 t2 P4 P5 t3 t4 P7 P6 t5 t6 P8 2 P9 2 t7 t8 31 M ng Petri Ví d 4: gi i pháp ch ng ngh n P1 P2 P3 t1 t2 P4 P5 t3 t4 2 2 P7 P6 t5 P8 t6 2 t7 P9 2 t8 32 16 M ng Petri Ví d 5 H th ng c n mô t bao g m m t nhà s n xu t, m t nhà tiêu th và m t kho hàng ch ch a ñư c nhi... là có th vư t qua thì ch n chuy n ti p nào cũng ñư c 21 M ng Petri Ví d t1 t2 t1 không th vư t qua ñư c t2 có th vư t qua ñư c t3 ho c t3 ñư c vư t qua ho c t4 ñư c vư t qua 22 t4 11 M ng Petri Ví d t2 t2 khi t2 ñư c vư t qua 23 M ng Petri Ví d 24 12 M ng Petri Ví d 1: mô t ho t ñ ng c a ñèn giao thông red yr yellow rg gy 25 green M ng Petri Ví d 1: mô t ho t ñ ng c a 2 ñèn giao thông red2 red1 yr1 yr2... infborder(vect(i, j)) = i infborder(change-ith(v, i, e)) = infborder(v) supborder(vect(i, j)) = j supborder(change-ith(v, i, e)) = supborder(v) with 44 v: Vector; i, j, k: Integer; e: Element 22 Ki u tr u tư ng Bài t p ð c t ki u tr u tư ng cây nh phân ð c t ki u tr u tư ng t p h p 45 23 ... ñ nh nghĩa ñư c bi u di n b i kí t “_” 40 20 Ki u tr u tư ng Ví d 2: ñ c t ki u tr u tư ng Vector sort Boolean operations true false ¬_ _∧_ _∨_ : → Boolean : → Boolean : Boolean → Boolean : Boolean x Boolean → Boolean : Boolean x Boolean → Boolean m t thao tác không có tham s là m t h ng s m t giá tr c a ki u tr u tư ng ñ nh nghĩa ñư c bi u di n b i kí t “_” 41 Ki u tr u tư ng Ví d 2: ñ c t ki u tr... → Integer infborder : Vector → Integer 42 21 Ki u tr u tư ng Ví d 2: ñ c t ki u tr u tư ng Vector các thao tác trên ki u ch ñư c ñ nh nghĩa mà không ch ra ng nghĩa c a nó • t c là ý nghĩa c a thao tác s d ng các tiên ñ ñ ñ nh nghĩa ng nghĩa c a các thao tác • dùng t khóa axioms ñ nh nghĩa các ràng bu c mà m t thao tác ñư c ñ nh nghĩa • dùng t khóa precondition 43 Ki u tr u tư ng Ví d 2: ñ c t ki u tr... safe1 28 green1 green2 14 M ng Petri Ví d 2: mô t chu kỳ s ng c a m t ngư i tr con d y thì cư i thanh niên có v có ch ng 29 ly hôn ch t ch t M ng Petri Ví d 3: vi t thư và ñ c thư begin receive_mail mail_box rest rest type_mail send_mail read_mail ready Mô t trư ng h p 1 ngư i vi t và 2 ngư i ñ c ? Mô t trư ng h p h p thư nh n ch ch a nhi u nh t 3 thư ? 30 15 M ng Petri Ví d 4: tình hu ng ngh n (dead-lock)... 0 s n ph m • ch a 1 s n ph m • ch a 2 s n ph m 33 M ng Petri Ví d 5: mô t tách r i m i thành ph n S n xu t L y t kho P1 C1 P2 Tiêu th G i vào kho G i vào kho G i vào kho 1 0 L y t kho C2 2 L y t kho 34 17 M ng Petri Ví d 5: mô t k t h p các thành ph n S n xu t P1 G i vào kho P2 L y t kho 0 2 L y t kho 1 C1 G i vào kho C2 Tiêu th 35 ði u ki n trư c và sau (pre/post condition) ñư c dùng ñ ñ c t các hàm... t các ràng bu c trên các tham s trư c khi hàm ñư c th c thi post-condition: ñ c t các ràng bu c trên các tham s sau khi hàm ñư c th c thi có th s d ng ngôn ng phi hình th c, hình th c ho c ngôn ng l p trình ñ ñ c t các ñi u ki n 36 18 ði u ki n trư c và sau Ví d : ñ c t hàm tìm ki m function search ( a : danh sách ph n t ki u K, size : s phân t c a dánh sách, e : ph n t ki u K, result : Boolean ) pre... ph n t có giá tr e trong m t danh sách các s nguyên 38 19 Ki u tr u tư ng (abstract types) Mô t d li u và các thao tác trên d li u ñó m t m c tr u tư ng ñ c l p v i cách cài ñ t d li u b i ngôn ng l p trình ð c t m t ki u tr u tư ng g m: tên c a ki u tr u tư ng • dùng t khóa sort khai báo các ki u tr u tư ng ñã t n t i ñư c s d ng • dùng t khóa imports các thao tác trên trên ki u tr u tư ng • dùng t . Petri Ví dụ 4: tình huống nghẽn (dead-lock) 22 P6 P4 P3 P1 P8 t1 t3 t5 t7 P7 P5 P2 P9 t2 t4 t6 t8 32 22 Mạng Petri Ví dụ 4: giải pháp chống nghẽn 22 P6 P4 P3 P1 P8 t1 t3 t5 t7 P7 P5 P2 P9 t2 t4 t6 t8 17 33 Mạng. ngôn ngữ ñặc tả • ngôn ngữ lập trình 4 7 ðặc tả hình thức hay không hình thức ? ðặc tả hình thức chính xác (toán học) hợp thức hóa hình thức (công cụ hóa) công cụ trao ñổi: khó ñọc, khó. dễ sử dụng mềm dẻo thiếu sự chính xác nhập nhằng 8 Ứng dụng ñặc tả hình thức ứng dụng trong các giai ñoạn sớm của tiến trình phát triển hạn chế lỗi trong phát triển phần mềm ứng dụng