ứng dụng framework và lập trình ràng buộc cho bài toán lập thời khóa biểu

99 768 0
ứng dụng framework và lập trình ràng buộc cho bài toán lập thời khóa biểu

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đỗ Huy Thịnh ỨNG DỤNG FRAMEWORK VÀ LẬP TRÌNH RÀNG BUỘC CHO BÀI TOÁN LẬP THỜI KHÓA BIỂU KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI – 2006 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Đỗ Huy Thịnh ỨNG DỤNG FRAMEWORK VÀ LẬP TRÌNH RÀNG BUỘC CHO BÀI TOÁN LẬP THỜI KHÓA BIỂU KHÓA LUẬN TỐT NGHIỆP HỆ ĐẠI HỌC CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: PGS.Ts. Nguyễn Văn Vỵ HÀ NỘI – 2006 Đỗ Huy Thịnh Trang - ii - LỜI CẢM ƠN Lời đầu tiên em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS.Nguyễn Văn Vỵ, thầy đã tận tình hướng dẫn giúp em hoàn thành khóa luận. Em xin bày tỏ lòng biết ơn tới các thầy cô giáo trong khoa Công nghệ thông tin - Trường Đại học Công nghệ - ĐHQGHN. Các thầy cô đã dạy bảo và luôn tạo điều kiện tốt nhất cho chúng em học tập trong suốt quá trình học đại học đặc biệt là trong thời gian làm khóa luậ n tốt nghiệp. Tôi xin cảm ơn các bạn sinh viên lớp K47CA trường Đại học Công nghệ, những người bạn luôn bên cạnh ủng hộ tôi trong suốt những năm học đại học. Cuối cùng con xin gửi tới Bố Mẹ và gia đình tình thương yêu và lòng biết ơn. Bố mẹ luôn là nguồn động viên và là chỗ dựa vững chắc cho con. Hà Nội, ngày 20 tháng 5 năm 2006 Sinh viên Đỗ Huy Thịnh Đỗ Huy Thịnh Trang - iii - TÓM TẮT NỘI DUNG Bài toán sắp xếp thời khóa biểu từ lâu luôn thu hút được sự quan tâm của nhiều nhà nghiên cứu và nhiều chuyên gia trong lĩnh vực liên quan. Sự nổi tiếng của bài toán không chỉ ở độ phức tạp mà còn ở tính thực tiễn, khả năng áp dụng trong thực tế. Khóa luận tốt nghiệp “Ứng dụng framework và lập trình ràng buộc cho bài toán lập thời khóa biểu” hướng tới xây dựng hệ thống nhằm giải quyế t bài toán xếp thời khóa biểu học kỳ vận dụng các công nghệ framework ( khung làm việc) và lập trình ràng buộc đối tượng. Khóa luận được tổ chức thành bốn phần với nội dung như sau: ♦ Chương I: Giới thiệu bài toán lập thời khóa biểu nói chung và bài toán lập thời khóa biểu học kỳ mà khóa luận giải quyết. ♦ Chương II: Giới thiệu tổng quan và trình bày các thành phần của ngôn ngữ ràng buộc đố i tượng. ♦ Chương III: Giới thiệu tổng quan và cấu trúc khung làm việc thông qua một số ví dụ. ♦ Chương IV: Phân tích, thiết kế và cài đặt hệ thống cho bài toán xếp thời khóa biểu học kỳ. Đỗ Huy Thịnh Trang - iv - MỤC LỤC LỜI CẢM ƠN ii TÓM TẮT NỘI DUNG iii MỤC LỤC iv DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU 1 Chương 1. 2 Bài toán lập Thời khóa biểu 2 1.1. Giới thiệu chung bài toán lập thời khóa biểu 2 1.1.1. Bài toán xếp thời khóa biểu nhà trường 2 1.1.2. Phân loại bài toán xếp thời khóa biểu. 2 1.1.3. Các đối tượng liên quan đến Thời khóa biểu 3 1.2. Bài toán lập thời khóa biểu giải quyết trong khóa luận 4 1.2.1. Hoạt động nghiệp vụ 5 1.2.2. Bảng tổng hợp các chức năng của hệ thống “Lập thời khóa biểu học kỳ” 6 1.2.3. Từ điển dữ liệu và mô hình lĩnh vực nghiệp vụ 7 Chương 2. 9 Ngôn ngữ ràng buộc đối tượng 9 2.1. Giới thiệu chung 9 2.2. Đặc điểm OCL 10 2.2.1. Cả truy vấn và ngôn ngữ ràng buộc 10 2.2.2. Ngôn ngữ dựa trên cơ sở toán học nhưng không có các ký hiệu toán học 10 2.2.3. Ngôn ngữ định nghĩa kiểu 11 2.2.4. Ngôn ngữ khai báo 11 2.3. Bài toán L&R 11 2.4. Ngữ cảnh của các biểu thức OCL 13 2.4.1. Mô hình kết hợp 13 2.4.2. Các lớp và các kiểu khác 15 2.4.3. Các thuộc tính và các đầu mút của liên kết 16 2.4.4. Các phương thức 17 2.4.5. Các biểu thức trong các biểu đồ hành vi 18 2.4.6. Các ca sử dụng 18 2.4.7. Các ràng buộc và thừa kế 18 2.5. Các thành phần OCL cơ bản 20 2.5.1. Các biểu thức, kiểu và giá trị 20 2.5.2. Các kiểu cơ sở và các toán tử 21 2.5.3. Các quy tắc ưu tiên 24 2.5.4. Chú thích 24 2.6. Các kiểu người dùng định nghĩa 24 Đỗ Huy Thịnh Trang - v - 2.6.1. Các thuộc tính và các phương thức 24 2.6.2. Các kết hợp và kết tập 25 2.6.3. Các kiểu liệt kê 27 2.7. Kiểu tập hợp 28 2.7.1. Các kiểu tập hợp 28 2.7.2. Các phép toán trên các kiểu tập hợp 30 2.7.3. Các phép toán lặp và duyệt 34 2.8. Các cấu trúc nâng cao 35 2.8.1. Các cấu trúc cho các điều kiện sau 35 Chương 3. 37 Giới thiệu khung làm việc 37 3.1. Sự ra đời của khung làm việc 37 3.1.1. Một số khái niệm hướng đối tượng 37 3.1.2. Sử dụng lại phần mềm 39 3.2. Ví dụ khung làm việc 43 3.2.1. Khung làm việc cộng tác 45 3.2.2. Làm mịn khung làm việc 51 Chương 4. 56 Xây dựng hệ thống cho bài toán lập Thời khóa biểu 56 4.1. Mô hình ca sử dụng 56 4.1.1. Xác định tác nhân 56 4.1.2. Các ca sử dụng 56 4.2. Phân tích 60 4.2.1. Phân tích kiến trúc 60 4.2.2. Phân tích ca sử dụng 61 4.3. Thiết kế 69 4.3.1. Thiết kế lớp 69 4.3.2. Cấu trúc dữ liệu và thuật toán 73 4.4. Cài đặt 77 4.4.1. Công cụ 77 4.4.2. Môi trường triển khai 77 4.4.3. Giao diện chính 78 4.4.4. Kết quả 86 KẾT LUẬN 89 TÀI LIỆU THAM KHẢO 90 Đỗ Huy Thịnh Trang - vi - DANH MỤC BẢNG BIỂU Bảng 1. Tổng hợp các chức năng hệ thống "Lập thời khóa biểu học kỳ" 6 Bảng 2. Từ điển dữ liệu 7 Bảng 3. Các phép toán định nghĩa trên kiểu dữ liệu boolean 21 Bảng 4. Các toán tử chuẩn kiểu số nguyên và số thực 22 Bảng 5. Các toán tử kiểu dữ liệu xâu ký tự 23 Bảng 6. Độ ưu tiên các toán tử 24 Bảng 7. Các phép toán trên kiểu tập hợp 30 Bảng 8. Các phép toán biến đổi trên kiểu tập hợp 31 Bảng 9. Các phép toán duyệt định nghĩa trên kiểu tập hợp 34 Bảng 10. Bảng luồng sự kiện ca sử dụng lập danh sách lớp học 57 Bảng 11. Bảng luồng sự kiện ca sử dụng lập danh sách môn học 57 Bảng 12. Bảng luồng sự kiện ca sử dụng lập danh sách giáo viên giảng dạy 58 Bảng 13. Bảng luồng sự kiện ca sử dụng xác định giáo viên dạy môn học cho lớp 59 Bảng 14. Bảng luồng sự kiện ca sử dụng lập danh sách ràng buộc 59 Bảng 15. Bảng luồng sự kiện ca sử dụng lập thời khóa biểu 60 Bảng 16. Các thuộc tính lớp thiết kế Spciality 69 Bảng 17. Các thuộc tính lớp thiết kế Teacher 69 Bảng 18. Các thuộc tính thêm lớp con Tie_Teacher 70 Bảng 19. Các thuộc tính lớp thiết kế Subject 70 Bảng 20. Các thuộc tính thêm lớp con Subject- Class 71 Bảng 21. Các thuộc tính lớp thiết kế Class 71 Bảng 22. Thuộc tính thêm lớp con Tie_Class 72 Bảng 23. Các thuộc tính lớp thiết kế Timeable 72 Bảng 24. Bảng chia môn học các ca học dựa trên số tiết học 75 Bảng 25. Kết quả chương trình trên một số bộ dữ liệu 87 Đỗ Huy Thịnh Trang - vii - DANH MỤC HÌNH VẼ Hình 1. Mô hình lĩnh vực nghiệp vụ bài toán xếp thời khóa biểu 8 Hình 2. Ví dụ mô hình UML không biểu diễn hết đặc tả 9 Hình 3. Mô hình hệ thống chương trình Loyalty 12 Hình 4. Định nghĩa ngữ cảnh trong mô hình UML 14 Hình 5. Cây thừa kế của ví dụ minh họa 19 Hình 6. Ví dụ điều hướng trong kết hợp ( kết tập) 25 Hình 7. Ví dụ lớp kết hợp 26 Hình 8. Ví dụ kiểu liệt kê 27 Hình 9. Ví dụ liên kết động và đa hình 38 Hình 10. Sự khác nhau trong điều khiển giữa khung làm việc và thư viện lớp 40 Hình 11. Ví dụ về áp dụng một mô hình khung làm việc 44 Hình 12. Sự cộng tác giữa các đối tượng 46 Hình 13. Khuôn mẫu cộng tác 48 Hình 14. Mô hình kiểu đích cho việc sử dụng sự quan sát 49 Hình 15. Ví dụ ứng dụng khung làm việc và sự thay thế 49 Hình 16. Kết quả mở của ứng dụng khung làm việc 50 Hình 17. Khung làm việc cho việc thương mại: duy trì kho hàng 52 Hình 18. Sự cộng tác Trade Supply 54 Hình 19. Làm tài liệu sự làm mịn khung làm việc 55 Hình 20. Mô hình ca sử dụng 56 Hình 21. Biểu đồ cộng tác ca sử dụng lập danh sách lớp học 61 Hình 22. Biểu đồ cộng tác ca sử dụng lập danh sách môn học trong học kỳ 62 Hình 23. Biểu đồ cộng tác ca sử dụng lập Danh sách giáo viên trong học kỳ 63 Hình 24. Biểu đồ cộng tác ca sử dụng lập danh sách lớp- môn học 65 Hình 25. Biểu đồ cộng tác ca sử dụng lập danh sách lớp- môn- giáo viên 66 Hình 26. Biểu đồ cộng tác ca sử dụng lập danh sách các ràng buộc 67 Hình 27. Biểu đồ cộng tác ca sử dụng lập thời khóa biểu 68 Hình 28. Biểu đồ lớp thiết kế 73 Hình 29. Ma trận đánh dấu trạng thái lớp 75 Hình 30. Giao diện menu Sửa dữ liệu 78 Hình 31. Giao diện chỉnh sửa danh sách chuyên ngành 79 Hình 32. Giao diện chỉnh sửa danh sách lớp học 79 Hình 33. Giao diện chỉnh sửa danh sách môn học. 80 Hình 34. Giao diện chỉnh sửa danh sách giáo viên 80 Hình 35. Giao diện menu Chọn dữ liệu 81 Hình 36. Giao diện nhập học kỳ - năm học 81 Hình 37. Giao diện chọn lớp học cho học kỳ 82 Hình 38. Giao diện chọn môn học cho học kỳ 82 Hình 39. Giao diện chọn giáo viên giảng dạy cho học kỳ 83 Đỗ Huy Thịnh Trang - viii - Hình 40. Giao diện menu Xếp TKB 83 Hình 41. Giao diện nhập ngày nghỉ lớp học 84 Hình 42. Giao diện nhập ngày nghỉ giáo viên 84 Hình 43. Giao diện thông báo xếp xong thời khóa biểu 85 Hình 44. Xác nhận hủy lập thời khóa biểu 85 Hình 45. Giao diện menu Xem TKB 85 Hình 46. Giao diện xem thời khóa biểu theo lớp 86 Hình 47. Giao diện xem thời lịch dạy giáo viên 86 Hình 48. Ví dụ kết quả thời khóa biểu lớp 87 Hình 49. Ví dụ kết quả lịch dạy giáo viên 1 88 Hình 50. Ví dụ kết quả lịch dạy giáo viên 2 88 Đỗ Huy Thịnh Trang - 1 - MỞ ĐẦU Bài toán lập thời khóa biểu từ lâu luôn thu hút được sự quan tâm của nhiều tổ chức giáo dục và các nhà nghiên cứu bởi tính ứng dụng cao và độ phức tạp. Các bài toán lập thời khóa biểu rất phong phú và đa dạng bởi các ràng buộc và yêu cầu của từng tổ chức. Bài toán đặc trưng bởi các ràng buộc và các ràng buộc có thể được thêm vào với nhiều mức khác nhau. Rất nhiều chương trình đã được lập và đưa vào s ử dụng. Phần lớn các chương trình đó được phát triển dựa trên cơ sở một mô hình toán học chặt chẽ và thuật toán xây dựng là dành riêng cho mô hình đó. Vì vậy khi áp dụng, nó chỉ thích hợp với một phạm vi hẹp mà ở đó bài toán đặt ra đúng với mô hình đã xây dựng. Ngay trong phạm vi đó, khi xuất hiện thêm một vài ràng buộc mới thì kết quả đã không hiệu quả, thậm chí không cho lời giải. Một vấn đề đặt ra là, cần phát triển một hệ thống thời khóa biểu có thể thích nghi được với nhiều lớp bài toán lập thời khóa biểu khác nhau về ràng buộc với sự cải biên sửa đổi không nhiều và tiến hành là dễ dàng nhanh chóng. Chỉ có một hệ thống như vậy mới thực sự đáp ứng được yêu cầu thực tế cao và hiệu quả. Khóa luận hướng đến giải quyết bài toán này dựa trên hai cơ sở sau: ♦ Tìm một thuật toán kiểu heuristic đủ đơn giản để giải bài toán. Do đó dễ cải biên mỗi khi thêm ràng buộc. ♦ Sử dụng hai công nghệ tiên tiến là Framework và lập trình ràng buộc. Vì lớp bài toán thời khóa biểu có phần lõi chung, nên Framework trợ giúp thiết kế xây dựng ứng dụng cho lớp này dễ dàng thay đổi ràng buộc bổ sung. Còn lập trình ràng buộc trợ giúp việc lâp trình có ràng buộc tiệ n lợi, nhanh chóng. [...]...Chương 1 Bài toán lập Thời khóa biểu Chương 1 Bài toán lập Thời khóa biểu 1.1 Giới thiệu chung bài toán lập thời khóa biểu 1.1.1 Bài toán xếp thời khóa biểu nhà trường Bài toán sắp xếp thời khóa biểu từ lâu luôn thu hút được sự quan tâm của nhiều nhà nghiên cứu và nhiều chuyên gia trong lĩnh vực liên quan Sự nổi tiếng của bài toán không chỉ ở độ phức tạp mà còn ở tính thực tiễn, khả năng áp dụng trong... mãn một tập hợp các ràng buộc của từng loại thời khoá biểu khác nhau Các ràng buộc bao gồm khả năng học tập của học viên và khả năng giảng dạy của giáo viên, số lượng và sức chứa của phòng học, hạn định về thời gian và yêu cầu đáp ứng của các sự kiện 1.1.2 Phân loại bài toán xếp thời khóa biểu a Theo loại khuôn dạng thời gian Thời khóa biểu Phân loại theo mẫu biểu của thời khóa biểu được in ra Trên... do đăng ký vào các bài giảng đã chuẩn bị trước của thời khóa biểu Các lớp học thực chất là các bài giảng được thiết kế thời khóa biểu giảng dạy chi tiết Thường thì sau khi thời khóa biểu các lớp được lên kế hoạch thì học sinh mới căn cứ vào thời khóa biểu cụ thể để đăng ký lớp học Việc tổ chức Thời khóa biểu theo lớp tín chỉ sẽ đơn giản hơn cho việc xếp Thời khóa biểu nhưng lại phức tạp cho công việc... nhiều loại thời khóa biểu khác nhau, rất đa dạng và tùy thuộc vào hoàn cảnh, điều kiện của từng trường Có thể liệt kê một số loại tiêu biểu: ♦ Thời khóa biểu TUẦN Là mẫu dạng thời khóa biểu cho một tuần và được dùng làm chuẩn cho tất cả các tuần của học kỳ ( năm học) Đa số các trường học của Việt Nam đều sử dụng khuôn mẫu này ♦ Thời khóa biểu HỌC KỲ Là mẫu khuôn dạng thời khóa biểu được biểu diễn đến... quan trọng trong bài toán xếp thời khóa biểu Phòng học đặc trưng bởi loại hình thức học ( lý thuyết, thực hành) hay sức chứa và căn cứ vào đó phân công cho các lớp 1.2 Bài toán lập thời khóa biểu giải quyết trong khóa luận Trong khóa luận này chỉ xét bài toán lập thời khoá biểu cho trường đại học ở Việt Nam mà cụ thể là trường Đại học Công Nghệ - Đại học Quốc Gia Hà Nội ( có thể tổng quát cho các trường... cứ vào ý kiến phản hồi, nhân viên phòng đào tạo xếp thời khóa biểu chính thức và gửi cho các đơn vị, bộ môn và các lớp Đỗ Huy Thịnh Trang - 5 - Chương 1 Bài toán lập Thời khóa biểu 1.2.2 Bảng tổng hợp các chức năng của hệ thống Lập thời khóa biểu học kỳ” Bảng 1 Tổng hợp các chức năng hệ thống "Lập thời khóa biểu học kỳ" Số chức năng Chức năng R1 Lập danh sách các lớp học sẽ học trong học kỳ R2 Lập. .. liên quan đến Thời khóa biểu Các đối tượng liên quan trực tiếp đến Thời khóa biểu bao gồm: Giáo viên giảng dạy, Phòng học và Môn học ( học phần giảng dạy): Đỗ Huy Thịnh Trang - 3 - Chương 1 Bài toán lập Thời khóa biểu ♦ Giáo viên: trong mô hình bài toán xếp Thời khóa biểu vai trò các giáo viên là ngang nhau Mỗi giáo viên về nguyên tắc thuộc một Khoa hay Bộ môn và sẽ có một Thời khóa biểu lịch giảng... năm học) ♦ Thời khóa biểu 2 ( nhiều) TUẦN / HỌC KỲ Đỗ Huy Thịnh Trang - 2 - Chương 1 Bài toán lập Thời khóa biểu Là loại thời khóa biểu khuôn dạng tuần, tuy nhiên thời gian phân bố cho thời khóa biểu được chia làm nhiều khoảng trong một học kỳ hay năm học Với mô hình này các môn học được sắp xêp không dàn đều trong một học kỳ mà thường co dãn trong những khoảng thời gian nhỏ hơn ♦ Thời khóa biểu THÁNG... giảng dạy và học tập 11 Training bureau Phòng Đào Tạo 12 Bureau of administration Phòng hành chính tổng hợp 13 Department Bộ phận 14 Classroom Giảng đường Địa điểm học tập Ưu tiên, ràng buộc Yêu cầu đặt ra khi lập thời khóa biểu 15 Priority Đỗ Huy Thịnh Trang - 7 - Chương 1 Bài toán lập Thời khóa biểu 1.2.3.2 Mô hình lĩnh vực nghiệp vụ Hình 1 Mô hình lĩnh vực nghiệp vụ bài toán xếp thời khóa biểu Đỗ... nào, thời khóa biểu học tập của học viên ( học sinh, sinh viên) và giảng dạy của giáo viên giảng dạy luôn có vai trò quan trọng kết nối hầu như toàn bộ các hoạt động Bài toán xếp thời khóa biểu là một trường hợp riêng của bài toán lập lịch trong đó đưa ra một chuỗi các sự kiện (thông thường là các môn học, bài giảng, môn thi) và bao gồm các giáo viên và học viên trong một khoảng thời gian định trước và . áp dụng trong thực tế. Khóa luận tốt nghiệp Ứng dụng framework và lập trình ràng buộc cho bài toán lập thời khóa biểu hướng tới xây dựng hệ thống nhằm giải quyế t bài toán xếp thời khóa biểu. DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU 1 Chương 1. 2 Bài toán lập Thời khóa biểu 2 1.1. Giới thiệu chung bài toán lập thời khóa biểu 2 1.1.1. Bài toán xếp thời khóa biểu nhà trường. là Framework và lập trình ràng buộc. Vì lớp bài toán thời khóa biểu có phần lõi chung, nên Framework trợ giúp thiết kế xây dựng ứng dụng cho lớp này dễ dàng thay đổi ràng buộc bổ sung. Còn lập

Ngày đăng: 06/11/2014, 16:35

Từ khóa liên quan

Mục lục

  • TrangBia.pdf

  • lv_style_final_new_bk.pdf

    • LỜI CẢM ƠN

    • TÓM TẮT NỘI DUNG

    • MỤC LỤC

    • DANH MỤC BẢNG BIỂU

    • DANH MỤC HÌNH VẼ

    • MỞ ĐẦU

    • Chương 1.

    • Bài toán lập Thời khóa biểu

      • 1.1. Giới thiệu chung bài toán lập thời khóa biểu

        • 1.1.1. Bài toán xếp thời khóa biểu nhà trường

        • 1.1.2. Phân loại bài toán xếp thời khóa biểu.

          • a. Theo loại khuôn dạng thời gian Thời khóa biểu.

          • b. Phân loại theo đơn vị xếp Thời khóa biểu

          • 1.1.3. Các đối tượng liên quan đến Thời khóa biểu

          • 1.2. Bài toán lập thời khóa biểu giải quyết trong khóa luận

            • 1.2.1. Hoạt động nghiệp vụ

              • 1.2.1.1. Lên danh sách các lớp sẽ được học trong học kỳ

              • 1.2.1.2. Xác định môn học cho mỗi lớp ( lớp- môn)

              • 1.2.1.3. Phân công giảng dạy ( lớp- môn- giáo viên)

              • 1.2.1.4. Lên danh sách các phòng học

              • 1.2.1.5. Lập thời khóa biểu

              • 1.2.2. Bảng tổng hợp các chức năng của hệ thống “Lập thời khóa biểu học kỳ”

              • 1.2.3. Từ điển dữ liệu và mô hình lĩnh vực nghiệp vụ

                • 1.2.3.1. Từ điển dữ liệu

Tài liệu cùng người dùng

Tài liệu liên quan