Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế phần mềm

?Khái niệm, nguyên lý, chất l-ợng

?Thiết kế kiến trúc

?Thiết kế giao diện

?Thiết kế thủ tục

?Thiết kế h-ớng đối t-ợng

pdf22 trang | Chuyên mục: Công Nghệ Phần Mềm | Chia sẻ: dkS00TYs | Lượt xem: 1744 | Lượt tải: 1download
Tóm tắt nội dung Bài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế phần mềm, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
1Phần 3
Thiết kế phần mềm
2Thiết kế phần mềm
„ Khái niệm, nguyên lý, chất l−ợng
„ Thiết kế kiến trúc
„ Thiết kế giao diện
„ Thiết kế thủ tục
„ Thiết kế h−ớng đối t−ợng
3Tài liệu
„ N.V. Vỵ, N. V. Hà, Giáo trình kỹ nghệ phần 
mềm, ch−ơng 3. 
„ N.V. Vỵ, Phân tích thiết kế HTTT hiện đại –
H−ớng cấu trúc và h−ớng đối t−ợng, NXB 
Thống kê
„ Zhiming Liu, Object-Oriented Software 
Development with UML, UNU/IIST Report
„ Sommerville, Software Engineering
„ Pressman, Software Engineering
4Thiết kế phần mềm
Thiết kế
mô hình
thông tin
mô hình
chức năng
các yêu
cầu khác
Lập trình
thiết kế
kiến trúc
cấu trúc
dữ liệu
thiết kế
thuật toán
mô đun
ch−ơng trình
5Thế nào là thiết kế
• Nghĩ xem nên làm nh− thế nào (cách thức, ph−ơng án)
• Biểu diễn cách thức, ph−ơng án
• Xem xét lại, chi tiết hóa
đủ chi tiết để ng−ời lập trình biết 
phải làm nh− thế nào
Là một quá trình sáng tạo:
6Thiết kế phần mềm
„ Là tạo mô hình cài đặt của phần mềm
„ Là ph−ơng tiện để trao đổi thông tin, để đảm 
bảo chất l−ợng
„ dễ hiểu dễ sửa đổi hơn mã ch−ơng trình
„ cung cấp cái nhìn tổng thể; đồng thời có nhiều 
mức chi tiết
„ Nếu không có thiết kế; hoặc thiết kế tồi:
„ làm tăng công sức viết mã ch−ơng trình
„ làm tăng công sức bảo trì
7Thiết kế phần mềm
„ Phần mềm là tập các mô đun t−ơng tác lẫn 
nhau
„ Mô đun hóa là chìa khóa cho phần mềm tốt
„ Mục tiêu thiết kế là xác định:
„ chức năng của các mô đun
„ cách thức cài đặt mô đun
„ t−ơng tác giữa các mô đun
8Nguyên lý thiết kế
„Thiết kế không nên bị bó buộc vào cái nhìn 
hạn hẹp
„nên đ−ợc lựa chọn từ các giải pháp khác nhau
„Thiết kế phải lần ng−ợc lại đ−ợc mô hình 
phân tích
„các mô đun và các yêu cầu không phải là
t−ơng ứng một - một
„phải kiểm tra đ−ợc sự thỏa mãn các yêu cầu
9Nguyên lý thiết kế (t)
„Không nên tái tạo lại các thiết kế (giải pháp) 
đã có, mà cần tái sử dụng tối đa các thiết kế 
đã có
„Mô hình thiết kế (giải pháp) nên tiến gần đến 
mô hình thế giới thực (bài toán)
„ Dễ hiểu, dễ kiểm tra
10
Nguyên lý thiết kế (t)
„Biểu diễn thiết kế phải có tính nhất quán và
tính tích hợp:
„ thiết kế do nhiều ng−ời tiến hành song song
„phải thống nhất cách biểu diễn, thống nhất 
giao diện
„Thiết kế cần có cấu trúc để dễ dàng thay đổi
„phải đ−ợc modun hóa, phân cấp
11
Nguyên lý thiết kế (t)
„Thiết kế không phải là mã hóa
„ thiết kế luôn có mức trừu t−ợng hơn mã hóa, đảm 
bảo dễ hiểu, dễ thay đổi, có thể cài đặt bằng các 
ngôn ngữ khác nhau
„Thiết kế cần đ−ợc đánh giá chất l−ợng ngay 
trong khi nó đ−ợc tạo ra
„ tính kết dính, tính ghép nối, tính hiệu quả,...
„Thiết kế cần đ−ợc thẩm định để tránh các lỗi 
mang tính hệ thống
„ thiếu chức năng, chức năng không rõ ràng, mâu 
thuẫn,...
12
Nôi dung thiết kế
„ Thiết kế kiến trúc
„ phân rã hệ thống thành các mô đun, hệ thống con
„ xác định t−ơng tác (giao diện) giữa các mô đun
„ Thiết kế cấu trúc dữ liệu
„ xây dựng mô hình biểu diễn thông tin
„ Thiết kế thủ tục (thuật toán)
„ xác định các b−ớc thực hiện
„ Thiết kế giao diện ng−ời dùng
„ nên nhìn nhận giao diện là một bài toán độc lập
13
‹ Thiết kế kiến trúc
 cái nhìn tổng thể về hệ thống
 mối quan hệ giữa các mô đun
 giao diện giữa các mô đun
Sử dụng biểu đồ cấu trúc (structure chart), mô tả:
Ch−a cần chỉ ra:
 thứ tự thực hiện
 số lần thực hiện
 chi tiết thiết kế
14
‹ Thiết kế cấu trúc dữ liệu
 Chọn cách biểu diễn cho sự vật có ảnh
h−ởng mạnh mẽ đến chất l−ợng phần mềm
 Thiết kế cấu trúc dữ liệu lô gic
- định danh dữ liệu
- xác định các mối quan hệ
 Thiết kế cấu trúc dữ liệu vật lý
- kiểu dữ liệu
- kích cỡ
Các mức thiết kế
15
‹ Thiết kế cấu trúc dữ liệu vật lý
‰ Có nhiều cách thức biểu diễn
- phần tử vô h−ớng;
- mảng một chiều, nhiều chiều; danh sách móc nối
- kiểu cấu trúc
- quan hệ kế thừa
 Nên làm chậm việc chọn biểu diễn mức thấp
- đóng gói/che giấu thông tin
- thiết kế h−ớng đối t−ợng
16
‹ Thiết kế thủ tục
 Mô tả các b−ớc hoạt động của mô đun
 Ph−ơng pháp mô tả
- giả mã (pseudo code)
- Biểu đồ luồng (flow chart)
- Biểu đồ (diagam) Nassi-Shneiderman 
- JSP
17
Khái niệm thiết kế cơ sở
„ Trừu t−ợng hóa trừu t−ợng hóa dữ liệu, thủ tục, 
điều khiển
„ Làm mịn chi tiết hóa các trừu t−ợng
„ Tính môdun phân chia dữ liệu và chức năng
„ Kiến trúc cấu trúc tổng thể của phần mềm
„ Thủ tục thuật toán để thực hiện chức năng
„ Che giấu thông tin điều khiển bằng giao diện
18
Trừu t−ợng hóa (abstraction)
„ Khái niệm cơ sở trong t− duy của con ng−ời
„ Là quá trình ánh xạ một sự vật/hiện t−ợng 
của thế giới thực thành một khái niệm logic
„ Có nhiều mức trừu t−ợng khác nhau
„ cho phép con ng−ời tập trung (t− duy) vào giải 
quyết vấn đề mà không cần bận tâm đến chi 
tiết
„ biểu diễn vấn đề bằng một cấu trúc tự nhiên
19
Trừu t−ợng dữ liệu
door
manufacturer
model number
type
swing direction
inserts
lights
type
number
weight
opening mechanism
20
Trừu t−ợng thủ tục
open
details of enter 
algorithm
21
Làm mịn từng b−ớc
open
walk to door;
reach for knob;
open door;
walk through;
close door.
repeat until door opens
turn knob clockwise;
if knob doesn't turn, then
take key out;
find correct key;
insert in lock;
endif
pull/push door
move out of way;
end repeat
22
Câu hỏi ôn tập
1. Thiết kế phần mềm là gì?
2. Nêu các nguyên lý để thiết kế phần mềm?
3. Liệt kê các nội dung thiết kế và giải thích?
4. Giải thích một số khái niệm trong thiết kế: trừu 
t−ợng, làm mịn, mô đun hoá, thủ tục, che giấu 
thông tin?

File đính kèm:

  • pdfBài giảng Công nghệ phần mềm nâng cao - Phạm Ngọc Hùng - Thiết kế phần mềm.pdf