12 giai đoạn thiết kế (DESIGN PHASE) Nội dung: Khái quát chung Thiết kế 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á 138 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12.1Khái quát chung (overview) Hàng trăm kỹ thuật thiết kế đà đời 30 năm qua Thiết kế hớng kiện (action-oriented) phân rà sản phẩm thành mô-đun có tính chặt chẽ cao gắn kết với Thiết kế hớng liệu (data-oriented) phụ thuộc vào cấu trúc liệu mà xử lý đợc thực kỹ tht 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 kiện liệu Đầu vào: tài liệu đặc tả, cho biết sản phẩm phải làm (what ?) Đầu ra: để đạt đợc công việc đà mô tả đầu vào, sản phẩm phải thực nh (how ?) 139 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12.2Thiết kế trừu tợng hóa (design and abstraction) Giai đoạn thiết kế phần mềm có hoạt động chính: kiến trúc, chi tiết 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 phân chia sản phẩm thành mô-đun Thiết kế chi tiết (detailed design, modular design, physical design, lowlevel design): chi tiÕt hóa mô-đun chọn giải thuật chọn cấu trúc liƯu KiĨm thư thiÕt kÕ (design testing) 140 Hnh Xu©n Hiệp - CNPM http://www.ebook.edu.vn 12.3Phân tích dòng liệu (data flow analysis - DFA) ThiÕt kÕ h−íng sù kiƯn, t¹o mô-đun với tính chặt chẽ cao đầu vào: sơ đồ dòng liệu (data flow diagram - DFD) sau hoàn thành DFD, nhà thiết kế phần mềm phải hoàn tất thông tin vào/ra module Điểm trừu tợng hóa cao đầu vào (point of highest abstraction of input): điểm biến chuyển liệu đầu vào thành liệu nội Điểm trừu tợng hóa cao đầu (point of highest abstraction of output): điểm biến chuyển liệu nội thành đầu đầu vào đầu a b c d e f g h Hình 12.1 Thể liệu kiện sản phẩm DFD 141 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn đầu vào đầu a b c d e f mô-đun đầu vào g h mô-đun đầu mô-đun chuyển đổi điểm trừu tợng hóa cao đầu vào điểm trừu tợng hóa cao đầu Hình 12.2 Các điểm trừu tợng hóa cao đầu vào đầu Ví dụ DFA : đếm số từ (words) tập tin tên tập tin đọc tên tập tin tên tập tin công nhận tập tin hợp lệ công nhận tên tập tin đếm số từ đếm số từ định dạng số lợng từ đà đếm đầu vào định dạng số từ đà đếm hiển thị số từ đầu mong đợi đầu điểm trừu tợng hóa cao đầu vào điểm trừu tợng hóa cao đầu Hình 12.3 DFD lần làm mịn thứ 142 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn cờ trạng thái tên tập tin hợp lệ Nhận đầu vào tên tập tin Đọc tên tập tin tên tập tin Thực đếm số từ tên tập tin hợp lệ số lợng từ đà đếm số lợng từ đà đếm Tạo đầu Đếm số lợng từ cờ trạng thái Công nhận tên tập tin số lợng từ đà đếm số từ đếm đợc đà định dạng Định dạng số từ đà đếm số từ đếm đợc đà định dạng Thể số từ đà đếm liệu điều khiển Hình 12.4 Biểu đồ cấu tróc 143 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn ThiÕt kÕ chi tiết mô-đun Tên mô-đun Kiểu trả Các tham số đầu vào Các tham số đầu Các thông báo lỗi Các tập tin truy xuất Các tập tin có thay đổi Các mô-đun đợc gọi Mô tả Tên mô-đun Kiểu trả Các tham số đầu vào Các tham số đầu Các thông báo lỗi Các tập tin truy xuất Các tập tin có thay đổi Các mô-đun đợc gọi Mô tả §äc tËp tin String kh«ng kh«ng kh«ng kh«ng kh«ng kh«ng Sản phẩm đợc thi hành ngời dùng gõ lệnh: word count Sư dơng mét lêi gäi hệ thống, mô-đun truy xuất nội dung chuỗi lệnh ngời sử dụng nhập vào, tách tên tập tin trả kết tên tập tin đà tách đợc Công nhận tên tập tin hợp lệ boolean tên tập tin: String không không không không không Mô-đun tạo lời gọi hệ thống để xác định tồn tập tin với tham số đầu vào tên tập tin Mô-đun trả kết true tập tin đà tồn false ngợc lại 144 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Tên mô-đun Kiểu trả Các tham số đầu vào Các tham số đầu Các thông báo lỗi C¸c tËp tin truy xuÊt C¸c tËp tin cã thay đổi Các mô-đun đợc gọi Mô tả Đếm số lợng từ integer tên tập tin hợp lệ: String không không không không không Mô-đun xác định với tên tập tin hợp lệ đầu vào tập tin văn Khi mô-đun trả số từ có tập tin văn , ngợc lại trả -1 Tên mô-đun Kiểu trả Các tham số đầu vào Các tham số đầu Các thông báo lỗi Các tập tin truy xuất Các tập tin có thay đổi Các mô-đun đợc gọi Tạo đầu void số lợng từ: integer không không không không Định dạng số từ tham số: số từ:integer, số từ đà đợc định dạng:String Thể số từ đ đếm tham số: số từ đà đợc định dạng:integer: String Mô-đun lấy tham số đầu vào số từ đà đếm đợc bắng cách gọi mô-đun Định dạng số từ sau gọi mô-đun Thể số tõ ®∙ ®Õm ®Ĩ thĨ hiƯn sè tõ ®· ®Õm đợc Mô tả Hình 12.5 Thiết kế chi tiết mô-đun 145 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12.4Phân tích giao dÞch (transaction analysis - TA) ThiÕt kÕ h−íng sù kiện Một giao dịch thao tác theo quan ®iĨm cđa ng−êi sư dơng s¶n phÈm VD: xư lý yêu cầu, in danh sách đặt hàng ngày Xử lý giao dịch Bộ phân tích Xử lý giao dÞch t1 Xư lý giao dÞch t2 Bé ®iỊu vËn Xư lý giao dÞch t3 HiƯu chØnh mét sè giao dÞch Xư lý giao dÞch t4 Xư lý giao dịch t5 Cập nhật số tập tin Hình 12.6 Thiết kế dạng giao dịch-xử lý Ghi vào sổ kế toán 146 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12.5Thiết kế hớng đối tợng (object-oriented design - OOD) Thiết kế sản phẩm thành đối tợng(object) thể cđa c¸c líp (classe) hay c¸c líp (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 ngôn ngữ lập trình không hớng đối tợng tiến hành thiết kế kiểu liƯu trõu t−ỵng (abstract data type design) Bao gåm bớc: xây dựng sơ đồ tơng tác cho kịch xây dựng sơ đồ lớp chi tiết thiết kế sản phẩm theo đối tợng khách hàng tiến hành thiết kế chi tiết 147 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn Nút sáng lên: boolean tắt nút (abstract) bật nót (abstract) øng dơng thang m¸y Nót thang m¸y tắt nút bật nút mn Các tiện ích thang máy Nút tầng tắt nút bật nút 2m-2 điều khiển điều khiển n Bộ điều khiển thang máy 1 điều khiển n Các cửa thang máy cửa mở: Boolean cửa đóng cửa mở Thang máy cửa mở: boolean chuyển thang máy lên chuyển thang máy xuống Hình 12.7 Sơ đồ lớp chi tiết 148 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn ứng dụng thang máy đìều khiển thang m¸y thang m¸y nót thang m¸y c¸c tiƯn ích thang máy cửa thang máy nút tầng Hình 12.8 Quan hệ khách hàng-đối tợng 149 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12.6Kiểm thử giai đoạn thiết kế (testing during the design phase) Tìm thấy lỗi giai đoạn quan trọng Có thể sư dơng walkthroughs tra t−¬ng tù nh− giai đoạn đặc tả nhng đại diện 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á mặt giai đoạn thiết kế số lợng mô-đun: đánh giá thô kích thớc sản phẩm độ gắn kết mô-đun: đánh giá chất lợng 150 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn độ nối kết mô-đun: thống kê lỗi Độ phức tạp thiết kế chi tiết M số lợng định nhị phân cộng với [McCabe, 1976] (hay số lợng nhánh mô-đun) VD: độ phức tạp viế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: [Henry Kafura, 1981] M = length ì (fan-in ì fan-out)2 length : kích thớc mô-đun fan-in : số lợng luồng vào mô-đun + số lợng cấu trúc liệu mà mô-đun truy xuất fan-out : số lợng luồng mô-đun + số lợng cấu trúc liệu toàn cục mà mô-đun cập nhật Phơng pháp thành công cho thiết kế hớng đối tợng: CDM [Kitchenham, Pickard Linkman, 1990; Shepperd, 1990] Một số phơng pháp khác : [Chidamber Kemerer, 1994], [Binkley and Schach, 1996;1997;1998] 151 Hnh Xu©n HiƯp - CNPM http://www.ebook.edu.vn ... Hiệp - CNPM http://www.ebook.edu.vn Thiết kế chi tiết m? ?-? ?un Tên m? ?-? ?un Kiểu trả Các tham số đầu vào Các tham số đầu Các thông báo lỗi Các tập tin truy xuất Các tập tin có thay đổi Các m? ?-? ?un... nút tầng Hình 12. 8 Quan hệ khách hàng-đối tợng 149 Huỳnh Xuân Hiệp - CNPM http://www.ebook.edu.vn 12. 6Kiểm thử giai đoạn thiết kế (testing during the design phase) Tìm thấy lỗi giai đoạn lµ rÊt... lợng nhánh m? ?-? ?un) VD: độ phức tạp viế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: [Henry Kafura, 1981] M = length × (fan-in × fan-out )2 length : kÝch