Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 12: Giai đoạn thiết kế
Nội dung:
? Khái quát chung
? Thiết kế và trừu t-ợng hóa
? Thiết kế h-ớng sự kiện
? Thiết kế h-ớng dữ liệu
? Thiết kế h-ớng đối t-ợng
? Kiểm thử
? Đánh giá
Huỳnh Xuân Hiệp - CNPM 138 12 giai đoạn thiết kế(DESIGN PHASE) Nội dung: Khái quát chung Thiết kế và trừu t−ợng hóa Thiết kế h−ớng sự kiện Thiết kế h−ớng dữ liệu Thiết kế h−ớng đối t−ợng Kiểm thử Đánh giá Huỳnh Xuân Hiệp - CNPM 139 12.1 Khái quát chung (overview) Hàng trăm kỹ thuật thiết kế đã ra đời trong hơn 30 năm qua Thiết kế h−ớng sự kiện (action-oriented) phân rã sản phẩm thành các mô-đun có tính chặt chẽ cao và ít gắn kết với nhau Thiết kế h−ớng dữ liệu (data-oriented) phụ thuộc vào cấu trúc dữ liệu mà các xử lý đ−ợc thực hiện trên đó các kỹ thuật nổi tiếng nh− [Jackson, 1975;1983], [Wanier, 1976;1981] và [Orr, 1981] Thiết kế h−ớng đối t−ợng dạng tổng hợp, bao gồm cả sự kiện và dữ liệu Đầu vào: tài liệu đặc tả, cho biết sản phẩm phải làm gì (what ?) Đầu ra: để đạt đ−ợc những công việc đã mô tả ở đầu vào, sản phẩm phải thực hiện nh− thế nào (how ?) Huỳnh Xuân Hiệp - CNPM 140 12.2 Thiết kế và trừu t−ợng hóa (design and abstraction) Giai đoạn thiết kế phần mềm có 3 hoạt động chính: kiến trúc, chi tiết và kiểm thử Thiết kế kiến trúc (architectural design, general design, logical design, high-level design): theo quan điểm trừu t−ợng hóa là phân chia sản phẩm thành các mô-đun Thiết kế chi tiết (detailed design, modular design, physical design, low- level design): chi tiết hóa từng mô-đun chọn giải thuật chọn cấu trúc dữ liệu Kiểm thử thiết kế (design testing) Huỳnh Xuân Hiệp - CNPM 141 12.3 Phân tích dòng dữ liệu (data flow analysis - DFA) Thiết kế h−ớng sự kiện, tạo ra các mô-đun với tính chặt chẽ cao đầu vào: sơ đồ dòng dữ liệu (data flow diagram - DFD) sau khi hoàn thành DFD, nhà thiết kế phần mềm phải hoàn tất các thông tin vào/ra của từng module Điểm trừu t−ợng hóa cao nhất đầu vào (point of highest abstraction of input): điểm biến chuyển dữ liệu đầu vào thành dữ liệu nội tại Điểm trừu t−ợng hóa cao nhất đầu ra (point of highest abstraction of output): điểm biến chuyển dữ liệu nội tại thành đầu ra a b c d e f g h đầu vào đầu ra Hình 12.1 Thể hiện dữ liệu và sự kiện của sản phẩm bằng DFD Huỳnh Xuân Hiệp - CNPM 142 Ví dụ về DFA : đếm số từ (words) trong tập tin mô-đun chuyển đổi a b c d e f g h đầu vào đầu ra Hình 12.2 Các điểm trừu t−ợng hóa cao nhất đầu vào và đầu ra mô-đun đầu vào mô-đun đầu ra điểm trừu t−ợng hóa cao nhất đầu vào điểm trừu t−ợng hóa cao nhất đầu ra đọc tên tập tin công nhận tập tin hợp lệ đếm số từ hiển thị số từ định dạng số l−ợng từ đã đếm tên tập tin tên tập tin công nhận tên tập tin đếm số từ định dạng số từ đã đếm đầu ra mong đợi điểm trừu t−ợng hóa cao nhất đầu vào điểm trừu t−ợng hóa cao nhất đầu ra đầu vào tại đây đầu ra tại đây Hình 12.3 DFD tại lần làm mịn thứ nhất Huỳnh Xuân Hiệp - CNPM 143 Nhận đầu vào Thực hiện đếm số từ Đếm số l−ợng từ Tạo đầu ra Thể hiện số từ đã đếm Định dạng số từ đã đếm Công nhận tên tập tin Đọc tên tập tin dữ liệu điều khiển tên tập tin tên tập tin hợp lệ tên tập tin hợp lệ số l−ợng từ đã đếm số l−ợng từ đã đếm số từ đếm đ−ợc đã định dạng số từ đếm đ−ợc đã định dạng số l−ợng từ đã đếm cờ trạng thái tên tập tin cờ trạng thái Hình 12.4 Biểu đồ cấu trúc Huỳnh Xuân Hiệp - CNPM 144 Thiết kế chi tiết 4 mô-đun Tên mô-đun Đọc tập tin Kiểu trả về String Các tham số đầu vào không Các tham số đầu ra không Các thông báo lỗi không Các tập tin truy xuất không Các tập tin có thay đổi trên đó không Các mô-đun đ−ợc gọi không Mô tả Sản phẩm đ−ợc thi hành khi ng−ời dùng gõ lệnh: word count Sử dụng một lời gọi hệ thống, mô-đun này sẽ truy xuất nội dung chuỗi lệnh do ng−ời sử dụng nhập vào, tách ra tên tập tin và trả về kết quả là tên tập tin đã tách đ−ợc. Tên mô-đun Công nhận tên tập tin hợp lệ Kiểu trả về boolean Các tham số đầu vào tên tập tin: String Các tham số đầu ra không Các thông báo lỗi không Các tập tin truy xuất không Các tập tin có thay đổi trên đó không Các mô-đun đ−ợc gọi không Mô tả Mô-đun này tạo một lời gọi hệ thống để xác định sự tồn tại của tập tin với tham số đầu vào là tên tập tin. Mô-đun trả về kết quả true nếu tập tin đã tồn tại và false nếu ng−ợc lại. Huỳnh Xuân Hiệp - CNPM 145 Tên mô-đun Đếm số l−ợng từ Kiểu trả về integer Các tham số đầu vào tên tập tin hợp lệ: String Các tham số đầu ra không Các thông báo lỗi không Các tập tin truy xuất không Các tập tin có thay đổi trên đó không Các mô-đun đ−ợc gọi không Mô tả Mô-đun này xác định với tên tập tin hợp lệ đầu vào là tập tin văn bản. Khi đó mô-đun sẽ trả về số từ có trong tập tin văn bản , ng−ợc lại trả về -1. Tên mô-đun Tạo đầu ra Kiểu trả về void Các tham số đầu vào số l−ợng từ: integer Các tham số đầu ra không Các thông báo lỗi không Các tập tin truy xuất không Các tập tin có thay đổi trên đó không Các mô-đun đ−ợc gọi Định dạng số từ các tham số: số từ:integer, số từ đã đ−ợc định dạng:String Thể hiện số từ đ∙ đếm các tham số: số từ đã đ−ợc định dạng:integer: String Mô tả Mô-đun này lấy tham số đầu vào là số từ đã đếm đ−ợc bắng cách gọi mô-đun Định dạng số từ và sau đó gọi mô-đun Thể hiện số từ đ∙ đếm để thể hiện số từ đã đếm đ−ợc. Hình 12.5 Thiết kế chi tiết các mô-đun Huỳnh Xuân Hiệp - CNPM 146 12.4 Phân tích giao dịch (transaction analysis - TA) Thiết kế h−ớng sự kiện Một giao dịch là một thao tác theo quan điểm của ng−ời sử dụng sản phẩm VD: xử lý một yêu cầu, in ra danh sách các đặt hàng trong ngày Xử lý giao dịch Bộ điều vận Bộ phân tích Ghi vào sổ kế toán Hiệu chỉnh một số giao dịch Cập nhật một số tập tin Xử lý giao dịch t5 Xử lý giao dịch t4 Xử lý giao dịch t3 Xử lý giao dịch t2 Xử lý giao dịch t1 Hình 12.6 Thiết kế dạng giao dịch-xử lý Huỳnh Xuân Hiệp - CNPM 147 12.5 Thiết kế h−ớng đối t−ợng (object-oriented design - OOD) Thiết kế sản phẩm thành các đối t−ợng(object) là các thể hiện của các lớp (classe) hay các lớp con (subclass) Các ngôn ngữ lập trình h−ớng đối t−ợng thông dụng nh− Smalltalk [Goldberg và Robson, 1989], C++ [Stroustrup, 1991], Eiffel [Meyer, 1992b], Ada95 [ISO/IEC 8652, 1995] và Java [Flanagan, 1996] Khi cài đặt trên các ngôn ngữ lập trình không h−ớng đối t−ợng tiến hành thiết kế trên các kiểu dữ liệu trừu t−ợng (abstract data type design) Bao gồm 4 b−ớc: xây dựng sơ đồ t−ơng tác cho từng kịch bản xây dựng sơ đồ lớp chi tiết thiết kế sản phẩm theo các đối t−ợng của khách hàng tiến hành thiết kế chi tiết Huỳnh Xuân Hiệp - CNPM 148 ứng dụng thang máy Nút Các tiện ích thang máy sáng lên: boolean tắt nút (abstract) bật nút (abstract) Nút trong thang máy Nút tại các tầng tắt nút bật nút tắt nút bật nút mn 2m-2 điều khiển điều khiển n Bộ điều khiển thang máy 1 1 Các cửa thang máy điều khiển cửa mở: Boolean n cửa đóng cửa mở Thang máy cửa mở: boolean chuyển thang máy lên trên chuyển thang máy xuống Hình 12.7 Sơ đồ lớp chi tiết Huỳnh Xuân Hiệp - CNPM 149 ứng dụng thang máy bộ đìều khiển thang máy các tiện ích thang máy các cửa thang máy nút tại các tầng nút trong thang máy thang máy Hình 12.8 Quan hệ khách hàng-đối t−ợng Huỳnh Xuân Hiệp - CNPM 150 12.6 Kiểm thử trong giai đoạn thiết kế (testing during the design phase) Tìm thấy lỗi trong giai đoạn này là rất quan trọng Có thể sử dụng walkthroughs thanh tra t−ơng tự nh− trong giai đoạn đặc tả nh−ng có thể không có đại diện của khách hàng Phải phản ánh đ−ợc h−ớng thiết kế 12.7 Đánh giá giai đoạn thiết kế (metrics for the design phase) Có nhiều ph−ơng pháp đánh giá trên các mặt của giai đoạn thiết kế số l−ợng các mô-đun: đánh giá thô về kích th−ớc của sản phẩm độ gắn kết của mô-đun: đánh giá về chất l−ợng Huỳnh Xuân Hiệp - CNPM 151 độ nối kết giữa các mô-đun: thống kê về lỗi Độ phức tạp của thiết kế chi tiết M bằng số l−ợng quyết định nhị phân cộng với 1 [McCabe, 1976] (hay số l−ợng nhánh trong một mô-đun) VD: độ phức tạp khi viết một mô-đun toascii: có sử dụng switch có 128 nhánh : 128 sử dụng bảng chuyển đổi trực tiếp: 1 [Henry và Kafura, 1981] M = length ì (fan-in ì fan-out)2 length : kích th−ớc mô-đun fan-in : số l−ợng các luồng đi vào mô-đun + số l−ợng cấu trúc dữ liệu mà mô-đun truy xuất fan-out : số l−ợng các luồng đi ra mô-đun + số l−ợng các cấu trúc dữ liệu toàn cục mà mô-đun cập nhật Ph−ơng pháp thành công nhất cho thiết kế h−ớng đối t−ợng: CDM [Kitchenham, Pickard và Linkman, 1990; Shepperd, 1990] Một số ph−ơng pháp khác : [Chidamber và Kemerer, 1994], [Binkley and Schach, 1996;1997;1998]
File đính kèm:
- Bài giảng Công nghệ phần mềm - Huỳnh Xuân Hiệp - Bài 12 Giai đoạn thiết kế.pdf