BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ
KHOA CÔNG NGHỆ THÔNG TIN
LUẬN VĂN TỐT NGHIỆP
Đề tài:
QUẢN LÝ HỆ THỐNG ĐĂNG KÝ
HỌC PHẦN TRỰC TUYẾN CHO
TRƯỜNG ĐẠI HỌC
GVHD: VŨ THANH HIỀN
SVTH: NGUYỄN TRỌNG TUẤN
MSSV: 10102205
TP. Hồ Chí Minh
Năm 2006
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
3 CHƯƠNG 1: GIỚI THIỆU CHUNG 1
1.1 Giới thiệu chung 1
1.2 Giới thiệu đề tài 2
1.3 Các công cụ sử dụng 2
CHƯƠNG 2: CÁC KIẾN THỨC LIÊN QUAN 3
2.1 Giới thiệu .NET Framework 3
2.2 Ngôn ngữ lập trình và bộ .NET Framework 3
2.3 Kiến trúc ứng dụng .NET 5
2.4 Thực thi và biên dịch ứng dụng .NET 5
2.5 Tìm hiểu ASP.NET 6
2.5.1 Giới thiệu ASP.NET 6
2.5.2 Các điểm thuận lợi của ASP.NET 7
2.5.3 Tương tác Client - Server 7
2.5.4 Xử lý trên Server 8
2.5.5 Biên dịch và phân phối đến trang ASP.NET 8
2.6 Các mô hình truy cập dữ liệu 9
2.6.1 Giới thiệu 9
2.6.2 Định nghĩa cấu trúc n-tier 9
2.6.3 Bảng so sánh giữa các mô hình truy cập dữ liệu 10
4 CHƯƠNG 3: NHIỆM VỤ 13
4.1 Phân tích nhiệm vụ 13
4.2 Giải thích phương án lựa chọn 13
CHƯƠNG 4: PHÂN TÍCH - THIẾT KẾ - HIỆN THỰC - KẾT QUẢ 15
4.1 Sơ đồ use case 15
4.2 Phân tích các use case 15
4.2.1 Nghiệp vụ: “Đăng nhập” 15
4.2.2 Nghiệp vụ: "Quản lý lớp học phần" 16
4.2.3 Nghiệp vụ “Đăng ký lớp học phần” 18
4.2.4 Nghiệp vụ “Xem điểm” 20
4.2.5 Nghiệp vụ “Xem chương trình đào tạo” 21
Hình 8: Trang ListClassRegister 41
Hình 9: Trang ConditionSubject 41
Hình 10: Trang ViewMark 42
Hình 11: Trang GeneralCurriculumnDetails 43
Hình 12: Trang InitCourse 43
Hình 13: Trang ListCourse 44
Hình 14: Trang OpenCourse 45
Hình 15: Trang CourseDetail 46
Hình 16: ListStudentRegister 46
Hình 17: Trang GeneralCurriculumnView 47
Hình 18: Trang GeneralCurriculumnEdit 47
Hình 19: Trang GeneralCurriculumnAddSubject 48
Hình 20: Trang SpecialityCurriculumnView 48
Hình 21: Trang SpecialityCurriculumnEdit 49
Hình 22: Trang SpecialityCurriculumnAddSubject 49
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
3 CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 Giới thiệu chung
Ngày nay, cùng với sự phát triển của hệ thống máy tính thì hệ thống
mạng Internet đang phát triển như vũ bão. Con người có thể liên lạc, trao đổi
thông tin với nhau qua hệ thống này. Điều này khiến cho con người có thể dễ
dàng đến gần với Internet hơn, trong đó có một bộ phận không nhỏ luôn tiếp
xúc với Internet là sinh viên. Sinh viên thông qua trang web của nhà trường chỉ
để nắm bắt được các hoạt động trong nhà trường, như là: xem tin tức, thời sự,
xem chương trình giảng dạy, xem thời khoá biểu, xem điểm, v.v mà chưa có
một chức năng nào trên web để hỗ trợ đăng ký học phần.
Công việc đăng ký học phần là một công việc thường xuyên đối với sinh
viên và với cán bộ giáo vụ của khoa của một trường đại học. Tuy nhiên đây là
một công việc rất phức tạp và tốn rất nhiều thời gian và công sức của cán bộ
giáo vụ mỗi khi vào đầu một học kỳ. Để mở được một lớp học phần trong học
• Quản lý các lớp học phần: cho phép cán bộ giáo vụ mở lớp học phần
thích hợp dựa vào chương trình đào tạo, xoá hoặc cập nhật các lớp
học phần trong một học kỳ của năm học, thống kê được tình hình
đăng ký của các lớp học phần.
• Đăng ký học phần: cho phép sinh viên thông qua trang web để đăng
ký học phần.
- Ngoài ra, hệ thống còn hỗ trợ một số chức năng khác, như là:
• Quản lý thông báo: giúp cho cán bộ giáo vụ có thể đăng các thông
báo cần thiết của khoa mình, hoặc xoá các thông báo đã hết thời hạn
đăng.
• Cho phép sinh viên xem chương trình đào tạo của trường, xem điểm
của một học kỳ và các phần trợ giúp khác.
1.3 Các công cụ sử dụng
- Database: Microsoft SQL Server 2000
- Ngôn ngữ lập trình: Microsoft Visual Studio .NET C#.
- Kiểu Web: ASP.NET
SVTH: Nguyễn Trọng Tuấn Trang 2
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
- Thiết kế các sơ đồ: UML
CHƯƠNG 2: CÁC KIẾN THỨC LIÊN QUAN
2.1 Giới thiệu .NET Framework
Bộ .NET Framework là một môi trường dùng dễ quản lý việc phát
triển và thực thi ứng dụng. Framework quản lý các vấn đề thực thi của chương
trình như: cấp phát bộ nhớ cho việc lưu trữ dữ liệu và các câu lệnh, gán hoặc
phục hồi quyền cho phép tương tác với chương trình, khởi tạo và quản lý việc
thực thi ứng dụng và quản lý việc cấp phát lại bộ nhớ cho tài nguyên đã lâu
không sử dụng đến. Bộ .NET Framework bao gồm 2 thành phần chính:
Common Language Runtime và thư viện lớp của của bộ .NET Framework.
Common Language Runtime (CLR): là môi trường quản lý việc thực
thi code. Nó cung cấp các dịch vụ như: biên dịch code, cấp phát bộ nhớ,
Integer trong VB.NET và Int trong VC# đều được biểu diễn lại trong IL là
System.Int32. Bởi vì cả 2 ngôn ngữ đều dùng chung 1 kiểu dữ liệu hệ thống có
thể chuyển đổi cho nhau, nên nó có thể truyền dữ liệu giữa các component và
tránh mất thời gian cho việc chuyển đổi hay các lỗi phát sinh khó phát hiện
được.
Visual Studio .NET đưa ra các ngôn ngữ lập trình như Visual Basic
.NET, C#, Visual C++ và ngôn ngữ script là JScript. Ta cũng có thể viết code
SVTH: Nguyễn Trọng Tuấn Trang 4
Common Language Runtime
Thư viện hỗ trợ BCL
Xử lý tiểu trình
Kiểm tra dữ liệu
Trình bảo mật
Quản lý COM
Quản lý lỗi ngoại lệ
Bộ gỡ lỗi
Trình biên
dịch tức thời
ngôn ngữ IL
Quản lý đoạn
code
Bộ thu gom
rác
Trình nạp các lớp vào để xử lý
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
xử lý cho bộ .NET Framework bằng các ngôn ngữ lập trình khác. Có rất nhiều
trình biên dịch của các công ty như Fortran .NET, Cobol .NET, Perl .NET v.v
và các ngôn ngữ lập trình này chia sẻ tính tương thích đa ngôn ngữ và thừa kế.
Do đó ta có thể viết code cho bộ .NET Framework bằng ngôn ngữ nào theo ta
chọn và nó sẽ có thể tương tác với code được viết cho bộ .NET Framework
không chạy. Nếu thoả mãn CLR sẽ thực thi đoạn code. Nó sẽ tạo ra 1 tiến trình
để ứng dụng chạy và bắt đầu thực thi ứng dụng. Khi khởi động xong, phần
code nào cần thực thi sẽ được nạp vào bộ nhớ và biên dịch sang mã máy nhị
phân từ IL bằng trình biên dịch Just-In-Time (JIT) của CLR. Khi được biên
dịch xong, mã lệnh được biên dịch lưu vào bộ nhớ, vì thế mỗi phần của đoạn
code được biên dịch chỉ 1 lần trong suốt quá trình thực thi ứng dụng. Bất cứ khi
nào chương trình thực thi 1 nhánh của đoạn code mà chưa được thực thi, trình
biên dịch JIT sẽ biên dịch nó trước khi thực hiện và lưu vào bộ nhớ dạng mã
nhị phân. Theo cách này, sự trình diễn ứng dụng sẽ đạt được tối ưu bởi vì chỉ 1
phần của chương trình nào cần thực thi mới được biên dịch.
2.5 Tìm hiểu ASP.NET
2.5.1 Giới thiệu ASP.NET
Mặc dù ASP.NET có tên giống như 1 công nghệ phát triển ứng dụng
web trước đây của Microsoft là ASP nhưng chúng hoàn toàn khác nhau.
Microsoft đã xây dựng lại hoàn toàn trong ASP.NET dựa trên cơ sở của CLR
thuộc nền .NET. Người lập trình có thể viết code ASP.NET bằng cách sử dụng
nhiều ngôn ngữ lập trình khác nhau mà được hỗ trợ bởi nền .NET. ASP.NET
thực thi nhanh hơn so với các trang web được viết bằng script trước đây bởi vì
toàn bộ trang web được biên dịch thành 1 hoặc vài tập tin dll dựa trên web
server.
ASP.NET cố gắng làm đơn giản hoá cho người phát triển chương trình
chuyển đổi ứng dụng desktop thành các ứng dụng web bằng cách nó cho phép
các nhà lập trình viên xây dựng trang web từ các control tương tự như các
control trong ứng dụng window.
ASP.NET khuyến khích các nhà lập trình viên phát triển ứng dụng web
bằng mô hình event-driven GUI, và nó có khả năng kết hợp các công nghệ phát
SVTH: Nguyễn Trọng Tuấn Trang 6
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
triển web trước đây như là Javascript vào bên trong các component, nghĩa là 1
control trên ASP.NET vừa có sự kiện của client và server.
đánh dấu tương ứng đối với trình duyệt đó.
- Một vài sự tương tác của client sẽ được thực hiện trong trình duyệt trong
khi đó một số thông tin yêu cầu sẽ được gửi cho server xử lý và trang bị
thay đổi sẽ được trả về.
2.5.4 Xử lý trên Server
Khi server nhận được 1 request, nó sẽ tìm đến trang đưa ra request bằng
cách sử dụng thông tin đường dẫn được chỉ định, và các hệ thống liên quan sẽ
xử lý trên trang đó. Nhưng đối với ASP cổ điển, không có nhiều việc xử lý này
mặc dù chắc chắn bộ nhớ cache đã thực hiện xử lý này.
Server sẽ xử lý trang ASP.NET bằng cách sử dụng các tập tin dll riêng
biệt, đặc biệt cho ASP.NET. Khác với những phiên bản trước của ASP,
ASP.NET là một tập hợp rất lớn các đối tượng để thực hiện các chức năng xử
lý như là các HTTP request, cơ sở dữ liệu, hệ thống tập tin và định hình cho
response.
Khi một response kết thúc, nó sẽ được đưa ra cho trình duyệt của người
dùng, thông thường là các thẻ HTML và trình duyệt sẽ hiển thị nội dung lên
màn hình.
2.5.5 Biên dịch và phân phối đến trang ASP.NET
IIS sẽ so khớp đường dẫn URL trong request dựa vào tập tin vật lý trên
đĩa bằng cách biên dịch đường dẫn ảo vào trong đường dẫn quan hệ với thư
mục gốc của Web (wwwroot).
Trong khi tập tin được tìm thấy, phần mở rộng của tập tin (.aspx) được
so khớp với danh sách các định dạng kiểu tập tin để gửi cho khách hoặc việc
xử lý.
Nếu đây là lần đầu trang được mở kể từ khi có sự thay đổi, mã ASP
được biên dịch thành assembly bằng cách dùng CRL biên dịch thành MSIL và
sau đó thành các mã nhị phân cho việc thực thi trang web.
Mã nhị phân này là một lớp dll của NET và được lưu trữ trong một vị trí
tạm thời.
SVTH: Nguyễn Trọng Tuấn Trang 8
dụng, lớp này chứa giao diện người dùng.
SVTH: Nguyễn Trọng Tuấn Trang 9
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
Business logic tier: chịu trách nhiệm tương tác với tài nguyên dữ
liệu, còn gọi là “middle” tier, nó thường được hiện thực trong hầu
hết các lớp 1 cách vật lý, ví dụ như là store procedure trong CSDL,
các class trong ứng dụng Server hoặc các đoạn code trong ứng dụng
client.
Data Service tier: chứa dữ liệu mà business logic dùng trong ứng
dụng.
Interoperability tier: cho phép tương tác giữa các ứng dụng trên các
hệ điều hành khác nhau hoặc các loại dữ liệu khác nhau.
- Ưu điểm của việc sử dụng nhiều tier là khả năng mở rộng của ứng dụng.
Mỗi 1 tier được thêm vào cho phép ta thêm vào nhiều người dùng hơn
và tách riêng ra các mức của ứng dụng. Việc tách riêng các mức như vậy
cho phép thực hiện thay đổi chỉ tại 1 vùng nào đó trong ứng dụng mà
không làm thay đổi toàn bộ các tier khác. Ví dụ như trong ứng dụng 1
tier, bất cứ 1 sự thay đổi nào đều yêu cầu toàn bộ ứng dụng phải được
biên dịch lại và phân bố lại từ đầu.
2.6.3 Bảng so sánh giữa các mô hình truy cập dữ liệu
Mô hình Mô tả Ưu điểm Khuyết điểm
1 tier
Monolithic
Mô hình này đặc
trưng cho 1 người
sử dụng và tất cả
các lớp đều nằm
trên 1 máy tính
đơn
Do mọi thứ đều
cho 2 hay nhiều
máy tính
3 tier Mỗi 1 dịch vụ
nằm trong 1 lớp
riêng biệt.
Business logic trở
thành 1 lớp mới
gọi là “middle”
tier
Các lớp client
bây giờ là “thin
client” do chỉ
chứa client logic
hoặc lớp trình
diễn
Việc quản lý sẽ phức
tạp hơn, sự bảo mật
không được linh hoạt
và mở rộng như mô
hình n-tier
N-tier CSDL phân bố ở
mức mô hình xí
nghiệp cho phép
nhiều client truy
cập vào 1 ứng
dụng server đơn.
Các tier mới được
thêm vào nếu nhu
cầu về tier mới là
cần thiết
SVTH: Nguyễn Trọng Tuấn Trang 11
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
SVTH: Nguyễn Trọng Tuấn Trang 12
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
4 CHƯƠNG 3: NHIỆM VỤ
4.1 Phân tích nhiệm vụ
Tìm hiểu công nghệ .NET của Microsoft từ đó thấy được các lợi ích khi
phát triển ứng dụng trên nền này.
Tìm hiểu web ASP.NET, từ đó thấy được các ưu điểm khi phát triển ứng
dụng web với ASP.NET so với các loại web khác.
Tìm hiểu các nghiệp vụ cơ bản của việc quản lý lớp học phần và đăng
ký học phần tại các trường đại học, từ đó đưa ra được các chức năng cơ bản của
hệ thống như là:
- Quản lý chương trình đào tạo của nhà trường
- Quản lý các lớp học phần.
- Quản lý đăng ký học phần.
- Quản lý các thông báo.
- Xem chương trình đào tạo, xem điểm
Thiết kế một cơ sở dữ liệu cho hệ thống đăng ký học phần trực tuyến.
Xây dựng trang web mang tính chất demo thực hiện các chức năng cơ
bản trên.
4.2 Giải thích phương án lựa chọn
Tại sao hệ thống quản lý đăng ký học phần trực tuyến được viết bằng Web
ASP.NET trên ngôn ngữ của C#, cơ sở dữ liệu quản lý SQL Server 2000
Nền .NET Framework, là môi trường nền cho các dịch vụ Web (Web
Service). Web Service cho phép các ứng dụng trao đổi và chia sẻ dữ liệu trên
Internet mà không cần biết đang ở hệ điều hành nào và ngôn ngữ nào
Sử dụng Web ASP.NET: như đã phân tích trên ta thấy việc phát triển
Web với ASP.NET có rất nhiều thuận lợi, như là: hỗ trợ đa ngôn ngữ, code
được biên dịch chỉ một lần kể từ lần thay đổi sau cùng nên hiệu quả thực thi
khẩu” và cho phép người dùng đăng nhập vào hệ thống hay không ?
Dòng hành động thay thế:
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
- Người dùng nhập sai “Tên đăng nhập” và “Mật khẩu”, hệ thống sẽ
thông báo lỗi đăng nhập. Khi đó người dùng có thể:
• Đăng nhập lại: trở về dòng hành động chính
• Huỷ bỏ: use case “Đăng nhập” sẽ kết thúc.
- Hệ thống không tìm thấy CSDL hoặc vì một lý do nào đó thì use case
“Lỗi” sẽ được kích hoạt.
Điều kiện thoát: người dùng không tiếp tục đăng nhập hoặc chọn các chức
năng khác của hệ thống ( mà các chức năng không yêu cầu phải đăng nhập
trước khi thực hiện)
Các yêu cầu đặc biệt: không có
Điều kiện trước đó: không có
Điều kiện sau đó: người dùng có thể thực hiện được các chức năng khác mà
hệ thống phải yêu cầu đăng nhập trước khi thực hiện.
4.2.2 Nghiệp vụ: "Quản lý lớp học phần"
Tên use case: “Quản lý lớp học phần”
Mã use case: USC2
Mô tả: use case này cho phép bộ phận giáo vụ của khoa mở 1 lớp học phần
mới, cập nhật, hoặc xoá một lớp học phần trong một học kỳ của một năm học.
Dòng hành động chính: use case này bắt đầu sau khi người dùng đăng nhập
thành công vào hệ thống. Sau đó, người dùng tiếp tục chọn khoa, năm học, học
kỳ để xử lý
Sau đó, hệ thống sẽ liệt kê danh sách các lớp học phần được mở trong
năm học, học kỳ và khoa mà người dùng vừa chọn. Khi đó người dùng có thể
chọn 1 trong các chức năng sau: mở 1 lớp học phần, cập nhật lớp học phần, xoá
lớp học phần, xem thông tin chi tiết đăng ký của một lớp học phần.
Sau khi cán bộ chọn 1 trong các chức năng trên thì 1 trong các luồng
phụ sau được thực hiện:
Xem thông tin chi tiết đăng ký
- Người dùng chọn vào cột số lượng sinh viên đăng ký của một lớp học
phần
- Hệ thống sẽ xác định mã của lớp học phần đó và liệt kê danh sách sinh
viên đã đăng ký lớp học phần đó.
LVTN: Quản lý hệ thống đăng ký học phần trực tuyến cho trường ĐH
- Người dùng có thể trở về luồng chính hoặc xoá đăng ký của sinh
viên…
Điều kiện thoát: người dùng chọn chức năng kết thúc luồng phụ.
Các sự kiện khác:
Chưa có lớp học phần
- Khi luồng chính được bắt đầu, nếu chưa có 1 lớp học phần nào được mở
thì hệ thống sẽ thông báo cho người dùng.
Không tìm thấy mã lớp học phần
- Sau khi chọn một lớp học phần, hệ thống không tìm thấy mã lớp học
phần thì use case lỗi sẽ được thực hiện.
Không nhập đầy đủ thông tin của 1 lớp học phần
- Nếu trong luồng phụ “Mở 1 lớp học phần” người dùng chưa nhập đầy
đủ thông tin thì hệ thống sẽ nhắc nhở các thông tin cần phải được nhập.
Đã tồn tại mã lớp học phần
- Nếu trong luồng phụ “Mở 1 lớp học phần” người dùng nhập mã lớp học
phần đã tồn tại trong CSDL thì hệ thống sẽ nhắc nhở người dùng nhập 1
mã lớp khác.
Điều kiện trước đó: người dùng phải đăng nhập vào hệ thống (với quyền đăng
nhập là giáo vụ).
Điều kiện sau đó: nếu use case thành công thì lớp học phần sẽ được mở, cập
nhật hoặc xoá. Ngược lại, trạng thái của hệ thống không thay đổi.
4.2.3 Nghiệp vụ “Đăng ký lớp học phần”
Tên use case: Đăng ký lớp học phần
Mã use case: USC3