Giới thiệu dự án

Trong bối cảnh chuyển đổi số giáo dục đại học (EdTech) đang diễn ra mạnh mẽ, việc tin học hóa quy trình quản trị đào tạo là tiêu chí sống còn để nâng cao chất lượng vận hành học thuật. Theo thống kê từ các khảo sát giáo dục đại học, hơn 65% sự cố chậm trễ công bố kết quả và 15-20% sai lệch dữ liệu học tập bắt nguồn từ quy trình quản lý điểm thủ công trên sổ sách hoặc bảng tính phân tán. Các sự cố thực tế tại nhiều cơ sở đào tạo lớn trong giai đoạn 2019–2023 đã chứng minh rằng phương thức truyền thống gây lãng phí hàng trăm giờ làm việc của cán bộ giáo vụ và trực tiếp xâm phạm quyền lợi học tập của sinh viên.

Đề tài "Quản lý điểm sinh viên đại học" được nghiên cứu và phát triển bởi Nhóm nghiên cứu Khoa Công nghệ Thông tin – Trường Đại học Sư phạm TP. Hồ Chí Minh (Mã học phần: COMP106003, GVHD: ThS. Nguyễn Văn Thịnh) nhằm giải quyết triệt để các bài toán thắt nút cổ chai (bottleneck) trong quản lý đào tạo tín chỉ.

+-------------------------------------------------------------------------+
|                CÁC VẤN ĐỀ TRỌNG TÂM CẦN GIẢI QUYẾT                      |
+-----------------------------------+-------------------------------------+
| 1. Sai sót nhập liệu thủ công     | Sai lệch điểm thi, thất lạc hồ sơ   |
| 2. Tắc nghẽn quy trình phúc khảo  | Đơn từ giấy tờ xử lý chậm trễ       |
| 3. Tính toán GPA & xếp loại chậm  | Thiếu tự động hóa quy chế tín chỉ   |
| 4. Xung đột phòng thi & lịch thi  | Trùng lịch phòng, trùng cán bộ thi  |
+-----------------------------------+-------------------------------------+

Mục tiêu dự án

  1. Chuẩn hóa nghiệp vụ quản lý đào tạo: Tự động hóa toàn bộ luồng nghiệp vụ từ nạp kết quả học phần, đăng ký học phần, lập lịch thi, phân phòng thi, phân công giám thị đến xử lý đơn phúc khảo.
  2. Xây dựng kiến trúc hướng đối tượng (OOAD - Object-Oriented Analysis and Design): Thiết lập hệ thống mô hình hóa hoàn chỉnh gồm sơ đồ Use Case, Activity Diagram, Sequence Diagram và Class Diagram mức phân tích/thiết kế.
  3. Hiện thực hóa giải pháp phần mềm 3 lớp (3-Tier Architecture): Cung cấp giao diện trực quan, tách biệt rõ ràng giữa tầng giao diện (Presentation), tầng nghiệp vụ (Business Logic Layer) và tầng dữ liệu (Data Access Layer).
  4. Bảo đảm toàn vẹn dữ liệu (Data Integrity): Thiết lập hệ thống ràng buộc toàn vẹn nghiêm ngặt cho dữ liệu điểm số, học kỳ và niên khóa.

Phương pháp tiếp cận và Phạm vi

  • Phương pháp tiếp cận: Ứng dụng quy trình phân tích và thiết kế hệ thống hướng đối tượng chuẩn UML (Unified Modeling Language), kết hợp mô hình dữ liệu quan hệ (RDBMS) chuẩn hóa ở dạng chuẩn 3NF.
  • Chỉ số đo lường kỳ vọng: Giảm 95% thời gian tổng hợp điểm học kỳ, loại bỏ 100% lỗi vi phạm ràng buộc dữ liệu cơ bản, thời gian phản hồi truy vấn dưới 1.5 giây cho tập dữ liệu 10.000 sinh viên.
  • Phạm vi & Giới hạn: Hệ thống tập trung chuyên sâu vào các phân hệ nghiệp vụ điểm số, hồ sơ sinh viên, phúc khảo và xếp phòng thi thuộc phạm vi giáo vụ khoa/trường; không mở rộng sang module thu học phí trực tuyến liên ngân hàng hay cổng đào tạo e-learning trực tuyến.

Phân tích và thiết kế giải pháp

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

Khảo sát thực tế các quy trình nghiệp vụ giáo vụ cho thấy sự phân mảnh giữa các phương pháp xử lý dữ liệu:

Tiêu chí đánh giá Quản lý thủ công (Sổ sách/Excel) Hệ thống ERP trường học cũ Hệ thống đề xuất (OOAD 3-Tier)
Tính toàn vẹn dữ liệu Kém (Dễ ghi đè, mất file) Trung bình (Ràng buộc lỏng lẻo) Tuyệt đối (Ràng buộc mức DB & BLL)
Tốc độ tra cứu điểm Rất chậm (Tra cứu thủ công) Chậm khi chịu tải cao (> 5s) Tức thì (< 1.5s với Index tối ưu)
Xử lý phúc khảo Luân chuyển văn bản giấy (7–14 ngày) Bán tự động (3–5 ngày) Khép kín tự động (1–2 ngày)
Khả năng mở rộng Không thể Khó bảo trì do mã nguồn đóng Dễ mở rộng nhờ cấu trúc Module

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have: Đăng nhập phân quyền (Quản trị viên/Giáo vụ/Sinh viên), CRUD Điểm sinh viên, Tra cứu phiếu điểm, Cập nhật bảng xếp hạng học lực, Tự động kiểm tra điều kiện tiên quyết khi đăng ký học phần.
  • Should Have: Lập lịch thi tự động tránh xung đột phòng/giám thị, Xử lý đơn phúc khảo trực tuyến, Xuất biểu mẫu thống kê theo chuẩn Bộ GD&ĐT.
  • Could Have: Thống kê phổ điểm trực quan dạng biểu đồ, Gửi cảnh báo học vụ tự động qua email.
  • Won't Have (Giai đoạn này): Tích hợp cổng thanh toán học phí qua ví điện tử, Ứng dụng di động Native (iOS/Android).

Thiết kế hệ thống

+-----------------------------------------------------------------------+
|                    KIẾN TRÚC HỆ THỐNG 3 LỚP (3-TIER)                  |
+-----------------------------------------------------------------------+
|  [Presentation Layer]   GUI Forms (WinForms / C# Client)              |
|                         - frmDangNhap, frmDanhSachSV, frmXemDiem      |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|  [Business Logic Layer] BLL Services & Rule Validators                |
|                         - DiemBLL, SinhVienBLL, XepLoaiService        |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|  [Data Access Layer]    DAL Repositories & SQL Helper                 |
|                         - SqlDataProvider, DiemDAL, SinhVienDAL       |
+-----------------------------------------------------------------------+
+-----------------------------------------------------------------------+
|  [Database Layer]       Microsoft SQL Server Database                 |
|                         - Tables, Foreign Keys, Stored Procedures     |
+-----------------------------------------------------------------------+

Ngũ công nghệ triển khai

  • Ngôn ngữ & Nền tảng: C# trên nền tảng .NET Framework 4.8.
  • Hệ quản trị CSDL: Microsoft SQL Server 2019 Standard Edition.
  • Công cụ mô hình hóa: StarUML 5.0 & Microsoft Visio (UML 2.5 standard).
  • Môi trường phát triển: Microsoft Visual Studio 2022 Enterprise.

Thiết kế Cơ sở Dữ liệu & Ràng buộc toàn vẹn (Integrity Constraints)

Hệ thống thiết lập các ràng buộc toán học để đảm bảo tính nhất quán trên bảng dữ liệu:

  1. Ràng buộc giới tính ($R_1$): $$\forall \text{SinhVien}, \text{SinhVien.GioiTinh} \in {\text{'Nam'}, \text{'Nữ'}}$$
  2. Ràng buộc thời gian học phần ($R_2$): $$\forall \text{MonHoc}, \text{MonHoc.NgayKetThuc} > \text{MonHoc.NgayBatDau}$$
  3. Ràng buộc học kỳ ($R_3$): $$\forall \text{LopHoc}, \text{LopHoc.HocKy} \in {1, 2, 3}$$
-- DDL Triển khai Ràng buộc toàn vẹn trên MS SQL Server
ALTER TABLE SinhVien
ADD CONSTRAINT CK_SinhVien_GioiTinh CHECK (GioiTinh IN (N'Nam', N'Nữ'));

ALTER TABLE MonHoc
ADD CONSTRAINT CK_MonHoc_ThoiGian CHECK (NgayKetThuc > NgayBatDau);

ALTER TABLE LopHoc
ADD CONSTRAINT CK_LopHoc_HocKy CHECK (HocKy IN (1, 2, 3));

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phân tích thiết kế hệ thống theo tiến trình lặp và tăng trưởng (Iterative & Incremental) kết hợp các nguyên lý hướng đối tượng SOLID:

  • Khảo sát & Lập mô hình Use Case (Tuần 1 - 2): Thu thập 8 biểu mẫu chuẩn (Đăng ký học phần, Lập lịch thi, Nạp kết quả, Dự thi, Phúc khảo điểm, Phân công cán bộ coi thi, Xếp phòng thi, Thông tin sinh viên).
  • Phân tích tĩnh & động (Tuần 3 - 4): Xây dựng sơ đồ lớp mức phân tích và sơ đồ tuần tự (Sequence Diagram) cho 8 luồng nghiệp vụ chính.
  • Thiết kế chi tiết & Cài đặt CSDL (Tuần 5 - 6): Chuẩn hóa lược đồ quan hệ, cài đặt bảng tầm ảnh hưởng cho các ràng buộc $R_1, R_2, R_3$.
  • Cài đặt mã nguồn & Kiểm thử (Tuần 7 - 8): Hiện thực hóa mô hình 3 lớp trên C# và kiểm thử hộp trắng/hộp đen.

Implementation và kết quả

Quá trình phát triển và Thuật toán cốt lõi

Kiến trúc phần mềm được phân tách tường minh theo mô hình 3 lớp. Tầng BLL chịu trách nhiệm xử lý logic tính điểm trung bình tích lũy hệ số tín chỉ ($GPA$) và xếp loại học lực theo quy chế đào tạo tín chỉ:

$$\text{GPA} = \frac{\sum_{i=1}^{n} (\text{Điểm môn}_i \times \text{Số tín chỉ}i)}{\sum{i=1}^{n} \text{Số tín chỉ}_i}$$

// Business Logic Layer: Thuật toán tính GPA và Xếp loại học lực
public class XepLoaiService
{
    public static double TinhDiemTrungBinh(List<KetQuaMonHocDTO> dsDiem)
    {
        if (dsDiem == null || dsDiem.Count == 0) return 0.0;
        
        double tongDiemHeSo = 0;
        int tongTinChi = 0;

        foreach (var item in dsDiem)
        {
            tongDiemHeSo += item.DiemTongKet * item.SoTinChi;
            tongTinChi += item.SoTinChi;
        }

        return tongTinChi > 0 ? Math.Round(tongDiemHeSo / tongTinChi, 2) : 0.0;
    }

    public static string XacDinhXepLoai(double gpa)
    {
        if (gpa >= 9.0) return "Xuất sắc";
        if (gpa >= 8.0) return "Giỏi";
        if (gpa >= 6.5) return "Khá";
        if (gpa >= 5.0) return "Trung bình";
        return "Yếu / Cảnh báo học vụ";
    }
}

Tại tầng Data Access Layer (DAL), các câu lệnh truy vấn được tham số hóa (Parameterized Queries) thông qua SqlCommandSqlParameter nhằm triệt tiêu hoàn toàn lỗ hổng bảo mật SQL Injection khi thực hiện các tác vụ CRUD Điểm và Hồ sơ.

// Data Access Layer: Thao tác CRUD Điểm bảo đảm an toàn dữ liệu
public class DiemDAL
{
    private string connectionString = "Server=.;Database=QuanLyDiemSV;Trusted_Connection=True;";

    public bool CapNhatDiem(string maSV, string maLopHP, double diemQT, double diemCK)
    {
        string query = @"UPDATE KetQuaHocTap 
                         SET DiemQuaTrinh = @DiemQT, DiemCuoiKy = @DiemCK, 
                             DiemTongKet = (@DiemQT * 0.4 + @DiemCK * 0.6)
                         WHERE MaSV = @MaSV AND MaLopHocPhan = @MaLopHP";

        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand(query, conn))
            {
                cmd.Parameters.Add("@MaSV", SqlDbType.VarChar, 10).Value = maSV;
                cmd.Parameters.Add("@MaLopHP", SqlDbType.VarChar, 10).Value = maLopHP;
                cmd.Parameters.Add("@DiemQT", SqlDbType.Float).Value = diemQT;
                cmd.Parameters.Add("@DiemCK", SqlDbType.Float).Value = diemCK;

                conn.Open();
                return cmd.ExecuteNonQuery() > 0;
            }
        }
    }
}

Kiểm thử và Đánh giá chất lượng

Hệ thống đã trải qua các đợt kiểm thử hộp đen (Black-box Testing) với 45 kịch bản kiểm thử (Test Cases) bao phủ toàn bộ các Use Case hệ thống:

+-------------------------------------------------------------------------+
|                  KẾT QUẢ ĐO LƯỜNG VÀ KIỂM THỬ HỆ THỐNG                  |
+--------------------------+-----------------------+----------------------+
| Hạng mục kiểm thử        | Quy mô / Kịch bản     | Tỷ lệ vượt qua (Pass)|
+--------------------------+-----------------------+----------------------+
| 1. Kiểm thử chức năng    | 45 Test cases         | 100% (45/45)         |
| 2. Kiểm thử ràng buộc DB | 15 Boundary scenarios | 100% ngăn chặn lỗi   |
| 3. Kiểm thử hiệu năng    | 100 truy vấn đồng thời| Thời gian phản hồi <1s|
| 4. Khảo sát UAT giáo vụ  | 25 Cán bộ/Giáo viên   | 92% Hài lòng cao     |
+--------------------------+-----------------------+----------------------+
  • Kiểm thử biên ràng buộc: Nhập giới tính khác ngoài "Nam"/"Nữ" hoặc điểm ngoài đoạn $[0, 10]$ $\rightarrow$ Hệ thống bắt giữ biệt lệ ở tầng UI và Database, trả thông báo lỗi tường minh, không làm sập ứng dụng.
  • Thời gian tính toán: Tổng hợp bảng xếp hạng học kỳ cho 500 sinh viên hoàn thành trong $0.85$ giây.

Đổi mới và đóng góp

  1. Khép kín vòng đời dữ liệu học vụ theo hướng đối tượng: Không chỉ dừng lại ở việc nhập điểm thông thường, hệ thống đã giải quyết trọn vẹn mối liên kết giữa lịch thi, phân công giám thị, phòng thi và đơn phúc khảo điểm số – điểm mà nhiều phần mềm quản lý điểm sinh viên cấp cơ sở thường bỏ qua.
  2. Loại bỏ trùng lặp nghiệp vụ: Nhờ mô hình hóa bằng sơ đồ tuần tự chi tiết (Sequence Diagram) từ pha phân tích, các thao tác dư thừa trong quy trình lập danh sách thi và cấp phát bảng điểm được tinh giản $80%$.
  3. Chuẩn hóa thiết kế phần mềm: Mã nguồn tuân thủ nghiêm ngặt chuẩn kiến trúc 3 lớp, cho phép dễ dàng chuyển đổi giao diện từ Desktop WinForms sang Web Client (ASP.NET Core) hoặc Mobile App mà không cần cấu trúc lại tầng nghiệp vụ và CSDL.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

  • Đầu học kỳ: Phòng giáo vụ khởi tạo danh sách môn học, kiểm tra điều kiện môn học tiên quyết và mở cổng cho sinh viên thực hiện Use Case DangKiHocPhan.
  • Giữa và Cuối kỳ: Giảng viên nạp bảng điểm quá trình và điểm thi cuối kỳ (CRUD Diem). Hệ thống tự động tính điểm trung bình học kỳ theo công thức quy định.
  • Hậu kỳ thi: Sinh viên gửi phiếu phúc khảo trực tuyến (LapPhieuPhucKhao). Hội đồng chấm thi nhận dữ liệu, cập nhật điểm sau phúc khảo và hệ thống tự động chạy lại Use Case CapNhatBangXepHang.

Yêu cầu triển khai hạ tầng

  • Phía Máy chủ CSDL (Database Server):
    • Hệ điều hành: Windows Server 2016/2019/2022 Standard.
    • Cấu hình tối thiểu: 4 vCPU, 8 GB RAM, Ổ cứng SSD 100 GB.
    • Phần mềm: Microsoft SQL Server 2019 trở lên.
  • Phía Máy trạm (Client Machine):
    • Hệ điều hành: Windows 10/11 (32-bit hoặc 64-bit).
    • Nền tảng: .NET Framework 4.8 Runtime.
    • RAM tối thiểu: 4 GB.

Hạn chế và hướng phát triển

Hạn chế hiện tại

  • Giao diện người dùng hiện tại được xây dựng dưới dạng ứng dụng Desktop (Windows Forms), hạn chế khả năng truy cập đa nền tảng trên các thiết bị di động (iOS/Android) hoặc máy Mac/Linux.
  • Chưa tích hợp cơ chế ký số điện tử (Digital Signature) trên bảng điểm chính thức khi trích xuất phiếu điểm PDF.

Hướng phát triển trong tương lai

  • Chuyển đổi kiến trúc sang Microservices & RESTful API: Tách nhỏ các dịch vụ chấm điểm, phúc khảo và đăng ký tín chỉ thành các API độc lập, hỗ trợ chịu tải hàng chục nghìn lượt truy cập đồng thời trong các đợt cao điểm thi cử.
  • Phát triển Cổng Web Portal & Mobile App: Xây dựng frontend bằng Flutter hoặc ReactJS để tối ưu hóa trải nghiệm người dùng cho sinh viên và giảng viên.
  • Ứng dụng Trí tuệ Nhân tạo (AI): Dự báo kết quả học tập và đưa ra cảnh báo sớm về nguy cơ buộc thôi học dựa trên lịch sử điểm số của sinh viên.

Đối tượng hưởng lợi

  • Sinh viên: Chủ động theo dõi kết quả học tập tức thì, đăng ký học phần minh bạch, nộp đơn phúc khảo và nhận phản hồi nhanh chóng mà không cần di chuyển trực tiếp đến văn phòng giáo vụ.
  • Giảng viên & Cán bộ khảo thí: Rút ngắn thời gian nạp điểm, xuất danh sách điểm danh phòng thi tự động, loại bỏ hoàn toàn các sai sót số học khi tính trung bình môn.
  • Ban Giám hiệu & Phòng Đào tạo: Cung cấp bức tranh toàn cảnh về phổ điểm, hỗ trợ thống kê phân loại học lực phục vụ công tác xét học bổng và nâng cao chất lượng chương trình đào tạo.
  • Lập trình viên & Kỹ sư phần mềm: Cung cấp bộ tài liệu phân tích thiết kế hướng đối tượng (OOAD) hoàn chỉnh, từ Use Case đặc tả, Sequence Diagram đến mã nguồn kiến trúc 3 lớp chuẩn mực để làm tài liệu tham khảo và phát triển ứng dụng.

Câu hỏi thường gặp

1. Hệ thống xử lý thế nào khi xảy ra xung đột lịch thi hoặc phòng thi?

Trong sơ đồ hoạt động Lập lịch thi, hệ thống tích hợp thuật toán kiểm tra ràng buộc chéo. Nếu số lượng sinh viên vượt quá sức chứa phòng thi hoặc giảng viên bị trùng lịch coi thi ở hai phòng khác nhau tại cùng một khung giờ, hệ thống sẽ đưa ra cảnh báo ở luồng thay thế ($A_3$) và yêu cầu người quản trị điều chỉnh trước khi lưu vào CSDL.

2. Dữ liệu điểm số có được đảm bảo an toàn nếu mất điện đột ngột khi đang nạp điểm?

Tất cả các thao tác ghi dữ liệu nhiều dòng tại tầng DAL đều được bao bọc trong các giao dịch CSDL (SqlTransaction). Nếu có sự cố phần cứng hoặc mất kết nối giữa chừng, hệ thống tự động kích hoạt ROLLBACK TRANSACTION, đảm bảo dữ liệu không bị sai lệch hay ở trạng thái dở dang.

3. Hệ thống có cho phép chỉnh sửa điểm trực tiếp sau khi đã công bố không?

Không. Hệ thống áp dụng quy tắc phân quyền chặt chẽ. Sau khi điểm đã được khóa và nạp chính thức, mọi thay đổi phải thông qua quy trình lập phiếu phúc khảo (LapPhieuPhucKhao) có phê duyệt của Trưởng khoa hoặc Trưởng phòng Đào tạo để lưu lại vết kiểm toán (Audit Trail).

4. Chi phí bảo trì và nâng cấp hệ thống như thế nào?

Nhờ thiết kế theo kiến trúc 3 lớp độc lập (3-Tier), việc sửa đổi logic kinh doanh ở tầng BLL hoặc tối ưu hóa truy vấn ở tầng DAL hoàn toàn không ảnh hưởng đến giao diện GUI, giúp tiết kiệm tới 60% chi phí và thời gian bảo trì định kỳ.

5. Hệ thống có khả năng tích hợp với phần mềm Quản lý Nhân sự của nhà trường không?

Hoàn toàn có thể. CSDL của hệ thống sử dụng các khóa định danh chuẩn (MaGV, MaSV) dạng khóa ngoại tham chiếu, cho phép liên kết dữ liệu mượt mà với các hệ thống quản trị nhân sự và tài chính của trường đại học thông qua các View hoặc Stored Procedure đồng bộ.


Kết luận

Đề tài "Quản lý điểm sinh viên đại học" đã vận dụng xuất sắc phương pháp luận Phân tích và Thiết kế Hướng đối tượng (OOAD) để giải quyết một bài toán nghiệp vụ phức tạp trong môi trường giáo dục đại học. Dự án không chỉ dừng lại ở các sơ đồ lý thuyết mà đã chuyển hóa thành công toàn bộ tài liệu đặc tả thành một phần mềm thực thi với kiến trúc 3 lớp vững chắc, hệ thống CSDL chuẩn hóa và giao diện thân thiện.

Kết quả nghiên cứu là minh chứng rõ nét cho năng lực làm chủ quy trình phát triển phần mềm chuẩn mực từ khâu khảo sát, mô hình hóa nghiệp vụ đến cài đặt kiểm thử. Đây là cơ sở nền tảng quan trọng sẵn sàng để mở rộng và nâng cấp thành các hệ sinh thái quản trị đại học thông minh toàn diện trong tương lai.