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
Trang 1TRƯỜ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
Trang 2
GIÁO VIÊN HƯỚNG DẪN
Trang 3
GIÁO VIÊN PHẢN BIỆN
Trang 4Em xin gửi lời cảm ơn chân thành đến quý Thầy Cô trường Đai Học Dân Lập Kỹ Thuật Công Nghệ nói chung và khoa Công Nghệ Thông Tin nói riêng, quý thầy cô đã truyền đạt cho chúng em nhiều kiến thức qúy báu trong suốt bốn năm học vừa qua.
Đặc biệt, em xin gửi lời cảm ơn đến thầy Vũ Thanh Hiền - thầy hướng dẫn luận văn của em - thầy đã tận tình hướng dẫn, chỉ bảo và giúp đỡ em từ lúc bắt đầu cho đến khi hoàn thành luận văn tốt nghiệp này.
Trang 5CHƯƠNG 1: GIỚI THIỆU CHUNG 2
1.1 Giới thiệu chung 2
1.2 Giới thiệu đề tài 3
1.3 Các công cụ sử dụng 3
CHƯƠNG 2: CÁC KIẾN THỨC LIÊN QUAN 4
2.1 Giới thiệu NET Framework 4
2.2 Ngôn ngữ lập trình và bộ NET Framework 4
2.3 Kiến trúc ứng dụng NET 6
2.4 Thực thi và biên dịch ứng dụng NET 6
2.5 Tìm hiểu ASP.NET 7
2.5.1 Giới thiệu ASP.NET 7
2.5.2 Các điểm thuận lợi của ASP.NET 8
2.5.3 Tương tác Client - Server 8
2.5.4 Xử lý trên Server 9
2.5.5 Biên dịch và phân phối đến trang ASP.NET 9
2.6 Các mô hình truy cập dữ liệu 10
2.6.1 Giới thiệu 10
2.6.2 Định nghĩa cấu trúc n-tier 10
2.6.3 Bảng so sánh giữa các mô hình truy cập dữ liệu 11
CHƯƠNG 3: NHIỆM VỤ 13
3.1 Phân tích nhiệm vụ 13
3.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
4.2.6 Nghiệp vụ “Quản lý chương trình đào tạo” 21
4.2.7 Nghiệp vụ “Quản lý thông báo” 23
4.3 Phân tích sơ đồ lớp 24
4.3.1 Nghiệp vụ: Quản lý chương trình đào tạo 24
4.3.2 Nghiệp vụ “Đăng ký lớp học phần” 25
4.3.3 Nghiệp vụ “Quản lý lớp học phần” 27
4.4 Thiết kế các bảng dữ liệu 29
4.5 Mô hình quan hệ 35
4.5.1 Chương trình đào tạo 35
4.5.2 Các lớp học phần 36
4.5.3 Đăng ký học phần 36
4.5.4 Điểm 37
4.5.5 Đăng nhập 37
4.6 Hiện thực – Kết quả 37
Trang 64.6.1.2 Business Logic 52
4.6.1.3 Data Storage 52
CHƯƠNG 5: KẾT LUẬN - HƯỚNG PHÁT TRIỂN 53
5.1 Các mục tiêu đã thực hiện trong đề tài 53
5.2 Các yêu cầu chưa đạt được 53
5.3 Hướng phát triển 54
Phụ lục: Tài liệu tham khảo 55
Trang 7Hình 3: Trang ThongBao 40
Hình 4: Trang Login 41
Hình 5: Trang NewDetail 41
Hình 6: Trang InitRegister 42
Hình 7: Trang RegisterCourse 42
Hình 8: Trang ListClassRegister 43
Hình 9: Trang ConditionSubject 43
Hình 10: Trang ViewMark 44
Hình 11: Trang GeneralCurriculumnDetails 45
Hình 12: Trang InitCourse 45
Hình 13: Trang ListCourse 46
Hình 14: Trang OpenCourse 47
Hình 15: Trang CourseDetail 48
Hình 16: ListStudentRegister 48
Hình 17: Trang GeneralCurriculumnView 49
Hình 18: Trang GeneralCurriculumnEdit 49
Hình 19: Trang GeneralCurriculumnAddSubject 50
Hình 20: Trang SpecialityCurriculumnView 50
Hình 21: Trang SpecialityCurriculumnEdit 51
Hình 22: Trang SpecialityCurriculumnAddSubject 51
Trang 113.5 Ngôn ngữ lập trình và bộ NET Framework
Bộ NET Framework được thiết kế cho khả năng tương thích đa ngôn
ngữ, điều này có nghĩa là các component của NET có thể tương tác với nhau
mà không quan tâm chúng được viết bằng ngôn ngữ lập trình nào Vì thế, 1 ứngdụng được viết bằng Visual Basic NET có thể tham chiếu đến 1 tập tin thưviện dll viết bằng ngôn ngữ Visual C# hoặc bất kỳ ngôn ngữ NET nào Khảnăng này làm mở rộng tính kế thừa trong hướng đối tượng Ví dụ: 1 lớp trongVisual Basic NET có thể kế thừa 1 lớp trong Visual C# và ngược lại
Tính tương thích đa ngôn ngữ lập trình như vậy là do CommonLanguage Runtime Khi một ứng dụng NET được biên dịch, nó sẽ chuyển đổi
từ ngôn ngữ lập trình NET nào sang dạng Microsoft Intermediate Language(MSIL hay IL) Ngôn ngữ cấp thấp này được thiết kế để mà CRL có thể đọc vàhiểu được Bởi vì các phần mang tính thực thi và dll của NET tồn tại dướidạng IL, nên chúng có thể vận hành 1 cách tự do Common LanguageSpecification (CLS) định ra những tiêu chuẩn tối thiểu mà trình biên dịch ngônngữ NET phải đảm bảo rằng bất cứ mã nguồn nào được biên dịch từ trình biêndịch NET có thể vận hành với NET Framework được
Common Language Runtime
Thư viện hỗ trợ BCL
Xử lý tiểu trìnhKiểm tra dữ liệuTrình bảo mật
Quản lý COMQuả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
Trang 12CLS bảo đảm cho sự tương thích giữa các component của NET, do cácứng dụng NET được chuyển sang IL trước khi thực thi, nên các loại dữ liệu cơbản được biểu diễn lại thành loại dữ liệu của NET Vì thế cả 2 kiểu dữ liệuInteger 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ư VisualBasic NET, C#, Visual C++ và ngôn ngữ script là JScript Ta cũng có thể viếtcode xử lý cho bộ NET Framework bằng các ngôn ngữ lập trình khác Có rấtnhiề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ônngữ và thừa kế Do đó ta có thể viết code cho bộ NET Framework bằng ngônngữ nào theo ta chọn và nó sẽ có thể tương tác với code được viết cho bộ NETFramework bằng bất cứ ngôn ngữ nào
3.6 Kiến trúc ứng dụng NET
Assembly là tập hợp code, tài nguyên và metadata mô tả ứng dụng.Assembly Manifest chứa thông tin nằm trong Assembly Assembly Manifest:
Định danh thông tin, như là tên và số phiên bản của Assembly
Danh sách các kiểu do Assembly đưa ra
Danh sách các Assembly yêu cầu khác phục vụ cho Assembly của ứngdụng
Danh sách các câu lệnh bảo mật truy cập code cho Assembly Phần nàybao gồm danh sách các quyền do Assembly yêu cầu và các quyền bịAssembly từ chối
Trang 131 Assembly có 1 hay nhiều Assembly Manifest và nó chứa tất cả cácthông tin mô tả cho Assembly.Assembly Manifest có thể được lưu trong 1 tậptin riêng hoặc có thể được lưu vào 1 trong các module của Assembly.
1 Assembly cũng có thể chứa 1 hay nhiều module, module chứa codetạo ứng dụng hay thư viện và metadata mô tả đoạn code đó Khi biên dịch 1 dự
án sang Assembly, đoạn code sẽ được chuyển từ ngôn ngữ cấp cao sang IL.Bởi vì tất cả code xử lý đầu tiên phải được chuyển sang code IL để các ứngdụng được viết bằng các ngôn ngữ khác có thể dễ dàng tương tác
3.7 Thực thi và biên dịch ứng dụng NET
Khi biên dịch ứng dụng NET, nó được biên dịch sang mã nhị phân, mộthay nhiều Assembly bao gồm các tập tin thực thi và dll dưới dạng dưới dạng
IL, có ít nhất là một trong các Assembly sẽ chứa 1 tập tin có thể thực thi đượclàm điểm khởi tạo cho ứng dụng
Khi thực thi chương trình, Assembly đầu tiên được nạp vào bộ nhớ Lúcnày, CLR sẽ dò xét trong Assembly Manifest và phân tích các yêu cầu để chạyứng dụng Nó dò xét các quyền bảo mật do Assembly yêu cầu và so sánh chúngvới chính sách bảo mật của hệ thống Nếu không thoả mãn thì ứng dụng sẽ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ầncode 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êndị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ạncode được biên dịch chỉ 1 lần trong suốt quá trình thực thi ứng dụng Bất cứ khinào chương trình thực thi 1 nhánh của đoạn code mà chưa được thực thi, trìnhbiê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ỉ 1phần của chương trình nào cần thực thi mới được biên dịch
Trang 143.8 Tìm hiểu ASP.NET
3.8.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ụngweb 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 CLRthuộc nền NET Người lập trình có thể viết code ASP.NET bằng cách sử dụngnhiều ngôn ngữ lập trình khác nhau mà được hỗ trợ bởi nền NET ASP.NETthự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 webserver
ASP.NET cố gắng làm đơn giản hoá cho người phát triển chương trìnhchuyển đổi ứng dụng desktop thành các ứng dụng web bằng cách nó cho phépcác nhà lập trình viên xây dựng trang web từ các control tương tự như cáccontrol 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 webbằng mô hình event-driven GUI, và nó có khả năng kết hợp các công nghệ pháttriển web trước đây như là Javascript vào bên trong các component, nghĩa là 1control trên ASP.NET vừa có sự kiện của client và server
ASP.NET sử dụng .NET Framework như là một cơ sở hạ tầng, .NETFramework yêu cầu quản lý môi trường runtime - bằng cách cung cấp các máy
ảo ( virtual machine) với JIT và các lớp thư viện
3.8.2 Các điểm thuận lợi của ASP.NET
- Code được biên dịch chỉ 1 lần kể từ lần thay đổi nội dung cuối cùng nênkhả năng thực thi nhanh hơn
- Có chế độ điều khiển lỗi: bắt lỗi và xử lý lỗi
- ASP.NET mang lại sự thuận lợi cho các nhà phát triển ứng dụng web vì
nó hỗ trợ hơn 20 ngôn ngữ như: C#, VisualBasic.NET, Visual C.NET,Visual J#, Perl.NET v.v và tất cả các thư viện phần mềm của NetFramework
- Hỗ trợ nhiều control và các lớp thư viện cho phép ứng dụng ứng dụngweb 1 cách nhanh chóng
Trang 15- Nó có khả năng lưu trữ vào bộ nhớ cache toàn bộ trang web hoặc chỉ 1phần, điều này làm cải tiến hiệu suất thực thi của trang web.
- Các ứng dụng web được viết bằng ASP.NET chạy nhanh, hiệu quả cao,
dễ quản lý, mở rộng, mềm dẻo nhưng trên hết tất cả là rất dễ hiểu và dễcode
- Độ bảo mật cao bởi vì hỗ trợ chế độ bảo mật ở mức Windows và ứngdụng
3.8.3 Tương tác Client - Server
- Các ứng dụng ASP.NET là 1 sự pha trộn giữa đoạn mã - ngôn ngữ đánhdấu về phía client với xử lý về phía server Khi 1 trang web ASP.NETđược tải về phía trình duyệt của người dùng, các mã được thêm vào baogồm cả các mã của phiên bản ASP trước đó Điều này làm cho các chứcnăng trong thẻ form sẽ được nhiều hơn, bao gồm các sự kiện về phíaclient và server, sự xác nhận các tính hợp lệ, và khả năng lưu giữ giá trị.Server sẽ xác định loại trình duyệt của người dùng, và gửi các ngôn ngữđá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 trongkhi đó 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ề
lý như là các HTTP request, cơ sở dữ liệu, hệ thống tập tin và định hình choresponse
Trang 16Khi một response kết thúc, nó sẽ được đưa ra cho trình duyệt của ngườidùng, thông thường là các thẻ HTML và trình duyệt sẽ hiển thị nội dung lênmàn hình.
3.8.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
Lần kế mà trang được yêu cầu, server sẽ kiểm tra xem mã có bị thay đổikhông? Nếu không, thì giai đoạn biên dịch được bỏ qua và các mã của lớpđược biên dịch lúc trước sẽ được thực thi Trái lại, lớp sẽ bị xoá và được biêndịch là từ đoạn mã mới
Đoạn mã sau khi biên dịch được thực thi và các giá trị gửi đi được thôngdịch, như là các giá trị trong thẻ form hoặc trong URL
Nếu các nhà phát triển sử dụng Web Form thì sau đó server có thể nhận
ra phần mềm nào mà người dùng sử dụng và những trang được trả về chongười dùng sẽ được biến đổi theo những yêu cầu về phía người dùng, ví dụ: trả
về các đoạn mã theo trình duyệt của Netscape hoặc đoạn mã cho thiết bị diđộng ( Wireless Markup Language [WML] )
Các kết quả sẽ được trả về cho trình duyệt của người dùng
Các thành viên trong thẻ Form được chuyển đổi thành ngôn ngữ script
và các ngôn ngữ đánh dấu về phía client như HTML và Javascript cho trìnhduyệt web hoặc WML và WMLScript cho thiết bị di động
Trang 173.9 Các mô hình truy cập dữ liệu
3.9.1 Giới thiệu
Các mô hình truy cập dữ liệu liên quan đến quá trình phát triển của máytính, từ cục bộ cho đến phân bố Khi số lượng người dùng và dữ liệu tăng lên,các mô hình truy cập dữ liệu phát triển từ 1 người sử dụng trên 1 ứng dụngthành nhiều người sử dụng trên mạng Internet Sự phát triển mới nhất của môhình hiện này là XML Web Service
3.9.2 Định nghĩa cấu trúc n-tier
- Trong mô hình truy cập dữ liệu, 1 tier là một mức cục bộ hoặc là mộtlớp chứa các thành phần cục bộ của một ứng dụng Các tier có thể nằmtrên một hoặc nhiều máy hay nằm trên các tier vật lý Số lượng tier phảnánh số lượng các dịch vụ được chia thành các mức nhỏ, nhưng khôngphải là số lượng máy tính Các mức này bao gồm:
Client tier: được gọi là mức trình diễn hoặc lớp dịch cho người sửdụng, lớp này chứa giao diện người dùng
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ầuhế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ụngclient
Data Service tier: chứa dữ liệu mà business logic dùng trong ứngdụ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ậycho 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 1tier, bất cứ 1 sự thay đổi nào đều yêu cầu toàn bộ ứng dụng phải đượcbiên dịch lại và phân bố lại từ đầu
Trang 183.9.3 Bảng so sánh giữa các mô hình truy cập dữ liệu
1 tier
Monolithic
Mô hình này đặctrưng cho 1 người
sử dụng và tất cảcác lớp đều nằmtrên 1 máy tínhđơn
Do mọi thứ đềunằm tại 1 nơi nênviệc truy xuất rất
dễ dàng
Cập nhật chương trìnhyêu cầu phải chỉnh sửa
mã nguồn, biên dịch lại
và phân bố cho từngngười sử dụng, điềunày làm giảm khả năng
mở rộng ứng dụng
2 tier
Client/Server
Lớp user và lớpbusiness logicnằm trên 1 tier,các dịch vụ dữ liệunằm trên 1 máytính khác Môhình này đặc trưngcho 2 hay nhiềumáy tính
Cung cấp 1 vàichức năng táchbiệt
Khó mở rộng vì clientđang là “fat client” dovừa chứa lớp trình diễn
và business logic Việcbảo trì và phân bố phầnmềm sẽ gặp khó khăn
3 tier Mỗi 1 dịch vụ
nằm trong 1 lớpriêng biệt
Business logic trởthành 1 lớp mớigọi là “middle”
tier
Các lớp clientbây giờ là “thinclient” do chỉchứa client logichoặc lớp trìnhdiễn
Việc quản lý sẽ phứctạp hơn, sự bảo mậtkhô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épnhiều client truycập vào 1 ứngdụng server đơn
Các tier mới đượcthêm vào nếu nhu
Cho phép cácứng dụng khácnhau trên các hệđiều hành khácnhau tương tácvới người dùng
và dữ liệu
Các lời gọi thủ tục từ
xa (RPC) không thểvượt qua firewall
Trang 19cầu về tier mới làcần thiết
N-tier với
giao diện
Web
Các dịch vụ đượcphân bố giữaInternet vàIntranet
Không mất chiphí cài đặt trênclient, quá trìnhcập nhật chỉ xảy
ra trên Web hayứng dụng máyServer
Do sử dụng giaothức HTTP nên
có thể vượt quafirewall
Lưu ý: khi số tier tăng thì độ phức tạp và khả năng mở rộng của mô hình truy
cập dữ liệu tăng theo.
Trang 21KẾT QUẢ
4.3 Sơ đồ use case
4.4 Phân tích các use case
4.4.1 Nghiệp vụ: “Đăng nhập”
Tên use case “Đăng nhập”
Mã use case: USC1
Mô tả: cho phép người dùng đăng nhập vào hệ thống đăng ký môn học trực
tuyến
Dòng chảy sự kiện ( dòng logic chung): người dùng chọn chức năng “Đăng
nhập” trên phần menu của trang web
Dòng hành động chính: người dùng nhập “Tên đăng nhập” và “Mật khẩu” và
“Quyền đăng nhập” Sau đó hệ thống sẽ kiểm tra “Tên đăng nhập” và “Mật 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ế:
Trang 22- Người dùng nhập sai “Tên đăng nhập” và “Mật khẩu”, hệ thống sẽ thôngbá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.4.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:
Mở 1 lớp học phần:
- Hệ thống yêu cầu người dùng nhập vào thông tin của một lớp học phần
sẽ được mở trong học kỳ của năm học hiện hành
Trang 23- Người dùng chọn chức năng “Lưu” Khi đó hệ thống sẽ lưu lớp học phần này vào trong CSDL
- Người dùng có thể tiếp tục mở 1 lớp học phần khác hoặc kết thúc luồng phụ này
Điều kiện thoát: người dùng chọn chức năng kết thúc luồng phụ hoặc
sau khi chọn chức năng lưu
Cập nhật lớp học phần
- Người dùng chọn 1 lớp học phần cần thay đổi thông tin chi tiết
- Hệ thống sẽ xác định mã lớp học phần và hiển thị thông tin chi tiết của lớp học phần đó
- Người dùng có thể thay đổi bất kỳ thông tin nào của lớp học phần
- Người dùng chọn chức năng “Cập nhật”
- Hệ thống sẽ cập nhật lại những thông tin đã thay đổi về lớp học phần đó
- Sau đó, người dùng có thể tiếp tục thay đổi thông tin của lớp học phần
đó hoặc kết thúc luồng phụ này và trở lại luồng chính
Điếu kiện thoát: người dùng chọn chức năng kết thúc luồng này
Xoá đăng ký của sinh viên có trong lớp học phần được chọn để xoá
Xoá thông tin của các lớp học phần được chọn để xoá
Cập nhật lại danh sách các lớp học phần có trong năm học của học
kỳ hiện tại
Điều kiện thoát: sau khi thực hiện xong chức năng xoá
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 đó
Trang 24- Người dùng có thể trở về luồng chính hoặc xoá đăng ký của sinh
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
Đ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.4.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
Mô tả: use case này cho phép sinh viên đăng ký các lớp học phần được mở
trong 1 học kỳ của một năm học Sinh viên được phép đăng ký, huỷ đăng ký các lớp học phần nếu thoả mãn một số điều kiện cho phép
Dòng chảy sự kiện: sinh viên chọn “Đăng ký học phần” trên menu của trang
web
Dòng sự kiện chính:
Trang 25- Use case này bắt đầu khi người dùng đăng nhập thành công vào hệ thống.
- Hệ thống sẽ xác định mã người dùng, từ đó biết được mã số sinh viên, rồi hệ thống sẽ hiển thị thông tin của sinh viên, bắt đầu một phiên làm việc
- Người dùng chọn chức năng “Tiếp tục đăng ký”
- Hệ thống sẽ liệt kê danh sách các lớp học phần được mở trong học kỳ
- Sinh viên chỉ được phép đăng ký các lớp học phần khi thoả mãn các điều kiện sau:
Lớp học phần còn thời hạn đăng ký (ĐK1)
Đã đậu các học phần điều kiện của lớp học phần đó (ĐK2)
Số lượng đăng ký nhỏ hơn sĩ số dự kiến (ĐK3)
Số tín chỉ tối thiểu < = Tổng số tín chỉ đăng ký < = Số tín chỉ tối
- Sinh viên có thể:
Tiếp tục đăng ký: chọn các lớp học phần trong danh sách liệt kê
Kết thúc đăng ký: hệ thống sẽ chấm dứt phiên làm việc
Xoá đăng ký:
Sinh viên chọn các lớp học phần cần xoá, chọn chức năng xoá
Hệ thống sẽ tính lại số tín chỉ đăng ký sau khi xoá Nếu thoả mãn ĐK4 thì hệ thống sẽ:
Xoá các lớp học phần vừa chọn
Cập nhật lại danh sách các lớp học phần đăng ký của sinh viên
Tính số tín chỉ đăng ký
Trang 26Điều kiện thoát: sinh viên chọn chức năng “Kết thúc đăng ký”.
4.4.4 Nghiệp vụ “Xem điểm”
Tên use case: Xem điểm
Mã use case: USC4
Mô tả: use case này cho phép sinh viên xem bảng điểm của mình trong học kỳ
trước đó
Dòng chảy sự kiện: sinh viên chọn chức năng “Xem điểm” trên menu của
trang Web
Dòng sự kiện chính:
- Sinh viên nhập mã số sinh viên, chọn năm học và học kỳ
- Hệ thống sẽ truy xuất và hiển thị bảng điểm
- Sinh có thể tiếp tục xem điểm hoặc kết thúc luồng chính này bằng cách thực hiện một chức năng khác của hệ thống
Điều kiện thoát: sau khi bảng điểm được hiển thị.
Các sự kiện khác:
Không có điểm trong học kỳ của năm học vừa chọn hoặc không tìm thấy
mã số sinh viên: hệ thống sẽ hiển thị một thông báo Khi đó sinh viên có thể nhập lại thông tin hoặc kết thúc use case này
Điều kiện trước đó: không có.
Điều kiện sau đó: nếu use case thành công thì bảng điểm của sinh viên trong
học kỳ vừa chọn sẽ được hiển thị, ngược lại thì trạng thái của hệ thống không thay đổi
Trang 274.4.5 Nghiệp vụ “Xem chương trình đào tạo”
Tên use case: Xem chương trình đào tạo
Mã use case: USC5
Mô tả: use case này cho phép sinh viên xem chương trình đào tạo của khoá học
và khoá mà mình đang học, bao gồm 2 giai đoạn: đại cương và chuyên ngành
Dòng chảy sự kiện: sinh viên chọn chức năng “Xem chương trình đào tạo” từ
menu của trang web
Dòng sự kiện chính:
- Nếu sinh viên chọn xem chương trình đào tạo giai đoạn đại cương thì hệthống sẽ yêu cầu sinh viên nhập thông tin về chương trình như: bậc học, khoá học, khoa và học kỳ ( giai đoạn đại cương thông thường là 3 học
kỳ đầu hoặc có thể hơn tuỳ theo ngành nghề đào tạo)
- Nếu sinh viên chọn xem chương trình đào tạo giai đoạn chuyên ngành
hệ thống sẽ yêu cầu sinh viên nhập thông tin về chương trình như: bậc học, khoá học, khoa Hệ thống sẽ liệt kê các chuyên ngành của khoa mà sinh viên vừa chọn Tiếp tục sinh viên chọn chuyên ngành và học kỳ
- Hệ thống sẽ liệt kê danh sách các học phần cùng với số lượng tín chỉ củanó
- Sinh viên có thể tiếp tục use case này hoặc kết thúc use case khi chọn chức năng khác của hệ thống
Điều kiện thoát: sau khi liệt kê các học phần trong chương trình đào tạo Các sự kiện khác:
- Không tìm thấy chương trình đào tạo: hệ thống sẽ hiển thị một thông báo Khi đó sinh viên chọn có thể tiếp tục hoặc kết thúc use case này
Điều kiện trước đó: không có.
Điều kiện sau đó: nếu use case thành công thì thông tin chi tiết về chương
trình đào tạo sẽ được hiển thị Ngược lại thì trạng thái của hệ thống không thay đổi
4.4.6 Nghiệp vụ “Quản lý chương trình đào tạo”
Tên use case: quản lý chương trình đào tạo.
Mã use case: USC6
Trang 28Mô tả: use case này cho phép phòng đào tạo hoặc cán bộ giáo vụ quản lý
chương trình đào tạo của khoa (bao gồm 2 giai đoạn: đại cương và chuyên ngành), họ có thể “Thêm một học phần”, “Xoá một hay nhiều học phần”,”Cập nhật học phần” của chương trình đào tạo
Dòng chảy sự kiện: cán bộ giáo vụ chọn chức năng “Chương trình đào tạo”
trên menu của trang web
Dòng sự kiện chính: use case này bắt đầu khi cán bộ đào tạo sau khi đã đăng
nhập thành công vào hệ thống Cán bộ đào tạo sẽ chọn 1 trong 2 chức năng quản lý chương trình đào tạo: giai đoạn đại cương hoặc chuyên ngành
Hệ thống yêu cầu người dùng nhập thông tin về chương trình đào tạo như: bậc học, khoá học, khoa, chuyên ngành ( là giai đoạn chuyên ngành), và học kỳ
Hệ thống liệt kê danh sách các học phần có trong chương trình đào tạo vừa nhập
Khi đó, cán bộ giáo vụ có thể chọn một trong các luồng phụ “Thêm 1 học phần”,” Xoá 1 hay nhiều học phần”,” Cập nhật học phần”
Thêm 1 học phần
- Người dùng nhập thông tin về học phần: tên học phần, số tín chỉ lý thuyết, số tín chỉ thực hành
- Người dùng chọn chức năng “Lưu”
- Hệ thống sẽ lưu học phần này vào chương trình đào tạo
- Người dùng có thể tiếp tục hoặc kết thúc luồng phụ này
Xoá 1 hay nhiều học phần
- Người dùng chọn các học phần cần xoá, chọn chức năng “ôXoá
- Hệ thống sẽ xoá các học phần vừa chọn và cập nhật lại danh sách các học phần trong chương trình đào tạo, luồng phụ này kết thúc
Trang 29Các sự kiện khác
Đã tồn tại học phần trong chương trình đào tạo
- Nếu trong luồng phụ “Thêm 1 học phần” người dùng chọn 1 học phần
đã có trong chương trình đào tạo thì hệ thống sẽ hiển thị 1 thông báo nhắc nhở người dùng, khi đó người dùng có thể tiếp tục luồng phụ này bằng cách chọn một học phần khác hoặc kết thúc luồng phụ này
Không cập nhật học phần trong chương trình đào tạo
- Nếu trong luồng phụ “Cập nhật học phần” hệ thống sẽ thông báo lỗi chongười dùng, và sẽ cập nhật lại danh sách các học phần trong chương trình đào tạo
Đ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ì chương trình đào tạo của mỗi
khoa sẽ được lưu vào CSDL Ngược lại thì trạng thái của hệ thống không thay đổi
4.4.7 Nghiệp vụ “Quản lý thông báo”
Tên use case: Quản lý thông báo
Mã use case: USC7
Mô tả: use case này cho phép cán bộ giáo vụ quản lý các thông báo của trường,
bao gồm các chức năng: tạo thông báo, xoá thông báo
Dòng chảy sự kiện: cán bộ giáo vụ chọn “Quản lý thông báo” trên menu của trang web
Dòng hành động chính: use case này bắt đầu sau khi cán bộ giáo vụ đã đăng
nhập thành công vào hệ thống Khi đó hệ thống sẽ liệt kê danh sách các thông báo của trường, cán bộ có thể chọn 1 trong 2 luồng phụ sau:
Tạo thông báo:
Hệ thống sẽ yêu cầu nhập thông tin cho 1 thông báo, sau đó chọn chức năng “Lưu”
Hệ thống sẽ lưu thông báo vừa tạo vào danh sách thông báo
Cán bộ có thể tiếp tục tạo 1 thông báo khác hoặc kết thúc luồng phụ này