Trên cơ sở đã thực hiện, đề tài của em có các hướng phát triển như sau:
- Giảng viên có thể chủ động hơn trong việc đăng ký tham gia giảng dạy bằng cách thông qua trang web.
- Phân quyền cho các người dùng để phát triển hệ thống bảo mật hơn.
- Phòng đào tạo có thể thông báo cho các khoa biết tình hình các phòng học còn trống.
- Hệ thống có khả năng liên lạc với hệ thống quản lý thu học phí để thực hiện công việc thu học phí dựa vào các học phần mà sinh viên đã đăng ký trong năm học.
- Thông tin đăng ký học phần, bảng điểm của sinh viên có thể kết xuất ra dữ liệu dưới dạng XML để có thể liên lạc với các dịch vụ khác trên mạng.
- Hệ thống sẽ được phát triển trên từng domain nhỏ của từng khoa và sẽ có một domain chung của tất cả các khoa để có thể tổng hợp dữ liệu của các khoa lại.
61 trang |
Chia sẻ: baoanh98 | Lượt xem: 898 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Luận văn Quản lý hệ thống đăng ký học phần trực tuyến cho trường đại học, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ang SpecialityCurriculumnAddSubject 51
CHƯƠNG 1: GIỚI THIỆU CHUNG
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 kỳ, cán bộ giáo vụ phải trải qua rất nhiều giai đoạn, như là: xem chương trình đào tạo, viết thư mời cho giảng viên để mời tham gia giảng dạy học phần, phải thống kê các số lượng sinh viên của các khoá học để từ đó có thể mở được các lớp học phần với số lượng sinh viên thích hợp và số lượng lớp cần mở, thông báo các lớp phần dự định mở trong học kỳ, phát phiếu đăng ký học phần,nhận phiếu đăng ký học phần của sinh viên,kiểm tra việc đăng ký của sinh viên có hợp lệ hay không,thống kê tình hình đăng ký v.v Còn đối với sinh viên thì việc đăng ký học phần cũng gặp rất nhiều khó khăn, như là phải tìm hiểu kỹ về các lớp dự định mở để có thể đăng ký, không biết lớp đó đã đủ số lượng đăng ký chưa, đăng ký lớp đó có hợp lệ hay không. Nói chung là tốn rất nhiều thời gian cho cả cán bộ giáo vụ và sinh viên.
Xuất phát từ nhu cầu đó, việc phát triển 1 hệ thống hỗ trợ đăng ký học phần trực tuyến là rất cần thiết. Hệ thống phải có khả năng hỗ trợ cho cán bộ giáo vụ của khoa trong việc quản lý đăng ký học phần, làm đơn giản hoá việc mở lớp học phần, thống kê tình hình đăng ký của sinh viên. Mặt khác sinh viên có thể thông qua hệ thống này để đăng ký học phần một cách nhanh chóng và hiệu quả, tránh được những đăng ký không hợp lệ hay xảy ra.
Giới thiệu đề tài
Quản lý hệ thống đăng ký học phần trực tuyến ra đời từ nhu cầu thực tế của công việc đăng ký học phần, đồng thời ứng dụng công nghệ mới với mục đích làm cho chương trình có thể thực thi nhanh, ổn định,giao diện thân thiện và dễ sử dụng và đáp ứng được nhu cầu quản lý đăng ký học phần.
Hệ thống đăng ký học phần trực tuyến hỗ trợ đầy đủ các chức năng chính cho công việc đăng ký học phần, như là:
Quản lý chương trình đào tạo, bao gồm 2 giai đoạn: đại cương và chuyên ngành, cho phép cán bộ giáo vụ thêm, xoá, cập nhật học phần.
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.
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
Thiết kế các sơ đồ: UML
CHƯƠNG 2: CÁC KIẾN THỨC LIÊN QUAN
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ớ, quản lý phân luồng và bộ thu gom rác. Thông qua Common Type System (CTS) nó bảo đảm rằng các đoạn code được thực thi trong môi trường an toàn bằng cách buộc các đoạn code phải truy cập vào phần bảo mật.
Thư viện lớp của bộ .NET Framework cung cấp tập hợp các kiểu được thiết kế để tích hợp với Common Language Runtime. Các kiểu dữ liệu do bộ .NET Framework cung cấp đều là hướng đối tượng và cho phép tích hợp các ứng dụng từ bộ .NET Framework
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 ứng dụ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 trong Visual 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 Common Language 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ưới dạng IL, nên chúng có thể vận hành 1 cách tự do. Common Language Specification (CLS) định ra những tiêu chuẩn tối thiểu mà trình biên dịch ngôn ngữ .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ên dị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ì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ý
CLS 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ệu 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 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 bằng bất cứ ngôn ngữ nào.
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 ứng dụng.
Danh sách các câu lệnh bảo mật truy cập code cho Assembly. Phần này bao 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.
1 Assembly có 1 hay nhiều Assembly Manifest và nó chứa tất cả các thông tin mô tả cho Assembly.Assembly Manifest có thể được lưu trong 1 tập tin 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 code tạ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 ứng dụng được viết bằng các ngôn ngữ khác có thể dễ dàng tương tác.
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ột hay 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 được là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úc nà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úng vớ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ầ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.
Tìm hiểu ASP.NET
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 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.
ASP.NET sử dụng .NET Framework như là một cơ sở hạ tầng, .NET Framework 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.
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ên khả 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 .Net Framework.
Hỗ trợ nhiều control và các lớp thư viện cho phép ứng dụng ứng dụng web 1 cách nhanh chóng.
Nó có khả năng lưu trữ vào bộ nhớ cache toàn bộ trang web hoặc chỉ 1 phầ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à ứng dụng.
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ữ đánh dấ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 bao gồm cả các mã của phiên bản ASP trước đó. Điều này làm cho các chức năng trong thẻ form sẽ được nhiều hơn, bao gồm các sự kiện về phía client 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 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ề.
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.
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 đổi khô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ên dị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ông dị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ề cho ngườ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ình duyệt web hoặc WML và WMLScript cho thiết bị di động.
Các mô hình truy cập dữ liệu
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áy tí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ụng thà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.
Đị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ột lớ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ằm trê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ông phả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ầ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.
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 nằm tại 1 nơi nên việc truy xuất rất dễ dàng
Cập nhật chương trình yêu cầu phải chỉnh sửa mã nguồn, biên dịch lại và phân bố cho từng người sử dụng, điều này làm giảm khả năng mở rộng ứng dụng
2 tier
Client/Server
Lớp user và lớp business logic nằm trên 1 tier, các dịch vụ dữ liệu nằm trên 1 máy tính khác. Mô hình này đặc trưng cho 2 hay nhiều máy tính
Cung cấp 1 vài chức năng tách biệt
Khó mở rộng vì client đang là “fat client” do vừa chứa lớp trình diễn và business logic. Việc bảo trì và phân bố phần mềm sẽ gặp khó khăn
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
Cho phép các ứng dụng khác nhau trên các hệ điều hành khác nhau tương tác vớ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
N-tier với giao diện Web
Các dịch vụ được phân bố giữa Internet và Intranet
Không mất chi phí cài đặt trên client, quá trình cập nhật chỉ xảy ra trên Web hay ứng dụng máy Server.
Do sử dụng giao thức HTTP nên có thể vượt qua firewall
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.
CHƯƠNG 3: NHIỆM VỤ
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.
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 trang web, có thể chạy trình nhiều trình duyệt khác nhau, rất dễ code bởi vì hỗ trợ hơn 5000 lớp phục vụ cho việc truy xuất tài nguyên, dễ mở rộng ứng dụng. Đặc biệt nhất là nó có thể giao tiếp với các dịch vụ web khác nhờ hỗ trợ mô hình web với XML.
Ngôn ngữ C#: là ngôn ngữ rất quen thuộc đối với các lập trình viên, bởi vì nó có cấu trúc gần giống như ngôn ngữ C, C++. Đây là ngôn ngữ hướng đối tượng mà trên nền .NET mọi thứ đều là đối tượng. Vì vậy việc phát triển các ứng dụng với ngôn ngữ C# là rất dễ dàng và nhanh chóng.
Lưu trữ dữ liệu trên SQL Server:
Khả năng lưu trữ lớn
Hỗ trợ sao lưu dữ liệu tránh dữ liệu bị mất
Hỗ trợ các giao tác ( transaction)
Hỗ trợ các thủ tục giúp cho hiệu suất thực thi của trang Web trên mỗi khi có nhiều người dùng cùng sử dụng hệ thống.
Hệ thống bảo mật tương đối ổn định.
CHƯƠNG 4: PHÂN TÍCH - THIẾT KẾ - HIỆN THỰC - KẾT QUẢ
Sơ đồ use case
Phân tích các use case
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ế:
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.
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.
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á lớp học phần
Người dùng chọn các lớp học phần cần xoá, sau đó chọn chức năng “Xoá”
Hệ thống sẽ:
Xác định mã lớp học phần của các lớp được chọn
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 đó.
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.
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:
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 đa. (ĐK4)
Sinh viên chọn chức năng “Đăng ký”.
Hệ thống sẽ xác định: Tổng số tín chỉ đăng ký = số tín chỉ đã đăng ký + số tín chỉ đã chọn. Nếu thoả mãn (ĐK4) thì hệ thống sẽ liệt kê danh sách các lớp học phần mà sinh viên đã đăng ký trong học kỳ của năm học. Ngược lại hệ thống sẽ thông báo lỗi, sinh viên phải chọn lại các lớp học phần.
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ý.
Điều kiện thoát: sinh viên chọn chức năng “Kết thúc đăng ký”.
Các sự kiện khác
Sinh viên đăng ký không lệ vì không thoả mãn các điều kiện đăng ký, khi đó hệ thống sẽ hiển thị thông báo, sinh viên phải đăng ký lại.
Điều kiện trước đó: sinh viên phải đăng nhập vào hệ thống (với quyền đăng nhập là sinh viên).
Điều kiện sau đó: nếu use case thành công, việc đăng ký của sinh viên sẽ được ghi nhận lại.
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.
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ủa nó.
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.
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
Mô 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
Cập nhật học phần
Người dùng hiệu chỉnh thông tin các học phần, sau đó chọn chức năng “Cập nhật”.
Hệ thống sẽ cập nhật lại thay đổi về chương trình đào tạo, luồng phụ này kết thúc.
Cá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 cho ngườ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.
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.
Điều kiện thoát: sau khi đã lưu thành công 1 thông báo hoặc trở về danh sách các thông báo của trường.
Xoá thông báo
Cán bộ giáo vụ chọn các thông báo cần xoá, rồi chọn chức năng “ôXoá.
Hệ thống sẽ:
Xác định mã số của các thông báo.
Xoá các thông báo được đánh dấu xoá.
Cập nhật lại danh sách thông báo.
Điều kiện thoát: không có
Các sự kiện khác: không có.
Điều kiện trước đó: cán bộ giáo vụ phải đăng nhập thành công vào hệ thống.
Điều kiện sau đó: nếu use case thành công thì các thông báo sẽ được hiển thị, ngược lại trạng thái của hệ thống không thay đổi.
Phân tích sơ đồ lớp
Nghiệp vụ: Quản lý chương trình đào tạo
Chương trình đào tạo bao gồm 2 giai đoạn: giai đoạn thuộc khối kiến thức giáo dục đại cương (trong 3 học kỳ đầu, do phòng đào tạo của nhà trường quản lý ) và giai đoạn thuộc khối kiến thức giáo dục chuyên nghiệp ( trong các học kỳ còn lại, do khoa quản lý).
Chương trình đào tạo của mỗi ngành đào tạo do trường xây dựng trên cơ sở chương trình khung của Bộ Giáo Dục và Đào Tạo quy định. Tuỳ vào đặc trưng của từng bậc học và ngành học mà sẽ được phân bổ các môn học và thời gian đào tạo hợp lệ.
1 chương trình đào tạo của một bậc học, khoá, ngành học bao gồm các thuộc tính: bậc học, ngành học, chuyên ngành, khoá, học kỳ và danh sách các môn học cùng với số lượng tín chỉ ( bao gồm lý thuyết và thực hành).
Nghiệp vụ “Đăng ký lớp học phần”
Đầu mỗi học sinh, sinh viên phải tìm hiểu, nghiên cứu để nắm được chương trình đào tạo và đăng ký các học phần sẽ học trong học kỳ đó thông qua “Hệ thống đăng ký học phần trực tuyến”. Số tín chỉ đăng ký học cho mỗi học kỳ chính không vượt quá số tín chỉ tối đa và không nhỏ hơn số tín chỉ tối thiểu.
Mỗi khi sinh viên đăng ký học phần sẽ được lưu lại, gồm các thuộc tính: mã lớp học phần đăng ký theo học, năm học, học kỳ, mã số sinh viên
Biểu đồ hoạt động
Nghiệp vụ “Quản lý lớp học phần”
Mô tả: Đầu mỗi học kỳ, nhà trường có trách nhiệm thông báo cho sinh viên về:
Danh mục các học phần và số lượng tín chỉ của mỗi học phần dự kiến giảng dạy trong học kỳ, điều kiện để đăng ký học các học phần đó.
Số lượng học dự kiến tổ chức cho mỗi học phần và thời khoá biểu của các lớp học đó.
Đối với một phần học, tuỳ theo số lượng sinh viên mà sẽ mở một số lớp nhất định. Thông tin của mỗi lớp học phần gồm: thời gian học, phòng học, giảng viên, số lượng dự kiến và ngày hết hạn đăng ký lớp học phần đó.
Mô hình hoạt động
Thiết kế các bảng dữ liệu
Tên bảng: NAMHOC
Mô tả: lưu trữ các năm học của trường
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaNamHoc
Int
Khoá chính
2
TenNamHoc
Char (15)
Tên năm học, không được rỗng
Tên bảng: KHOAHOC
Mô tả: lưu trữ các khoá học
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaKhoaHoc
Char (2)
Khoá chính
2
TenKhoaHoc
Nvarchar (50)
Tên khoá học
Tên bảng: KHOA
Mô tả: lưu trữ các khoa thuộc trường.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaKhoa
Char (10)
Khoá chính
2
TenKhoa
Nvarchar (50)
Tên khoa
Tên bảng: BACHOC
Mô tả: lưu trữ các bậc học được đào tạo trong trường.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaBacHoc
Char (10)
Khoá chính
2
TenBacHoc
Nvarchar (50)
Tên bậc học
3
ThoiGianDaoTao
SmallInt
Thời gian đào tạo
4
SoTinChiTichLuy
SmallInt
Số tín chỉ tín luỹ
Tên bảng: CHUYENNGANH
Mô tả: lưu trữ các chuyên ngành thuộc một khoa.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaChuyenNganh
Char (10)
Khoá chính
2
TenChuyenNganh
Nvarchar (50)
Tên chuyên ngành
3
MaKhoa
Char (10)
Mã khoa
Tên bảng: LOAIHOCPHAN
Mô tả: lưu trữ các loại học phần.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaLoaiHocPhan
Char (10)
Khoá chính
2
TenLoaiHocPhan
Nvarchar (50)
Tên loại học phần
Tên bảng: MONHOC
Mô tả: lưu trữ các môn học.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaMonHoc
Char (10)
Khoá chính
2
TenMonHoc
Nvarchar (50)
Tên môn học
3
MaLoaiHocPhan
Char (10)
Mã loại học phần
Tên bảng: MONHOCTIENQUYET
Mô tả: lưu trữ các môn học mà sinh viên phải học trước và thi đạt mới được học tiếp môn học khác.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaMonHoc
Char (10)
Thuộc tính khoá
2
MaMonHocTienQuyet
Char (10)
Thuộc tính khoá
Tên bảng: HOCVI
Mô tả: lưu trữ các loại học vị của giảng viên.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaHocVi
Char (10)
Khoá chính
2
TenHocVi
Nvarchar (50)
Tên học vị
Tên bảng: LOAIGIANGVIEN
Mô tả: lưu các loại giảng viên trong trường
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaLoaiGiangVien
Char (10)
Khoá chính
2
TenLoai
Nvarchar (50)
Loại giảng viên
Tên bảng: GIANGVIEN
Mô tả: lưu trữ thông tin giảng viên tham gia giảng dạy trong trường.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaGV
Char (10)
Khoá chính
2
TenGV
Nvarchar (50)
Tên giảng viên
3
Giới tính
Bit
Giới tính
4
NgaySinh
Date
Ngày sinh
5
DiaChi
Nvarchar (100)
Địa chỉ
6
DienThoai
Char (10)
Điện thoại
7
DiaChiCongTac
Nvarchar (100)
Địa chỉ công tác
8
Email
Char (30)
Email
9
MaHocVi
Char (10)
Mã học vị
10
MaLoaiGiangVien
Char (10)
Loại giảng viên
Tên bảng:CTDTDAICUONG
Mô tả: lưu trữ chương trình đào tạo giai đoạn đại cương.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaBacHoc
Char (10)
Thuộc tính khoá
2
MaKhoaHoc
Char (10)
Thuộc tính khoá
3
MaKhoa
Char (10)
Thuộc tính khoá
4
HocKy
Char (2)
Thuộc tính khoá
5
MaMonHoc
Char (10)
Thuộc tính khoá
6
SoTinChiLT
Char (4)
Số tín chỉ lý thuyết
7
SoTinChiTH
Char (4)
Số tín chỉ thực hành
8
GhiChu
Nvarchar (100)
Ghi chú
Tên bảng: CTDTCHUYENNGANH
Mô tả: lưu trữ chi tiết chương trình đào tạo thuộc giai đoạn chuyên ngành của 1 khoa.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaBacHoc
Char (10)
Thuộc tính khoá
2
MaKhoaHoc
Char (10)
Thuộc tính khoá
3
MaChuyenNganh
Char (10)
Thuộc tính khoá
4
HocKy
Char (2)
Thuộc tính khoá
5
MaMonHoc
Char (10)
Thuộc tính khoá
6
SoTinChiLT
Char (4)
Số tín chỉ lý thuyết
7
SoTinChiTH
Char (4)
Số tín chỉ thực hành
8
GhiChu
Nvarchar (100)
Ghi chú
Tên bảng: QUYENDANGNHAP
Mô tả: lưu các loại quyền đăng nhập vào hệ thống đăng ký học phần.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaQuyenDangNhap
Int
Khoá chính
2
TenQuyenDangNhap
Nvarchar (50)
Quyền để đăng nhập
Tên bảng: NGUOIDUNG
Mô tả: lưu thông tin để người dùng đăng nhập vào hệ thống
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaNguoiDung
Int
Khoá chính
2
TenDangNhap
Nvarchar (50)
Tên đăng nhập
3
MatKhau
Nvarchar (50)
Mật khẩu
4
Email
Nvarchar (50)
Email
5
MaQuyenDangNhap
Char
Quyền đăng nhập
Tên bảng: SINHVIEN
Mô tả: lưu trữ thông tin chi tiết của 1 sinh viên.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaSV
Char (5)
Khoá chính
2
HoTen
Nvarchar (10)
Họ và tên sinh viên
3
Phai
Bit
Phái
4
NgaySinh
Smalldatetime
Ngày sinh
5
QueQuan
Nvarchar (50)
Quê quán
6
DiaChiThuongTru
Nvarchar (100)
Địa chỉ thường trú
7
DiaChiLienLac
Nvarchar (100)
Địa chỉ liên lạc
8
HoTenCha
Nvarchar (50)
Họ tên cha
9
HoTenMe
Nvarchar (50)
Họ tên mẹ
10
DoanVien
Bit
Đã vào đoàn chưa
11
HinhAnh
Nvarchar (50)
Đường dẫn tập tin hình ảnh
12
MaBacHoc
Char (10)
Bậc học
13
MaKhoaHoc
Char (10)
Khoá học
14
MaKhoa
Char (10)
Khoa
15
MaChuyenNganh
Char (10)
Chuyên ngành
16
LopDaiCuong
Char (10)
Lớp học thuộc giai đoạn đại cương
17
LopChuyenNganh
Char (10)
Lớp học thuộc giai đoạn chuyên ngành
18
MaNguoiDung
Int
Mã người dùng
Tên bảng: LOPHOCPHAN
Mô tả: lưu trữ thông tin chi tiết của các lớp học phần được mở trong năm học.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaLopHocPhan
Char (10)
Khoá chính
2
MaMonHoc
Char (10)
Môn học
3
MaNamHoc
Int
Năm học
4
HocKy
Char (2)
Học kỳ
5
SoTinChi
Float
Số tín chỉ
6
MaGV
Char (10)
Giảng viên
7
HinhThuc
Char (2)
Lớp LT hoặc TH
8
TietBatDau
Char (2)
Tiết bắt đầu
9
TietKetThuc
Char (2)
Tiết kết thúc
10
Thu
Char (2)
Thứ
11
Phong
Char (10)
Phòng học
12
NgayHetHanDK
Date
Ngày hết hạn đăng ký
13
MaKhoa
Char (10)
Lớp thuộc khoa
Tên bảng: PHIEUDANGKY
Mô tả: lưu thông tin đăng ký học phần của sinh viên.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaSV
Char (10)
Thuộc tính khoá
2
MaLopHocPhan
Char (10)
Thuộc tính khoá
3
MaNamHoc
Int
Thuộc tính khoá
4
HocKy
Char (2)
Thuộc tính khoá
Tên bảng: DIEM
Mô tả: lưu trữ điểm của sinh viên
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaSV
Char (10)
Thuộc tính khoá
2
MaMonHoc
Char (10)
Thuộc tính khoá
3
Diem
Char (2)
Điểm
Tên bảng: THONGBAO
Mô tả: lưu trữ các thông báo được đăng lên trang web.
STT
Thuộc tính
Kiểu dữ liệu
Diễn giải
1
MaTB
Int
Khoá chính
2
TieuDe
Nvarchar (255)
Tiêu đề
3
NoiDungTomTat
Ntext
Nội dung tóm tắt
4
NoiDung
Ntext
Nội dung thông báo
5
NgayDang
Date
Ngày tạo
6
NgayHetHan
Date
Ngày hết hạn đăng
Mô hình quan hệ
Chương trình đào tạo
Các lớp học phần
Đăng ký học phần
Điểm
Đăng nhập
Hiện thực – Kết quả
Tổ chức lập trình
Đây là một ứng dụng đòi hỏi việc truy xuất dữ liệu rất nhiều và tại 1 thời điểm có thể có hàng trăm hoặc hàng nghìn sinh viên vào đăng ký học phần, vì vậy cần phải tổ chức lập trình sao cho hệ thống có thể tăng hiệu suất thực thi của trang web. Dựa vào các mô hình truy cập dữ liệu và các ưu khuyết điểm của nó như đã phân tích trong chương trước, hệ thống sẽ được tổ chức theo mô hình 3 lớp, do đó ta sẽ tổ chức lập trình như sau:
CSDL Đăng ký học phần
HỆ THỐNG ĐĂNG KÝ HỌC PHẦN TRỰC TUYẾN
COMPONENTS
Client Logic
Bao gồm các trang thể hiện giao diện tương tác giữa người dùng với hệ thống. Đây là những trang thu thập thông tin từ người dùng, sau đó chuyển thông tin này cho các lớp Business Logic xử lý và nhận thông tin trả lại nếu có yêu cầu.
Trang Home
Đây là trang chủ, chứa các thông báo gần đây nhất của tất cả các khoa.
Sinh viên có thể vào trang này để xem thông báo.
Hình 1: Trang Home
Trang ListNews
Trang này chứa tất cả các thông báo của trường, cán bộ giáo vụ có thể thực hiện chức năng xoá các thông báo hoặc tạo thông báo mới.
Hình 2: Trang ListNews
Trang ThongBao
Trang này giúp cho cán bộ giáo vụ tạo 1 thông báo mới.
Hình 3: Trang ThongBao
Trang PostMessage
Ttrang này có chức năng lưu 1 thông nào mới vừa tạo ra. Không có giao diện.
Trang Login
Trang này dùng để đăng nhập hệ thống.
Hình 4: Trang Login
Trang NewsDetail
Xem chi tiết nội dung của thông báo.
Hình 5: Trang NewDetail
Trang InitRegister
Hiển thị thông tin cá nhân của sinh viên trước khi thực hiện đăng ký học phần.
Hình 6: Trang InitRegister
Trang RegisterCourse
Trang này cho phép sinh viên đăng ký một hoặc nhiều học phần được mở trong học kỳ của năm học hiện hành thuộc về khoa mà sinh viên đang theo học. Các lớp học phần mà có nút đăng ký bị mờ là sinh viên không được phép đăng ký bởi vì không thoả mãn các điều kiện đăng ký học phần.
Hình 7: Trang RegisterCourse
Trang ListClassRegister
Trang này hiển thị kết quả sau khi sinh viên đã đăng các lớp học phần. Sinh viên có thể huỷ các lớp học phần đã đăng ký nếu không vi phạm ràng buộc về số tín chỉ tối đa và tối thiểu.
Hình 8: Trang ListClassRegister
Trang ConditionSubject
Trng này cho phép sinh viên xem các học phần điều kiện trước khi đăng ký học phần.
Hình 9: Trang ConditionSubject
Trang ViewMark
Trang này cho phép sinh viên xem điểm của một học kỳ trong năm học.
Hình 10: Trang ViewMark
Trang GeneralCurriculumnDetails
Trang này cho phép sinh viên xem chương trình đào tạo thuộc giai đoạn đại cương.
Hình 11: Trang GeneralCurriculumnDetails
Trang InitCourse
Cho phép cán bộ giáo vụ khai báo khoa, năm học, học kỳ cần xử lý cho các lớp học phần.
Hình 12: Trang InitCourse
Trang ListCourse
Hiển thị danh sách các lớp học phần được mở thuộc khoa, năm học, học kỳ vừa khai báo trong trang InitCourse.aspx. Cán bộ giáo vụ có thể thực hiện chức năng: mở lớp, xoá, cập nhật, xem chi tiết đăng ký của các lớp học phần.
Hình 13: Trang ListCourse
Trang OpenCourse
Trang này cho phép cán bộ giáo vụ mở 1 lớp học phần.
Hình 14: Trang OpenCourse
Trang CourseDetail
Cho phép cán bộ giáo vụ xem và cập nhật thông tin chi tiết của một lớp học phần.
Hình 15: Trang CourseDetail
Trang ListStudentRegister
Trang này cho phép cán bộ giáo vụ xem chi tiết đăng ký của sinh viên và có thể huỷ đăng ký.
Hình 16: ListStudentRegister
Trang GeneralCurriculumnView
Trang này cho phép cán bộ giáo vụ khai báo chương trình đào tạo thuộc giai đoạn đại cương cần xử lý.
Hình 17: Trang GeneralCurriculumnView
Trang GeneralCurriculumnEdit
Cho phép cán bộ giáo vụ xem danh sách các học phần của chương trình đào tạo giai đoạn đại cương. Cán bộ có thể thực hiện thao tác xoá, chỉnh sửa hoặc thêm một học phần từ trang này.
Hình 18: Trang GeneralCurriculumnEdit
Trang GeneralCurriculumnAddSubject
Trang này cho phép cán bộ giáo vụ thêm 1 học phần vào chương trình đào tạo giai đoạn đại cương.
Hình 19: Trang GeneralCurriculumnAddSubject
Trang SpecialityCurriculumnView
Cho phép cán bộ giáo vụ khai báo chương trình đào tạo thuộc giai đoạn chuyên ngành cần xử lý.
Hình 20: Trang SpecialityCurriculumnView
Trang SpecialityCurriculumnEdit
Cho phép cán bộ giáo vụ xem danh sách các học phần của chương trình đào tạo giai đoạn chuyên ngành. Cán bộ có thể thực hiện thao tác xoá, chỉnh sửa hoặc thêm một học phần từ trang này.
Hình 21: Trang SpecialityCurriculumnEdit
Trang SpecialityCurriculumnAddSubject
Trang này cho phép cán bộ giáo vụ thêm 1 học phần vào chương trình đào tạo giai đoạn chuyên ngành.
Hình 22: Trang SpecialityCurriculumnAddSubject
Business Logic
Chứa các lớp xử lý dữ liệu cho Client Logic, không chứa giao diện, tất cả được nhóm vào 1 project có tên là “Component”, gồm các lớp sau:
ConnectDB: thực hiện kết nối CSDL.
Modules: thực hiện các xử lý chung nhất của hệ thống như: thực hiện một câu truy vấn, đánh số thứ tự, đăng nhập hệ thống v.v
GeneralCurriculumn: chứa các thuộc tính và các phương thức liên quan đến chương trình đào tạo giai đoạn đại cương.
SpecialityCurriculumn: chứa các thuộc tính và các phương thức liên quan đến chương trình đào tạo giai đoạn chuyên ngành.
StudentLogin: chứa thông tin chi tiết của sinh viên sau khi đăng nhập thành công vào hệ thống.
Course: bao gồm các phương thức liên quan đến việc quản lý các lớp học phần.
Register: bao gồm các phương thức liên quan đến việc đăng ký học phần trực tuyến của sinh viên.
CardMark: bao gồm các thuộc tính và phương thức liên quan đến bảng điểm của sinh viên trong một học kỳ.
News: bao gồm các thuộc tính và phương thức liên quan đến các thông báo.
Data Storage
Đây là phần CSDL mà ta thiết kế.
CHƯƠNG 5: KẾT LUẬN - HƯỚNG PHÁT TRIỂN
Các mục tiêu đã thực hiện trong đề tài
Sau 1 thời gian thực hiện đề tài, hệ thống mà em xây dựng được có thể đáp ứng các mục tiêu mà đề tài đặt ra:
Hỗ trợ cán bộ giáo vụ trong công việc quản lý đăng ký học phần:
Quản lý chương trình đào tạo, bao gồm 2 giai đoạn: đại cương và chuyên ngành.
Mở lớp, cập nhật hoặc xoá các lớp học phần.
Xem chi tiết đăng ký của các lớp học phần.
Ngoài ra hệ thống còn hỗ trợ cho cán bộ giáo vụ tạo các thông báo, đăng các thông báo của khoa.
Đối với sinh viên có thể thông qua trang web này để tiến hành đăng ký học phần, làm cho sinh viên có thể chủ động hơn trong việc lựa chọn các lớp học phần, tránh được các đăng ký không hợp lệ. Ngoài ra sinh còn có thể xem chương trình đào tạo của nhà trường, xem kết quả thi vào cuối mỗi học kỳ.
Các yêu cầu chưa đạt được.
Hệ thống chưa có các chức năng hỗ trợ cho giáo viên trong việc đăng ký tham gia giảng dạy cho nhà trường.
Chưa phân quyền hệ thống, quản lý người dùng.
Toàn bộ dữ liệu chỉ tập trung 1 nơi, trong khi đó khối lượng dữ liệu sau 1 năm học của mỗi khoa công việc đăng ký học phần tăng rất nhanh, ảnh hưởng đến tốc độ truy xuất của trang web. Vì thế hệ thống đăng ký học phần trực tuyến này nên được phát triển riêng lẻ ở từng khoa và ở phòng đào tạo, dữ liệu chỉ tập trung ở khoa, và dữ liệu của tất cả các khoa sẽ được tập trung hết ở phòng đào tạo. Khi đó sẽ làm tăng tốc độ thực thi của trang web lên rất nhiều.
Hướng phát triển
Trên cơ sở đã thực hiện, đề tài của em có các hướng phát triển như sau:
Giảng viên có thể chủ động hơn trong việc đăng ký tham gia giảng dạy bằng cách thông qua trang web.
Phân quyền cho các người dùng để phát triển hệ thống bảo mật hơn.
Phòng đào tạo có thể thông báo cho các khoa biết tình hình các phòng học còn trống.
Hệ thống có khả năng liên lạc với hệ thống quản lý thu học phí để thực hiện công việc thu học phí dựa vào các học phần mà sinh viên đã đăng ký trong năm học.
Thông tin đăng ký học phần, bảng điểm của sinh viên có thể kết xuất ra dữ liệu dưới dạng XML để có thể liên lạc với các dịch vụ khác trên mạng.
Hệ thống sẽ được phát triển trên từng domain nhỏ của từng khoa và sẽ có một domain chung của tất cả các khoa để có thể tổng hợp dữ liệu của các khoa lại.
Phụ lục: Tài liệu tham khảo
[1] Hệ thống SMS.
[2] ASP.NET Database Programming Weekend Crash Course.
[3] ASP.NET Web Developer's Guide.
[4] Professional ASP.NET Special Edition ISBN 1861007035 (Wrox).
[5] MSDN Library - January 2004.
[6] www.asp.net và một số trang web khác.