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
86 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3382 | Lượt tải: 1
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:
- LeVanMinhBaoCaoTotNghiepHeThongDangKyTinChi.doc
- LeVanMinhBaoCaoTotNghiepHeThongDangKyTinChi.pdf