Đề tài Ứng dụng kỹ thuật tái cấu trúc mã nguồn để triển khai dò tìm và cải tiến các đoạn mã xấu trong chương trình C#
MỤC LỤC LỜI CAM ĐOAN . 2 MỤC LỤC . 3 DANH MỤC HÌNH ẢNH . 5 MỞ ĐẦU . 6 CHưƠNG I: KỸ THUẬT TÁI CẤU TRÚC MÃ NGUỒN (REFACTORING) . 7 I.1 ĐỊNH NGHĨA KỸ THUẬT TÁI CẤU TRÚC MÃ NGUỒN . 7 I.1.1 Ví dụ minh họa. 7 I.1.2 Định nghĩa kỹ thuật tái cấu trúc mã nguồn . 19 I.2 HIỆU QUẢ CỦA TÁI CẤU TRÚC MÃ NGUỒN . 20 I.2.1 Refactoring cải thiện thiết kế phần mềm . 20 I.2.2 Refactoring làm mã nguồn phần mềm dễ hiểu . 20 I.2.3 Refactoring giúp phát hiện và hạn chế lỗi . 21 I.2.4 Refactoring giúp đấy nhanh quá trình phát triển phần mềm . 21 I.3 KHI NÀO THỰC HIỆN TÁI CẤU TRÚC MÃ NGUỒN . 22 I.3.1 Refactor khi thêm chức năng . 22 I.3.2 Refactor khi cần sửa lỗi . 22 I.3.3 Refactor khi thực hiện duyệt chương trình . 23 I.4 CÁC KỸ THUẬT TÁI CẤU TRÚC MÃ NGUỒN . 23 I.4.1 Danh mục các kỹ thuật tái cấu trúc mã nguồn . 23 I.5 NHẬN XÉT VÀ KẾT LUẬN . 26 CHưƠNG II: LỖI CẤU TRÚC (BAD SMELLS) TRONG MÃ NGUỒN . 27 II.1 KHÁI NIỆM VỀ LỖI CẤU TRÚC (BAD SMELLS) . 27 II.2 LỖI CẤU TRÚC VÀ GIẢI PHÁP CẢI TIẾN . 27 II.2.1 Duplicated Code - Trùng lặp mã . 27 II.2.2 Long Method – Phương thức phức tạp . 28 II.2.3 Large Class – Qui mô lớp lớn . 30 II.2.4 Long Parameter List - Danh sách tham số quá dài . 31 II.2.5 Divergent Change – Cấu trúc lớp ít có tính khả biến . 32 II.2.6 Shotgun Surgery – Lớp được thiết kế không hợp lý và bị phân rã . 32 II.2.7 Feature Envy – Phân bố phương thức giữa các lớp không hợp lý . 33 II.2.8 Data Clumps – Gôm cụm dữ liệu . 34 II.2.9 Primitive Obsession – Khả năng thể hiện dữ liệu của lớp bị hạn chế . 34 II.2.10 Switch Statements – Khối lệnh điều kiện rẽ hướng không hợp lý . 36 II.2.11 Lazy Class – Lớp được định nghĩa không cần thiết . 38 II.2.12 Speculative Generality – Cấu trúc bị thiết kế dư thừa . 38 II.2.13 Temporary Field – Lạm dụng thuộc tính tạm thời . 39 II.2.14 Message Chains –Chuỗi phương thức liên hoàn khó kiểm soát. 39 II.2.15 Middle Man – Quan hệ ủy quyền không hợp lý/logic . 39 II.2.16 Inapproprite Intimacy - Cấu trúc thành phần riêng không hợp lý . 41 II.2.17 Alternative Classes with Different Interfaces - Đặc tả lớp không rõ ràng 41 II.2.18 Incomplete Library Class – Sử dụng thư viện lớp chưa được hòan chỉnh 41 II.2.19 Data Class – Lớp dữ liệu độc lập . 42 II.2.20 Refused Bequest – Quan hệ kế thừa không hợp lý/logic . 43 II.2.21 Comments – Chú thích không cần thiết . 43 II.3 NHẬN XÉT VÀ KẾT LUẬN . 44 CHưƠNG III: NỀN TẢNG .NET VÀ NGÔN NGỮ LẬP TRÌNH C# . 45 III.1 TỔNG QUAN VỀ NỀN TẢNG .NET . 45 III.1.1 Định nghĩa .NET . 45 III.1.2 Mục tiêu của .NET . 45 III.1.3 Dịch vụ của .NET . 45 III.1.4 Kiến trúc của .NET . 46 III.2 NGÔN NGỮ LẬP TRÌNH C# . 47 III.2.1 Tổng quan về ngôn ngữ lập trình C# . 47 III.2.2 Đặc trưng của các ngôn ngữ lập trình C# . 47 III.3 MÔI TRưỜNG PHÁT TRIỂN ỨNG DỤNG VISUAL STUDIO .NET . 48 CHưƠNG IV: ỨNG DỤNG KỸ THUẬT TÁI CẤU TRÚC MÃ NGUỒN ĐỂ DÒ TÌM VÀ CẢI TIẾN CÁC ĐOẠN MÃ XẤU TRONG CHưƠNG TRÌNH C# . 49 IV.1 GIẢI PHÁP VÀ CÔNG CỤ HỖ TRỢ REFACTOR . 49 IV.1.1 Đặc tả giải pháp triển khai . 49 IV.1.2 Một số công cụ và tiện ích hỗ trợ việc dò tìm và cải tiến mã xấu . 50 IV.1.3 Thử nghiệm minh họa các công cụ hỗ trợ refactor trong VS.Net . 57 IV.1.4 Nhận xét và đánh giá . 80 IV.2 ỨNG DỤNG KỸ THUẬT TÁI CẤU TRÚC MÃ NGUỒN ĐỂ DÒ TÌM VÀ CẢI TIẾN CÁC ĐOẠN MÃ XẤU TRONG CHưƠNG TRÌNH C#. 81 IV.2.1 Thực hiện kỹ thuật tái cấu trúc mã nguồn trên chương trình thực tế . 82 IV.2.2 Phân tích và đánh giá kết quả thực hiện . 94 IV.3 NHẬN XÉT VÀ KẾT LUẬN . 95 CHưƠNG V: KẾT LUẬN . 96 V.1 ĐÁNH GIÁ KẾT QUẢ CỦA ĐỀ TÀI . 96 V.2 PHẠM VI ỨNG DỤNG . 96 V.3 HưỚNG PHÁT TRIỂN . 97 V.3.1 Triển khai áp dụng trên các ngôn ngữ khác . 97 V.3.2 Thử nghiệm xây dựng một refactoring tool tích hợp vào VS.NET . 97 TÀI LIỆU THAM KHẢO . 98
Các file đính kèm theo tài liệu này:
- Ứng dụng kỹ thuật tái cấu trúc mã nguồn để triển khai dò tìm và cải tiến các đoạn mã xấu trong chương trình c#.pdf