Bài giảng Nhập môn công nghệ phần mềm: Chương 4 - Nguyễn Thanh Bình
lượt xem 2
download
Bài giảng "Nhập môn công nghệ phần mềm - Chương 4: Các kỹ thuật đặc tả" cung cấp cho người học các kiến thức: 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ả. Mời các bạn cùng tham khảo.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Nhập môn công nghệ phần mềm: Chương 4 - Nguyễn Thanh Bình
- 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 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 1 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 ñề ñó 3 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 4 2 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 5 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 6 3 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ðặ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 7 Ứ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 8 4 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Chi phí phát triển khi sử dụng ñặc tả hình thức 9 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 10 5 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 11 Máy trạng thái hữu hạn ðặt máy xuống ðợi ðặt máy xuống Ví dụ 1 Nhấc máy Âm mời quay số Thời gian ñợi kết Bấm số thúc Số sai Thông báo Quay số quay số sai Số ñúng Kết nối Máy bận Kết nối ñược ðổ chuông Thuê bao ñược gọi nhấc máy 12 ðàm thoại 6 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 13 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 Sản xuất Lấy từ kho P1 P2 C1 C2 Gửi vào kho Tiêu thụ Gửi vào kho Gửi vào kho 0 1 2 Lấy từ kho Lấy từ kho 14 7 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 15 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 Gửi vào kho Sản xuất Sản xuất Sản xuất Lấy từ kho Lấy từ kho Tiêu thụ Tiêu thụ Tiêu thụ Lấy từ kho Lấy từ kho Tiêu thụ Tiêu thụ Tiêu thụ Sản xuất Sản xuất Sản xuất Gửi vào kho Gửi vào kho 16 8 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 17 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 18 9 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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ẻ () 19 Mạng Petri Ví dụ t2 t1 p2 p1 t3 p4 p3 20 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Mạng Petri Mạng Petri ñược ñịnh nghĩa bởi sự ñánh dấu các nút của nó Việc ñánh dấu các nút ñược tiến hành theo nguyên tắc sau: mỗi chuyển tiếp có các nút vào và các nút ra nếu tất cả các nút vào của một chuyển tiếp có ít nhất một thẻ, thì chuyển tiếp này là có thể vượt qua ñược, nếu chuyển tiếp này ñược thực hiện thì tất cả các nút vào của chuyển tiếp sẽ bị lấy ñi một thẻ, và một thẻ sẽ ñược thêm vào tất cả các nút ra của chuyển tiếp nếu nhiều chuyển tiếp 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Mạng Petri Ví dụ t2 t2 khi t2 ñược vượt qua 23 Mạng Petri Ví dụ 24 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Mạng Petri Ví dụ 1: mô tả hoạt ñộng của ñèn giao thông red yr rg yellow gy 25 green Mạng Petri Ví dụ 1: mô tả hoạt ñộng của 2 ñèn giao thông red1 red2 yr1 yr2 rg1 yellow1 yellow2 rg2 gy1 gy2 26 green1 green2 13 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- Mạng Petri Ví dụ 1: mô tả hoạt ñộng an toàn của 2 ñèn giao thông red1 red2 safe yr1 yr2 rg1 yellow1 yellow2 rg2 gy1 gy2 27 green1 green2 Mạng Petri Ví dụ 1: mô tả hoạt ñộng an toàn và hợp lý của 2 ñèn giao thông red1 red2 safe2 yr1 yr2 rg1 yellow1 rg2 yellow2 gy1 gy2 safe1 28 green1 green2 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 ly hôn 29 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 read_mail send_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 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 P9 2 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 t6 P8 P9 2 2 t7 t8 32 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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ề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 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 P2 C1 C2 Gửi vào kho Tiêu thụ Gửi vào kho Gửi vào kho 0 1 2 Lấy từ kho Lấy từ kho 34 17 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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 Gửi vào kho Lấy từ kho 2 0 1 Lấy từ kho C1 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 hoặc mô-ñun ñặc tả các tính chất của dữ liệu trước và sau khi thực hiện hàm pre-condiition: ñặc 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- ð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 ∀i, 1 ≤ i ≤ n, a[i] ≤ a[i+1] post result = (∃i, 1 ≤ i ≤ n, a[i] = e) 37 ðiều kiện trước và sau Bài tập: ñặc tả các hàm 1. Sắp xếp một danh sách các số nguyên 2. ðảo ngược các phần tử của một danh sách 3. ðếm số phần tử có giá trị e trong một danh sách các số nguyên 38 19 CuuDuongThanCong.com https://fb.com/tailieudientucntt
- 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ừ khóa operations 39 Kiểu trừu tượng Ví dụ 1: ñặc tả kiểu trừu tượng Boolean sort Boolean operations true : → Boolean false : → 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ự “_” 40 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Nhập môn Công nghệ thông tin: Lab 1 - Th.S Dương Thành Phết
13 p | 225 | 44
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 3 - Th.S Dương Thành Phết
59 p | 170 | 21
-
Bài giảng Nhập môn Công nghệ thông tin: Hướng dẫn bài tập 1 - Th.S Dương Thành Phết
17 p | 156 | 20
-
Bài giảng Nhập môn Công nghệ phần mềm: Chương 3 - Nguyễn Thị Minh Tuyền
77 p | 146 | 18
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm (2011)
49 p | 102 | 14
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 9 - Ngô Chánh Đức
32 p | 122 | 13
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 2 - Ngô Chánh Đức
60 p | 123 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 3 - Ngô Chánh Đức
35 p | 89 | 11
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 4 - Ngô Chánh Đức
45 p | 111 | 10
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Tổng quan về công nghệ phần mềm
35 p | 29 | 9
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 1 - Ngô Chánh Đức
13 p | 101 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 5 - Ngô Chánh Đức
51 p | 76 | 8
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 7 - Ngô Chánh Đức
26 p | 112 | 8
-
Bài giảng Nhập môn Công nghệ phần mềm: Giới thiệu tổng quan về nội dung học phần - TS. Trần Ngọc Bảo
32 p | 126 | 7
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 6 - Ngô Chánh Đức
36 p | 90 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Chương 8 - Ngô Chánh Đức
29 p | 75 | 6
-
Bài giảng Nhập môn Công nghệ thông tin 1: Giới thiệu môn học - Ngô Chánh Đức
4 p | 107 | 5
-
Bài giảng Nhập môn công nghệ phần mềm - Chương 1: Nguyễn Văn Danh
9 p | 78 | 3
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn