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á

pdf14 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1737 | Lượt tải: 5download
Tóm tắt nội dung 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ế, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
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:

  • pdfBà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