You are on page 1of 85

ðẠI HỌC ðÀ NẴNG

TRƯỜNG ðẠI HỌC BÁCH KHOA


KHOA CÔNG NGHỆ THÔNG TIN
Tel. (84-511) 736 949, Fax. (84-511) 842 771
Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn

LUẬN VĂN TỐT NGHIỆP KỸ SƯ


NGÀNH CÔNG NGHỆ THÔNG TIN
MÃ NGÀNH : 05115

ðỀ 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
Mã số : 02T4-15
02T4-21
Ngày bảo vệ : 13/06/2007 – 15/06/2007

SINH VIÊN : Lê Văn Minh


Nguyễn Minh Quang
LỚP : 02T4
CBHD : ThS Huỳnh Hữu Hưng

ðÀ NẴNG, 05/2007
LỜI CẢM ƠN

Trước hết, chúng con xin cảm ơn cha mẹ, những người ñã có công sinh
thành, dưỡng dục chúng tôi ñến ngày hôm nay.
Chúng tôi xin chân thành cảm ơn các thầy cô trong khoa Công nghệ
Thông tin, các thầy cô giảng dạy trong trường ðại học Bách khoa ðà Nẵng
ñã truyền ñạt những kiến thức quý báu cho chúng tôi trong những năm học
vừa qua. ðặc biệt, chúng tôi xin chân thành cảm ơn thầy giáo Huỳnh Hữu
Hưng - thuộc bộ môn Mạng máy tính, khoa Công nghệ Thông tin, trường
ðại học Bách khoa ðà Nẵng ñã tận tình hướng dẫn, ñộng viên và giúp ñỡ
chúng tôi trong suốt thời gian thực hiện ñề tài.
Chúng tôi cũng xin chân thành cảm ơn anh Nguyễn Thanh Nam, chuyên
viên phòng ðào tạo và Công tác Sinh viên, trường ðại học Bách khoa ðà
Nẵng ñã giúp ñỡ, hỗ trợ số liệu và tư vấn về nghiệp vụ quản lý sinh viên
cho chúng tôi trong thời gian làm ñề tài.
Cuối cùng, xin chân thành cảm ơn bạn bè gần xa, bạn bè trong khoa
Công nghệ Thông tin ñã giúp ñỡ, chia sẻ kiến thức cũng như kinh nghiệm
và tài liệu cho chúng tôi trong quá trình nghiên cứu thực hiện ñề tài này.
Một lần nữa, xin chân thành cảm ơn!

ðà Nẵng, ngày 25 tháng 05 năm 2006


Sinh viên thực hiện
Lê Văn Minh
Nguyễn Minh Quang
LỜI CAM ðOAN
Tôi xin cam ñoan :

1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của thạc sĩ Huỳnh Hữu Hưng.

2 Mọi tham khảo dùng trong luận văn ñều ñược trích dẫn rõ ràng tên
tác giả, tên công trình, thời gian, ñịa ñiểm công bố.

3 Mọi sao chép không hợp lệ, vi phạm quy chế ñào tạo, hay gian trá,
tôi xin chịu hoàn toàn trách nhiệm.

Sinh viên,

Lê Văn Minh
Nguyễn Minh Quang
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
DANH MỤC HÌNH VẼ

Hình 1 – Cách thức servlet làm việc.......................................................................................... 6


Hình 2 – JDBC kết nối trực tiếp với trình ñiều khiển ............................................................. 10
Hình 3 – JDBC sử dụng cầu nối ODBC .................................................................................. 10
Hình 4 – JDBC kết nối thông qua các ứng dụng mạng trung gian ......................................... 11
Hình 5 – Mô hình 1 ................................................................................................................. 11
Hình 6 – Mô hình 2 (MVC)..................................................................................................... 12
Hình 7 – Quy trình sinh viên ñăng ký lớp học phần................................................................ 26
Hình 8 – Admin Usecase ......................................................................................................... 29
Hình 9 – Activity diagram của usecase admin ñăng nhập ....................................................... 30
Hình 10 – Sequence diagram của usecase admin ñăng nhập................................................... 31
Hình 11 – Activity Diagram của usecase admin upload ñiểm................................................. 32
Hình 12 – Sequence Diagram của usecase admin upload ñiểm .............................................. 33
Hình 13 – Usecase của giáo viên............................................................................................. 34
Hình 14 – Activity Diagram của usecase giáo viên xem thời khóa biểu................................. 35
Hình 15 – Sequence Diagram của usecase giáo viên xem thời khóa biểu............................... 35
Hình 16 – Usecase của sinh viên ............................................................................................. 36
Hình 17 – Activity Diagram của usecase sinh viên ñăng ký lớp học phần.............................. 37
Hình 18 – Sequence Diagram của usecase sinh viên ñăng ký lớp học phần ........................... 38
Hình 19 – Class Diagram: Sinh viên, Lớp sinh hoạt, Ngành, Khóa học ................................. 39
Hình 20 – Class Diagram: Học phần, quan hệ học phần ......................................................... 39
Hình 21 – Object Diagram: Học phần, quan hệ học phần ....................................................... 40
Hình 22 – Class Diagram: Lớp học phần, học kỳ.................................................................... 40
Hình 23 – Class Diagram: Khung chương trình ...................................................................... 41
Hình 24 – Object Diagram: Khung chương trình .................................................................... 41
Hình 25 – Class Diagram: Sinh Viên ðăng ký........................................................................ 42
Hình 26 – Class Diagram: Sinh viên và ñiểm ......................................................................... 42
Hình 27 – Class Diagram: Sinh viên và thời khóa biểu .......................................................... 43
Hình 28 – Biểu ñồ thành phần của hệ thống............................................................................ 43
Hình 29 – Sơ ñồ triển khai của ứng dụng................................................................................ 44
Hình 30 – ðiểm của sinh viên ................................................................................................. 45
Hình 31 – Khung chương trình................................................................................................ 46
Hình 32 – Sinh viên ñăng ký ................................................................................................... 46
Hình 33 – Sinh viên, lớp sinh hoạt .......................................................................................... 47
Hình 34 – Thời khóa biểu sinh viên ........................................................................................ 47
Hình 35 – Lớp học phần theo kỳ ............................................................................................. 48
Hình 36 – Bố cục trang Web ................................................................................................... 56
Hình 37 – Header..................................................................................................................... 56
Hình 38 – Footer...................................................................................................................... 56
Hình 39 – Right Pane, Giáo viên Left Menu, Sinh viên Left Menu........................................ 57
Hình 40 – Giáo viên Top Menu............................................................................................... 57
Hình 41 – Admin Top Menu ................................................................................................... 57
Hình 42 – Sinh Viên Top Menu .............................................................................................. 57
Hình 43 – Admin Left Menu ................................................................................................... 57
Hình 44 – Nội dung gói AdminInterface................................................................................. 58
Hình 45 – Nội dung gói SinhVienInteface .............................................................................. 58
Hình 46 – Nội dung gói GiaoVienInterface............................................................................. 59
Hình 47 – Nội dung gói BusinessObject ................................................................................. 59
Hình 48 – Nội dung gói Bean.................................................................................................. 60
Hình 49 – Nội dung gói DataAcessObject .............................................................................. 60
Hình 50 – Nội dung gói Default .............................................................................................. 60
Hình 51 – ðồ thị mô tả học phần và các quan hệ.................................................................... 61
Hình 52 – Kiểm tra xung ñột thời khóa biểu bằng AND bit (không xung ñột)....................... 65
Hình 53 – Kiểm tra xung ñột thời khóa biểu bằng AND bit (có xung ñột)............................. 65
Hình 54 – Cập nhật quỹ thời gian của sinh viên sau khi ñăng ký............................................ 65
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........................ 66
Hình 56 – Quy trình ánh xạ dữ liệu ......................................................................................... 67
Hình 57 – Trang thiết kế khung chương trình của Admin....................................................... 69
Hình 58 – Trang thiết kế thời khóa biểu của lớp học phần ..................................................... 69
Hình 59 – Trang web chọn file upload của Admin ................................................................. 70
Hình 60 – Trang Web hiện thị danh sách sau khi upload thành công ..................................... 70
Hình 61 – Trang xem thời khóa biểu của giáo viên ................................................................ 71
Hình 62 – Trang xem lớp học phần của giáo viên................................................................... 71
Hình 63 – Trang xem cây quan hệ học phần của sinh viên ..................................................... 72
Hình 64 – Trang xem ñiểm của sinh viên................................................................................ 72
Hình 65 – Trang xem khung chương trình của sinh viên ........................................................ 73
Hình 66 – Trang xem lớp học phần ......................................................................................... 73
Hình 67 – Trang liệt kê danh sách lớp học phần hiện có......................................................... 74
Hình 68 – Trang xem thời khóa biểu của sinh viên................................................................. 74
DANH MỤC BẢNG BIỂU

Bảng 1 – Một số thẻ (tag) thường sử dụng trong ngôn ngữ HTML .......................................... 4
Bảng 2 – Các lệnh của giao thức HTTP .................................................................................... 5
Bảng 3 – Các tùy chọn của chỉ thị page..................................................................................... 8
Bảng 4 – Các hành ñộng trong JSP ........................................................................................... 9
Bảng 5 – Chi tiết từng loại khóa học ....................................................................................... 19
Bảng 6 – ðiểm rèn luyện quy ñổi ............................................................................................ 20
Bảng 7 – Mã của một số trường thuộc ðH ðà Nẵng............................................................... 21
Bảng 8 – Mã của các khoa....................................................................................................... 22
Bảng 9 – Mã của các ngành thuộc ñại học Bách Khoa ðà Nẵng ............................................ 23
Bảng 10 – Bảng tblChiTietDiemCuaSinhVien ....................................................................... 48
Bảng 11 – Bảng tblChiTietKhungChuongTrinh...................................................................... 48
Bảng 12 – Bảng tblChiTietHocPhan ...................................................................................... 49
Bảng 13 – Bảng tblDiemCuaSinhVien.................................................................................... 49
Bảng 14 – Bảng tblDonVi ....................................................................................................... 49
Bảng 15 – Bảng tblGiaoVien................................................................................................... 50
Bảng 16 – Bảng tblHocKy....................................................................................................... 51
Bảng 17 – Bảng tblHocKyHienHanh ...................................................................................... 51
Bảng 18 – Bảng tblHocPhan.................................................................................................... 51
Bảng 19 – Bảng tblKhoa.......................................................................................................... 51
Bảng 20 – Bảng tblKhoaHoc................................................................................................... 52
Bảng 21 – Bảng tblKhungChuongTrinh.................................................................................. 52
Bảng 22 – Bảng tblLoaiDiem .................................................................................................. 52
Bảng 23 – Bảng tblLopHocPhan ............................................................................................. 52
Bảng 24 – Bảng tblLopHocPhan ............................................................................................. 53
Bảng 25 – Bảng tblNganh........................................................................................................ 53
Bảng 26 – Bảng tblNhomLopHocPhan ................................................................................... 53
Bảng 27 – Bảng tblPhongHoc ................................................................................................. 53
Bảng 28 – Bảng tblQuanHe..................................................................................................... 53
Bảng 29 – Bảng tblQuanHeHocPhan ...................................................................................... 54
Bảng 30 – Bảng tblSinhVienDangKy...................................................................................... 54
Bảng 31 – Bảng tblThoiKhoaBieu .......................................................................................... 54
Bảng 32 – Bảng tblThoiKhoaBieuSinhVien ........................................................................... 54
Bảng 33 – Bảng tblSinhVien ................................................................................................... 55
Bảng 34 – Biểu diễn quan hệ theo danh sách ñỉnh kề ............................................................. 62
Bảng 35 – Bảng quan hệ học phần .......................................................................................... 63
Bảng 36 – Nội dung một class ñọc file excel .......................................................................... 68
DANH MỤC TỪ VIẾT TẮT

HTML Hypertext Markup Language


URL Uniform Resource Locator
HTTP Hypertext Tranfer Protocol
HTTPS HTTP over SSL
JSP Java Server Page
XML Extensible Markup Language
ODBC Open Database Connectivity
JDBC Java Database Connectivity
MVC Model – View – Controller
UML Unifield Modeling Language
WML Wireless Markup Language
API Application Programming Interface
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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 1


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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 2


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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 3


CHƯƠNG 1

CƠ SỞ LÝ THUYẾT

I. Lập trình Java trong môi trường Web


I.1. Một số khái niệm liên quan ñến Web
Thuật ngữ World Wide Web hay gọi tắc là Web không còn xa lạ với chúng ta. Cùng với sự
bùng nổ của công nghệ thông tin và Internet, Web ảnh hưởng hầu hết ñến tất cả các lĩnh vực
trong cuộc sống của chúng ta. ðề tài này ñược xây dựng trên nền Web chính vì vậy trong
phần này chúng tôi chỉ ñưa ra một số ñịnh nghĩa liên quan ñến Web ñược sử dụng trong ñề tài
thay vì làm rõ từng yếu tố của công nghệ này.

I.1.1. Ngôn ngữ HTML (Hypertext Markup Language)


Cơ sở ñể xây dựng và phát triển hệ thống website trên Internet là ngôn ngữ HTML. Trang
Web là trang thông tin, chứa dữ liệu văn bản, âm thanh, hình ảnh kể cả khả năng tương tác dữ
liệu… luôn ñược cập nhật liên tục thông qua thông qua hệ thống mang toàn cầu Internet.
HTML ñơn giản chỉ là các file thuần văn bản (text) sử dụng các thẻ (tag) yêu cầu thể hiện dữ
liệu ñặt giữa các thẻ theo một ñịnh dạng nào ñó. Mỗi thẻ sẽ mang một ñịnh dạng khác nhau
và ñược nhận biết bởi trình duyệt (browser) thông qua tên thẻ. Chức năng cụ thể của từng thẻ
ñược thể hiện qua bản sau.

Tên thẻ Chức năng

<html> </html> Cặp thẻ này quy ước mở ñầu và kết thúc cho tài liệu HTML. Nội dung của
HTML ñược ñặt giữa hai thẻ này.

<b>, <i> Thẻ ñịnh dạng in ñậm và in nghiêng của một chuỗi văn bản trong tài liệu.

<h1>, <h2>, <h3> Thẻ ñịnh dạng in cỡ chữ cho tiêu ñề

<body> </body> Thẻ ñịnh dạng phần thân của tài liệu HTML.

<table> </table> Thẻ ñịnh dạng một bảng trong tài liệu HTML.

<tr> </tr> Thẻ ñịnh dạng một hàng trong bảng của tài liệu HTML

<td> </td> Thẻ ñịnh dạng một ô trong một bảng của tài liệu HTML

<br> Thẻ xuống cắt dòng

Bảng 1 – Một số thẻ (tag) thường sử dụng trong ngôn ngữ HTML

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 4


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

I.1.2. Trình duyệt (browser)


Trình duyệt là một chương trình ở phía Client dùng ñể hiển thị tài liệu HTML. ðể có ñược
tài liệu HTML, trình duyệt sẽ liên hệ với trình chủ Web Server ñể lấy tài liệu qua một ñịa chỉ
Web là Url. Khi nhận ñược tài liệu, trình duyệt sẽ ñọc, phân tích và hiển thị tài liệu theo các
ñịnh dạng nhất ñịnh như font chữ, màu sắc, hình ảnh, âm thanh thậm chí còn thực hiện một số
lệnh tương tác như JavaScript, VBScript.. Người sử dụng có thể nhập dữ liệu và trình duyệt
thông qua các thành phần ñiều khiển của form như textBox, textArea, checkBox, listBox,...
và yêu cầu trình duyệt gửi về máy chủ xử lý thông qua thao tác ñược gọi là submit. Với ñề tài
này có thể chạy bằng bất cứ trình duyệt nào, tuy nhiên, chúng ta nên sử dụng Ms Internet
Explorer phiên bản 4.0 trở về sau ñể nội dung ñược hiển thị chính xác hơn.

I.1.3. ðịa chỉ ñịnh vị tài nguyên Url (Uniform Resource Locator)
Url (Uniform Resource Locator) là ñịa chỉ ñịnh vị tài nguyên thống nhất, ñịa chỉ này trỏ tới
vị trí tài nguyên trên máy chủ. ðịa chỉ này gồm 4 phần: phần giao thức (protocol), phần ñịa
chỉ máy chủ (address), số hiệu cổng của dịch vụ và phần ñường dẫn tương ñối ñến nơi chứa
tài nguyên.

I.1.4. Giao thức HTTP (Hypertext Tranfer Protocol)


Giao thức HTTP (Hypertext Tranfer Protocol) là cách thức ñể trình duyệt kết nối với máy
chủ server. HTTP là một giao thức phi kết nối, giao thức này cho phép trình duyệt ở phía máy
khách (client) gửi một yêu cầu (request) ñến trình server (web server) ở máy chủ. Máy chủ sẽ
nhận ñược lệnh và trả về tài liệu tương ứng. Tập lệnh của giao thức này rất ñơn giản, gồm các
lệnh sau:

Tên lệnh Ý nghĩa

GET Yêu cầu lấy nội dung trang dữ liệu từ Web Server

POST Chuyển dữ liệu lên trình chủ Web Server

PUT ðưa một file lên Web Server

DELETE Yêu cầu xóa trang

TRACE Yêu cầu lấy thông tin của một trang

Bảng 2 – Các lệnh của giao thức HTTP

I.1.5. Một số khái niệm về Servlet và JSP


Với HTTP và HTML, chúng ta có thể tạo trang web một cách dễ dàng, tuy nhiên, muốn
xây dựng một hệ thống website tác nghiệp và các trang web ñộng có khả năng tương tác cơ sở
dữ liệu chúng ta phải sử dụng công nghệ lập trình web ở phía máy chủ. Ở ñây, chúng tôi trình
bày công nghệ lập trình web của Java do Sun Microsystem Co cung cấp.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 5


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

I.1.6. Web Server


Web Server là một máy tính có cài phần mềm Web server, nó nhận các yêu cầu (request)
HTTP từ phía client và trả lời phục vụ các yêu cầu ñó bằng dữ liệu tương ứng.

I.1.7. Servlet
Công nghệ Servlet là cơ sở ñể triển khai các ứng dụng Web sử dụng ngôn ngữ lập trình
Java, là công nghệ quan trọng, cơ bản ñể triển khai ứng dụng Web: Java Server Page.

Servlet là một lớp Java có thể ñược load ñộng và ñược chạy bởi một Web Server ñặc biệt.
Một Web Server hiểu ñược Servlet ñược gọi là servlet container hay servlet engine.

Servlet tương tác với client thông qua mô hình request-response dựa trên HTTP. Bởi vì
công nghệ Servlet dựa trên HTTP nên servlet container cũng phải hỗ trợ HTTP hay một giao
thức tương tự như HTTPS (HTTP over SSL) ñể bảo mật hơn.

Cách thức servlet làm việc: Một Servlet sẽ ñược nạp bởi servlet container khi lần ñầu tiên
servlet ñược yêu cầu. Servlet sẽ xử lý các yêu cầu người sử dụng và trả về hồi ñáp ñến servlet
container. Sau ñó servlet vẫn ở trong bộ nhớ ñể ñợi các yêu cầu khác nó sẽ ñược unload khi
servlet container thấy bộ nhớ còn ít.

Hình 1 – Cách thức servlet làm việc


Chu trình sống Servlet:

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 6


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

− Nạp Servlet: Một Servlet có thể nạp vào bộ nhớ ở 3 thời ñiểm khác nhau: khi server
khởi ñộng, khi người quản trị yêu cầu hoặc khi trình duyệt triệu gọi Servlet từ máy
khách. ðể nạp Servlet, trình chủ Web server cần phải biết tên lớp của Servlet. Thông
thường tên lớp của Servlet (tên file .class) cũng là tên mà trình duyệt dùng triệu gọi
Servlet khi bạn thực hiện quá trình ñăng ký và ánh xạ. Tuy nhiên, bạn cũng có thể ánh
xạ ñổi tên Servlet khác với tên file *.class của nó thậm chí ñổi tên tiếp ñầu ngữ dùng
ñể triệu gọi Servlet. Khi có một yêu cầu triệu gọi Servlet, trình chủ Web Server sẽ
xem Servlet ñã nạp vào bộ nhớ hay chưa, nếu chưa nó sẽ nạp Servlet vào bộ nhớ. Một
khi Servlet ñược nạp, Web Server sẽ tiến ñến giai ñoạn khởi tạo Servlet
− Khởi tạo Servlet: Trình chủ Web Server khởi tạo Servlet bằng cách gọi ñến phương
thức init() mà Servlet cài ñặt. Phương thức này ñược gọi một lần duy nhất.
− Thực thi Servlet: Khi trình duyệt gọi hoặc các trang JSP triệu gọi Servlet thông qua
ñịa chỉ URL, trình chủ Web Server sẽ chính thức gọi Servlet thực thi thông qua các
phương thức như doGet(), doPost() hoặc service(). Sau khi các phương thức này thực
thi xong, Servlet vẫn giữ lại trong bộ nhớ ñể phục vụ cho lần triệu gọi tiếp theo. ðiều
này giúp cho Servlet thực thi nhanh hơn.
− Dọn dẹp Servlet: Servlet không giữ lại trong bộ nhớ vĩnh viễn, sẽ ñến lúc cần loại bỏ
Servlet ra khỏi bộ nhớ. Trước khi chấm dứt, Web Server sẽ triệu gọi ñến phương thức
destroy() của Servlet.

I.1.8. Java Server Page (JSP)


Java Server Page còn ñược biết ñến với một cái tên khác là Java Scripting Preprocessor
- tạm dịch là "Bộ xử lý văn lệnh Java tiền trình" - là một công nghệ Java cho phép các nhà
phát triển tạo nội dung HTML, XML hay một số ñịnh dạng khác của trang web một cách
năng ñộng, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta
nhúng mã Java và một số hành ñộng xử lý ñã ñược ñịnh trước (pre-defined actions) vào trong
nội dung tĩnh của trang.

Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành ñộng JSP. Những
"hành ñộng JSP" này ñược dùng ñể khởi ñộng chức năng sẵn có, là những chức năng ñã ñược
xây dựng trước. Cộng thêm vào ñó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ
JSP (JSP tag libraries), là những cái ñóng vai trò vào việc mở rộng các thẻ HTML hay XML
tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ
web trong khi những mở rộng ñó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như
hệ ñiều hành ñược dùng).

Trước khi hiển thị ra trình duyệt, tập tin JSP phải ñược biên dịch thành Servlet, dùng bộ
biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước,
rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã
byte code cho servlet từ trang JSP.

Một trang JSP có thể ñược phân thành từng phần nhỏ như sau:

− dữ liệu tĩnh, như HTML


− các chỉ thị JSP (JSP directives) như chỉ thị include: <jsp:include>

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 7


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

− các phần tử kịch bản JSP (scripting elements) và các biến (variables), ví dụ:
− <% scriptlet %>
− <%= expression %>
− <%! declaration %>
− hành ñộng JSP (JSP actions)
− thẻ tùy biến (custom tags)
Các chỉ thị JSP bao gồm:

− include – Chỉ thị include thông báo cho bộ biên dịch JSP cho nhập toàn bộ nội dung
của một tập tin vào trong nội dung hiện có. Việc làm này tương tự như việc chúng ta
lấy nội dung của tập tin ñó dán trực tiếp vào trong nội dung của tập tin ñang dùng
− page – Có nhiều tùy chọn với chỉ thị page.

Tùy chọn Giải thích


import Kết quả là câu lệnh import của Java ñược chèn vào trong tập tin
contentType Chỉ ñịnh nội dụng của tập tin ñược khởi tạo. Chúng ta nên dùng chỉ
phối này nếu chúng ta không dùng HTML, hoặc bộ ký tự (character
set) ñược dùng không phải là bộ ký tự mặc ñịnh.
errorPage Chỉ ñịnh rằng trang web sẽ ñược hiển thị nếu có một ngoại lệ
(exception) xảy ra trong quá trình xử lý yêu cầu HTTP
isErrorPage Nếu ñịnh giá trị là true thì nó nói rằng trang này là trang báo lỗi
(error page).
isThreadSafe Chỉ ñịnh cho biết servlet tạo ra có tính an toàn về luồng xử lý
(threadsafe) hay không.
Bảng 3 – Các tùy chọn của chỉ thị page
− Taglib – Chỉ thị taglib thông báo rằng chúng ta sẽ sử dụng một thư viện thẻ JSP (JSP
tag library). Chỉ thị này ñòi hỏi một tiền tố (prefix) (tương tự như namespace trong
C++), cũng như kết nối URI của phần mô tả thư viện thẻ (URI for the tag library
description) phải ñược xác ñịnh.
Các ñối tượng chuẩn:

− out (xuất) – JSPWriter sử dụng nó ñể ghi dữ liệu vào luồng dữ liệu hồi âm (response
stream).
− page (trang) – Bản thân servlet.
− pageContext (ngữ cảnh của trang) – Một PageContext là một thực thể có chứa dữ liệu
liên kết với toàn bộ trang web. Một trang HTML nào ñấy có thể ñược truyền qua
nhiều trang JSP.
− request (yêu cầu) – ðối tượng yêu cầu HTTP.
− response (hồi âm) – ðối tượng hồi âm HTTP.
− session (phiên giao dịch) – ðối tượng phiên giao dịch HTTP. Cái này có thể ñược
dùng ñể theo dõi tin tức về một người dùng, từ yêu cầu này ñến yêu cầu khác

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 8


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

Các thẻ hành ñộng của JSP:


Hành ñộng Giải thích
jsp:include Tương tự như mục ñích sử dụng một thủ tục con (subroutine), Java
servlet tạm thời trao nhiệm vụ ñặt yêu cầu và hồi âm cho trang
JavaServer (JavaServer Page) chỉ ñịnh nào ñấy. Quyền khống chế sẽ
ñược hoàn lại cho trang JSP hiện tại, một khi trang JSP kia hoàn
thành nhiệm vụ của nó. Dùng phương pháp này, mã trang JSP ñược
chia sẻ với nhiều trang JSP, thay vì phải sao mã.
jsp:param Có thể ñược dùng bên trong khối jsp:include, khối jsp:forward hoặc
khối jsp:params. Nó ñược dùng ñể xác ñịnh một thông số, và thông số
này sẽ ñược cộng thêm vào chuỗi các thông số hiện có của yêu cầu.
jsp:forward ðược dùng ñể trao nhiệm vụ ñặt yêu cầu và hồi âm sang cho một
trang JSP khác, hoặc cho một servlet khác. Quyền khống chế sẽ ñược
hoàn trả lại cho trang JSP hiện tại.
jsp:plugin Những phiên bản cũ của Netscape Navigator và Internet Explorer
dùng những thẻ khác ñể nhúng một chương trình nhỏ (applet). Hành
ñộng này tạo nên thẻ thuộc trình duyệt web cần thiết ñể bao gồm
applet.
jsp:fallback Phần nội dung sẽ ñược hiển thị nếu trình duyệt web không hỗ trợ
applets.
jsp:getProperty Lấy thuộc tính của một JavaBean chỉ ñịnh.
jsp:setProperty Thiết lập thuộc tính của một JavaBean chỉ ñịnh.
jsp:useBean Kiến tạo hoặc dùng lại một JavaBean, là cái có thể dùng ñược trong
trang JSP.
Bảng 4 – Các hành ñộng trong JSP

I.2. Kết nối cơ sở dữ liệu


I.2.1. Kết nối trực tiếp bằng trình ñiều khiển cơ sở dữ liệu
JDBC kết nối trực tiếp với các trình ñiều khiển CSDL. Khi Java phát triển, các nhà cung
cấp hỗ trợ trình ñiều khiển JDBC kết nối trực tiếp với các trình ñiều khiển ñặc thù của mỗi hệ
mà không cần phải qua trung gian ODBC của Window nữa. Các kết nối này nhanh và hiệu
quả hơn kiểu JDBC-ODBC. Tuy nhiên, bạn phải mua các trình ñiều khiển CSDL ñặc thù do
những nhà phát triển cơ sở dữ liệu cung cấp.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 9


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

Hình 2 – JDBC kết nối trực tiếp với trình ñiều khiển

I.2.2. Kết nối thông qua cầu nối ODBC (Open Database Connectivity)
ODBC (Open Source Connectivity) là cách kết nối tổng quát nhất ñến mọi hệ cơ sở dữ liệu
thông qua trình quản lý ODBC của Windows. Mỗi hệ cơ sở dữ liệu sẽ cung cấp một trình
ñiều khiển có khả năng ñọc hiểu ñược cơ sở dữ liệu của chúng. Trình ñiều khiển này sẽ ñược
ñăng ký với bộ quản lý ODBC. Tất cả các lệnh truy xuất cơ sở dữ liệu sau ñó ñược thực thi
bằng lệnh SQL. Java cho bạn sử dụng JDBC ñể gọi ODBC và bằng cách này bạn có thể kiểm
soát nhiều hệ quản trị cơ sở dữ liệu khác nhau. Quan hệ cầu nối JDBC-ODBC ñược thể hiện
ở hình dưới. Sun cung cấp sẵn thư viện JDBC-ODBC kèm theo bộ JDK và bạn có thể dùng
miễn phí.

Java Application,
Applet, Servlet

JDBC Driver

ODBC

Database Driver

CSDL

Hình 3 – JDBC sử dụng cầu nối ODBC

I.2.3. Kết nối thông qua ứng dụng mạng trung gian
Ngày nay các ứng dụng ñều gắn liền với mạng Internet. Theo mô hình lập trình phân tán,
ứng dụng mạng trung gian (middle-ware) trên một máy chủ sẽ chịu trách nhiệm kết nối
CSDL. Nhiệm vụ của trình khách là sử dụng những trình ñiều khiển JDBC gọn nhẹ, có khả
năng giao tiếp với ứng dụng trung gian qua Internet ñể truy vấn dữ liệu.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 10


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

Hình 4 – JDBC kết nối thông qua các ứng dụng mạng trung gian

II. Mô hình phát triển ứng dụng Web


Khi giới thiệu công nghệ JSP, Sun cũng ñưa ra những cách ñể làm việc với nó và ñịnh
nghĩa 2 mô hình ñể xây dựng ứng dụng Web dựa trên JSP. Hai mô hình ñó ñược biết như là
Mô hình 1 và Mô hình 2 và chúng biểu diễn những cách tiếp cận khác nhau ñể xây dựng ứng
dụng Web dựa trên JSP. Mô hình 1 ñơn giản hơn Mô hình 2 và là giải pháp chính ñể xây
dựng ứng dụng Web khi công nghệ JSP ñược giới thiệu lần ñầu tiên. Tuy nhiên, qua thời gian
Mô hình 2 ñược chấp nhận là giải pháp tốt nhất ñể xây dựng ứng dụng Web dựa trên JSP.

II.1. Kiến trúc mô hình 1

Hình 5 – Mô hình 1

Cấu trúc Mô hình 1 rất ñơn giản, một request tạo bởi JSP hoặc Servlet và sau ñó JSP hoặc
Servlet kia sẽ xử lý request, kiểm tra tính hợp lệ dữ liệu, xử lý các nguyên tắc tác nghiệp và
tạo ra một response. Mặc dù ñơn giản, nhưng Mô hình 1 không thích hợp ñể phát triển những
ứng dụng lớn bởi vì chắc hẳn một số lượng lớn các hàm sẽ ñươc nhân bản trong mỗi trang
JSP. Không những thế, Mô hình 1 còn không cần thiết phải có sự liên kết giữa bussiness logic
và presentation logic của ứng dụng. Khi kết hợp business logic với presentation logic làm cho
nó khó có thể ñưa vào một “view” mới hay một ñiểm truy cập mới trong ứng dụng. Ví dụ như

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 11


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

trong một giao diện HTML, bạn muốn thêm vào một giao diện mới như Wireless Markup
Language (WML) cho truy cập không dây thì việc ñó là rất khó.

II.2. Kiến trúc mô hình 2 (Model – View – Controller)

Hình 6 – Mô hình 2 (MVC)


Mô hình 2 hay mô hình Model – View – Controller (MVC) ñã giải quyết nhiều vấn ñề cố
hữu của Mô hình 1. Trong mô hình MVC Controller là một Servlet trung tâm nhận tất cả các
request từ phía client. Controller sẽ phân loại và xử lý các request. Khi xử lý các request, tầng
Model bên dưới sẽ cung cấp các phương thức cho Controller. Bên trong Model có 2 tầng tách
biệt là Business Logic và Data Manipulation. Business Logic ñặc tả tất cả các ñối tượng
tương tác trong toàn bộ hệ thống còn Data Manipulation ñặc tả tất cả các luật và phương thức
xử lý của các ñối tượng trên. Sau khi xử lý, Controller sẽ trả dữ liệu về cho client thông qua
ñối tượng response, sau ñó ñối tượng này ñược trình diễn ở tầng View. View bao gồm tất cả
các JSP thực hiện việc trình diễn dữ liệu và các form ñể nhận các request tiếp theo. Trong mô
hình này business logic với presentation logic ñược tách biệt lẫn nhau, sự tách biệt này cung
cấp nhiều loại giao diện khác nhau cho ứng dụng, có thể là Web, wireless, hoặc GUI (Swing).
Thêm vào ñó, sự tách biệt này cũng cho phép chúng ta sử dụng lại mã lệnh một cách dễ dàng.

III. Ngôn ngữ mô hình hóa thống nhất (UML)


III.1. Giới thiệu UML
III.1.1. Mô hình hóa hệ thống phần mềm
Mục tiêu của giai ñoạn phân tích hệ thống là sản xuất ra một mô hình tổng thể của hệ
thống cần xây dựng. Mô hình này cần phải ñược trình bày theo hướng nhìn (View) của khách
hàng hay người sử dụng và làm sao ñể họ hiểu ñược. Mô hình này cũng có thể ñược sử dụng
ñể xác ñịnh các yêu cầu của người dùng ñối với hệ thống và qua ñó giúp chúng ta ñánh giá
tính khả thi của dự án.

Tầm quan trọng của mô hình ñã ñược lĩnh hội một cách thấu ñáo trong hầu như tất cả các
ngành khoa học kỹ thuật từ nhiều thế kỷ nay. Bất kỳ ở ñâu, khi muốn xây dựng một vật thể
nào ñó, ñầu tiên người ta ñã tạo nên các bản vẽ ñể quyết ñịnh cả ngoại hình lẫn phương thức
hoạt ñộng của nó. Chẳng hạn các bản vẽ kỹ thuật thường gặp là một dạng mô hình quen
thuộc. Mô hình nhìn chung là một cách mô tả của một vật thể nào ñó. Vật ñó có thể tồn tại

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 12


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

trong một số giai ñoạn nhất ñịnh, dù ñó là giai ñoạn thiết kế hay giai ñoạn xây dựng hoặc chỉ
là một kế hoạch. Nhà thiết kế cần phải tạo ra các mô hình mô tả tất cả các khía cạnh khác
nhau của sản phẩm. Ngoài ra, một mô hình có thể ñược chia thành nhiều hướng nhìn, mỗi
hướng nhìn trong số chúng sẽ mô tả một khía cạnh riêng biệt của sản phẩm hay hệ thống cần
ñược xây dựng. Một mô hình cũng có thể ñược xây dựng trong nhiều giai ñoạn và ở mỗi giai
ñoạn, mô hình sẽ ñược bổ sung thêm một số chi tiết nhất ñịnh.

Mô hình thường ñược mô tả trong ngôn ngữ trực quan, ñiều ñó có nghĩa là ña phần các
thông tin ñược thể hiện bằng các ký hiệu ñồ họa và các kết nối giữa chúng, chỉ khi cần thiết
một số thông tin mới ñược biểu diễn ở dạng văn bản; Theo ñúng như câu ngạn ngữ "Một bức
tranh nói nhiều hơn cả ngàn từ". Tạo mô hình cho các hệ thống phần mềm trước khi thực sự
xây dựng nên chúng, ñã trở thành một chuẩn mực trong việc phát triển phần mềm và ñược
chấp nhận trong cộng ñồng làm phần mềm giống như trong bất kỳ một ngành khoa học kỹ
thuật nào khác. Việc biểu diễn mô hình phải thõa mãn các yếu tố sau:

− Chính xác (accurate): Mô tả ñúng hệ thống cần xây dựng.


− ðồng nhất (consistent): Các view khác nhau không ñược mâu thuẩn với nhau.
− Có thể hiểu ñược (understandable): Cho những người xây dựng lẫn sử dụng
− Dễ thay ñổi (changeable)
− Dễ dàng liên lạc với các mô hình khác.
Có thể nói thêm rằng mô hình là một sự ñơn giản hoá hiện thực. Mô hình ñược xây dựng
nên ñể chúng ta dễ dàng hiểu và hiểu tốt hơn hệ thống cần xây dựng. Tạo mô hình sẽ giúp cho
chúng ta hiểu thấu ñáo một hệ thống phức tạp trong sự toàn thể của nó.

Nói tóm lại, mô hình hóa một hệ thống nhằm mục ñích:

− Hình dung một hệ thống theo thực tế hay theo mong muốn của chúng ta .
− Chỉ rõ cấu trúc hoặc ứng xử của hệ thống.
− Tạo một khuôn mẫu hướng dẫn nhà phát triển trong suốt quá trình xây dựng hệ thống.
− Ghi lại các quyết ñịnh của nhà phát triển ñể sử dụng sau này.

III.1.2. Trước khi UML ra ñời


ðầu những năm 1980, ngành công nghệ phần mềm chỉ có duy nhất một ngôn ngữ hướng
ñối tượng là Simula. Sang nửa sau của thập kỷ 1980, các ngôn ngữ hướng ñối tượng như
Smalltalk và C++ xuất hiện. Cùng với chúng, nảy sinh nhu cầu mô hình hoá các hệ thống
phần mềm theo hướng ñối tượng. Và một vài trong số những ngôn ngữ mô hình hoá xuất hiện
những năm ñầu thập kỷ 90 ñược nhiều người dùng là:

− Grady Booch’s Booch Modeling Methodology


− James Rambaugh’s Object Modeling Technique – OMT
− Ivar Jacobson’s OOSE Methodology

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 13


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

− Hewlett- Packard’s Fusion


− Coad and Yordon’s OOA and OOD
Mỗi phương pháp luận và ngôn ngữ trên ñều có hệ thống ký hiệu riêng, phương pháp xử lý
riêng và công cụ hỗ trợ riêng, khiến xảy ra cuộc tranh luận phương pháp nào là tốt nhất. ðây
là cuộc tranh luận khó có câu trả lời, bởi tất cả các phương pháp trên ñều có những ñiểm
mạnh và ñiểm yếu riêng. Vì thế, các nhà phát triển phần mềm nhiều kinh nghiệm thường sử
dụng phối hợp các ñiểm mạnh của mỗi phương pháp cho ứng dụng của mình. Trong thực tế,
sự khác biệt giữa các phương pháp ñó hầu như không ñáng kể và theo cùng tiến trình thời
gian, tất cả những phương pháp trên ñã tiệm cận lại và bổ sung lẫn cho nhau. Chính hiện thực
này ñã ñược những người tiên phong trong lĩnh vực mô hình hoá hướng ñối tượng nhận ra và
họ quyết ñịnh ngồi lại cùng nhau ñể tích hợp những ñiểm mạnh của mỗi phương pháp và ñưa
ra một mô hình thống nhất cho lĩnh vực công nghệ phần mềm.

III.1.3. Sự ra ñời của UML


Trong bối cảnh trên, người ta nhận thấy cần thiết phải cung cấp một phương pháp tiệm cận
ñược chuẩn hoá và thống nhất cho việc mô hình hoá hướng ñối tượng. Yêu cầu cụ thể là ñưa
ra một tập hợp chuẩn hoá các ký hiệu (Notation) và các biểu ñồ (Diagram) ñể nắm bắt các
quyết ñịnh về mặt thiết kế một cách rõ ràng, rành mạch. ðã có ba công trình tiên phong nhắm
tới mục tiêu ñó, chúng ñược thực hiện dưới sự lãnh ñạo của James Rumbaugh, Grady Booch
và Ivar Jacobson. Chính những cố gắng này dẫn ñến kết quả là xây dựng ñược một Ngôn Ngữ
Mô Hình Hoá Thống Nhất (Unifield Modeling Language – UML).

UML là một ngôn ngữ mô hình hoá thống nhất có phần chính bao gồm những ký hiệu hình
học, ñược các phương pháp hướng ñối tượng sử dụng ñể thể hiện và miêu tả các thiết kế của
một hệ thống. Nó là một ngôn ngữ ñể ñặc tả, trực quan hoá, xây dựng và làm sưu liệu cho
nhiều khía cạnh khác nhau của một hệ thống có nồng ñộ phần mềm cao. UML có thể ñược sử
dụng làm công cụ giao tiếp giữa người dùng, nhà phân tích, nhà thiết kế và nhà phát triển
phần mềm.

Trong quá trình phát triển có nhiều công ty ñã hỗ trợ và khuyến khích phát triển UML có
thể kể tới như : Hewlett Packard, Microsoft, Oracle, IBM, Unisys.

III.1.4. UML (Unifield Modeling Language)


Ngôn ngữ mô hình hóa thống nhất (Unifield Modeling Language – UML) là một ngôn ngữ
ñể biểu diễn mô hình theo hướng ñối tượng ñược xây dựng bởi ba tác giả trên với chủ ñích là:

− Mô hình hoá các hệ thống sử dụng các khái niệm hướng ñối tượng.
− Thiết lập một kết nối từ nhận thức của con người ñến các sự kiện cần mô hình hoá.
− Giải quyết vấn ñề về mức ñộ thừa kế trong các hệ thống phức tạp, có nhiều ràng buộc
khác nhau.
− Tạo một ngôn ngữ mô hình hoá có thể sử dụng ñược bởi người và máy.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 14


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

III.2. UML và các giai ñoạn của chu trình phát triển phần mềm
III.2.1. Giai ñoạn nghiên cứu sơ bộ
UML ñưa ra khái niệm Use Case ñể nắm bắt các yêu cầu của khách hàng (người sử dụng).
UML sử dụng biểu ñồ Use case (Use Case Diagram) ñể nêu bật mối quan hệ cũng như sự
giao tiếp với hệ thống.

Qua phương pháp mô hình hóa Use case, các tác nhân (Actor) bên ngoài quan tâm ñến hệ
thống sẽ ñược mô hình hóa song song với chức năng mà họ ñòi hỏi từ phía hệ thống (tức là
Use case). Các tác nhân và các Use case ñược mô hình hóa cùng các mối quan hệ và ñược
miêu tả trong biểu ñồ Use case của UML. Mỗi một Use case ñược mô tả trong tài liệu, nó sẽ
ñặc tả các yêu cầu của khách hàng: Anh ta hay chị ta chờ ñợi ñiều gì ở phía hệ thống mà
không hề ñể ý ñến việc chức năng này sẽ ñược thực thi ra sao.

III.2.2. Giai ñoạn phân tích


Giai ñoạn phân tích quan tâm ñến quá trình trừu tượng hóa ñầu tiên (các lớp và các ñối
tượng) cũng như cơ chế hiện hữu trong phạm vi vấn ñề. Sau khi nhà phân tích ñã nhận biết
ñược các lớp thành phần của mô hình cũng như mối quan hệ giữa chúng với nhau, các lớp
cùng các mối quan hệ ñó sẽ ñược miêu tả bằng công cụ biểu ñồ lớp (class diagram) của UML.
Sự cộng tác giữa các lớp nhằm thực hiện các Use case cũng sẽ ñược miêu tả nhờ vào các mô
hình ñộng (dynamic models) của UML. Trong giai ñoạn phân tích, chỉ duy nhất các lớp có
tồn tại trong phạm vi vấn ñề (các khái niệm ñời thực) là ñược mô hình hóa. Các lớp kỹ thuật
ñịnh nghĩa chi tiết cũng như giải pháp trong hệ thống phần mềm, ví dụ như các lớp cho giao
diện người dùng, cho ngân hàng dữ liệu, cho sự giao tiếp, trùng hợp, v.v..., chưa phải là mối
quan tâm của giai ñoạn này.

III.2.3. Giai ñoạn thiết kế


Trong giai ñoạn này, kết quả của giai ñoạn phân tích sẽ ñược mở rộng thành một giải pháp
kỹ thuật. Các lớp mới sẽ ñược bổ sung ñể tạo thành một hạ tầng cơ sở kỹ thuật: Giao diện
người dùng, các chức năng ñể lưu trữ các ñối tượng trong ngân hàng dữ liệu, giao tiếp với các
hệ thống khác, giao diện với các thiết bị ngoại vi và các máy móc khác trong hệ thống, .... Các
lớp thuộc phạm vi vấn ñề có từ giai ñoạn phân tích sẽ ñược "nhúng" vào hạ tầng cơ sở kỹ
thuật này, tạo ra khả năng thay ñổi trong cả hai phương diện: Phạm vi vấn ñề và hạ tầng cơ
sở. Giai ñoạn thiết kế sẽ ñưa ra kết quả là bảng ñặc tả chi tiết cho giai ñoạn xây dựng hệ
thống.

III.2.4. Giai ñoạn xây dựng


Trong giai ñoạn xây dựng (giai ñoạn lập trình), các lớp của giai ñoạn thiết kế sẽ ñược biến
thành những dòng code cụ thể trong một ngôn ngữ lập trình hướng ñối tượng cụ thể (không
nên dùng một ngôn ngữ lập trình hướng chức năng!). Phụ thuộc vào khả năng của ngôn ngữ
ñược sử dụng, ñây có thể là một công việc khó khăn hay dễ dàng. Khi tạo ra các mô hình
phân tích và thiết kế trong UML, tốt nhất nên cố gắng né tránh việc ngay lập tức biến ñổi các
mô hình này thành các dòng code. Trong những giai ñoạn trước, mô hình ñược sử dụng ñể dễ
hiểu, dễ giao tiếp và tạo nên cấu trúc của hệ thống; vì vậy, vội vàng ñưa ra những kết luận về

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 15


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

việc viết code có thể sẽ thành một trở ngại cho việc tạo ra các mô hình chính xác và ñơn giản.
Giai ñoạn xây dựng là một giai ñoạn riêng biệt, nơi các mô hình ñược chuyển thành code.

III.2.5. Thử nghiệm


Một hệ thống phần mềm thường ñược thử nghiệm qua nhiều giai ñoạn và với nhiều nhóm
thử nghiệm khác nhau. Các nhóm sử dụng nhiều loại biểu ñồ UML khác nhau làm nền tảng
cho công việc của mình: Thử nghiệm ñơn vị sử dụng biểu ñồ lớp (class diagram) và ñặc tả
lớp, thử nghiệm tích hợp thường sử dụng biểu ñồ thành phần (component diagram) và biểu ñồ
cộng tác (collaboration diagram), và giai ñoạn thử nghiệm hệ thống sử dụng biểu ñồ Use case
(use case diagram) ñể ñảm bảo hệ thống có phương thức hoạt ñộng ñúng như ñã ñược ñịnh
nghĩa từ ban ñầu trong các biểu ñồ này.

III.2.6. Các thành phần của ngôn ngữ UML


Ngôn ngữ UML bao gồm một loạt các phần tử ñồ họa (graphic element) có thể ñược kết
hợp với nhau ñể tạo ra các biểu ñồ. Bởi ñây là một ngôn ngữ, nên UML cũng có các nguyên
tắc ñể kết hợp các phần tử ñó.

Một số những thành phần chủ yếu của ngôn ngữ UML:

− Hướng nhìn (view): Hướng nhìn chỉ ra những khía cạnh khác nhau của hệ thống cần
phải ñược mô hình hóa. Một hướng nhìn không phải là một bản vẽ, mà là một sự trừu
tượng hóa bao gồm một loạt các biểu ñồ khác nhau. Chỉ qua việc ñịnh nghĩa của một
loạt các hướng nhìn khác nhau, mỗi hướng nhìn chỉ ra một khía cạnh riêng biệt của hệ
thống, người ta mới có thể tạo dựng nên một bức tranh hoàn thiện về hệ thống. Cũng
chính các hướng nhìn này nối kết ngôn ngữ mô hình hóa với quy trình ñược chọn cho
giai ñoạn phát triển.
− Biểu ñồ (diagram): Biểu ñồ là các hình vẽ miêu tả nội dung trong một hướng nhìn.
UML có tất cả 9 loại biểu ñồ khác nhau ñược sử dụng trong những sự kết hợp khác
nhau ñể cung cấp tất cả các hướng nhìn của một hệ thống.
− Phần tử mô hình hóa (model element): Các khái niệm ñược sử dụng trong các biểu
ñồ ñược gọi là các phần tử mô hình, thể hiện các khái niệm hướng ñối tượng quen
thuộc. Ví dụ như lớp, ñối tượng, thông ñiệp cũng như các quan hệ giữa các khái niệm
này, bao gồm cả liên kết, phụ thuộc, khái quát hóa. Một phần tử mô hình thường ñược
sử dụng trong nhiều biểu ñồ khác nhau, nhưng nó luôn luôn chỉ có một ý nghĩa và một
kí hiệu.
− Cơ chế chung: Cơ chế chung cung cấp thêm những lời nhận xét, bổ sung các thông
tin cũng như các quy tắc ngữ pháp chung về một phần tử mô hình; chúng còn cung
cấp thêm các cơ chế ñể có thể mở rộng ngôn ngữ UML cho phù hợp với một phương
pháp xác ñịnh (một quy trình, một tổ chức hoặc một người dùng).

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 16


CHƯƠNG 2

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

I. Phân tích hiện trạng


I.1. Tín chỉ
Tín chỉ là ñơn vị dùng ñể ño lường khối lượng kiến thức và kết quả học tập ñã tích lũy
ñược của sinh viên.

Một tín chỉ ñược qui ñịnh bằng 15 tiết học lý thuyết hoặc 30 tiết thảo luận trên lớp, bài
tập, thí nghiệm hoặc 45 - 60 tiết thực tập, kiến tập, chuẩn bị khoá luận.

Như vậy, nếu trong một học kỳ có 15 tuần thực học thì tín chỉ là một tiết lý thuyết hoặc 2
tiết bài tập, thực hành, thảo luận hoặc 3 ñến 4 tiết thực tập, kiến tập, chuẩn bị khoá luận trong
một tuần và kéo dài trong suốt học kỳ.

Ðể tiếp thu ñược một tiết học lý thuyết trên lớp sinh viên cần khoảng 2 - 3 tiết chuẩn bị,
một tiết học thực hành hoặc bài tập cần 1 - 2 tiết chuẩn bị. Một tiết học trên lớp ñược quy
ñịnh là 45 phút.

I.2. Học phần


I.2.1. ðịnh nghĩa
Học phần là khối lượng kiến thức tương ñối trọn vẹn, thuận tiện cho người học tích lũy
trong quá trình học tập:

Mỗi học phần thực hành có khối lượng từ 1 ñến 3 tín chỉ, mỗi học phần lý thuyết hoặc học
phần có cả lý thuyết và thực hành có khối lượng từ 2 ñến 5 tín chỉ.

Một học phần phải ñược bố trí giảng dạy trọn vẹn và phân bố ñều trong một học kỳ. Khoá
luận hay ñồ án tốt nghiệp là một học phần ñặc biệt, có khối lượng tương ñương 10 - 15 tín chỉ
(cụ thể xem ðiều 28).

Kiến thức trong mỗi học phần ñược thiết kế kiểu môñun theo từng môn học hoặc ñược kết
cấu dưới dạng tổ hợp từ nhiều môn học thành một môn học mới. Mỗi học phần phải ñược ký
hiệu bằng một mã riêng do trường qui ñịnh.

I.2.2. Các loại học phần


− Học phần bắt buộc là học phần chứa ñựng những nội dung chính yếu của ngành hay
nhóm ngành ñào tạo, mà tất cả mọi sinh viên thuộc ngành hay nhóm ngành ñào tạo ñó
ñều phải theo học và tích luỹ ñược.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 17


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

− Học phần tự chọn bắt buộc là học phần chứa ñựng những mảng nội dung chính yếu
của ngành hay nhóm ngành ñào tạo, mà sinh viên bắt buộc phải chọn một số lượng
xác ñịnh trong số nhiều học phần tương ñương ñược quy ñịnh cho ngành ñó.
− Học phần tự chọn tự do là học phần sinh viên có thể tự do ñăng ký học hay không tùy
theo nguyện vọng.
Theo nội dung và tính chất tương ñối giữa các mảng kiến thức, các học phần trên có thể
ñược chia ra:

− Học phần tiên quyết ñối với học phần X là học phần bắt buộc sinh viên phải học
trước học phần X và thi ñạt mới ñược theo học học phần X.
Ký hiệu: Y X

− Học phần học trước ñối với học phần X là học phần sinh viên phải học trước học
phần X mới ñược học học phần X, cho dù kết quả thi có thể không ñạt.
Y X
Ký hiệu:

− Học phần song hành ñối với học phần X là học phần sinh viên có thể theo học ñồng
thời với học phần X.
Ký hiệu: Y SH X

− Học phần tích lũy là học phần có kết quả cuối cùng của học phần ñạt từ ñiểm 5 trở
lên. Tổng số tín chỉ của các học phần này tính từ lúc bắt ñầu khoá học ñến thời ñiểm
xét, gọi là số tín chỉ tích luỹ.
− Học phần tương ñương ñối với học phần X, là học phần có nội dung và thời lượng
ñáp ứng ñược yêu cầu của học phần X, cụ thể là có nội dung giống nhau từ 80% trở
lên và có số tín chỉ tương ñương hoặc lớn hơn.

I.3. Học kỳ, năm học


I.3.1. Học kỳ
Học kỳ là thời gian ñể sinh viên hoàn thành một số học phần của chương trình ñào tạo.
Trong mỗi học kỳ có qui ñịnh khối lượng kiến thức tối thiểu bắt buộc sinh viên phải tích lũy.

I.3.2. Năm học


Năm học có tối thiểu 2 học kỳ chính:

− Một học kỳ chính có 15 tuần thực học, 1 tuần kiểm tra giữa kỳ và 3 tuần thi;
− Ngoài các học kỳ chính, tùy theo ñiều kiện, trường có thể tổ chức thêm học kỳ hè dành
cho những sinh viên thi không ñạt ở các học kỳ chính ñược ñăng ký học lại và những
sinh viên học giỏi có ñiều kiện kết thúc sớm chương trình ñào tạo. Một học kỳ hè có
từ 4 ñến 6 tuần thực học và một tuần thi.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 18


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

I.4. Khóa học


Khoá học là thời gian ñể sinh viên hoàn thành chương trình ñào tạo của một chuyên ngành
ñào tạo ở trình ñộ ñại học hoặc cao ñẳng. Thời gian của một khoá học, ñược quy ñịnh tuỳ
thuộc vào bậc học và chuyên ngành ñào tạo. Tuỳ theo khả năng và ñiều kiện học tập, sinh
viên có thể rút ngắn hoặc kéo dài thời gian học tối ña như sau :
Thời gian Số tín chỉ Thời gian Thời gian
Bậc học
ñào tạo tích luỹ tối ña rút ngắn tối ña kéo dài tối ña
Ðại học 5 năm 260 3 học kỳ chính 5 học kỳ chính
ðại học 4,5 năm 235 2 học kỳ chính 4 học kỳ chính
ðại học 4 năm 180-210 2 học kỳ chính 4 học kỳ chính
Cao ñẳng 3 năm 150 2 học kỳ chính 3 học kỳ chính
Bảng 5 – Chi tiết từng loại khóa học

I.5. Lớp học


I.5.1. Lớp học phần
Những sinh viên theo học cùng một học phần trong cùng một khoảng thời gian và cùng
giảng viên, tạo thành một lớp học phần. Mỗi lớp học phần ñược ký hiệu bằng một mã số riêng
do trường quy ñịnh.

I.5.2. Lớp sinh hoạt


Những sinh viên cùng khoá tuyển sinh, ñăng ký học cùng chuyên ngành ñào tạo trong cùng
một khoá ñào tạo, ñược tổ chức thành lớp sinh hoạt. Lớp sinh hoạt có mã số riêng, ñược tổ
chức tương ñối ổn ñịnh từ ñầu cho ñến cuối khoá học.

I.6. Các loại ñiểm


I.6.1. ðiểm bảo lưu, diểm tương ñương
Sinh viên ñã thi ñạt yêu cầu một học phần hoặc học phần tương ñương (xem mục 3.2.2) ở
một trường nào ñó trong thời gian không quá 5 năm, nếu muốn xin miễn học học phần ñó,
phải làm ñơn kèm theo xác nhận (số tiết học, số tín chỉ và ñiểm) gửi về phòng ðào tạo của
trường chậm nhất là 1 tháng trước khi thi kết thúc học phần. Nếu ñược chấp thuận thì học
phần ñó sẽ ñược ñiểm mà sinh viên ñã ñạt và kèm theo chữ bảo lưu (BL). ðối với học phần
tương ñương ñiểm học phần sẽ ñược ghi kèm ký hiệu (Tð).

I.6.2. Các loại ñiểm khác


− ðiểm trung bình chung học tập (ðTBCHT) ñược tính theo mỗi học kỳ hoặc năm học.
ðTBCHT ñược tính dựa theo ñiểm và số tín chỉ của tất cả các học phần mà sinh viên
ñã ñăng ký học và dự thi trong học kỳ (kể cả các học phần ñược ñăng ký học lại), trừ
các học phần ñược bảo lưu và ñược miễn.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 19


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

− ðiểm trung bình chung tích lũy (ðTBCTL) là ñiểm trung bình chung của tất cả các
học phần mà sinh viên ñã ñăng ký học và dự thi cũng như các học phần ñược bảo lưu
và tương ñương ñược miễn tính từ ñầu khoá học cho ñến thời ñiểm xét.
− ðiểm rèn luyện quy ñổi (ðRLqñ) là ñiểm quy ñổi từ kết quả rèn luyện của sinh viên.
Theo Quy chế ñánh giá kết quả rèn luyện của học sinh, sinh viên các Trường ðại học,
Cao ñẳng, Trung học chuyên nghiệp hệ chính quy ban hành theo Quyết ñịnh số
42/2002/Qð-BGD&ðT ngày 21/10/2002 của Bộ trưởng Bộ Giáo dục và ðào tạo, mức
quy ñổi ñược tính như sau:

Kết quả rèn luyện ðiểm rèn luyện quy ñổi


Rèn luyện ñạt loại xuất sắc 1,0 ñiểm
Rèn luyện ñạt loại tốt 0,8 ñiểm
Rèn luyện ñạt loại khá 0,6 ñiểm
Rèn luyện ñạt loại trung bình khá 0,4 ñiểm
Rèn luyện ñạt loại trung bình 0,0 ñiểm
Rèn luyện loại yếu -0,5 ñiểm
Rèn luyện loại kém -1,0 ñiểm
Bảng 6 – ðiểm rèn luyện quy ñổi
− ðiểm trung bình chung mở rộng (ðTBCMR) bằng tổng ñiểm trung bình chung học
tập và ñiểm rèn luyện quy ñổi.
Cách tính ñiểm trung bình chung học tập, trung bình chung tích lũy và trung bình chung
mở rộng ñược quy ñịnh tại ðiều 22 của Quy chế này.

I.7. Chương trình ñào tạo


I.7.1. Nội dung ñào tạo
Nội dung ñào tạo trong toàn khoá học ở mỗi trình ñộ của từng chuyên ngành ñào tạo ñược
thể hiện thành chương trình ñào tạo. Chương trình ñào tạo của mỗi chuyên ngành ñào tạo do
các trường thành viên xây dựng trên cơ sở chương trình khung của Bộ Giáo dục & Ðào tạo
qui ñịnh và ñược Giám ñốc Ðại học ðà Nẵng phê duyệt. Chương trình khung gồm cơ cấu nội
dung và số tín chỉ các học phần, thời gian ñào tạo, tỷ lệ phân bổ thời gian ñào tạo giữa khối
kiến thức giáo dục ñại cương và khối kiến thức giáo dục chuyên nghiệp, giữa lý thuyết và
thực hành.

I.7.2. Chương trình ñào tạo bao gồm 2 khối kiến thức
− Khối kiến thức giáo dục ñại cương (GDðC) gồm các học phần thuộc các lĩnh vực:
khoa học xã hội và nhân văn, khoa học tự nhiên và toán, ngoại ngữ, giáo dục quốc
phòng và giáo dục thể chất, nhằm trang bị cho sinh viên nền học vấn rộng ñể tiếp thu
tốt kiến thức chuyên môn, tạo tiềm lực cho người ñược ñào tạo dễ dàng thích nghi với
môi trường làm việc, tự cập nhật kiến thức trước tình hình phát triển nhanh của khoa
học và công nghệ.
− Khối kiến thức giáo dục chuyên nghiệp (GDCN) gồm các học phần cơ sở, ngoại ngữ
phục vụ chuyên ngành và các học phần chuyên môn nhằm cung cấp cho người học
những kiến thức và kỹ năng nghề nghiệp ban ñầu cần thiết.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 20


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

I.7.3. Mỗi khối kiến thức có 2 nhóm học phần sau


− Nhóm học phần bắt buộc gồm những học phần chứa ñựng những nội dung kiến thức
chính yếu của ngành ñào tạo, bắt buộc sinh viên phải học và chiếm khoảng 70 - 80%
khối lượng kiến thức toàn khoá.
Nhóm học phần tự chọn gồm những học phần chứa ñựng những nội dung cần thiết nhưng
sinh viên ñược tự chọn ñể tích lũy ñủ số tín chỉ qui ñịnh và chiếm khoảng 20 - 30% khối
lượng kiến thức toàn khoá.

I.8. Quy tắc ñánh mã


I.8.1. Mã trường
Mã trường: 1 ký tự, có dạng U
Mã Ký hiệu in Tên ñơn vị
0 ðHðN Cơ quan ðại học ðà Nẵng
1 ðHBK ðại học Bách khoa
2 ðHKT ðại học kinh tế
3 ðHSP ðại học Sư phạm
4 ðHNN ðại học Ngoại ngữ
5 CðCN Cao ñẳng Công nghệ
Bảng 7 – Mã của một số trường thuộc ðH ðà Nẵng

I.9. Mã khoa
Mã khoa: 3 ký tự, có dạng U D D
− U: Mã trường.
− DD: Số thứ tự khoa trong trường.

Mã Khoa Tên Khoa Ghi chú


101 Khoa Cơ khí
102 Khoa Công nghệ thông tin
103 Khoa Cơ khí giao thông
104 Khoa Công nghệ Nhiệt- ðiện lạnh
105 Khoa ðiện
106 Khoa ðiện tử Viễn thông
107 Khoa Hóa
108 Khoa Sư phạm kỹ thuật
109 Khoa Xây dựng Cầu ðường
110 Khoa Xây dựng Dân dựng & công
nghiệp
111 Khoa Xây dựng Thủy lợi - Thủy ñiện
112 Dự án ñào tạo kỹ sư Việt-Pháp
113 Phòng Hành chính tổng hợp
114 Phòng ðào tạo & Công tác sinh viên
115 Tổ tài vụ
3xx Khoa Toán – ðại học Sư Phạm

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 21


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

3xx Khoa Lý – ðại học Sư Phạm


3xx Khoa Hóa – ðại học Sư Phạm
3xx Khoa Tâm lý - Giáo dục,ðH Sư Phạm
2xx Khoa Mác-Lênin ðại học Kinh tế
4xx Khoa Ngoại ngữ chuyên ngành- ðại học
Ngoại Ngữ
4xx Khoa Pháp - ðH Ngoại Ngữ
0xx Trung tâm Giáo dục Thể chất
601 Trung tâm Giáo dục Quốc phòng
Bảng 8 – Mã của các khoa

I.9.1. Mã ngành
Mã ngành: 5 ký tự, có dạng U D D N S

− UDD: Mã khoa.
− N: Số thứ tự ngành trong khoa.
− S: Mã chuyên ngành (ngành chung thì S=0 ).

Mã ngành Tên ngành Thuộc khoa


10110 Cơ khí Chế tạo máy Cơ khí
10120 Cơ ñiện tử Cơ khí
10130 Cơ khí - Luyện - Cán thép Cơ khí

10210 Công nghệ thông tin Công nghệ thông tin


10220 Khoa học máy tính (Dự kiến) Công nghệ thông tin
10230 Mạng máy tính (Dự kiến) Công nghệ thông tin
10240 Công nghệ phần mềm (Dự kiến) Công nghệ thông tin
10250 Tin học công nghiệp (Dự kiến) Công nghệ thông tin

10310 Cơ khí ñộng lực Cơ khí Giao thông

10410 Công nghệ Nhiệt – ðiện lạnh Công nghệ Nhiệt- ðiện lạnh
10420 Thiết bị năng lượng (Dự kiến) Công nghệ Nhiệt- ðiện lạnh
10430 Kỹ thuật nhiệt lạnh (Dự kiến) Công nghệ Nhiệt- ðiện lạnh

10510 Kỹ thuật ñiện ðiện


10520 Hệ thống ñiện (Dự kiến) ðiện
10530 Tự ñộng hóa (Dự kiến) ðiện
10540 ðiện công nghiệp (Dự kiến) ðiện

10610 Kỹ thuật ðiện tử ðiện tử- Viễn thông


10620 Kỹ thuật Viễn thông ðiện tử- Viễn thông
10630 Kỹ thuật Máy tính ðiện tử- Viễn thông

10710 Công nghệ Thực phẩm Hóa


10720 Công nghệ Sinh học Hóa
10730 Công nghệ Hóa học Hóa
10740 Công nghệ vật liệu - Silicat Hóa

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 22


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

10750 Công nghệ vật liệu - Pôlyme Hóa


10760 Công nghệ vật liệu - ðiện hóa Hóa
10770 Công nghệ hóa học - Dầu & Khí Hóa
10780 Công nghệ Hóa in (Dự kiến) Hóa
10790 Công nghệ Hóa nhuộm (Dự kiến) Hóa
10711 Công nghệ hóa dược (Dự kiến) Hóa

10810 Sư phạm Kỹ thuật Công nghiệp Sư phạm Kỹ thuật


10820 Sư phạm kỹ thuật ðiện - ðiện tử Sư phạm Kỹ thuật
10830 Sư phạm kỹ thuật ðiện tử - Tin học Sư phạm Kỹ thuật
Sư phạm kỹ thuật Công nghệ thực phẩm Sư phạm Kỹ thuật
10840
(Dự kiến)
10850 Sư phạm kỹ thuật Cơ ðiện tử (Dự kiến) Sư phạm Kỹ thuật
10860 Sư phạm kỹ thuật Xây dựng (Dự kiến) Sư phạm Kỹ thuật

10910 Xây dựng Cầu - ðường Xây dựng Cầu ñường


10920 Cầu - Hầm (Dự kiến) Xây dựng Cầu ñường
10930 ðường Ôtô và ñường thành phố (Dự kiến) Xây dựng Cầu ñường
10940 ðường Ôtô và ñường sân bay (Dự kiến) Xây dựng Cầu ñường
10950 Kỹ thuật Giao thông (Dự kiến) Xây dựng Cầu ñường
10960 Công trình Ngầm (Dự kiến) Xây dựng Cầu ñường
Kiểm ñịnh chất lượng công trình GT (Dự Xây dựng Cầu ñường
10970
kiến)
10980 Cầu ñô thị (Dự kiến) Xây dựng Cầu ñường
10990 Vật liệu xây dựng (Dự kiến) Xây dựng Cầu ñường

Xây dựng dân dụng và công nghiệp Xây dựng Dân dựng & công
11010
nghiệp
Kiến trúc Xây dựng Dân dựng & công
11020
nghiệp
Công nghệ Môi trường Xây dựng Dân dựng & công
11030
nghiệp
Kỹ thuật ñô thị (Dự kiến) Xây dựng Dân dựng & công
11040
nghiệp

11110 Xây dựng Thủy lợi - Thủy ñiện Xây dựng TL-Tð
11120 Kinh tế Xây dựng và Quản lý Dự án Xây dựng TL-Tð
11130 Cảng và Công trình ven bờ (Dự kiến) Xây dựng TL-Tð
11140 Công trình thủy ñiện (Dự kiến) Xây dựng TL-Tð
Quản lý và Khai thác Tài nguyên nước (Dự Xây dựng TL-Tð
11150
kiến)
Xây dựng Cơ sở hạ tầng nông thôn (Dự Xây dựng TL-Tð
11160
kiến)

11210 Sản xuất tự ñộng Dự án ñào tạo kỹ sư Việt-Pháp


Bảng 9 – Mã của các ngành thuộc ñại học Bách Khoa ðà Nẵng

I.9.2. Mã học phần


U D D M M M Z
Mã học phần: 7 ký tự, có dạng

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 23


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

− UDD: Mã khoa quản lý học phần.


− MMM: Số thứ tự học phần trong khoa.
− Z: ðặc thù học phần (0 - HP chung toàn trường; 1 - HP chung toàn trường hệ (Cao
ñẳng / trung cấp); 2 - HP chung cho một số ngành khác nhau; 3 - HP chuyên ngành ).
Ví dụ: Một học phần có mã là 1010070 thì

− 3 ký số "101" ñầu tiên: có nghĩa học phần này thuộc Khoa Cơ Khí.
− Số "007" tiếp theo: có nghĩa ñây là học phần ñược ñánh số thứ tự 007 trong Khoa ñó.
− Ký số "0" cuối cùng: có nghĩa ñây là học phần dạy cho toàn trường (ví dụ: các môn
Mác - LêNin).

I.9.3. Mã lớp sinh hoạt


Mã lớp: 10 ký tự, có dạng U D D N S K K L H C

− UDD: Mã khoa quản lý.


− NS: Ngành.
− KK: Mã khoá học là 2 ký tự (2 số cuối) của niên khóa (vòng ñời phần mềm có thể
khoảng vài chục năm).
− L: Số thứ tự lớp (Class) trong một khoa của niên khóa ñó (bắt ñầu từ 1 ñến 9).
− H: Mã hình thức ñào tạo (1- chính qui, 2- vừa học vừa làm, …).
− C: Cấp ñào tạo (1- ðại học, 2- Cao ñẳng, 3-Trung cấp).
Ví dụ: Một lớp có mã là 1010420511 thì

− 3 ký số "101" tiếp theo: có nghĩa lớp này thuộc Khoa Cơ Khí của trường.
− 2 ký tự “04” là mã ngành Cơ khí chế tạo trong khoa cơ khí.
− 1 ký số "2" tiếp theo: có nghĩa ñây là lớp sinh hoạt ñược ñánh số thứ tự 2 trong Khoa
Cơ Khí của trường .
− 2 ký số "05" ñầu tiên: có nghĩa lớp này thuộc khoá học vào trường năm 2005.
− Ký số "1" tiếp theo: có nghĩa lớp này thuộc hệ chính quy.
− Ký số "1" tiếp theo nữa: có nghĩa lớp này thuộc cấp ñại học.

I.9.4. Mã lớp học phần


Mã lớp học phần: 11 ký tự, có dạng

U D D M M M Z K K S S

− UDDMMMZ: Mã môn học (xem giải thích phía trên).


− KK: Mã khóa học (2 số cuối của niên khóa).

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 24


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

− SS: Số thứ tự của lớp học phần.

I.9.5. Mã sinh viên


Mã sinh viên: 12 ký tự, có dạng

U D D N S L K K H C S S

− UDDNS: Mã ngành sinh viên ñăng ký học.


− L: Số thứ tự lớp.
− KK: Khóa học (2 số cuối của niên khóa).
− H: Mã hình thức ñào tạo (1- chính qui, 2- vừa học vừa làm, …).
− C: Cấp ñào tạo (1- ðại học, 2- Cao ñẳng, 3-Trung cấp).
− SS: Số thứ tự sinh viên trong lớp.
Ví dụ: một sinh viên có mã số 102101061115

Có nghĩa như sau:

− 10210 (tương ứng với UDDNS): sinh viên thuộc Ngành Công nghệ thông tin.
− 1 (tương ứng với L): lớp số 1.
− 06 (tương ứng với KK): khóa 2006 – 2011.
− 1 (tương ứng với H): hệ chính qui.
− 1 (tương ứng với C): cấp ñào tạo - ñại học
− 15 (tương ứng với SS): số thứ tự của sinh viên trong lớp sinh hoạt là 15.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 25


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

I.10. Quy trình sinh viên ñăng ký lớp học phần


Hiện tại, quá trình sinh viên ñăng ký học một lớp học phần tiến hành bằng tay theo nhiều
bước. Với các bước, sinh viên ñược phát tài liệu và giấy ñăng ký ñi kèm. Nếu quá trình ñăng
ký có sự xung ñột hoặc bất hợp lý thì phòng ñào tạo sẽ tự ñiều chỉnh hoặc thông báo cho các
sinh viên ñể chỉnh sửa.

I.10.1. Mô tả quy trình

Hình 7 – Quy trình sinh viên ñăng ký lớp học phần

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 26


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

I.10.2. Diễn giải quy trình


Quy trình ñược thực hiện từng bước như sau:

Bước 1: Phòng ñào tạo sẽ phát hành “Chương trình ñào tạo khóa 2006 – 2011” vào ñầu
năm học. Tài liệu này là kế hoạch học tập của sinh viên của tất cả các ngành khóa 06. Tài liệu
này bao gồm khung chương trình, danh sách các học phần, quan hệ các học phần, các quy
ñịnh liên quan ñến dạy, học, ñánh giá và các vấn ñề liên quan.

Bước 2: Phòng ñào tạo sẽ phát hành “Sổ tay sinh viên” trước mỗi học kỳ cho sinh viên.
Tài liệu này gồm tất cả các lớp học phần và chi tiết lớp học phần ñược dạy trong học kỳ ñó.
Các lớp học phần này ñược chia thành nhóm và mỗi nhóm tương ứng với một lớp niên chế.
Trong tài liệu này, phòng ñào tạo gợi ý cho sinh viên mỗi khoa nên ñăng ký vào những nhóm
nào cho hợp lý. Sinh viên sẽ dựa vào tài liệu này ñể chọn ra lớp học phần mà mình cần.

Bước 3: Phát hành mẫu ñăng ký lớp học phần. Mẫu ñăng ký này ñược phát theo từng lớp
sinh hoạt. Mẫu ñăng ký này là một bảng gồm nhiều dòng và nhiều cột. Cột ñầu tiên là tên sinh
viên của lớp, các cột tiếp theo tương ứng với các học phần có mở lớp trong học kỳ hiện hành.
Sinh viên sẽ ghi mã lớp học phần (thực chất là mã nhóm) tại ô có học phần tương ứng cần
ñăng ký.

Bước 4: Sinh viên ñăng ký và nộp lại cho phòng ñào tạo. Sinh viên sẽ ñiền vào các ô
tương ứng mã nhóm lớp học mà mình cần ñăng ký rồi nộp cho phòng ñào tạo.

Bước 5: Kiểm tra ñiều kiện ràng buộc. Như ta ñã biết, các học phần có quan hệ với nhau.
Bước này kiểm tra học phầ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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 27


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

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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 28


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. 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


Upload danh sách
khoa
Chỉnh sửa giáo viên
Upload danh sách
giáo viên
ðăng nhập

Chỉnh sửa ñơn vị


Upload danh sách
ñơn vị
Chỉnh sửa ngành Upload danh sách
ngành

Chỉnh sửa phòng học Upload danh sách


phòng học

Admin
Chỉnh sửa học kỳ
Chỉnh sửa học phần
và quan hệ Upload danh sách Upload danh sách
lớp sinh hoạt Học Phần

Upload ñiểm
Chỉnh sửa lớp học
phần
Chỉnh sửa khung
chương trình Danh sách lớp học
phần

Download các report

Hình 8 – Admin Usecase

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 29


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 30


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

− 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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 31


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

− 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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 32


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

− 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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 33


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.3. Usecase của giáo viên

ðăng nhập

Xem thời khóa biểu

Xem danh sách lớp


Giáo viên 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)

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 34


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 35


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.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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 36


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

− ð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]

Sinh viên chọn lớp học phần


[Xung dot
thoi khoa bieu]

Cập nhập CSDL

Hình 17 – Activity Diagram của usecase sinh viên ñăng ký lớp học phần

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 37


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

− 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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 38


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

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 KhoaHoc
-khoi : string 1..*
-maKhoaHoc : string
-moTa : string -tenKhoaHoc : string
-soTinChi : int -namVaoTruong : int
-soHocKy : int

1..1
1..*
LopSinhHoat
-maLopSinhHoat : string
1..1
-maNganh : string
-tenLop : string
-moTa : string
-maKhoaHoc : long

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 39


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

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 LopHocPhan
-maLopHP : string HocKy
-tenLop : string
-maNhomLopHocPhan : string -maHocKy : long
1..* -hocKy : int
-maHocPhan : string
1..1 -moTa : string -namHoc : int
-status : long -moTa : string
+thietLapHocKyHienHanh() : int

1..* 1..*
1..1 1..1
PhongHoc
-maPhongHoc : long
-tenPhong : string ChiTietLopHocPhan 1..*
1..* GiaoVien
-trucThuocDonVi : string -maChiTietLopHocPhan : long
-maGiaoVien : string
-tinhTrang : string -maLopHocPhan : string
-hoLot : string
-maHocKy : long
-tenGiaoVien : string
-maGiaoVien : string 1..1
-email : string
-maPhongHoc : long
-maKhoa : string
1..1 -maThoiKhoaBieu : long
-soLuongToiThieu : int
ThoiKhoaBieu -soLuongToiDa : int
-maThoiKhoaBieu : long 1..1 -soLuongHienTai : int
-mon : long
-tue : long 1..*
-wed : long
-thu : long
-fri : long
-sat : long
-sun : long

Hình 22 – Class Diagram: Lớp học phần, học kỳ

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 40


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 41


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

III.1.5. Sinh viên ñăng ký lớp học phần

SinhVien
LopHocPhanTheoKy
-maSinhVien : string 1..*
-maLopHocPhanTheoHocKy : long
-maLopNienChe : string
1..* -maHocPhan : string
-maHocKy : long

1..1 1..1

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
HocKy
-maLopNienChe : string
1..* 1..* -maHocKy : long
-hocKy : int
-namHoc : int
-moTa : string
+thietLapHocKyHienHanh() : int
HocPhan
-maHocPhan : string
-tenHocPhan : string
-soTinChi : float 1..1 1..1
-lyThuyet : float
-thucHanh : float 1..*
-doAn : float DiemCuaSinhVien
-baiTapLon : byte -maDiemCuaSinhVien : long
-thucTap : byte -maSinhVien : string
-ghiChu : string 1..1
-maHocKy : long
-STT : long -maHocPhan : string
-maThi : string 1..*
-diemCuoiCung : float
-maTinhTien : string LoaiDiem
-vietTat : string -maLoaiDiem : string
-maCongThuc : string -tenLoaiDiem : string
-heSoTinh : float
1..1 1..* -moTaLoaiDiem : string

ChiTietDiemCuaSinhVien
-maChiTietDiemCuaSinhVien : long
-maDiemCuaSinhVien : long
-maLoaiDiem : long
-soDiem : float 1..1
-ghiChu : string

Hình 26 – Class Diagram: Sinh viên và ñiểm

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 42


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 43


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

III.3. Sơ ñồ triển khai (deployment diagram)

Client 1 Client 2
-TCP/IP

-TCP/IP

Web Server

-Database Driver

Database Server

Hình 29 – Sơ ñồ triển khai của ứng dụng

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 44


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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 45


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

Hình 31 – Khung chương trình

Hình 32 – Sinh viên ñăng ký

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 46


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

Hình 33 – Sinh viên, lớp sinh hoạt

Hình 34 – Thời khóa biểu sinh viên

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 47


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 48


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 49


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 50


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 51


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 52


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 53


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 54


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 55


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 56


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

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 42 – Sinh Viên Top Menu


Hình 43 – Admin Left Menu

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 57


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 58


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 59


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

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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 60


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

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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 61


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

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 Học phần học Học phần Học phần
phần trước tiên quyết 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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 62


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

ñế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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 63


Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho ðại học ðà Nẵ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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 64


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

Khe thời gian Quỹ thời gian


Quỹ thời gian
lớp học phần sau khi ñăng
của sinh viên
yêu cầu ký
Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
Fri Sat
   
   
   



 * 



Hình 52 – Kiểm tra xung ñột thời khóa biểu bằng AND bit (không xung ñột)

Khe thời gian Quỹ thời gian


Quỹ thời gian
lớp học phần sau khi ñăng
của sinh viên
yêu cầu ký
Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
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.

Khe thời gian Quỹ thời gian


Quỹ thời gian
lớp học phần sau khi ñăng
của sinh viên
yêu cầu ký
Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
Fri Sat Mon Tue Wed Thu 5/25/2007
Fri Sat
       
       
       




+ 
  






Hình 54 – Cập nhật quỹ thời gian của sinh viên sau khi ñăng ký

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 65


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

ðể 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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 66


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

Dữ liệu từ
hệ thống hiện tại

CSDL Ms SQL Dữ liệu


hệ thống mới
Module ánh xạ dữ liệu
ðọc file Excel
CSDL My SQL Cầu nối
File Excel .xls Xử lý ràng buộc
JDBC
dữ liệu 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ỉ http://jexcelapi.sourceforge.net 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:

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 67


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

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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 68


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. 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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 69


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.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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 70


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.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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 71


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.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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 72


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.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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 73


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.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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 74


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

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 75


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.

Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4 76


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] http://www.javavietnam.org
[10] http://dut1.ud.edu.vn
[11] http://java.sun.com
[12] http://jexcelapi.sourceforge.net

You might also like