Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
0,91 MB
Nội dung
Trường Đại học Nha Trang Trường Đại học Khoa học Tự nhiên Khoa Công nghệ thông Khoa Công nghệ Thông tin tin Bộ mơn Khoa học Máy tính Bộ mơn Tin học sở KỸ THUẬT LẬP TRÌNH Đặng Bình Phương dbphuong@fit.hcmuns.edu.vn THIẾT KẾ CHƯƠNG TRÌNH Nguyễn Thủy Đoan Trang trangdhnt@gmail.com Tham khảo Slide giảng GV Nguyễn Diệu Hương, GVĐặng Bình Phương 06/22/14 Xin cám ơn tác giả VC VC & & BB BB Các xu hướng thiết kế chương trình Hướng thủ tục (POP: Procedure Oriented Programming) chương trình chia nhỏ thành chương trình trừu tượng hóa (Abstraction): cần biết hàm cho làm cơng việc cụ thể đủ Chương trình = Cấu trúc liệu + Thuật giải 06/22/14 VC VC & & BB BB Các xu hướng thiết kế chương trình Hướng đối tượng(OOP: Object Oriented Programming) lập trình lấy đối tượng làm tảng để xây dựng thuật giải Đối tượng: liệu + thao tác, hành vi Đối tượng = Phương thức + Dữ liệu 06/22/14 VC VC & & BB BB Các phương pháp thiết kế Phương pháp thiết kế Top-down Q trình phân tích tốn thực từ xuống Ví dụ: Chương trình dọc liệu từ tập tin thơng tin số nhân viên, thông tin nhân viên cơng ty, xử lí trả lại thơng tin lương trả tháng nhân viên Tách chương trình thành số chương trình đơn giản sau: - Xử lí việc đọc tập tin - Xứ lí thơng tin đọc từ tập tin - Xử lí việc thơng báo kết 06/22/14 VC VC & & BB BB Các phương pháp thiết kế Phương pháp thiết kế Bottom-up Q trình phân tích tốn thực từ lên sử dụng chủ yếu cần xây dựng chương trình từ thứ có sẵn Ví dụ: sử dụng hàm có sẵn hỗ trợ ngơn ngữ lập trình để xây dựng ứng dụng đơn giản Ví dụ: Xây dựng phép tốn phân số/8 (Bài giảng thầy Thuân) 06/22/14 VC VC & & BB BB Thiết kế chương trình Xác định mục tiêu toán Quyết định mục đích chung Chỉ rõ mục đích cụ thể Chia cơng việc thành tốn có kích thước đọng Thiết kế chương trình Tổ chức tốt phần Mã lệnh phải viết rõ ràng, dễ hiểu Lựa chọn cấu trúc liệu phù hợp Phân tích thuật toán 06/22/14 VC VC & & BB BB Phong cách lập trình Đặt tên Hàm: tính tốn hay thực cơng việc Giải thích chi tiết Một số ý đặ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 tên có kiểu Tránh đặt tên dễ nhầm lẫn, thêm phần khơng có ý nghĩa 06/22/14 VC VC & & BB BB 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 người khác chương trình lớn: cho người lập trình người khác Một số ý viết TLHD Viết đoạn mở đầu trước hàm Khi khai báo biến, lớp, hằng, giải thích ý nghĩa cách sử dụng 06/22/14 VC VC & & BB BB Phong cách lập trình Một số ý viết TLHD Giới thiệu đoạn chương trình (hàm, khối) với thích ngắn gọn mục đích ý nghĩa Chỉ rõ kết thúc phần Tránh thích q kỹ khơng cần thiết Giải thích câu lệnh khơng rõ ràng Phần mã lệnh: cách chương trình hoạt động, TLHD: chương trình hoạt động, thực cơng việc Chú ý: Khi chương trình thay đổi, cần đảm 06/22/14 bảo TLHD thay đổi tương ứng VC VC & & BB BB 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( ) */ 06/22/14 10 VC VC & & BB BB 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 nhiều so với viết chương trình Làm chương trình dễ đọc 06/22/14 11 VC VC & & BB BB Phong cách lập trình Tinh chỉnh module hóa Tinh chỉnh top-down: – Bắt đầu viết chương trình – Quyết định việc chia công việc (cho lớp, hàm, CTDL) – Tiếp tục với hàm, lớp, CTDL 06/22/14 12 VC VC & & BB BB Phong cách lập trình Tinh chỉnh Top-down – Hướng dẫn Mỗi hàm thực công việc Mỗi hàm/lớp nên che giấu thông tin Tham số hàm cần rõ Các liệu mà hàm sử dụng: • Giữ cho liên hệ đơn giản tốt Tránh sử dụng biến tồn cục nhiều tốt • Nếu sử dụng biến toàn cục, viết hướng dẫn chi tiết 06/22/14 13 VC VC & & BB BB Cài đặt, kiểm thử, tinh chỉnh Hàm giả void instructions() { } bool user_says_yes() { return(true); } 06/22/14 14 VC VC & & BB BB 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 đoạn code để gỡ lỗi Lập trình phịng ngự Sử dụng phân tích tĩnh (static analyzer) 06/22/14 15 VC VC & & BB BB Cài đặt, kiểm thử, tinh chỉnh Nguyên tắc kiểm thử chương trình Chọn liệu kiểm thử: chất lượng quan trọng số lượng 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) 06/22/14 16 VC VC & & BB BB Bảo trì chương trình Sau chương trình đưa vào sử dụng Sửa đổi phân tích chương trình để đáp ứng u cầu Bảo trì chiếm >50% tổng số cơng việc 06/22/14 17 VC VC & & BB BB Đánh giá chương trình Chương trình giải tốn đặt ra? (Tính đắn) Chương trình cho kết trường hợp? (Chính xác) Cùng liệu nhập vào kết trả có ln ln giống nhau? (Tin cậy) Có xét tất khả liệu nhập vào? (Tổng qt) Chương trình có làm việc tốt điều kiện bất thường xảy ra? (An toàn) 06/22/14 18 VC VC & & BB BB Đánh giá chương trình Chương trình có tiết kiệm tài nguyên, thời gian? (Hiệu quả) Dễ nâng cấp, bảo trì? Giao diện thân thiện? Đầu vào/ra? Nhiều chức thay thế? Trợ giúp rõ ràng? Chương trình viết rõ ràng, logic? Cấu trúc 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) 06/22/14 19