Đề tài Nghiên cứu xây dựng hệ thống website quản lý đào tạo tín chỉ cho đại học Đà Nẵng

TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG MỤC LỤC TỔNG QUAN ĐỀ TÀI .1 I. Bối cảnh đề tài 1 II. Mục đích . 2 III. Hướng nghiên cứu . 2 CƠ SỞ LÝ THUYẾT .4 I. Lập trình Java trong môi trường Web . 4 I.1. Một số khái niệm liên quan đến Web 4 I.2. Kết nối cơ sở dữ liệu 9 II. Mô hình phát triển ứng dụng Web 11 II.1. Kiến trúc mô hình 1 . 11 II.2. Kiến trúc mô hình 2 (Model – View – Controller) 12 III. Ngôn ngữ mô hình hóa thống nhất (UML) . 12 III.1. Giới thiệu UML . 12 III.2. UML và các giai đoạn của chu trình phát triển phần mềm 15 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17 I. Phân tích hiện trạng . 17 II. Phân tích chức năng của hệ thống . 29 II.1. Các tác nhân (actor) . 29 II.2. Usecase của admin . 29 II.3. Usecase của giáo viên 34 II.4. Usecase của sinh viên 36 III. Thiết kế . 39 III.1. Sơ đồ lớp (class diagram) 39 III.2. Sơ đồ thành phần (component diagram) 43 III.3. Sơ đồ triển khai (deployment diagram) . 44 XÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ ĐẠT ĐƯỢC 45 I. Xây dựng chương trình . 45 I.1. Xây dựng dữ liệu . 45 I.2. Xây dựng giao diện 56 I.3. Xây dựng gói theo mô hình MVC . 58 I.4. Các giải pháp . 61 II. Kết quả đạt được . 69 KẾT LUẬN 75 I. Đánh giá kết quả . 75 I.1. Về mặt lý thuyết . 75 I.2. Về mặt chương trình 75 II. Hướng phát triển . 76 II.1. Về mặt lý thuyết . 76 II.2. Về mặt chương trình 76 TỔNG QUAN ĐỀ TÀI I. Bối cảnh đề tài Giáo dục là nền tảng cho sự phát triển của cả một dân tộc, đặc biệt là giáo dục ở bậc đại học. Người ta thường dùng các chỉ số kinh tế để đánh giá sự phát triển của một quốc gia, thế nhưng để đánh giá sự phát triển của cả một dân tộc thì người ta lại xét đến các khía cạnh của giáo dục đặc biệt là giáo dục đại học. Trên thế giới, các quốc gia đã phát triển đều là những nước có nền giáo dục tiên tiến, với những trường đại học hàng đầu tiêu biểu là Hoa Kỳ, Nhật Bản, Anh và gần chúng ta nhất là Singapore. Nền giáo dục của nước ta đang từng bước cải cách và phát triển. đại học Đà Nẵng là một trong ba trọng điểm trong việc phát triển nền giáo dục đại học của nước ta. Trong quá trình phát triển của mình, đại học Đà Nẵng đang chuyển dần từ Đào tạo theo niên chế sang Đào tạo theo tín chỉ. Quản lý đào tạo tín chỉ tuy là một công việc khó khăn và phức tạp nhưng công việc này vô cùng quan trọng; quản lý tốt thì chất lượng đào tạo được nâng cao. Hiện tại, việc quản lý đào tạo tín chỉ tại Đại học Đà Nẵng đang gặp một số khó khăn, xuất phát từ nhiều nguyên nhân khác nhau: mới đầu chuyển sang đào tạo tín chỉ, hệ thống quản lý mới xây dựng, chưa thống nhất, và việc quản lý này vẫn còn mang nhiều ảnh hưởng của hệ thống quản lý niên chế hiện có. Sinh viên phải đăng ký môn học bằng tay, việc kiểm tra xung đột về thời khóa biểu của sinh viên không được thực hiện trong quá trình đăng ký. Sinh viên vẫn chưa biết được quan hệ của các học phần, học phần nào nên học trước học phần nào nên học sau Việc quản lý của nhân viên quản trị cũng gặp nhiều khó khăn như xây dựng khung chương trình, xây dựng thời khóa biểu, nhập điểm Bài toán đặt ra lúc này là làm sao để xây dựng được một hệ thống website quản lý đào tạo tín chỉ đáp ứng được tất cả nhu cầu cho giáo viên, sinh viên và quản trị viên. Cụ thể là hệ thống website phải có những chức năng sau:  Hệ thống cho phép giáo viên dễ dàng biết được thời khóa biểu của mình và danh sách các lớp học phần mà mình dạy, cụ thể là giáo viên sẽ dạy ở phòng nào, môn gì vào thời điểm hiện tại.  Hệ thống cho phép sinh viên dễ dàng biết được điểm của mình, số tín chỉ mà mình đã đạt được, biết được rằng nên đăng ký môn học nào trước và cuối cùng là cho phép sinh viên đăng ký một lớp học phần.  Hệ thống còn giúp quản trị viên dễ dàng cập nhật các thông tin liên quan đến đào tạo, dễ dàng xây dựng khung chương trình và dễ dàng xây dựng thời khóa biểu cho các lớp học phần mà không lo xung đột về thời gian. Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng II. Mục đích Trong bối cảnh trên, chúng tôi, bằng những kiến thức đã học và sự hướng dẫn tận tình của giáo viên, chúng tôi thực hiện đề tài này nhằm mục đích nghiên cứu những vấn đề gặp phải trong việc quản lý đào tạo tín chỉ; từ đó chúng tôi đưa ra những giải pháp khắc phục và cuối cùng là cụ thể hóa các giải pháp bằng việc xây dựng một hệ thống website quản lý đào tạo tín chỉ có đầy đủ chức năng nêu trên. Ngoài ra, khi xây dựng hệ thống website này chúng tôi mong muốn góp một phần nhỏ trong sự nghiệp phát triển của giáo dục Việt Nam. Hệ thống xây dựng không tránh khỏi những hạn chế, chúng tôi mong nhận được ý kiến đóng góp để hoàn thiện sau này. III. Hướng nghiên cứu III.1. Về mặt lý thuyết Nghiên cứu việc quản lý đào tạo tín chỉ tại trường Đại học Bách Khoa Đà Nẵng hiện nay. Nghiên cứu những vấn đề gặp phải của việc quản lý đào tạo tín chỉ. Nghiên cứu lý thuyết xây dựng một hệ thống website tác nghiệp bằng công nghệ Java, cụ thể là JSP và Servlet. Đưa ra các định hướng phát triển của đề tài. III.2. Công cụ xây dựng đề tài Công cụ nghiên cứu cơ sở lý thuyết: các tài liệu liên quan đến đào tạo tín chỉ do Đại học Đà Nẵng phát hành, các tài liệu liên quan đến lập trình Java (giáo trình và ebook), các trang web liên quan Công cụ xây dựng hệ thống website: Sun Java JDK 1.5, Sun IDE NetBean 4.1, Apache Tomcat 5.5, Microsoft SQL Server 2000 Service Pack 4, Microsoft Visio 2003 beta. III.3. Dự kiến kết quả đạt được Với những công cụ và kiến thức thu thập được, chúng tôi sẽ xây dựng hệ thống website phục vụ quản lý đào tạo tín chỉ. Hệ thống website gồm các chức năng ứng với từng loại người dùng như sau  Giáo viên xem thời khóa biểu: Sau khi đăng nhập, giáo viên xem được thời khóa biểu của mình, cụ thể là giáo viên có thể biết được trong tuần mình sẽ phải dạy những lớp nào, ở phòng nào vào những thời gian nào.  Giáo viên xem danh sách lớp học phần: Giáo viên có thể xem danh sách các lớp học phần mà mình dạy. Cụ thể là có thể xem được số lượng sinh viên tối đa, số lượng sinh viên tối thiểu và số lượng sinh viên hiện tại. Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng  Sinh viên xem khung chương trình: Sinh viên xem khung chương trình mà mình cần học. Cụ thể là sinh viên có thể biết được trong một học kỳ cụ thể, mình sẽ phải học những môn nào.  Sinh viên xem học phần và quan hệ học phần: Sinh viên có thể xem danh sách các học phần và quan hệ giữa chúng. Các học phần này được trình bày ở dạng cây để sinh viên dễ dàng biết được học phần nào nên học trước và học phần nào nên học sau.  Sinh viên xem điểm: Sinh viên xem điểm của mình. Cụ thể là sinh viên có thể biết được điểm của từng học phần mà mình đã học, biết được số tín chỉ mình đã đạt được và biết được mình đã hoàn tất bao nhiêu phần của quá trình học đại học tại trường.  Sinh viên đăng ký lớp học phần: Sinh viên xem danh sách các lớp học phần đang được mở trong học kỳ hiện hành để từ đó đăng ký vào một trong các lớp đó. Quá trình đăng ký này sẽ được kiểm tra chặt chẽ các ràng buộc. Ngoài ra, sinh viên có thể hủy bỏ một lớp học phần mà mình đã đăng ký.  Sinh viên xem thời khóa biểu: Sinh viên xem thời khóa biểu trong học kỳ hiện hành.  Nhân viên quản trị upload các danh sách liên quan: Nhân viên quản trị (admin) sau khi đăng nhập sẽ có chức năng upload, chức năng này cho phép upload danh sách giáo viên, sinh viên, lớp học, phòng học, học phần và các thông tin khác. Các danh sách này được lưu ở dạng file excel và tự động được cập nhật vào cơ sở dữ liệu.  Nhân viên quản trị cập nhật thông tin: Nhân viên quản trị dễ dàng cập nhật thông tin của đối tượng bất kỳ liên quan đến quá trình quản lý đào tạo.  Nhân viên quản trị xây dựng khung chương trình: Nhân viên quản trị dễ dàng xây dựng khung chương trình cho từng khóa học của từng ngành.  Nhân viên quản trị xây dựng thời khóa biểu: Nhân viên quản trị dễ dàng xây dựng thời khóa biểu cho từng lớp học phần mà không lo ngại xung đột thời khóa biểu. Với kết quả dự kiến đạt được của chương trình, luận văn được tổ chức thành các chương cụ thể như sau: Chương 1. Cơ sở lý thuyết: Giới thiệu tổng quan lý thuyết và công cụ thực hiện để tài. Trong chương này, chúng tôi trình bày lý thuyết xây dựng một hệ thống website bằng ngôn ngữ JSP theo mô hình Model View Controller. Chương 2. Phân tích thiết kế hệ thống: Trong chương này, chúng tôi trình bày về phân tích hiện trạng, phân tích hệ thống và thiết kế hệ thống. Chương 3. Xây dựng chương trình và kết quả đạt được: Trong chương này, chúng tôi trình bày các bước xây dựng chương trình và các kết quả đạt được. CHÚ THÍCH : TÀI LIỆU TRÊN GỒM FILE PDF + WORD

doc86 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3216 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu xây dựng hệ thống website quản lý đào tạo tín chỉ cho đại học Đà Nẵng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
cần đăng ký liệu có cần phải học trước một số học phần khác hay không, nếu có thì sinh viên đó đã học hoặc đã vượt qua các học phần ràng buộc hay không. Nếu có sự xung đột nghĩa là sinh viên vẫn chưa học hoặc không thể vượt qua học phần ràng buộc thì phòng quy trình sẽ chuyển sang bước 6. Ngược lại, quy trình sẽ chuyển sang bước 7. Bước 6: Thông báo lỗi cho sinh viên. Vì kế hoạch đào tạo của trường rất chặt chẽ nên, thông thường có rất ít sinh viên không đáp ứng yêu cầu về các ràng buộc học phần. Do đó, phòng đào tạo sẽ phát hành thông báo cho những sinh viên vẫn chưa đăng ký được và dán ở từng khoa. Sinh viên đọc được thông báo này sẽ liên hệ với phòng đào tạo để chỉnh sửa cho phù hợp. Nghĩa là sinh viên sẽ thực hiện lại bước 4. Bước 7: Kiểm tra xung đột thời khóa biểu. Bước này kiểm tra liệu thời khóa biểu của sinh viên có bị xung đột hay không. Nghĩa là kiểm tra xem có hiện tượng trong cùng một thời điểm, sinh viên có học 2 lớp học phần khác nhau hay không. Nếu có xung đột thì tiến trình sẽ chuyển sang bước 6. Ngược lại tiến trình sẽ chuyển sang bước 8. Bước 8: Kiểm tra số lượng từng lớp học phần. Khi đăng ký, sinh viên không hề biết được có bao nhiêu người cùng đăng ký như mình vào một lớp học phần do đó sẽ có hiện tượng số sinh viên đăng ký vào lớp học phần vượt quá số lượng cho phép của lớp học phần đó. Nếu số lượng sinh viên đăng ký vượt quá số lượng cho phép thì tiến trình chuyển sang bước 9. Ngược lại, tiến trình sẽ chuyển sang bước 10. Bước 9: Kiểm tra số lượng sinh viên vượt quá mức. Nếu số lượng không đáng kể thì phòng đào tạo sẽ phát hành thông báo và tiến trình sẽ quay lại bước 6. Bước 10: Tự điều chỉnh số lượng. Trong trường hợp số lượng đăng ký vượt trội, phòng đào tạo sẽ điều chỉnh số lượng cho phù hợp. Việc điều chỉnh này là rất khó khăn. Bước 11: Xác nhận đăng ký thành công. Khi tất cả các bước trên đều hoàn tất, phòng đào tạo sẽ phát hành cho sinh viên danh sách các lớp mà sinh viên đã đăng ký để sinh viên thực hiện việc nộp học phí. I.10.3. Các biểu mẫu liên quan - Chương trình đào tạo khóa 2006 – 2011. - Sổ tay sinh viên. - Mẫu đăng ký học phần. - Thời khóa biểu. - Biên lai thu học phí. I.11. Đánh giá hiện trạng I.11.1. Ưu điểm - Chương trình đào tạo được thực hiện rất khoa học. - Kế hoạch đào tạo được biên soạn chặt chẽ. I.11.2. Nhược điểm - Quy trình đăng ký học tín chỉ quá rườm rà. - Việc kiểm tra ràng buột và kiểm tra xung đột thời khóa biểu của sinh viên diễn ra khó khăn. Bản thân sinh viên sau khi đăng ký cũng chưa thể biết được mình có được học lớp học phần đó hay không. - Khi số lượng sinh viên đăng ký vào một lớp học phần vượt quá giới hạn thì có sự tự điều chỉnh của phòng đào tạo. Sự điều chỉnh này vẫn còn chưa hợp lý vì với việc đăng ký bằng tay thì không thể biết được sinh viên nào đăng ký trước và sinh viên nào đăng ký sau để sắp xếp ưu tiên. I.11.3. Những đề xuất cải tiến - Để tiết kiệm thời gian và công sức của phòng đào tạo, việc sinh viên đăng ký học lớp học phần nên được thực hiện qua mạng. - Quá trình kiểm tra ràng buộc các học phần, kiểm tra xung đột thời khóa biểu cũng như kiểm tra số lượng sinh viên đã đăng ký phải được thực hiện với một tốc độ thật cao để khi một sinh viên đăng ký, sinh viên đó có thể biết ngay lập tức là mình đã đăng ký được hay không. II. Phân tích chức năng của hệ thống II.1. Các tác nhân (actor) Hệ thống quản lý tín chỉ hiện tại được tương tác bởi 3 tác nhân. - Admin: Nhân viên quản trị. Nhân viên quản trị là người trực tiếp vận hành và điều khiển hệ thống quản lý đào tạo tín chỉ, người thực hiện cung cấp thông tin cho hệ thống để các tác nhân khác sử dụng. - Sinh viên: Sinh viên đang học tại trường. Sinh viên là tác nhân sử dụng hệ thống. Các chức năng chính của hệ thống được xây dựng để hướng tới tác nhân này. - Giáo viên: Giáo viên đang giảng dạy tại trường. Giáo viên cũng là tác nhân sử dụng hệ thống. II.2. Usecase của admin Chỉnh sửa sinh vien Upload Danh sách Sinh Viên Chỉnh sửa khoa  Chỉnh sửa giáo viên  Đăng nhập  Upload danh sách giáo viên  Upload danh sách khoa Chỉnh sửa ngành Chỉnh sửa đơn vị Upload danh sách đơn vị  Upload danh sách ngành Chỉnh sửa phòng học Upload danh sách phòng học Chỉnh sửa học kỳ  Chỉnh sửa học phần và quan hệ Admin  Upload danh sách lớp sinh hoạt  Upload danh sách Học Phần Chỉnh sửa khung chương trình Chỉnh sửa lớp học phần Upload điểm  Danh sách lớp học phần Download các report Hình 8 – Admin Usecase a. Usecase Admin Đăng nhập: Usecase này cho phép người dùng sử dụng tên và mật khẩu của mình để đăng nhập vào hệ thống với quyền admin trước khi thực hiện các chức năng quản lý. - Dòng sự kiện chính: Usecase này bắt đầu khi người dùng muốn đăng nhập vào hệ thống. 1. Người dùng chọn chức năng đăng nhập hoặc bắt đầu vào trang web của admin. 2. Hệ thống hiển thị form đăng nhập. 3. Người dùng nhập tên và mật khẩu. 4. Hệ thống sẽ kiểm tra tên, mật khẩu tương ứng để lấy ra quyền truy cập tương ứng và cho phép người dùng đăng nhập vào hệ thống với quyền admin nếu kiểm tra thành công - Dòng sự kiện khác: Tên hoặc mật khẩu không hợp lệ. Trong dòng sự kiện chính, nếu người dùng nhập sai tên hoặc mật khẩu thì hệ thống sẽ hiển thị một thông báo lỗi. Hệ thống sẽ hiển thị form đăng nhập và người dùng sẽ bắt đầu lại dòng sự kiện chính. Người dùng có thể thoát khỏi hệ thống bằng cách tắt chương trình browser. - Các yêu cầu đặc biệt: không có. - Điều kiện tiên quyết: Người dùng phải ở trạng thái chưa đăng nhập mới có thể thực hiện được chức năng này. - Điều kiện chuyển tiếp: Nếu usecase thành công, người dùng sẽ đăng nhập vào hệ thống với quyền admin. Ngược lại, trạng thái của hệ thống sẽ không thay đổi. - Biểu đồ hoạt động (Activity Diagram) Hình 9 – Activity diagram của usecase admin đăng nhập - Biểu đồ trình tự (Sequence Diagram) Admin LogIn Page LogInController DB User 1: Click LogIn  2: Load Page 3: Nhập UserId và Password 4: Ấn nút Submit 5: Log In 6: Lấy quyền truy cập ứng với UserId & Password 7: Kiểm tra quyền truy cập 8: Trả kết lỗi nếu UserId và Password không hợp lệ 9: Thiết lập session 10: Trả về trang của admin Hình 10 – Sequence diagram của usecase admin đăng nhập b. Usecase admin upload điểm: Usecase này mô tả cách admin upload danh sách điểm của sinh viên dưới dạng file excel. - Dòng sự kiện chính: Usecase này bắt đầu khi admin thực hiện updoad điểm của sinh viên. 5. Admin chọn chức năng upload điểm. 6. Hệ thống đưa ra form để admin nhập đường dẫn file excel hoặc thực hiện chức năng browse để tìm file. 7. Admin click vào nút upload. 8. Hệ thống ở phía client sẽ thực hiện việc upload file excel đó đến server. 9. Hệ thống ở phía server thực hiện việc đọc file excel và trả về phía client danh sách sinh viên và điểm của sinh viên. - Admin sẽ click vào nút Update Database - Hệ thống sẽ thực hiện việc cập nhật danh sách này vào cơ sở dữ liệu - Dòng sự kiện khác: - Upload gặp lỗi kết nối: Nếu trong quá trình upload, kết nối bị ngắt thì hệ thống trả về thông báo lỗi ở phía client. Hệ thống ở phía client sẽ đưa ra form để admin thực hiện việc upload lại, admin sẽ thực hiện lại dòng sự kiện chính. - Lỗi đọc file excel: Trong quá đọc file excel để cập nhật vào cơ sở dữ liệu, nếu việc đọc có sự cố về kiểm tra lỗi ràng buộc, sự cố về kiểu dữ liệu, hệ thống sẽ trả về thông báo lỗi ở phía client. Hệ thống ở phía client sẽ đưa ra form để admin thực hiện việc upload lại, admin sẽ thực hiện lại dòng sự kiện chính. - Các yêu cầu đặc biệt: không có. - Điều kiện tiên quyết: Người dùng phải đăng nhập vào hệ thống với quyền admin. - Điều kiện chuyển tiếp: Nếu usecase thành công, hệ thống sẽ gửi về phía người dùng thông báo update thành công. Ngược lại, trạng thái của hệ thống không thay đổi. - Biểu đồ hoạt động (Activity Diagram) Hình 11 – Activity Diagram của usecase admin upload điểm - Biều đồ trình tự (Sequence Diagram) Admin Upload page ProcessUpload DBDiemSinhVien 1: Click Upload điểm 2: Load Page 3: Chọn file excel 4: Click nút Upload 4: Upload file 5: Đọc file excel 6: Trả về danh sách 7: Hiển thị danh sách 8: Click nút Update DB 9: Yêu cầu cập nhật DB 10: Cập nhật DB 12: Cập nhật 13: Trả về kết quả hoặc lỗi nếu có Hình 12 – Sequence Diagram của usecase admin upload điểm II.3. Usecase của giáo viên Đăng nhập Xem thời khóa biểu Giáo viên Xem danh sách lớp học phần Hình 13 – Usecase của giáo viên Usecase giáo viên xem thời khóa biểu: Usecase này mô tả cách giáo viên xem thời khóa biểu của mình - Dòng sự kiện chính: 1. Giáo viên chọn chức năng xem thời khóa biểu. 2. Hệ thống ở phía server truy vấn cơ sở dữ liệu để lấy ra thời khóa biểu tương ứng của giáo viên rồi trả về client. 3. Hệ thống ở phía client sẽ hiển thị kết quả lên browser. - Dòng sự kiện khác: không có. - Các yêu cầu đặc biệt: không có. - Điều kiện tiên quyết: Giáo viên phải đăng nhập mới có thể sử dụng chức năng này. - Điều kiện chuyển tiếp: Nếu usecase thành công, hệ thống sẽ hiển thị thời khóa biểu ở dạng bảng ở phía client. Nếu không, trạng thái hệ thống không đổi. - Biểu đồ hoạt động (Activity Diagram) Click xem thời khóa biểu [Loi neu chua dang nhap] Hiển thị thời khóa biểu Hình 14 – Activity Diagram của usecase giáo viên xem thời khóa biểu - Biều đồ trình tự (Sequence Diagram) Hình 15 – Sequence Diagram của usecase giáo viên xem thời khóa biểu II.4. Usecase của sinh viên Đăng nhập Xem khung chương trinh Xem cây quan hệ học phần Xem điểm Xem học phần cần đăng ký Sinh viên  Xem thời khóa biểu Xem học phần đã đăng ký Hủy bỏ một lớp học phần Hình 16 – Usecase của sinh viên a. Usecase sinh viên đăng ký: Usecase này mô tả cách sinh viên đăng ký một lớp học phần. - Dòng sự kiện chính: 1. Sinh viên chọn chức năng đăng ký. 2. Hệ thống ở phía server truy vấn cơ sở dữ liệu để lấy ra danh sách các lớp học phần hiện có và vẫn còn chỗ để đăng ký rồi trả về phía client. 3. Hệ thống ở phía client sẽ hiển thị danh sách các lớp học phần. 4. Sinh viên chọn một lớp học phần. - Dòng sự kiện khác: không có. - Các yêu cầu đặc biệt: không có. - Điều kiện tiên quyết: Sinh viên phải đăng nhập mới có thể sử dụng chức năng này. - Điều kiện chuyển tiếp: Nếu usecase thành công, hệ thống sẽ hiển thị thời khóa biểu ở dạng bảng ở phía client. Nếu không, trạng thái hệ thống không đổi. - Biểu đồ hoạt động (Activity Diagram) Đăng ký môn học Đăng nhập [Khong dang nhap] [Het cho] Hiển thị danh sách lớp học phần [Khong dap ung hoc phan hoc truoc] [Xung dot thoi khoa bieu]  Sinh viên chọn lớp học phần Cập nhập CSDL Hình 17 – Activity Diagram của usecase sinh viên đăng ký lớp học phần - Biểu đồ trình tự (Sequence Diagram) Sinh Viên DangKyPage ProcessDangKy DbHocPhan 1: Click Đăng ký  2: Page Load 3: Kiểm tra Sesction 4: Trả về lỗi nếu chưa đăng nhập 5: Kiểm tra ràng buộc 6: Lấy danh sách môn học liên quan 7: Kiểm tra số SV đã đăng ký 8: Trả về lỗi nếu lớp học phần đã đủ người 8: Kiểm tra học phần tiên quyết 9: Trả về lỗi nếu chưa đạt các học phần tiên quyết 10: Kiểm tra học phần học trước 11: Trả về lỗi nếu các chưa từng học các học phần học trước 12: Kiểm tra thời khóa biểu 13: Trả về lỗi nếu thời khóa biểu bị xung đột 14: Cập nhật thông tin vào DB 15: Trả về đã đăng ký thành công Hình 18 – Sequence Diagram của usecase sinh viên đăng ký lớp học phần III. Thiết kế III.1. Sơ đồ lớp (class diagram) Vì số lượng lớp (class) của hệ thống rất nhiều nên không thể đặt tất cả các lớp cũng như quan hệ giữa chúng vào trong một hình vẽ. Do đó chúng tôi trình bày phần này theo nhóm các quan hệ. III.1.1. Sinh viên và các quan hệ với lớp sinh hoạt ngành, khóa học Nganh -maNganh : string -tenNganh : string -maTruongDT : string -maNganhDT : string -khoi : string -moTa : string -soTinChi : int -soHocKy : int 1..*  1..1 LopSinhHoat -maLopSinhHoat : string -maNganh : string -tenLop : string -moTa : string -maKhoaHoc : long  1..* 1..1  KhoaHoc -maKhoaHoc : string -tenKhoaHoc : string -namVaoTruong : int 1..1 1..* SinhVien -maHS : string -maLopNienChe : string Hình 19 – Class Diagram: Sinh viên, Lớp sinh hoạt, Ngành, Khóa học III.1.2. Học phần và quan hệ học phần Hình 20 – Class Diagram: Học phần, quan hệ học phần Hình 21 – Object Diagram: Học phần, quan hệ học phần III.1.3. Lớp học phần và học kỳ NhomLopHocPhan -maNhom : string -tenNhom : string -maNganh : string 1..* 1..1  LopHocPhan -maLopHP : string -tenLop : string -maNhomLopHocPhan : string -maHocPhan : string -moTa : string -status : long  HocKy -maHocKy : long -hocKy : int -namHoc : int -moTa : string +thietLapHocKyHienHanh() : int PhongHoc -maPhongHoc : long -tenPhong : string 1..*  1..*  1..1  1..1 ChiTietLopHocPhan 1..*  1..*  GiaoVien -trucThuocDonVi : string -tinhTrang : string ThoiKhoaBieu -maThoiKhoaBieu : long -mon : long -tue : long -wed : long -thu : long -fri : long -sat : long -sun : long  1..*  1..1 1..1 -maChiTietLopHocPhan : long -maLopHocPhan : string -maHocKy : long -maGiaoVien : string -maPhongHoc : long -maThoiKhoaBieu : long -soLuongToiThieu : int -soLuongToiDa : int -soLuongHienTai : int  1..1 -maGiaoVien : string -hoLot : string -tenGiaoVien : string -email : string -maKhoa : string Hình 22 – Class Diagram: Lớp học phần, học kỳ III.1.4. Khung chương trình Hình 23 – Class Diagram: Khung chương trình Hình 24 – Object Diagram: Khung chương trình III.1.5. Sinh viên đăng ký lớp học phần SinhVien -maSinhVien : string -maLopNienChe : string  1..* 1..1  1..1  1..* LopHocPhanTheoKy -maLopHocPhanTheoHocKy : long -maHocPhan : string -maHocKy : long SinhVienDangKy -maSinhVienDangKy : long -maSinhVien : string -maLopHocPhanTheoKy : long -maNopTien : long -ngayDangKy : Date -thuTuDangKy : int Hình 25 – Class Diagram: Sinh viên đăng ký III.1.6. Sinh viên, điểm SinhVien -maSinhVien : string -maLopNienChe : string HocPhan -maHocPhan : string -tenHocPhan : string -soTinChi : float -lyThuyet : float  1..* 1..1  1..1  1..*  HocKy -maHocKy : long -hocKy : int -namHoc : int -moTa : string +thietLapHocKyHienHanh() : int -thucHanh : float -doAn : float -baiTapLon : byte -thucTap : byte -ghiChu : string -STT : long -maThi : string -maTinhTien : string -vietTat : string -maCongThuc : string 1..*  1..1  DiemCuaSinhVien -maDiemCuaSinhVien : long -maSinhVien : string -maHocKy : long -maHocPhan : string -diemCuoiCung : float  1..* 1..1  1..*  LoaiDiem -maLoaiDiem : string -tenLoaiDiem : string -heSoTinh : float -moTaLoaiDiem : string ChiTietDiemCuaSinhVien -maChiTietDiemCuaSinhVien : long -maDiemCuaSinhVien : long -maLoaiDiem : long -soDiem : float -ghiChu : string  1..1 Hình 26 – Class Diagram: Sinh viên và điểm III.1.7. Sinh viên và thời khóa biểu Hình 27 – Class Diagram: Sinh viên và thời khóa biểu III.2. Sơ đồ thành phần (component diagram) User Interface Apache Tomcat Component Business Logic Java Development Kit (JDK) Data Access Database Driver Database Hình 28 – Biểu đồ thành phần của hệ thống III.3. Sơ đồ triển khai (deployment diagram) Client 1  -TCP/IP Client 2 -TCP/IP Web Server -Database Driver Database Server Hình 29 – Sơ đồ triển khai của ứng dụng CHƯƠNG 3 X ÂY DỰNG CHƯƠNG TRÌNH VÀ KẾT QUẢ ĐẠT ĐƯỢC I. Xây dựng chương trình I.1. Xây dựng dữ liệu Hình 30 – Điểm của sinh viên Hình 31 – Khung chương trình Hình 32 – Sinh viên đăng ký Hình 33 – Sinh viên, lớp sinh hoạt Hình 34 – Thời khóa biểu sinh viên Hình 35 – Lớp học phần theo kỳ Mô tả các bảng: STT Tên Kiểu Ghi chú 1 maChiTietDiemCuaSinhVien int Mã chi tiết điểm của Sinh Viên 2 maDiemCuaSinhVien int Mã điểm của Sinh Viên 3 maLoaiDiem nvarchar(12) Mã loại điểm 4 soDiem float Số điểm 5 ghiChu nvarchar(128) Ghi chú Bảng 10 – Bảng tblChiTietDiemCuaSinhVien STT Tên Kiểu Ghi chú 1 maChiTietKhungChuongTrinh int Mã chi tiết khung chương trình 2 maKhungChuongTrinh int Mã khung chương trình 3 maHocPhan nvarchar(7) Mã loại điểm 4 hocKy int Số điểm Bảng 11 – Bảng tblChiTietKhungChuongTrinh STT Tên Kiểu Ghi chú 1 maChiTietLopHocPhan int Mã chi tiết lớp học phần 2 maLopHocPhan nvarchar(12) Mã lớp học phần 3 maHocKy int Mã học kỳ 4 maGiaoVien nvarchar(12) Mã giáo viên 5 maThoiKhoaBieu int Mã thời khóa biểu 6 maPhongHoc nvarchar(50) Mã phòng học 7 soLuongToiThieu int Số lượng tối thiểu 8 soLuongToiDa int Số lượng tối đa 9 soLuongHienHanh int Số lượng hiện hành Bảng 12 – Bảng tblChiTietHocPhan STT Tên Kiểu Ghi chú 1 maDiemCuaSinhVien int Mã điểm của sinh viên 2 maSinhVien nvarchar(12) Mã sinh viên 3 maHocKy int Mã học kỳ 4 maHocPhan nvarchar(7) Mã học phần 5 diemCuoiCung float Điểm cuối cung Bảng 13 – Bảng tblDiemCuaSinhVien STT Tên Kiểu Ghi chú 1 maDonVi nvarchar(5) Mã đơn vị 2 tenDonVi nvarchar(255) Tên đơn vị 3 diaChi nvarchar(255) Địa chỉ 4 dienThoai nvarchar(50) Điện thoại 5 fax nvarchar(50) Fax 6 email nvarchar(255) Email 7 stt int Số thứ tự Bảng 14 – Bảng tblDonVi STT Tên Kiểu Ghi chú 1 maGiaoVien nvarchar(12) Mã giáo viên 2 maKhoa nvarchar(7) Mã khoa 3 stt int Số thứ tự 4 hoLot nvarchar(50) Họ lót 5 tenGiaoVien nvarchar(50) Tên giáo viên 6 tenKhac nvarchar(50) Tên khác 7 gioiTinh int Giới tính 8 ngaySinh datetime Ngày sinh 9 noiSinh nvarchar(50) Nơi sinh 10 queQuan nvarchar(50) Quê quán 11 truQuan nvarchar(50) Trú quán 12 hoKhau nvarchar(50) Hộ khẩu 13 diaChi nvarchar(255) Địa chỉ 14 mobile nvarchar(40) Mobile 15 dienThoai nvarchar(40) Điện thoại 16 danToc nvarchar(30) Dân tộc 17 tonGiao nvarchar(30) Tôn giáo 18 doiTuong nvarchar(20) Đối tượng 19 soCMND nvarchar(20) Số CMND 20 ngayCapCMND datetime Ngày cấp CMND 21 noiCapCMND nvarchar(50) Nơi cấp CMND 22 thanhPhanGiaDinh nvarchar(50) Thành phần gia đình 23 thanhPhanBanThan nvarchar(50) Thành phần bản thân 24 ngayCongTac datetime Ngày công tác 25 ngayNhapNgu datetime Ngày nhập ngũ 26 maCVQuanDoi nvarchar(12) Ngày CV Quân đội 27 ngayXuatNgu datetime Ngày xuất ngũ 28 ngayVaoNganh datetime Ngày vào ngành 29 ngayVaoCQ datetime Ngày vào cơ quan 30 ngayVaoDoan datetime Ngày vào đoàn 31 maCVDoan nvarchar(12) Mã CV Đoàn 32 ngayVaoCongDoan datetime Ngày vào công đoàn 33 maCVCongDoan nvarchar(12) Mã CV công đoàn 34 ngayVaoDang datetime Ngày vào đảng 35 ngayChinhThuc datetime Ngày chính thức 36 maCVDang nvarchar(12) Mã CV Đảng 37 noiVaoDang nvarchar(128) Nơi vào Đảng 38 nguoiGioiThieu1 nvarchar(50) Người giới thiệu 1 39 nguoiGioiThieu2 nvarchar(50) Người giới thiệu 2 40 thuongBinh nvarchar(12) Thương binh … … … … Bảng 15 – Bảng tblGiaoVien STT Tên Kiểu Ghi chú 1 maHocKy int Mã học kỳ 2 hocKy int Học kỳ 3 namHoc int Năm học 4 moTa nvarchar(128) Mô tả Bảng 16 – Bảng tblHocKy STT Tên Kiểu Ghi chú 1 maHocKyHienHanh int Mã học kỳ hiện hành Bảng 17 – Bảng tblHocKyHienHanh STT Tên Kiểu Ghi chú 1 maHocPhan nvarchar(7) Mã học phần 2 maKhoa nvarchar(3) Mã khoa 3 tenHocPhan nvarchar(255) Tên học phần 4 soTinChi float Số tín chỉ 5 lyThuyet float Lý thuyết 6 thucHanh float Thực hành 7 doAn float Đồ án 8 baiTapLon int Bài tập lớn 9 thucTap int Thực tập 10 ghiChu nvarchar(255) Ghi chú 11 maThi nvarchar(6) Mã thi 12 maThucTap nvarchar(6) Mã thực tập 13 vietTat nvarchar(50) Viết tắt 14 maCongThuc nvarchar(6) Mã công thức Bảng 18 – Bảng tblHocPhan STT Tên Kiểu Ghi chú 1 maKhoa nvarchar(3) Mã khoa 2 tenKhoa nvarchar(128) Tên khoa 3 moTa nvarchar(128) Mô tả Bảng 19 – Bảng tblKhoa STT Tên Kiểu Ghi chú 1 maKhoaHoc nvarchar(2) Mã khóa học 2 tenKhoaHoc nvarchar(50) Tên khóa học 3 namVaoTruong int Năm vào trường Bảng 20 – Bảng tblKhoaHoc STT Tên Kiểu Ghi chú 1 maKhungChuongTrinh int Mã khung chương trình 2 maNganh nvarchar(7) Mã ngành 3 maKhoaHoc nvarchar(2) Mã khóa học 4 namXayDungKhungChuongTrinh int Năm XD khung chương trình 5 moTa nvarchar(128) Mô tả Bảng 21 – Bảng tblKhungChuongTrinh STT Tên Kiểu Ghi chú 1 maLoaiDiem nvarchar(12) Mã loại điểm 2 tenLoaiDiem nvarchar(50) Tên loại điểm 3 heSoTinh int Hệ số tính 4 moTa nvarchar(128) Mô tả Bảng 22 – Bảng tblLoaiDiem STT Tên Kiểu Ghi chú 1 maLopHocPhan nvarchar(12) Mã lớp học phần 2 maNhomLopHocPhan nvarchar(12) Mã nhóm lớp học phần 3 maHocPhan nvarchar(7) Mã học phần 4 tenLopHocPhan nvarchar(128) Tên lớp học phần 5 moTa nvarchar(255) Mô tả 6 status int Tình trạng Bảng 23 – Bảng tblLopHocPhan STT Tên Kiểu Ghi chú 1 maLopSinhHoat nvarchar(10) Mã lớp sinh hoạt 2 maNganh nvarchar(7) Mã ngành 3 maKhoaHoc nvarchar(2) Mã khóa học 4 tenLopSinhHoat nvarchar(50) Tên lớp sinh hoạt 5 moTa nvarchar(255) Mô tả Bảng 24 – Bảng tblLopHocPhan STT Tên Kiểu Ghi chú 1 maNganh nvarchar(7) Mã ngành 2 maKhoa nvarchar(3) Mã khoa 3 tenNganh nvarchar(50) Tên ngành 4 khoi nvarchar(50) Khối 5 moTa nvarchar(255) Mô tả 6 soTinChi int Số tín chỉ 7 soHocKy int Số học kỳ Bảng 25 – Bảng tblNganh STT Tên Kiểu Ghi chú 1 maNhomLopHocPhan nvarchar(12) Mã nhóm lớp học phần 2 maNganh nvarchar(7) Mã ngành 3 tenNhomLopHocPhan nvarchar(50) Tên nhóm lớp học phần Bảng 26 – Bảng tblNhomLopHocPhan STT Tên Kiểu Ghi chú 1 maPhongHoc nvarchar(50) Mã phòng học 2 maDonVi nvarchar(5) Mã đơn vị 3 tenPhong nvarchar(50) Tên phòng 4 tinhTrang nvarchar(50) Tình trạng Bảng 27 – Bảng tblPhongHoc STT Tên Kiểu Ghi chú 1 maQuanHe int Mã quan hệ 2 tenQuanHe nvarchar(50) Tên quan hệ 3 moTa nvarchar(128) Mô tả Bảng 28 – Bảng tblQuanHe STT Tên Kiểu Ghi chú 1 maQuanHeHocPhan int Mã quan hệ học phần 2 maHocPhan nvarchar(7) Mã học phần trước 3 maHocPhanSau nvarchar(7) Mã học phần sau 4 maQuanHe int Mã quan hệ Bảng 29 – Bảng tblQuanHeHocPhan STT Tên Kiểu Ghi chú 1 maSinhVienDangKy int Mã sinh viên đăng ký 2 maSinhVien nvarchar(12) Mã sinh viên 3 maChiTietLopHocPhan int Mã chi tiết lớp học phần 4 ngayDangKy Date Ngày đăng ký 5 thuTuDangKy int Thứ tự đăng ký Bảng 30 – Bảng tblSinhVienDangKy STT Tên Kiểu Ghi chú 1 maThoiKhoaBieu int Mã thời khóa biểu 2 mon int Thứ hai 3 tue int Thứ ba 4 wed int Thứ tư 5 thu int Thứ năm 6 fri int Thứ sáu 7 sat int Thứ bảy 8 sun int Chủ nhật Bảng 31 – Bảng tblThoiKhoaBieu STT Tên Kiểu Ghi chú 1 maThoiKhoaBieuCuaSinhVien int Mã thời khóa biểu của sinh viên 2 maSinhVien nvarchar(12) Mã sinh viên 3 maHocKy int Mã học kỳ 4 maThoiKhoaBieu Date Mã thời khóa biểu Bảng 32 – Bảng tblThoiKhoaBieuSinhVien STT Tên Kiểu Ghi chú 1 maSinhVien nvarchar(12) Mã sinh viên 2 maNganh nvarchar(7) Mã ngành 3 maLopSinhHoat nvarchar(10) Mã lớp sinh hoạt 4 hoLot nvarchar(50) Họ lót 5 tenSinhVien nvarchar(50) Tên sinh viên 6 gioiTinh int Giới tính 7 imageUrl nvarchar(255) Image Url 8 ngaySinh datetime Ngày sinh 9 noiSinh nvarchar(50) Nơi sinh 10 danToc nvarchar(50) Dân tộc 11 tonGiao nvarchar(50) Tôn giáo 12 queQuan nvarchar(50) Quê quán 13 diaChi nvarchar(255) Địa chỉ 14 doiTuong nvarchar(50) Đối tượng 15 namTrungTuyen int Năm trúng tuyển 16 tuyenThang int Tuyển thẳng 17 lyDoTuyenThang nvarchar(128) Lý do tuyển thẳng 18 thanhPhanGiaDinh nvarchar(20) Thành phần gia đình 19 thanhPhanBanThan nvarchar Thành phần bản thân 20 ngayVaoDoan datetime Ngày vào đoàn 21 ngayVaoDang datetime Ngày vào đảng 22 ngayChinhThuc datetime Ngày chính thức 23 ngoaiNgu nvarchar(20) Ngoại ngữ 24 thoiHoc int Thôi học 25 luu int Lưu 26 lyDoLuu nvarchar(20) Lý do lưu 27 ngayLuu datetime Ngày lưu 28 khongTotNghiep int Không tốt nghiệp 29 ghiChu nvarchar(50) Ghi chú 30 stt int Số thứ tự 31 maChucVu nvarchar(12) Mã chức vụ 32 mobile nvarchar(40) Mobile 33 dienThoai nvarchar(40) Điện thoại 34 matKhau nvarchar(50) Mật khẩu 35 email nvarchar(255) Email 36 hoKhau nvarchar(50) Hộ khẩu 37 quocTich nvarchar(20) Quốc tịch 38 diaChi2 nvarchar(255) Địa chỉ 2 39 lienLac nvarchar(255) Liên lạc 40 diemUuTien float Điểm ưu tiên 41 maQuyenTruyCap int Mã quyền truy cập Bảng 33 – Bảng tblSinhVien I.2. Xây dựng giao diện I.2.1. Bố cục trang Web Vì đây là hệ thống website phục vụ giáo dục nên bố cục của mỗi trang web phải chặt chẽ, đồng nhất và màu sắc cũng phải phù hợp. Do đó, chúng ta thiết kế bố cục và tông màu dựa trên trang web của các trường nổi tiếng. Bố cục của mỗi trang Web được chia thành từng phần nhỏ như sau: - Header: đây là phần tiêu đề trang. - Top Menu: đây là menu phía trên. - Left Menu: đây là menu bên trái . - Nội dung chính: đây là phần nội dung chính của mỗi trang, tùy theo mỗi trang mà nội dung này khác nhau. - Right Pane: đây là phần bên trái chứa Form Log out, danh sách các link. - Footer: đây là phần chân trang. Header Top Menu Left Menu Nội dung chính Right Pane Footer Hình 36 – Bố cục trang Web I.2.2. Kết quả hiển thị từng phần nhỏ Hình 37 – Header Hình 38 – Footer Hình 39 – Right Pane, Giáo viên Left Menu, Sinh viên Left Menu Hình 40 – Giáo viên Top Menu Hình 41 – Admin Top Menu Hình 43 – Admin Left Menu Hình 42 – Sinh Viên Top Menu I.3. Xây dựng gói theo mô hình MVC I.3.1. Tầng View adminLogin.jsp adminViewCayQuanHeHocPhan.jsp adminLogout.jsp adminViewDanhSachSinhVienDangKy.jsp adminUploadSinhVien.jsp adminViewDonVi.jsp adminUploadGiaoVien.jsp adminViewGiaoVien.jsp adminUploadPhongHoc.jsp adminViewHocKy,jsp adminUploadKhoa.jsp adminViewHocPhan.jsp adminUploadNganh.jsp adminViewKhoa.jsp adminUploadDonVi.jsp adminViewKhungChuongTrinh.jsp adminUploadHocPhan.jsp adminViewLopHocPhan.jsp adminUploadLopHocPhan.jsp adminViewLopSinhHoat.jsp adminUploadLopSinhHoat.jsp adminViewNganh.jsp adminUploadDiem.jsp adminViewNhomLopHocPhan.jsp adminChangePassword.jsp adminViewPhongHoc.jsp adminViewSinhVien.jsp adminViewQuanHeHocPhan.jsp Hình 44 – Nội dung gói AdminInterface login.jsp viewCayQuanHeHocPhan.jsp logout.jsp viewThoiKhoaBieu.jsp changePassword.jsp viewKhungChuongTrinh.jsp viewLopHocPhanDangKy.jsp viewDiem.jsp viewLopHocPhanHienCo.jsp Hình 45 – Nội dung gói SinhVienInteface giaoVienLogin.jsp giaoVienViewLopHocPhan.jsp giaoVienLogout.jsp giaoVienViewThoiKhoaBieu.jsp giaoVienChangePassword.jsp Hình 46 – Nội dung gói GiaoVienInterface I.3.2. Tầng Model ChiTietDiemSinhVien.class KhungChuongTrinh.class ChiTietKhungChuongTrinh.class LoaiDiem.class ChiTietLopHocPhan.class LopHocPhan.class DiemSinhVien.class LopSinhHoat.class DonVi.class Nganh.class GiaoVien.class NhomLopHocPhan.class HocKy.class PhongHoc.class HocPhan.class QuanHe.class Khoa.class QuanHeHocPhan.class KhoaHoc.class SinhVien.class ThoiKhoaBieu.class SinhVienDangKy.class ThoiKhoaBieuCuaSinhVien.class Hình 47 – Nội dung gói BusinessObject AdminBean.class UploadBean.class UserBean.class EncryptBean.class ReadExcel.class MyUtil.class Hình 48 – Nội dung gói Bean DAOChiTietDiemSinhVien.class DAOKhungChuongTrinh.class DAOChiTietKhungChuongTrinh.class DAOLoaiDiem.class DAOChiTietLopHocPhan.class DAOLopHocPhan.class DAODiemSinhVien.class DAOLopSinhHoat.class DAODonVi.class DAONganh.class DAOGiaoVien.class DAONhomLopHocPhan.class DAOHocKy.class DAOPhongHoc.class DAOHocPhan.class DAOQuanHe.class DAOKhoa.class DAOQuanHeHocPhan.class DAOKhoaHoc.class DAOSinhVien.class DAOThoiKhoaBieu.class DAOSinhVienDangKy.class DAOThoiKhoaBieuCuaSinhVien.class Hình 49 – Nội dung gói DataAcessObject I.3.3. Tầng Controller AdminController.class UserController.class Hình 50 – Nội dung gói Default I.4. Các giải pháp I.4.1. Giải pháp đồ thị cho việc đặc tả học phần và quan hệ học phần a. Đặt vấn đề: Như đã nói ở phần phân tích hiện trạng, mỗi học phần có quan hệ ràng buộc với các học phần khác. Theo chương trình hiện nay có 3 loại quan hệ: quan hệ tiên quyết, quan hệ học trước, quan hệ song hành. Vấn đề đặt ra là làm sao khi sinh viên đăng ký một lớp học phần, hệ thống có thể tự động kiểm tra các ràng buộc trên một cách nhanh chóng. b. Mô tả bài toán: Cho trước một tập các học phần, một tập các quan hệ, cho trước một danh sách sinh viên và bản điểm của sinh viên. Yêu cầu: với một sinh viên, khi đăng ký một lớp học phần, hãy kiểm tra xem sinh viên đó có đáp ứng đủ yêu cầu về ràng buộc các học phần hay không. c. Giải pháp: Gọi đồ thị có hướng G = (V,E) để đặc tả các học phần và quan hệ giữa chúng. Trong đó, V là tập các đỉnh với mỗi đỉnh là một học phần và E là tập các cung với mỗi cung đặc trưng cho quan hệ giữa chúng, trong đó trọng số của mỗi cung chính là mã quan hệ giữa các học phần. Từ đó suy ra, việc sinh viên học hoặc vượt qua các học phần tại trường đại học sẽ tương ứng với việc một người đã đi qua được các đỉnh trên đồ thị; quá trình sinh viên đó học tại trường chính là đoạn đường mà sinh viên đó đi được; học phần mà sinh viên đăng ký để học chính là đỉnh tiếp theo trên đồ thị mà sinh viên đó phải đi. Và như vậy, bài toán lúc này trở thành kiểm tra xem với đoạn đường đã đi được của một sinh viên vào thời điểm hiện tại, sinh viên đó có thể đi tiếp đến đỉnh xác định nào đó hay không. Đồ thị G được đặc tả như hình. Hình 51 – Đồ thị mô tả học phần và các quan hệ Với ví dụ trên thì các học phần có mối quan hệ như sau: - Học phần A là học phần học trước đối với B. - Học phần A là học phần tiên quyết đối với D. - Học phần D là học phần học trước đối với C. - Học phần A là học phần song hành đối với F. - Các học phần E, G là các học phần tùy chọn. Biểu diễn bài toán vào hệ thống: để biểu diễn đồ thị này vào máy tính để xử lý, chúng ta có 3 phương pháp: 1. Ma trận cạnh kề: Toàn bộ đồ thị được biểu diễn bằng ma trận NxN, với N là số đỉnh của đồ thị, giá trị mỗi ô trong ma trận đặc trưng cho trọng số của đồ thị. Với ví dụ trên thì ma trận cạnh kề như sau: 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 A = 0 0 1 0 0 3 0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 Phương pháp này có ưu điểm là việc truy xuất nhanh chóng. Trong trường hợp các học phần có thêm một hoặc nhiều quan hệ mới thì cũng dễ dàng cập nhật. Tuy nhiên phương pháp này cũng có những hạn chế. Để mô tả ma trận này trong máy tính thì phải yêu cầu một cấu trúc lớn, chẳng những thế, cấu trúc này lại khó thay đổi. Trên thực tế, các hệ thống hiện tại có dung lượng bộ nhớ hạn chế trong khi các học phần lại nhiều và có xu hương tăng lên. Bên cạnh đó việc biểu diễn đồ thị bằng ma trận cạnh kề trở nên phí phạm nếu số cạnh trong đồ thị thưa thớt. Thực tế thì chương trình đào tạo tín chỉ đang mới chuyển từ đào tạo niên chế sang do đó các học phần không có sự ràng buộc nhiều, nên việc biểu diễn này sẽ rất phí phạm. Với những lý do trên, phương pháp biểu diễn đồ thị bằng ma trận cạnh kề thực sự không tối ưu. 2. Danh sách đỉnh kề: Với mỗi điểm, chúng ta sử dụng m danh sách để biểu diễn những điểm kề nó, mỗi danh sách thể hiện một loại quan hệ. Với ví dụ trên thì m bằng 3 và đồ thị được biểu diễn thành danh sách đỉnh kề như sau: Học phần Học phần học trước Học phần tiên quyết Học phần song hành A B D B C C D F E F D G Bảng 34 – Biểu diễn quan hệ theo danh sách đỉnh kề Phương pháp này có ưu điểm là tiết kiệm tài nguyên lưu trữ nhất. Đối với những trường hợp số cạnh thưa thớt và các trọng số không thay đổi nhiều thì phương pháp này rất hiệu quả. Tuy nhiên, trong trường hợp số lượng quan hệ tăng lên (nghĩa là trọng số có sự thay đổi), thì việc xử lý sẽ rất khó khăn. Bên cạnh đó, việc xử lý trên nhiều danh sách cùng một lúc sẽ làm cho hệ thống làm việc chậm lại. 3. Danh sách cạnh: Toàn bộ đồ thị được lưu trữ theo danh sách các cạnh, mỗi cạnh được đặc tả bằng một đỉnh xuất phát, một đỉnh đích và trọng số. Những học phần có liên quan đến các học phần khác được lưu bởi 1 cạnh của đồ thị. Với ví dụ trên thì đồ thị được biểu diễn thành danh sách cạnh như sau: Học phần 1 Học phần 2 Quan hệ A B 1 A D 2 D C 1 D F 3 Bảng 35 – Bảng quan hệ học phần Phương pháp này có ưu điểm là danh sách cạnh chỉ cần được lưu trữ trong một danh sách, nên việc truy xuất, cập nhật sẽ được dễ dàng. Những đỉnh độc lập thì không cần lưu trữ nên sẽ tiết kiệm đáng kể tài nguyên bộ nhớ. Trong trường hợp một đỉnh có rất nhiều cung (nghĩa là bậc của đỉnh đó khá lớn) thì phương pháp này trở nên phí phạm hơn so với phương pháp danh sách đỉnh kề. Với thực tế bài toán này, chúng tôi chọn phương pháp thứ 3 với các lý do sau: - Đối với vấn đề lưu trữ, mỗi học phần thường chỉ cần 1 đến 2 môn học trước hoặc tiên quyết, do đó bậc của một đỉnh thường không vượt quá 5. Với ví dụ trên thì đỉnh có bậc cao nhất là đỉnh D (bậc 3). Vì bậc của một đỉnh không quá lớn nên việc lưu trữ sẽ không quá phí phạm. - Đối với vấn đề xử lý, việc xử lý liên quan đến quan hệ giữa các học phần được thực hiện trong 2 thời điểm: thời điểm đầu tiên là thời điểm đầu mỗi khóa học khi nhân viên đào tạo cập nhật chương trình học và các ràng buộc kèm theo và thời điểm thứ hai là thời điểm đầu kỳ khi sinh viên đăng ký học phần cho kỳ tới. Đối với thời điểm đầu tiên thì việc xử lý là thêm học phần và thêm quan hệ, trong thời điểm này, việc truy cập là không nhiều. Đối với thời điểm thứ hai thì việc xử lý là truy xuất để kiểm tra, trong thời điểm này các truy cập của sinh viên là rất nhiều. Việc thiết kế lưu trữ theo phương pháp danh sách cạnh nói trên tuy không thuận tiện cho việc thêm các quan hệ nhưng hoàn toàn thuận lợi cho việc truy xuất dữ liệu tương ứng. - Với thiết kế này, chúng ta dễ dàng hiển thị quan hệ giữa các học phần theo dạng cây phân cấp. Từ đó sinh viên có thể dễ dàng xem và biết được học phần nào là tiên quyết, học phần nào cần học trước để có kế hoạch học tập hợp lý. d. Nội dung thuật toán (viết bằng giả ngữ): - Input: Danh sách các đỉnh (học phần), danh sách các cạnh (quan hệ giữa các học phần), mã sinh viên, đoạn đường mà sinh viên đã đi được (bảng điểm của sinh viên), đỉnh đích (học phần cần đăng ký). - Output: Yes/No. Nghĩa là, sinh viên có đi tiếp đến đỉnh đích hay không, hoặc sinh viên đó có được phép đăng ký học phần đó hay không. - Method: 1. Tìm trong danh sách cạnh những cạnh có đỉnh cuối là đỉnh đích. 2. Nếu không tìm thấy (nghĩa là đỉnh đó độc lập, hay học phần cần đăng ký là học phần độc lập) trả về “Yes”, ngược lại, tiếp tục bước 3. 3. Với từng cạnh thu được, kiểm tra trong đỉnh đầu của mỗi cạnh, không có đỉnh nào nằm trong đoạn đường mà sinh viên đã đi (nghĩa là sinh viên đã học qua học phần đó) thì trả về “No”, ngược lại, trả về “Yes”. e. Đánh giá thuật toán Độ phức tạp của thuật toán là O(n*m) với n là số cạnh trong danh sách cạnh, m là số đỉnh mà sinh viên đó đã đi qua. Số cạnh trong danh sách cạnh không quá 1000, số đỉnh và sinh viên đó đi qua không quá 100. Do đó số xử lý thực hiện không vượt quá 105. Với độ phức tạp này, giải pháp này hoàn toàn có thể áp dụng vào chương trình. I.4.2. Giải pháp chiếm dụng khe thời gian a. Đặt vấn đề: Như đã nói ở phần phân tích hiện trạng, khi một sinh viên đăng ký một lớp học phần, hệ thống cần kiểm tra xem thời khóa biểu của sinh viên có bị xung đột hay không. b. Mô tả bài toán: Cho trước danh sách các lớp học phần và thời khóa biểu tương ứng của chúng. Với một sinh viên và một thời khóa biểu của sinh viên, hãy kiểm tra xem sinh viên có thể học lớp học phần ấy mà hai thời khóa biểu không bị xung đột hay không. c. Giải pháp: Gọi Q là quỹ thời gian của sinh viên. Quỹ thời gian Q gồm có 7 ngày tương ứng với 7 ngày trong tuần và trong mỗi ngày sẽ có 12 khe thời gian tương ứng với 12 tiết học. Và P là danh sách những khe thời gian mà lớp học phần yêu cầu, P bao gồm những khe thời gian trong một vài ngày xác định tương ứng với các tiết học trong thời khóa biểu của lớp học phần đó. Khi một sinh viên đăng ký một lớp học phần nghĩa là sinh viên đó sẽ phải dành ra một vài khe thời gian trong quỹ thời gian của mình hay nói cách khác, lớp học phần đã chiếm dụng một vài khe thời gian trong quỹ thời gian của người đó. Vấn đề lúc này là khi một sinh viên đăng ký một lớp học phần tiếp theo thì chúng ta cần kiểm tra xem các khe thời gian mà lớp học phần đó cần đã bị chiếm dụng hay chưa. d. Biểu diễn bài toán vào hệ thống: Ta định nghĩa quỹ thời gian là một đối tượng gồm 7 thuộc tính kiểu số nguyên (integer 2 byte), trong đó 7 thuộc tính này tương ứng 7 ngày trong tuần, mỗi khe thời gian làm một bit trong số 16 bit của 2 byte đó. Đối tượng này cũng được định nghĩa cho danh sách các khe thời gian của lớp học học phần. Để kiểm tra những khe thời gian mà lớp học phần yêu cầu đã bị chiếm dụng hay chưa, chúng ta chỉ cần thực hiện toán tử AND các cặp bit tương ứng trong từng số nguyên của 2 đối tượng với nhau, nếu khe thời gian vẫn chưa được chiếm dụng thì kết quả sẽ là 0, ngược lại kết quả sẽ là 1. 5/25/2007 5/25/2007 5/25/2007 Quỹ thời gian Khe thời gian Quỹ thời gian của sinh viên lớp học phần sau khi đăng yêu cầu ký Mon Tue Wed Thu Fri Sat Mon Tue Wed Thu Fri Sat * Mon Tue Wed Thu Fri Sat Hình 52 – Kiểm tra xung đột thời khóa biểu bằng AND bit (không xung đột) Quỹ thời gian của sinh viên 5/25/2007 Mon Tue Wed Thu Fri Sat * Khe thời gian lớp học phần yêu cầu 5/25/2007 Mon Tue Wed Thu Fri Sat Quỹ thời gian sau khi đăng ký 5/25/2007 Mon Tue Wed Thu Fri Sat Hình 53 – Kiểm tra xung đột thời khóa biểu bằng AND bit (có xung đột) Để cập nhật quỹ thời của sinh viên sau khi đăng ký lớp học phần, chúng ta sử dụng toán tử OR để OR các cặp bit tương ứng trong từng số nguyên của 2 đối tượng với nhau. Quỹ thời gian 5/25/2007 Mon Tue Wed Thu Fri Sat Khe thời gian yêu cầu 5/25/2007 Mon Tue Wed Thu Fri Sat Quỹ thời gian ký 5/25/2007 Mon Tue Wed Thu Fri Sat + Hình 54 – Cập nhật quỹ thời gian của sinh viên sau khi đăng ký Để cập nhật quỹ thời gian của sinh viên sau khi sinh viên thực hiện hủy bỏ một lớp học phần chúng ta chỉ cần thực hiện toán tử AND NOT các cặp bit tương ứng trong từng số nguyên của 2 đối tượng với nhau. Mon Tue Wed Thu Fri Sat - Mon Tue Wed Thu Fri Sat Mon Tue Wed Thu Fri Sat Hình 55 – Cập nhật quỹ thời gian của sinh viên sau khi hủy bỏ lớp học phần f. Đánh giá giải pháp - Giải pháp này tối ưu về việc lưu trữ. Việc thiết kế lưu trữ dữ liệu ở dạng bit làm cho việc lưu trữ là tối ưu nhất. Ứng với mỗi quỹ thời gian chúng ta chỉ cần lưu trữ 14 byte. - Giải pháp này tối ưu về việc tính toán. Việc sử dụng các toán tử xử lý bit (toán tử cơ bản của hệ thống) như AND, OR và NOT làm cho việc tính toán trở nên rất nhanh chóng. Với mỗi lần kiểm tra, hệ thống chỉ cần thực hiện phép toán này 7 lần. I.4.3. Giải pháp ánh xạ dữ liệu a. Đặt vấn đề: Khi thiết kế chương trình, dữ liệu liên quan đến đào tạo vốn đã có trong hệ thống quản lý niên chế tại trường. Việc nhập lại số liệu từ hệ thống cũ sang hệ thống mới rất là vất vả và không hiệu quả. Vấn đề đặt ra lúc này là làm sao có thể chuyển dữ liệu từ hệ quản trị cơ sở dữ liệu này sang hệ quản trị cơ sở dữ liệu khác một cách nhanh chóng mà vẫn đáp ứng các ràng buộc. b. Giải pháp: Để có thể chuyển dữ liệu từ hệ quản trị cơ sở dữ liệu này sang hệ quản trị cơ sở dữ liệu khác ta sử dụng một cấu trúc dữ liệu trung gian làm trục. Đơn giản nhất là sử dụng file xml, tuy nhiên, file xml không thể biểu diễn trực quan thành dạng bảng cũng như khó chỉnh sửa cho phù hợp. Do đó, chúng tôi chọn file excel. File excel (*.xls) hiện tại trở thành dạng file thông dụng nhất hiện nay. Ngoài Ms Office của Windows, Open Office của Linux vẫn có thể đọc được. Dữ liệu được ánh xạ theo quy trình như hình 56. Dữ liệu từ hệ thống hiện tại CSDL Ms SQL  Module ánh xạ dữ liệu Dữ liệu hệ thống mới CSDL My SQL  File Excel .xls Đọc file Excel Xử lý ràng buộc dữ liệu Cầu nối JDBC  CSDL chỉ định CSDL Oracle CSDL Access Hình 56 – Quy trình ánh xạ dữ liệu Quy trình ánh xạ dữ liệu như sau: Bước 1: Chương trình quản lý hiện tại sử dụng chức năng report để xuất dữ liệu trong cơ sở dữ liệu cụ thể của mình sang file excel (*.xls). Bước 2: Module ánh xạ dữ liệu sẽ đọc file excel, sau đó kiểm tra ràng buộc. Bước 3: Module ánh xạ dữ liệu sẽ ghi vào cơ sở dữ liệu chỉ định thông qua cầu nối dữ liệu. c. Cấu trúc module ánh xạ dữ liệu: Module ánh xạ dữ liệu này được xây dựng bằng ngôn ngữ Java trên nền JDK 1.5 nên có cấu trúc như sau: - JExcel API: là một Java API cho phép những ứng dụng Java có thể đọc những bảng tính Excel và có thể tạo những bảng tính Excel. Thêm vào đó, nó còn chứa những kỹ thuật cho phép ứng dụng Java có thể vừa đọc một bảng tính vừa thay đổi một số cell trên bảng tính, và ghi ra một bảng tính mới. JExcel API được công bố miễn phí tại địa chỉ và thành phần chính của nó là gói jxl.jar - Class đọc file excel: Class này do chúng tôi cài đặt để vừa đọc vừa kiểm tra ràng buộc dữ liệu từ file excel. Nội dung class này như sau: import java.io.File; import java.util.Date; import jxl.*; ... Workbook workbook = Workbook.getWorkbook(new File("myfile.xls")); // Khi đã có sự truy cập vào workbook, bạn có thể truy cập vào một sheet cụ thể nào đó. Sheet đầu tiên có chỉ mục là 0, sheet thứ hai có chỉ mục là 1 và cứ tiếp tục như thế. Sheet sheet = workbook.getSheet(0); //Khi đã có một sheet , bạn có thể bắt đầu truy cập các cell của sheet. Bạn có thể lấy nội dung của cell là một xâu bằng cách sử dụng phương thức getContents(). Trong ví dụ dưới đây A1 là text cell, B2 là giá trị số , B2 là ngày. Cell a1 = sheet.getCell(0,0); Cell b2 = sheet.getCell(1,1); Cell c2 = sheet.getCell(2,1); String stringa1 = a1.getContents(); String stringb2 = b2.getContents(); String stringc2 = c2.getContents(); Bảng 36 – Nội dung một class đọc file excel - Cầu nối JDBC: Chúng ta có thể sử dụng cầu nối ODBC hoặc sử dụng trực tiếp Connectivity Driver của chính cơ sở dữ liệu chỉ định. Trong đề này, chúng tôi sử dụng Ms SQL 2000 Driver for JDBC d. Đánh giá giải pháp: - Giải pháp này thực hiện bằng công nghệ Java, cấu trúc dữ liệu trung gian làm trục là file excel (một loại file thông dụng) và cầu nối cơ sở dữ liệu là Connectivity Driver của hệ quản trị cơ sở dữ liệu. Do đó, giải pháp này có thể thực hiện trên tất cả các loại hệ thống (cả Windows lẫn Linux). - Với JExcel API, ngoài việc đọc file excel, chúng ta có thể ghi file excel do đó việc chuyển các report thành file excel để chỉnh sửa và in ấn được dễ dàng. II. Kết quả đạt được Với phân tích, thiết kế và những giải pháp trên, chúng tôi đã xây dựng hệ thống Website có các chức năng sau: II.1. Admin có thể thiết kế khung chương trình Hình 57 – Trang thiết kế khung chương trình của Admin II.2. Admin có thể thiết kế thời khóa biểu của một lớp học phần Hình 58 – Trang thiết kế thời khóa biểu của lớp học phần II.3. Admin có thể upload các loại danh sách liên quan Hình 59 – Trang web chọn file upload của Admin Hình 60 – Trang Web hiển thị danh sách sau khi upload thành công Admin nếu muốn cập nhật danh sách vào cơ sở dữ liệu thì click vào nút Update Database. II.4. Giáo viên có thể xem thời khóa biểu của chính minh Hình 61 – Trang xem thời khóa biểu của giáo viên II.5. Giáo viên có thể xem lớp học phần mình dạy Hình 62 – Trang xem lớp học phần của giáo viên II.6. Sinh viên xem cây quan hệ học phần Hình 63 – Trang xem cây quan hệ học phần của sinh viên II.7. Sinh viên có thể xem điểm học phần mình đã học Hình 64 – Trang xem điểm của sinh viên II.8. Sinh viên xem khung chương trình học Hình 65 – Trang xem khung chương trình của sinh viên Sau khi click chuột vào link tên học phần thì sẽ hiển thị danh sách những lớp học phần hiện có của học phần này và sinh viên có thể đăng ký học. Hình 66 – Trang xem lớp học phần II.9. Sinh viên có thể đăng ký học Hình 67 – Trang liệt kê danh sách lớp học phần hiện có Hình 68 – Trang xem thời khóa biểu của sinh viên KẾT LUẬN I. Đánh giá kết quả I.1. Về mặt lý thuyết Với việc nghiên cứu đề tài này, chúng tôi đã sử dụng hầu hết các kiến thức chuyên ngành đã học trong suốt thời gian học tại trường như: lý thuyết đồ thị, lý thuyết lập trình hệ thống (xử lý bit), lý thuyết lập trình hướng đối tượng, lý thuyết phân tích và thiết kế hệ thống, công nghệ phần mềm, lý thuyết xây dựng hệ thống website…Tất cả các kiến thức trên được hiện thực hóa trong hệ thống website quản lý đào tạo tín chỉ mà chúng tôi đã xây dựng. I.2. Về mặt chương trình Với đề tài này, hệ thống của chúng tôi đã đáp ứng các yêu cầu cơ bản của việc quản lý đào tạo tín chỉ đó là quản lý quá trình đăng ký, quản lý việc xây dựng khung chương trình, quản lý điểm, và các chức năng khác của sinh viên và giáo viên. Hệ thống đã đáp ứng được các chức năng sau: - Giáo viên xem thời khóa biểu: Sau khi đăng nhập, giáo viên xem được thời khóa biểu của mình, cụ thể là giáo viên có thể biết được trong tuần mình sẽ phải dạy những lớp nào, ở phòng nào vào những thời gian nào. - Giáo viên xem danh sách lớp học phần: Giáo viên có thể xem danh sách các lớp học phần mà mình dạy. Cụ thể là có thể xem được số lượng sinh viên tối đa, số lượng sinh viên tối thiểu và số lượng sinh viên hiện tại - Sinh viên xem khung chương trình: Sinh viên xem khung chương trình mà mình cần học. Cụ thể là sinh viên có thể biết được trong một học kỳ cụ thể, mình sẽ phải học những môn nào. - Sinh viên xem học phần và quan hệ học phần: Sinh viên có thể xem danh sách các học phần và quan hệ giữa chúng. Các học phần này được trình bày ở dạng cây để sinh viên dễ dàng biết được học phần nào nên học trước và học phần nào nên học sau. - Sinh viên xem điểm: Sinh viên xem điểm của mình. Cụ thể là sinh viên có thể biết được điểm của từng học phần mà mình đã học, biết được số tín chỉ mình đã đạt được và biết được mình đã hoàn tất bao nhiêu phần của quá trình học đại học tại trường. - Sinh viên đăng ký lớp học phần: Sinh viên xem danh sách các lớp học phần đang được mở trong học kỳ hiện hành để từ đó đăng ký vào một trong các lớp đó. Quá trình đăng ký này sẽ được kiểm tra chặt chẽ các ràng buộc. Ngoài ra sinh viên có thể hủy bỏ một lớp học phần mà mình đã đăng ký. - Sinh viên xem thời khóa biểu: Sinh viên xem thời khóa biểu trong học kỳ hiện hành. - Nhân viên quản trị upload các danh sách liên quan: Nhân viên quản trị (admin) sau khi đăng nhập sẽ có chức năng upload, chức năng này cho phép upload danh sách Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng giáo viên, sinh viên, lớp học, phòng học, học phần và các thông tin khác. Các danh sách này được lưu ở dạng file excel và tự động được cập nhật vào cơ sở dữ liệu. - Nhân viên quản trị cập nhật thông tin: Nhân viên quản trị dễ dàng cập nhật thông tin của đối tượng bất kỳ liên quan đến quá trình quản lý đào tạo. - Nhân viên quản trị xây dựng khung chương trình: Nhân viên quản trị dễ dàng xây dựng khung chương trình cho từng khóa học của từng ngành. - Nhân viên quản trị xây dựng thời khóa biểu: Nhân viên quản trị dễ dàng xây dựng thời khóa biểu cho từng lớp học phần mà không lo ngại xung đột thời khóa biểu. So với hệ thống website hiện nay thì các chức năng của hệ thống này ưu việt hơn hẳn. Hệ thống website hiện nay chỉ có chức năng sinh viên xem điểm, hoàn toàn không có chức năng cho giáo viên. II. Hướng phát triển II.1. Về mặt lý thuyết Với giải pháp chiếm dụng khe thời gian, hệ thống có thể kiểm tra xung đột thời khóa biểu của giáo viên trong quá trình admin xây dựng khung chương trình. Từ đó, giải pháp này mở ra hướng nghiên cứu mới về lập lịch, lập lịch trên quan điểm chiếm dụng khe thời gian. Với hướng nghiên cứu này, chúng ta có thể xây dựng chương trình lập lịch tự động hoặc bán tự động cho việc lập thời khóa biểu của chương trình học tập tại trường. II.2. Về mặt chương trình Hệ thống vẫn chưa mềm dẻo trong việc sinh viên đăng ký học phần nghĩa là khi lớp đã đủ người thì sinh viên không được phép đăng ký. Tuy nhiên, trên thực tế, các hệ thống quản lý đào tạo tín chỉ của các trường đại học khác, khi lớp đã đầy thì sinh viên vẫn có thể được đăng ký. Việc đăng ký này giống như việc đặt chỗ, nếu có một sinh viên khác hủy đăng ký thì sinh viên đặt chỗ đầu tiên sẽ tự động được cập nhập vào danh sách. Hệ thống vẫn chưa quản lý việc thanh toán học phí. Do đó, trong tương lai, chúng tôi sẽ phát triển chức năng này. Thậm chí, với điều kiện thương mại điện tử đang phát triển hiện nay, chúng tôi sẽ phát triển chức năng này thành thanh toán qua mạng bằng hệ thống ngân hàng. Với giải pháp ánh xạ dữ liệu, việc chuyển dữ liệu từ file Excel vào CSDL rất dễ dàng. Bên cạnh đó, bảng điểm của sinh viên hiện tại được ghi bằng phương pháp đánh dấu như trắc nghiệm và có thể đọc tự động bằng máy OpScan. Với hai nền tảng này, chúng tôi sẽ phát triển tiếp module đọc điểm tự động, nghĩa là nhân viên đào tạo chỉ cần đưa danh sách vào máy OpScan, máy sẽ đọc và cho ra bảng điểm ở dạng file excel. File này sẽ được đọc và cập nhật vào cơ sở dữ liệu. Đây là hướng nghiên cứu rất có giá trị. Hiện tại, hệ thống chỉ được kiểm tra trong phạm vi hẹp. Trong tương lai, nếu áp dụng cho Đại học Đà Nẵng thì rất có thể sẽ bị quá tải vì lượng sinh viên, giáo viên truy cập sẽ rất lớn. Vấn đề này mở ra hướng phát triển mới, phát triển hệ thống này thành một hệ phân tán để áp dụng cho toàn bộ các trường trực thuộc Đại học Đà Nẵng. TÀI LIỆU THAM KHẢO [1] “Chương trình đào tạo khóa 2006 – 2011” – Đại học Đà Nẵng, 2006. [2] “Sổ tay sinh viên khóa 06 học kỳ 2” – Đại học Bách khoa Đà Nẵng, 2006. [3] Lý thuyết đồ thị và toàn rời rạc – Nguyễn Đức Nghĩa & Nguyễn Tô Thành. [4] Lập trình Java tập 2 – Phương Lan. [5] Java for the Web with Servelet, JSP, and EBJ – Budi Kurniawan – New Riders Publishing, April 12, 2002. [6] Web Development with Java Server Pages – Duane K. Fields, Mark A. Kolb, Shawn Bayern – Maning. [7] UML for Java Programmer - Robert Cecil Martin – Object Mentor Inc. [8] Deploying Applications with Java and UML – Paul R. Reed Jr. – Addison Wesley [9] [10] [11] [12]

Các file đính kèm theo tài liệu này:

  • docLeVanMinhBaoCaoTotNghiepHeThongDangKyTinChi.doc
  • pdfLeVanMinhBaoCaoTotNghiepHeThongDangKyTinChi.pdf