Tải bản đầy đủ (.pdf) (85 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.4 MB, 85 trang )

ĐẠ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:


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


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 t
rú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 – T
rang 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ản
g 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













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

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 t
hế 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 c
hú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 t
riể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 kh
ung
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 k
hóa biểu của mình và danh sách
các lớp học phần mà mình dạy, cụ thể là giáo viên sẽ dạy ở phòng nào, môn gì vào
thời điểm hiện tại.
− Hệ thống cho phép sinh
viên dễ dàng biết được điểm của mình, số tín chỉ mà mình đã
đạt được, biết được rằng nên đăng ký môn học nào trước và cuối cùng là cho phép
sinh viên đăng
ký một lớp học phần.
− Hệ thống còn giúp quản trị viên dễ dàng cập nhật các thông tin liên quan đến đào tạo,
dễ dàng xây dựng khung chương trình và dễ dàng
xây dựng thời khóa biểu cho các lớp
học phần mà không lo xung đột về thời gian.

Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

2

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 n
hữ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 n
hỏ 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 t
rang
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 tron
g tuần mình sẽ phải dạy những
lớp nào, ở phòng nào vào những thời gian nào.
− Giáo viên xem danh sách lớp học phần: Giáo viên có thể xem danh sách các lớp
học phần mà mình
dạy. Cụ thể là có thể xem được số lượng sinh viên tối đa, số lượng
sinh viên tối thiểu và số lượng sinh viên hiện tại.
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

3
− 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ẽ p
hả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 dan
h
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
4

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ể h
iệ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

Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

5
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 f
orm 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 t
hứ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.
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4


6
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:
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

7
− 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 S
ervlet. 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 the
o. Đ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 c
hấ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 ch
o 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

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ư c
hỉ thị include: <jsp:include>
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

8

− 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ị J
SP 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
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

9
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. Qu
yề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 n

hiề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 ch
uỗ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 t
hẻ 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.

Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

10
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í.
CSDL
Java Application,
Applet, Servlet
JDBC Driver
Database Driver
ODBC

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.
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

11

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
J
SP. 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ó t
hể đư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ư
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

12
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 S
ervlet 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 tr
ong 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ệ t
hố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 res
ponse, 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ác
h 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
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

13

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ệ t
hố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 h
oá 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
− I
var Jacobson’s OOSE Methodology
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

14
− 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 ch
o ứ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ữn
g 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ôn
g 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ụn
g được bởi người và máy.
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

15
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ăn
g 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 p
hâ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

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àn
g đưa ra những kết luận về
Nghiên cứu xây dựng hệ thống Website quản lý tín chỉ cho Đại học Đà Nẵng
Lê Văn Minh, Nguyễn Minh Quang, LỚP 02T4

16
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 chu
yể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 n

hư đã đượ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 đồ (d
iagram): 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


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
17

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 c
hỉ
(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àn
h đào tạo đó
đều phải theo học và tích luỹ được.

×