Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
382,23 KB
Nội dung
KỸ THUẬT LẬP TRÌNH BM CNPM – Khoa CNTT – HVKTQS 10/2012 Outline Lịch sử phát triển mẫu hình lập trình Các ngun lý lập trình Các cơng cụ lập trình Phát triển mã nguồn incremental Quản lý mã nguồn Kiểm tra mã nguồn Các độ đo Giới thiệu chung Lập trình tiến hành để triển khai thiết kế phần mềm Kỹ thuật lập trình ảnh hưởng hai trình kiểm thử bảo trì Tuy nhiên, thời gian dành cho lập trình tường đối hớn thời gian dành cho kiểm thử bảo trì Tính dễ đọc/hiểu mục tiêu hàng đầu khâu lập trình Lập trình cấu trúc LTCT năm 70 nhằm mục đích tạo code mà khơng có “goto” Ngồi ra, múc đích khác LTCT trợ giúp trình trình kiểm chứng mã nguồn Lập trình cấu trúc Câu lệnh không đơn gán Ba cấu trúc lệnh bản: Selection: if B then S1 else S2 if B then S1 Iteration: While B S repeat S until B Sequencing: S1; S2; S3; Ln luono có: Single-entry, single-exit Lập trình hướng đối tượng Là kĩ thuật lập trình hỗ trợ cơng nghệ đối tượng OOP xem giúp tăng suất, đơn giản hóa độ phức tạp bảo trì mở rộng phần mềm cách cho phép lập trình viên tập trung vào đối tượng phần mềm bậc cao Ngồi ra, nhiều người cịn cho OOP dễ tiếp thu cho người học lập trình phương pháp trước Một cách giản lược, khái niệm nỗ lực nhằm giảm nhẹ thao tác viết mã cho người lập trình, cho phép họ tạo ứng dụng mà yếu tố bên ngồi tương tác với chương trình giống tương tác với đối tượng vật lý Những đối tượng ngôn ngữ OOP kết hợp mã liệu mà chúng nhìn nhận đơn vị Mỗi đối tượng có tên riêng biệt tất tham chiếu đến đối tượng tiến hành qua tên Như vậy, đối tượng có khả nhận vào thơng báo, xử lý liệu (bên nó), gửi hay trả lời đến đối tượng khác hay đến môi trường Ra đời từ năm 1980 Che dấu thông tin, đảm bảo tính tồn vẹn, đắn cảu liệu Che dấu thông tin Phần mềm luôn sử dụng số cấu trúc liệu để lưu trữ thông tin Mỗi cấu trúc liệu truy xuất số hữu hạn thao tác (operations) Các thao tác khác truy nhập thơng tin => nguyên lý che dấu thông tin Phần lớn ngôn ngữ LT HĐT cho phép làm điều Các ngun lý lập trình Nhiệm vụ lập trình viên tạo code với lỗi với thời gian Kỹ lập trình thu nhận thơng qua thực tế viết code Lập trình tốt khơng phụ thuộc vào ngơn ngữ cụ thể Một số lưu ý thực tế Control Constructs: Sử dụng nhiều cấu trúc single-entry, single-exit Tăng cường sử dụng cấu trúc chuẩn Gotos: Không nên sử dụng lệnh goto nhiều Trong trường hợp bất đắc dĩ Một số lưu ý thực tế Che dấu thông tin: nên sử dụng rộng rãi Truy nhập thông tin nên theo chế hàm Kiểu DL User-Defined: Nếu ngôn ngữ LT cho phép nên sử dụng kiểu DL tự định nghĩa Tiến trình hướng kiện Test-Driven Development (TDD) cách tiếp cận phổ biến lập trình Thay viết code trước sau xây dựng test case điểm kiểm thử code, TDD người lập trình viên viết kịch test trước, sau viết code, code viết sau phải vượt qua kịch test Tồn q trình thực bước, kịch test xây dựng dựa đặc tả, code viết phải vược qua kịch test Tiến trình TDD thể hình Figure 7.2 Tiến trình lập trình cặp Pair Programming Trong lập trình theo cặp, code viết cặp lập trình viên khơng phải người Theo đó, cơng việc viết code phân bố cho cặp lập trình viên =>Chi phí cao Xây dựng quản lý Source Code Trong dự án thường có nhiều nhóm người khác tham gia phát triển code Mỗi lập trình viên làm việc với file mã nguồn, file biên dịch với để tạo nên phần mềm Trong trình phát triển code, lập trình viên thường ln thay đổi file mã nguồn họ tạo ra, file khơng họ tạo Với mục đích kiểm sốt tất file mã nguồn trình thay đổi chúng, cơng cụ kiểm sốt mã nguồn CVS Linux (www.cvshome.org) hay Visual Source Safe (VSS) Windows (msdn.microsoft.com/vstudio/previous/ssafe) thường sử dụng Các thao tác Get a local copy Make changes to file(s) Get reports Cập nhật thay đổi – refactoring Thay đổi cấu trúc bên mà không làm thay đổi hành vi PM Yếu tố dẫn đến cần thiết sửa đổi Nhận code - Duplicate Code Phương thức dài - Long Method Lớp dài - Long Class Dánh sách tham số dài - Long Parameter List câu lệnh Switch - Switch Statements Tổng quát hóa - Speculative Generality Quá nhiều kết nối - Too Much Communication Between Objects Dây chuyền gửi thông điệp - Message Chaining Thanh tra mã nguồn Thanh tra Mã nguồn thực người lập trình dành cho người lập trình Là tiến trình với qui định vai trị rõ ràng Trọng tâm tìm lỗi defects Dữ liệu tra ghi lại dùng để đánh giá mức độ hiệu trình tra Lập kế hoạch Mục tiêu giai đoạn lập kế hoạch để chuẩn bị cho tra Đội tra thành lập bao gồm lập trình viên mà code họ cần xem xét Đội tra nên bao gồm ba người, đơi có bốn năm thành viên Đội tra phải có người phụ trách Tự kiểm tra (Self-review) Người LT tự kiểm tra mã nguồn Họp Kiểm tra theo nhóm Nhằm đưa danh sách chung lỗi CT Thảo luận khả sửa chữa Kiểm tra theo nhóm Phép đo Kích thước code: thường dùng ước lượng chi phí Phổ biến: Số dòng lệnh Hạn chế: Phục thuộc vào ngôn ngữ Phần lớn sử dụng việc đếm dong flệnh Tuy nhiên, có mốt số pp ước lượng dựa số lượng toán tử toán hạng Phép đo Độ phức tạp: Số lượng cấu trúc thể nhánh FOC (follow of control), Số lượng biến sử dụng module – live variables Độ sâu nesting Kếtthúc Câu hỏi Tài liệu tham khảo R Pressman, Kỹ nghệ phần mềm Tập 1, 2, NXB Giáo dục, Hà Nội, 1997 (Người dịch: Ngô Trung Việt) Pankaj Jalote, An Integrated Approach to Software Engineering, Third Edition, Springer Chapter Đồn Văn Ban Phân tích, Thiết kế Lập trình Hướng đối tượng - 1997 Nxb Thống kê Việt nam