Tải bản đầy đủ (.ppt) (19 trang)

1-KTLT-ThietKeChuongTrinh potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (350.45 KB, 19 trang )

Trường Đại học Khoa học Tự nhiên
Khoa Công nghệ thông tin
Bộ môn Tin học cơ sở
1
Đặng Bình Phương

06/22/14
THIẾT KẾ CHƯƠNG TRÌNH
Trường Đại học Nha Trang
Khoa Công nghệ Thông tin
Bộ môn Khoa học Máy tính
KỸ THUẬT LẬP TRÌNH
Nguyễn Thủy Đoan Trang

Tham khảo Slide bài giảng của GV Nguyễn Diệu Hương, GVĐặng Bình Phương.
Xin cám ơn các tác giả.
VC
VC
&
&
BB
BB
22
06/22/14
Các xu hướng thiết kế chương trình
1. Hướng thủ tục (POP: Procedure Oriented
Programming)

chương trình chia nhỏ thành các chương
trình con.


sự trừu tượng hóa (Abstraction): chỉ cần biết
một hàm đã cho có thể làm được một công
việc cụ thể gì là đủ.

Chương trình = Cấu trúc dữ liệu + Thuật
giải
VC
VC
&
&
BB
BB
33
06/22/14
Các xu hướng thiết kế chương trình
2. Hướng đối tượng(OOP: Object Oriented
Programming)

lập trình lấy đối tượng làm nền tảng để xây
dựng thuật giải.

Đối tượng: dữ liệu + thao tác, hành vi.

Đối tượng = Phương thức + Dữ liệu
VC
VC
&
&
BB
BB

44
06/22/14
Các phương pháp thiết kế
2. Phương pháp thiết kế Top-down

Quá trình phân tích bài toán được thực hiện
từ trên xuống dưới.

Ví dụ: Chương trình dọc dữ liệu từ tập tin thông tin
về số nhân viên, thông tin của từng nhân viên của
một công ty, xử lí và trả lại thông tin về lương sẽ trả
tháng này của từng nhân viên.
 Tách chương trình ra thành một số chương trình con
đơn giản hơn như sau:
- Xử lí việc đọc tập tin.
- Xứ lí thông tin đọc được từ tập tin.
- Xử lí việc thông báo kết quả.
VC
VC
&
&
BB
BB
55
06/22/14
Các phương pháp thiết kế
2. Phương pháp thiết kế Bottom-up

Quá trình phân tích bài toán được thực hiện
từ dưới lên trên.


được sử dụng chủ yếu khi cần xây dựng
chương trình từ những thứ đã có sẵn.

Ví dụ: sử dụng các hàm đã có sẵn và được
hỗ trợ của ngôn ngữ lập trình để xây dựng
một ứng dụng đơn giản nào đó.
Ví dụ: Xây dựng các phép toán trên phân số/8
(Bài giảng thầy Thuân)
VC
VC
&
&
BB
BB
66
06/22/14
Thiết kế chương trình

Xác định mục tiêu của bài toán

Quyết định mục đích chung

Chỉ rõ những mục đích cụ thể

Chia công việc thành các bài toán con cho
đến khi có kích thước cô đọng.

Thiết kế chương trình


Tổ chức tốt từng phần

Mã lệnh phải viết rõ ràng, dễ hiểu.

Lựa chọn cấu trúc dữ liệu phù hợp

Phân tích thuật toán
VC
VC
&
&
BB
BB
77
06/22/14
Phong cách lập trình

Đặt tên

Hàm: tính toán gì hay thực hiện công việc gì

Giải thích chi tiết

Một số chú ý khi đặt tên

Lựa chọn cẩn thận tên hàm, hằng, biến toàn
cục.

Tên biến cục bộ: đơn giản.


Sử dụng tiền tố/hậu tố cho các tên có cùng
kiểu.

Tránh đặt tên dễ nhầm lẫn, hoặc thêm phần
đuôi không có ý nghĩa
VC
VC
&
&
BB
BB
88
06/22/14
Phong cách lập trình

Chuẩn bị tài liệu hướng dẫn
Mục đích:

chương trình nhỏ: giải thích cho những người
khác.

chương trình lớn: cho cả người lập trình và
người khác.

Một số chú ý khi viết TLHD

Viết một đoạn mở đầu trước mỗi hàm.

Khi khai báo biến, lớp, hằng, giải thích ý
nghĩa và cách sử dụng của nó.

VC
VC
&
&
BB
BB
99
06/22/14
Phong cách lập trình

Một số chú ý khi viết TLHD

Giới thiệu mỗi đoạn chương trình (hàm, khối)
với chú thích ngắn gọn về mục đích và ý
nghĩa.

Chỉ rõ kết thúc của mỗi phần

Tránh chú thích quá kỹ không cần thiết.

Giải thích những câu lệnh không rõ ràng.

Phần mã lệnh: cách chương trình hoạt động,
TLHD: tại sao chương trình hoạt động, thực
hiện công việc gì.

Chú ý: Khi chương trình thay đổi, cần đảm
bảo TLHD sẽ thay đổi tương ứng.
VC
VC

&
&
BB
BB
1010
06/22/14
Phong cách lập trình
Ví dụ:
int main( ) // Program to play Conway’s game of Life.
/*Pre : The user supplies an initial configuration of living cells.
Post : The program prints a sequence of pictures showing the changes
in the configuration of living cells according to the rules for the game
of Life.
Uses: The class Life and its methods initialize( ), print( ), and update( ).
The functions instructions( ), user_says_yes( ). */
VC
VC
&
&
BB
BB
1111
06/22/14
Phong cách lập trình

Định dạng chương trình

Canh lề giúp chương trình dễ hiểu

Thời gian đọc chương trình lớn hơn rất nhiều

so với viết chương trình.

Làm chương trình dễ đọc nhất có thể.
VC
VC
&
&
BB
BB
1212
06/22/14
Phong cách lập trình

Tinh chỉnh và module hóa

Tinh chỉnh top-down:
– Bắt đầu bằng viết chương trình chính
– Quyết định việc chia các công việc (cho lớp,
hàm, CTDL).
– Tiếp tục với các hàm, lớp, CTDL
VC
VC
&
&
BB
BB
1313
06/22/14

Tinh chỉnh Top-down – Hướng dẫn


Mỗi hàm chỉ thực hiện một công việc duy
nhất.

Mỗi hàm/lớp nên che giấu thông tin

Tham số của hàm cần được chỉ rõ.

Các dữ liệu mà hàm sử dụng:

Giữ cho các mỗi liên hệ càng đơn giản càng tốt.
Tránh sử dụng biến toàn cục càng nhiều càng tốt.

Nếu sử dụng biến toàn cục, viết hướng dẫn chi
tiết.
Phong cách lập trình
VC
VC
&
&
BB
BB
1414
06/22/14
Cài đặt, kiểm thử, tinh chỉnh

Hàm giả
void instructions() { }
bool user_says_yes() {
return(true); }

VC
VC
&
&
BB
BB
1515
06/22/14
Cài đặt, kiểm thử, tinh chỉnh

Dò vết chương trình

Duyệt lại cấu trúc chương trình

Sử dụng công cụ dò vết

Scaffolding: thêm những đoạn code để gỡ lỗi

Lập trình phòng ngự

Sử dụng bộ phân tích tĩnh (static analyzer)
VC
VC
&
&
BB
BB
1616
06/22/14
Cài đặt, kiểm thử, tinh chỉnh


Nguyên tắc kiểm thử chương trình

Chọn dữ liệu kiểm thử: chất lượng quan trọng
hơn số lượng.

3 phương pháp kiểm thử:

Hộp đen (Black-box)

Hộp kính (Glass-box)

Hộp tíc tắc (Ticking-box)
VC
VC
&
&
BB
BB
1717
06/22/14
Bảo trì chương trình

Sau khi chương trình đã đưa vào sử dụng.

Sửa đổi và phân tích chương trình để đáp ứng
yêu cầu mới.

Bảo trì chiếm >50% tổng số công việc.
VC

VC
&
&
BB
BB
1818
06/22/14
Đánh giá chương trình
1. Chương trình đã giải quyết được bài toán đặt
ra? (Tính đúng đắn)
2. Chương trình cho kết quả đúng ở mọi trường
hợp? (Chính xác)
3. Cùng 1 dữ liệu nhập vào thì kết quả trả ra có
luôn luôn giống nhau? (Tin cậy)
4. Có xét tất cả mọi khả năng có thể của dữ liệu
nhập vào? (Tổng quát)
5. Chương trình có làm việc tốt ngay cả trong
những điều kiện bất thường xảy ra? (An toàn)
VC
VC
&
&
BB
BB
1919
06/22/14
Đánh giá chương trình
6. Chương trình có tiết kiệm tài nguyên, thời
gian? (Hiệu quả)
7. Dễ nâng cấp, bảo trì?

8. Giao diện thân thiện? Đầu vào/ra? Nhiều chức
năng thay thế? Trợ giúp rõ ràng?
9. Chương trình viết rõ ràng, logic? Cấu trúc dữ
liệu hợp lý?
10.Tài liệu hướng dẫn rõ ràng? (tên, đầu vào, đầu
ra, giải thích)

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×