I. Giới thiệu
Trong bối cảnh công nghệ thông tin ngày càng phát triển, vấn đề sao chép mã nguồn trong các trường đại học trở thành một thách thức lớn. Phương pháp top down được đề xuất nhằm phát hiện sao chép mã nguồn hiệu quả hơn bằng cách phân tích từ cấp độ tổng quát nhất đến chi tiết. Việc áp dụng ngôn ngữ mở trong hệ thống giúp giảm thiểu thời gian và chi phí khi mở rộng hệ thống cho các ngôn ngữ lập trình khác. Mục tiêu của luận văn này là nghiên cứu và phát triển một phương pháp mới trong việc phát hiện sao chép mã nguồn, từ đó góp phần nâng cao ý thức tôn trọng tác quyền trong học thuật.
II. Tổng kết các công trình liên quan
Phương pháp attribute-counting và structure-metric là hai phương pháp chính được sử dụng trong phát hiện sao chép mã nguồn. Các hệ thống đầu tiên thường dựa vào attribute-counting, sử dụng các chỉ số để xác định mức độ tương tự giữa các chương trình. Tuy nhiên, các hệ thống hiện đại đã chuyển sang structure-metric, cho phép so sánh các chuỗi token đại diện cho cấu trúc chương trình mà không yêu cầu sự trùng khớp tuyệt đối. Việc so sánh này giúp phát hiện những tương đồng trong mã nguồn một cách hiệu quả hơn, đặc biệt trong môi trường học thuật nơi mà việc sao chép ngày càng gia tăng.
III. Phương pháp top down và hệ thống ngôn ngữ mở
Phương pháp top-down cho phép phân tích mã nguồn theo ba cấp độ: module, lưu đồ và phát biểu. Điều này giúp giảm thiểu số lượng các cặp chương trình cần so sánh, tập trung vào những phần có khả năng sao chép cao nhất. Ngôn ngữ mở được thiết kế để có thể áp dụng cho nhiều ngôn ngữ lập trình khác nhau mà không cần phát triển lại hệ thống từ đầu. Bằng cách này, chi phí và thời gian phát triển được tối ưu hóa. Hệ thống được thử nghiệm cho thấy độ chính xác cao hơn so với các hệ thống hiện tại như Sim và JPlag, chứng minh hiệu quả của phương pháp đề xuất.
IV. Thiết kế và hiện thực hệ thống
Hệ thống được thiết kế với cấu trúc rõ ràng, bao gồm bộ phân tích cú pháp và bộ so sánh. Các thuật toán được sử dụng trong hệ thống cũng được tối ưu hóa để tăng tốc độ và độ chính xác trong việc phát hiện sao chép. Việc thử nghiệm với các tập dữ liệu khác nhau cho thấy hệ thống có khả năng phát hiện các bài sao chép với độ chính xác cao, đồng thời cung cấp những thông tin chi tiết về mức độ tương đồng giữa các mã nguồn. Điều này không chỉ giúp giảng viên trong việc chấm điểm mà còn nâng cao ý thức của sinh viên về vấn đề sao chép trong học tập.
V. Thử nghiệm đánh giá và kết luận
Kết quả thử nghiệm cho thấy hệ thống phát hiện sao chép mã nguồn dựa trên phương pháp top-down đạt hiệu suất cao hơn so với các hệ thống trước đây. Đặc biệt, hệ thống này cho phép phân loại các bài sao chép theo độ tương đồng, giúp giảng viên dễ dàng đánh giá và xử lý các trường hợp gian lận. Luận văn này không chỉ đóng góp vào lĩnh vực phát hiện sao chép mà còn mở ra hướng nghiên cứu mới cho việc phát triển các hệ thống tương tự trong tương lai.