Professional Documents
Culture Documents
11 Thiet Ke Chuong Trinh Voi Ham
11 Thiet Ke Chuong Trinh Voi Ham
11 Thiet Ke Chuong Trinh Voi Ham
Trang 2
Quá Trình Phân Chia Chức Năng Hàm
• Tìm các yếu tố chung (tương tự).
• Tham số hóa các đặc trưng khác biệt
• Xác định xem một hàm cần gọi đến những hàm nào
– Vẽ đồ thị gọi hàm tĩnh để thể hiện mối liên hệ giữa các hàm
Trang 3
Các bước tiến hành thiết kế
• Yêu cầu và đặc tính kỹ thuật
• Luồng dữ liệu chương trình
• Cấu trúc dữ liệu
• Phương pháp (Top-down) hay (bottom-up)
• Viết mã nguồn
• Gỡ lỗi và kiểm tra
• Thiết kế không phải là quá trình tuần tự mà là quá trình diễn dã hoàn
thiện từng bước
4
Yêu cầu và đặc tính kỹ thuật
• Yêu cầu: chương trình sẽ phải làm gì, yêu cầu phải thể hiện rõ
mục tiêu cần làm nhưng chưa cần chi tiết cụ thể
• Đặc tính kỹ thuật: Mô tả chi tiết các chức năng của chương
trình
– Ví dụ, định dạng , phản ứng của chương trình, giới hạn bộ nhớ
• Đặc tính kỹ thuật có thể tiếp tục được mở rộng, tùy theo sự phát
triển của phần mềm
5
Luồng dữ liệu
• Vẽ sơ đồ các chức năng chính của chương trình.
– Tuần tự của hàm, vòng lặp …
6
Ví dụ: sơ đồ
START
statements
statements
conditional
FALSE
TRUE
statements
END
7
Cấu trúc dữ liệu
• Quyết định dạng dữ liệu nào sẽ được sử dụng chính trong
chương trình và sẽ được trao đổi giữa các phần của chương
trình với nhau
• Các cấu trúc này sẽ được chỉ ra từ sơ đồ thiết kế của phần mềm
8
Thiết kế từ trên xuống (Top-down Design)
9
Thực hiện
• Các hàm sẽ thực hiện theo hình cây, với hàm trên là tổng hợp của
nhiều hàm dưới
• Quá trình chia sẽ tiếp tục thực hiện đến khi hàm dưới cùng là hàm
với nhiệm vụ duy nhất
• Việc này thường được tiến hành bằng đưa ra chuỗi hàm, với giao
diện nhưng không có nội dung cụ thể
• Tiến hành debug từng hàm tại từng thời điểm
• Đây là phương pháp tốt cho thiết kế cấu trúc chương trình, nhưng
các hàm có thể không được sử dụng lại (re-use) toàn diện
10
Thiết kế từ dưới lên (Bottom-up Design)
• Xác nhận các phần của chương trình cần phải có mà chưa cần
biết cấu trúc của chương trình.
• Viết từng phần của chương trình
– Với giao diện xác định
– Lập trình và kiểm tra riêng từng phần
• Các phần của chương trình sẽ dế dùng lại hơn so với top-down.
• Các phần có thể gộp lại dể tạo nên thư viện
• C standard library là ví dụ về bottom-up design.
11
Bottom-up Design
• Các nhược điểm.
– Không nhìn thấy vấn đề tổng thể. Không đưa ra cấu trúc tốt của
chương trình cụ thể
– Thiếu sự liên kết giữa các phần của chương trình
• Hai phương pháp này có thể bổ sung và kết hợp để tạo nên
chương trình
12
Thiết kế định dạng
• Đưa ra tập hợp các hàm nhưng không đưa ra chi tiếp hàm thực
hiện từng hàm.
• Mô ta chương trình theo kiểu viết văn:
loop number of times
prompt user and get integer value
calculate factorial
print factorial
• Sau đó lần lượt thay thế các phần bằng các hàm C tương ứng
13
Ví dụ: Game of Tic-Tac-Toe
• Yêu cầu:
– Cho phép người dùng chơi game of tic-tac-toe với máy tính (x và
O)
– Cho phép người dùng đi trước hay máy đi trước.
– Cho phép người dùng chơi lại
14
Mô tả
• Welcome message:
Welcome to TIC-TAC-TOE.
-----------------------
1|2|3
-----
4|5|6
-----
7|8|9
15
Mô tả kỹ thuật
• Người dùng đi trước:
Do you wish to go first (1-Yes, 0-No) ?
16
Mô tả kỹ thuật
• In ra kết quả:
You win. Congratulations!!
You lose. Better luck next time.
Its a draw. How dull.
17