Bối cảnh và vấn đề nghiên cứu

Đề tài "Hệ thống quản lý trung tâm ngoại ngữ" được thực hiện bởi nhóm sinh viên gồm Tạ Đăng Đạo (B21DCCN209), Nguyễn Thị Quỳnh (B21DCCN647), Nguyễn Quang Trường (B21DCAT196) và Trần Quang Vinh (B21DCCN793), thuộc Nhóm bài tập lớn 10, Nhóm học phần 08, Khoa Công nghệ Thông tin - Học viện Công nghệ Bưu chính Viễn thông. Công trình nằm trong khuôn khổ học phần Nhập môn Công nghệ phần mềm.

Hoạt động quản trị và vận hành tại các cơ sở đào tạo ngoại ngữ hiện đại đòi hỏi sự điều phối chặt chẽ giữa nhiều chủ thể: đội ngũ quản lý, quản trị viên hệ thống, nhân viên tư vấn tuyển sinh, giảng viên và học viên. Các quy trình nghiệp vụ như thiết lập lịch học, phân bổ phòng học, quản lý các chương trình học thuật chuẩn hóa (TOEIC, IELTS, TOEFL), chấm công giảng viên, theo dõi học phí, bảo lưu khóa học và kiểm tra đánh giá chất lượng đòi hỏi phải có một công cụ tự động hóa nhằm giảm thiểu xung đột tài nguyên và chuẩn hóa luồng dữ liệu.

Nhiệm vụ nghiên cứu và xây dựng hệ thống được xác định gồm các nội dung chính:

  1. Chuẩn hóa hệ thống thuật ngữ nghiệp vụ và quy định vận hành của trung tâm ngoại ngữ thông qua bảng danh mục thuật ngữ (Glossary list).
  2. Xác định các tác nhân (Actors), phân rã ca sử dụng (Use Cases) và đặc tả chi tiết quy trình xử lý của từng chức năng.
  3. Thiết kế kiến trúc phần mềm hướng đối tượng theo mô hình tách biệt giữa giao diện người dùng (View) và tầng truy xuất dữ liệu (Data Access Object - DAO).
  4. Phân tích thực thể, mô hình hóa tương tác qua sơ đồ tuần tự (Sequence Diagram) và thiết kế cơ sở dữ liệu quan hệ cho phân hệ cốt lõi "Lên lịch lớp mới".

Đối tượng nghiên cứu là quy trình quản lý thông tin đào tạo, tài chính, nhân sự và lịch biểu tại trung tâm ngoại ngữ. Phạm vi triển khai là ứng dụng máy để bàn (Desktop application), chạy trên nhiều máy trạm của nhân viên nhưng sử dụng chung một cơ sở dữ liệu tập trung.

Cơ sở lý thuyết và phương pháp

Đồ án áp dụng quy trình phân tích và thiết kế hệ thống hướng đối tượng (OOAD - Object-Oriented Analysis and Design) kết hợp với các kỹ thuật mô hình hóa chuẩn UML (Unified Modeling Language):

  • Mô hình kiến trúc phần mềm: Sử dụng mô hình giao diện Desktop kết hợp kiến trúc phân tầng truy cập dữ liệu DAO (Data Access Object). Cấu trúc bao gồm các lớp giao diện (View/Form), các lớp điều khiển/truy xuất cơ sở dữ liệu (DAO) và các lớp thực thể (Entity Model).
  • Phương pháp phân tích nghiệp vụ: Phương pháp trích xuất thực thể từ văn bản mô tả kịch bản (Scenario). Quy trình gồm: mô tả hệ thống thành văn bản, phân loại và loại trừ các danh từ trừu tượng hoặc danh từ chung (từ chối các từ như "Hệ thống", "Thông tin", "Chức năng"), xác định các lớp thực thể cần quản lý và thiết lập mối quan hệ số lượng giữa các lớp (1-1, 1-n, n-n).
  • Kỹ thuật mô hình hóa tương tác: Xây dựng sơ đồ tuần tự qua 3 giai đoạn: kịch bản tổng quan, sơ đồ tuần tự mức phân tích (giai đoạn khái niệm) và sơ đồ tuần tự chi tiết mức thiết kế có gắn các phương thức xử lý sự kiện (actionPerformed()) và các lớp DAO.
  • Nguồn dữ liệu: Dữ liệu nghiên cứu dựa trên quy chuẩn quản lý nội bộ gồm 102 thuật ngữ chuyên ngành được định nghĩa chi tiết, phân thành 4 nhóm: hoạt động (33 mục), con người (25 mục), quy định vận hành (25 mục) và vật thể/cơ sở vật chất (19 mục).

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế dưới dạng ứng dụng Desktop (máy để bàn) với cơ chế xác thực và điều hướng theo vai trò người dùng, kết nối tới cơ sở dữ liệu quan hệ trung tâm.

Kiến trúc phân tầng và cấu trúc lớp

Hệ thống phân tách rõ ràng các lớp đối tượng thực hiện các vai trò khác nhau trong mô hình xử lý:

[ Lớp Giao diện (View/Frm) ] <---> [ Lớp Điều khiển (DAO) ] <---> [ Cơ sở dữ liệu ]
                |                                 |
                +-------> [ Lớp Thực thể (Entity) ] <-----+
Tầng cấu trúc Tên lớp / Thành phần Chức năng và phương thức chính
Giao diện (View/Frm) LoginFrm / LoginView Tiếp nhận tài khoản, mật khẩu; bắt sự kiện đăng nhập qua actionPerformed().
ManagerHomeFrm / ManagerHomeView Màn hình chính của người quản lý, điều hướng tới các chức năng quản lý.
ClassCalendarFrm / ClassCalendarView Giao diện điều hướng quản lý lịch học (Thêm, Chỉnh sửa, Xóa lịch).
AddCalendarFrm / AddCalendarView Tiếp nhận thông tin khởi tạo lớp: chương trình, mức độ, tên lớp, số buổi.
ListCalendarFrm / ListCalendarView Bảng thiết lập chi tiết từng buổi: ngày, thứ, ca học, kỹ năng, chọn phòng học.
Truy xuất dữ liệu (DAO) DAO Lớp cơ sở chứa cấu trúc kết nối cơ sở dữ liệu dùng chung cho hệ thống.
UserDAO Thao tác dữ liệu người dùng, phương thức xác thực checkLogin().
CalendarDAO Thao tác dữ liệu lịch biểu, phương thức thiết lập danh sách setCalendar().
Lớp thực thể (Entity) User Thuộc tính ID, name, position, username, password.
TrainingCenter Thuộc tính ID, name, address, tel, email, website. Chứa danh sách Classroom và TrainingProgram.
TrainingProgram Thuộc tính ID, name, level, price, description. Là thành phần của TrainingCenter, LopHoc, ClassCalendar.
Classroom Thuộc tính ID, name, type, status. Phương thức nghiệp vụ filterClassroom().
LopHoc Thuộc tính ID, name, classSize, note.
ClassCalendar Lớp liên kết giữa LopHoc và Classroom. Thuộc tính: ID, day, timeSlot, skill, date, sessions, note.

Thiết kế cơ sở dữ liệu quan hệ

Các lớp thực thể được chuyển đổi thành các bảng quan hệ tương ứng trong cơ sở dữ liệu. Mối quan hệ nhiều - nhiều ($n-n$) giữa phòng học (tblClassroom) và lớp học (tblLopHoc) được chuẩn hóa bằng bảng trung gian tblClassCalendar:

Tên bảng Khóa chính (PK) Các trường thuộc tính Khóa ngoại (FK) và Quan hệ
tblTrainingCenter ID name, address, tel, email, website Quan hệ $1-n$ với tblTrainingProgram, $1-n$ với tblClassroom.
tblTrainingProgram ID name, level, price, description tblTrainingCenterID (FK trỏ về tblTrainingCenter).
tblClassroom ID name, type, status tblTrainingCenterID (FK trỏ về tblTrainingCenter).
tblLopHoc ID name, classSize, note tblTrainingProgramID (FK trỏ về tblTrainingProgram).
tblClassCalendar ID day, timeSlot, skill, date, sessions, note tblTrainingProgramID (FK), tblClassroomID (FK), tblLopHocID (FK).

Nội dung chính theo từng chương

Danh mục thuật ngữ và Quy chuẩn vận hành (Glossary List)

Văn bản thiết lập 102 mục thuật ngữ định nghĩa toàn diện mô hình vận hành của trung tâm ngoại ngữ:

  • Nhóm thuật ngữ chỉ hoạt động (Mục 1 - 33): Quy định các tiến trình nghiệp vụ như: Đăng ký dạy, Nguyện vọng dạy, Check-in/Check-out, Chấm công, Thanh toán tiền công, Đăng ký học, Quản lý thông tin chương trình, Lên lịch lớp mới, Thực nhận, Lộ trình đào tạo (Curriculum), Kết quả học viên (Student outcomes), và các hình thức kiểm tra kỹ năng (Mô tả tranh, Điền từ, Đọc hiểu, Nghe, Nói, Đọc, Viết).
  • Nhóm thuật ngữ chỉ người (Mục 34 - 58): Định rõ 25 vị trí chức danh và đối tượng gồm: Quản lý, Quản trị viên, Giảng viên, Học viên, Trợ lý giảng viên, Thực tập sinh, Chuyên viên tư vấn học vụ, Quản lý đăng ký, Nhân viên tài chính, Biên tập viên tài liệu, Người quản lý học liệu, Nhân viên thư viện, Quản lý sự kiện, Chuyên viên hỗ trợ kỹ thuật, Trợ lý hành chính, Nhân viên lễ tân, Chuyên viên tuyển sinh, Quản lý hợp đồng, Marketing, Chăm sóc khách hàng, Khách tham quan, Phụ huynh.
  • Nhóm thuật ngữ chỉ quy định (Mục 59 - 83): Thiết lập các chỉ số định lượng cụ thể:
    • Chuyên cần: Đến muộn quá 30 phút tính là nghỉ học; học viên nghỉ quá 20% tổng số buổi sẽ không được cấp chứng chỉ; nghỉ quá 3 buổi mất cam kết đầu ra.
    • Bảo lưu khóa học: Áp dụng khi tham gia dưới $1/3$ khóa học với lý do chính đáng (công tác đột xuất, nằm viện), phải được Giám đốc phê duyệt; thời hạn bảo lưu tối đa 2 tháng; lệ phí bảo lưu là 20% tổng học phí.
    • Chuyển lớp & Chuyển nhượng học phí: Học phí không hoàn trả trong mọi trường hợp; được phép chuyển nhượng trước khai giảng; được quyền chuyển lớp chậm nhất trong vòng $1/3$ khóa học.
    • Quy chuẩn thời gian: Nghỉ giữa giờ 15 phút sau mỗi kíp học.
  • Nhóm thuật ngữ chỉ vật và cơ sở đào tạo (Mục 84 - 102):
    • Khung giờ ca học: Ca Sáng (08:00 - 11:00), Ca Chiều (14:00 - 17:00), Ca Tối (18:00 - 21:00).
    • Chương trình đào tạo chuẩn: TOEIC (đào tạo kỹ năng Đọc, Viết hoặc 4 kỹ năng), IELTS (Nghe, Nói, Đọc, Viết), TOEFL (môi trường học thuật).
    • Cơ sở vật chất & Tài chính: Phòng học, Phòng CSKH, Phòng Kế toán, Phòng Nhân sự, Giáo trình chuyên biệt, Hóa đơn giao dịch.

Đặc tả chức năng và Phân quyền người dùng (Ai? Làm cái gì?)

Hệ thống phân chia quyền hạn xử lý cho 4 nhóm tác nhân nội bộ:

Nhóm người dùng Các chức năng được phân quyền Dữ liệu đầu vào / Thao tác chính
Nhân viên Quản trị (Admin) - Quản lý tài khoản người dùng
- Quản lý thông tin nhân viên
- Xem báo cáo thống kê
- Tìm kiếm, xem, thêm, sửa, xóa tài khoản và hồ sơ nhân viên (ID, họ tên, giới tính, ngày sinh, chức vụ, CMND/CCCD, địa chỉ, SĐT, email, trình độ, ngày ký hợp đồng).
- Thống kê số lượng học viên, giáo viên, lớp học theo tháng/quý/năm; báo cáo doanh thu, tiền lương giáo viên, công nợ học phí.
Nhân viên Quản lý - Quản lý học viên
- Quản lý tài liệu & ngân hàng đề
- Lên lịch lớp mới & Lịch kiểm tra
- Quản lý tài chính & tiền lương
- Quản lý hồ sơ học viên (thông tin cá nhân, lịch sử học tập, tiến trình).
- Quản lý tài liệu khóa học, đề thi test cuối khóa (tải lên, đếm lượt xem/tải), đánh giá và phản hồi ý kiến học viên.
- Nhập bảng thu/chi trong ngày, xuất báo cáo Excel, cấu hình giá khóa học, học bổng.
- Tính tiền công giảng viên theo từng buổi dạy (ghi nhận giờ vào, giờ ra, tiền công chuẩn, tiền phạt đi muộn/về sớm, tiền thực nhận), in phiếu xác nhận thanh toán.
- Quản lý học phí, nợ học phí, lập phiếu chuyển nhượng học phí.
Nhân viên Tư vấn - Quản lý học viên nhận tư vấn
- Đăng ký khóa học mới cho học viên
- Tiếp nhận thông tin học viên, thêm mới hồ sơ.
- Chọn khóa học, lọc lịch học không trùng lặp, tạo hóa đơn chi tiết từng buổi học (ngày, ca, giảng viên, kỹ năng), thu tiền và in/gửi hóa đơn qua email.
Giảng viên - Đăng ký dạy lớp mới
- Quản lý lớp học & Điểm danh
- Xem danh sách lớp mới đang mở, chọn các buổi dạy mong muốn không trùng lịch.
- Xem danh sách sinh viên trong lớp, thực hiện điểm danh từng buổi và nhập điểm.

Phân tích và Thiết kế chi tiết Module "Lên lịch lớp mới"

Module "Lên lịch lớp mới" được chọn làm ca sử dụng trọng tâm để mô hình hóa toàn diện quy trình phân tích và thiết kế:

  1. Kịch bản thực thi: Người quản lý đăng nhập hệ thống, chọn chức năng lên lịch lớp mới. Ví dụ kịch bản tạo lớp TOEIC1, chương trình TOEIC, mức độ 500, quy mô 40 buổi, khai giảng ngày 20/03/2024.
  2. Thiết lập thời khóa biểu chi tiết: Với mỗi buổi học, người quản lý xác định ngày học, thứ trong tuần, ca học (ví dụ: 18h - 20h), kỹ năng đào tạo (Nghe, Đọc, Viết, Nói). Hệ thống thực hiện phương thức filterClassroom() trên thực thể Classroom để lọc ra danh sách phòng trống tương ứng với ngày và ca đã chọn (ví dụ: phòng A102), ngăn ngừa tình trạng trùng phòng.
  3. Chuỗi tương tác hướng đối tượng (Kịch bản chuẩn v.3):
    • Sự kiện bấm nút đăng nhập tại LoginFrm kích hoạt phương thức actionPerformed(), tạo đối tượng User và gọi UserDAO.checkLogin(). UserDAO kiểm tra CSDL và nạp các thuộc tính name, position.
    • ManagerHomeFrm được khởi tạo và hiển thị. Khi quản lý bấm chọn lên lịch, ClassCalendarFrm và tiếp đó là AddCalendarFrm được gọi ra.
    • Khi các thông tin tổng quan của khóa học được xác nhận, AddCalendarFrm gọi phương thức CalendarDAO.setCalendar(). Đối tượng ClassCalendar thực hiện đóng gói dữ liệu và trả kết quả về để hiển thị trên ListCalendarFrm.
    • Quản lý nhập thông tin chi tiết từng buổi học và chọn phòng học trống, sau đó bấm Save. Giao diện ListCalendarFrm ghi nhận dữ liệu vào cơ sở dữ liệu, hiển thị thông báo thành công và điều hướng trở lại ManagerHomeFrm.

Kết quả và đóng góp

Kết quả chính của đồ án

  • Xây dựng hoàn chỉnh từ điển thuật ngữ nghiệp vụ: Chuẩn hóa 102 khái niệm bao quát toàn bộ hoạt động của một trung tâm ngoại ngữ, định lượng hóa các quy tắc chuyên cần, chính sách học phí, thời gian các ca học và cấu trúc chương trình đào tạo.
  • Thiết kế phân quyền rõ ràng cho 4 nhóm tác nhân nội bộ: Phân định chính xác trách nhiệm và luồng tương tác giữa Quản trị viên, Quản lý, Tư vấn viên và Giảng viên, kèm theo quy trình xử lý hóa đơn, chuyển nhượng học phí và tính lương giảng viên theo buổi dạy thực tế.
  • Hoàn thiện mô hình dữ liệu quan hệ và mô hình đối tượng: Thiết lập thành công cấu trúc 5 bảng cơ sở dữ liệu quan hệ (tblTrainingCenter, tblTrainingProgram, tblClassroom, tblLopHoc, tblClassCalendar) và cấu trúc các lớp giao diện - điều khiển (View - DAO).
  • Mô hình hóa chi tiết quy trình nghiệp vụ phức tạp: Giải quyết bài toán lập lịch đào tạo thông qua thuật toán lọc phòng học trống (filterClassroom()), tránh xung đột lịch dạy và phòng học giữa các lớp.

Đóng góp về mặt giải pháp

Đồ án đã chuẩn hóa được mối quan hệ liên kết phức tạp nhiều - nhiều giữa phòng học, lớp học, chương trình đào tạo và kỹ năng ngôn ngữ bằng việc đề xuất thực thể trung gian ClassCalendar. Mô hình này cho phép trung tâm ngoại ngữ linh hoạt sắp xếp từng buổi học với các kỹ năng khác nhau (Listening, Reading, Speaking, Writing) và các phòng học khác nhau trong cùng một khóa học.

Hạn chế và hướng nghiên cứu tiếp

  • Hạn chế:
    • Đồ án tập trung đi sâu vào phân tích và thiết kế chi tiết (từ kịch bản, sơ đồ tuần tự đến lớp DAO và CSDL) cho phân hệ "Lên lịch lớp mới" và "Đăng nhập", trong khi các phân hệ khác (quản lý tài chính, quản lý tài liệu, báo cáo thống kê) mới dừng lại ở mức mô tả giao diện và luồng xử lý nghiệp vụ.
    • Phạm vi kiến trúc hệ thống hiện tại là ứng dụng Desktop dùng chung cơ sở dữ liệu trên mạng nội bộ, chưa xây dựng cổng thông tin trực tuyến (Web/Mobile) cho phép học viên và khách hàng tự đăng ký hoặc tra cứu kết quả trực tiếp từ bên ngoài.
  • Hướng phát triển:
    • Thiết kế chi tiết sơ đồ tuần tự và xây dựng các lớp DAO cho các phân hệ còn lại: Quản lý tài chính, Quản lý tài liệu và Chấm công giảng viên.
    • Mở rộng kiến trúc sang nền tảng Web hoặc ứng dụng di động để học viên có thể theo dõi tiến trình học tập, tra cứu điểm thi và nộp học phí trực tuyến.

Giá trị tham khảo

Tài liệu là nguồn tham khảo hữu ích cho:

  • Sinh viên chuyên ngành Công nghệ thông tin, Kỹ thuật phần mềm đang học các học phần Nhập môn Công nghệ phần mềm, Phân tích thiết kế hệ thống thông tin hoặc Lập trình hướng đối tượng.
  • Người làm đề tài tham khảo phương pháp lập danh mục thuật ngữ nghiệp vụ (Glossary list), kỹ thuật trích xuất thực thể từ văn bản mô tả, thiết kế mẫu kiến trúc DAO và xây dựng sơ đồ tuần tự tương tác chi tiết cho ứng dụng quản lý đào tạo.

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

1. Hệ thống quản lý trung tâm ngoại ngữ trong đồ án được thiết kế cho những nhóm người dùng nào?
Hệ thống là ứng dụng Desktop dành riêng cho 4 nhóm nhân viên nội bộ của trung tâm sử dụng trực tiếp: Nhân viên quản trị (Admin), Nhân viên quản lý, Nhân viên tư vấn và Giảng viên. Khách hàng/Học viên đóng vai trò là tác nhân gián tiếp thông qua nhân viên tư vấn hoặc quản lý.

2. Theo quy định của trung tâm được đặc tả trong tài liệu, điều kiện để học viên được bảo lưu khóa học là gì?
Học viên phải tham gia dưới $1/3$ thời lượng khóa học, có lý do chính đáng (công tác đột xuất hoặc nằm viện), gửi đơn và được Giám đốc trung tâm chấp thuận. Thời hạn bảo lưu tối đa là 2 tháng và lệ phí bảo lưu là 20% tổng học phí khóa học.

3. Mối quan hệ nhiều - nhiều giữa Phòng học (Classroom) và Lớp học (LopHoc) được giải quyết như thế nào trong thiết kế?
Hệ thống giải quyết mối quan hệ này thông qua lớp thực thể trung gian là Lịch lớp học (ClassCalendar / tblClassCalendar). Thực thể này chứa các khóa ngoại trỏ về tblClassroom, tblLopHoc và tblTrainingProgram, lưu trữ chi tiết ngày học, ca học, phòng học và kỹ năng cụ thể của từng buổi học.

4. Chức năng tính lương cho giảng viên của nhân viên quản lý ghi nhận những thông tin cụ thể nào?
Hệ thống hiển thị danh sách các buổi dạy chưa thanh toán của giảng viên theo thứ tự thời gian, bao gồm: Mã lớp, Tên chương trình, Mức độ, Tên lớp, Ngày, Ca, Giờ vào, Giờ ra, Tiền công chuẩn, Tiền trừ vào muộn ra sớm, Tiền thực nhận và Tổng tiền thực nhận. Sau khi xác nhận, hệ thống lưu và in hóa đơn để giảng viên ký xác nhận.

5. Lớp UserDAO và phương thức checkLogin() thực hiện vai trò gì trong kịch bản chuẩn?
Khi người dùng bấm đăng nhập trên LoginFrm, phương thức actionPerformed() khởi tạo đối tượng User và gọi checkLogin() của UserDAO. Phương thức này kiểm tra thông tin tài khoản trong cơ sở dữ liệu, đồng thời gọi các phương thức setName() và setPosition() để nạp thêm thông tin họ tên và vai trò của người dùng trước khi điều hướng tới giao diện ManagerHomeFrm.

Kết luận

Bài tập lớn "Hệ thống quản lý trung tâm ngoại ngữ" của nhóm sinh viên Học viện Công nghệ Bưu chính Viễn thông đã hoàn thành việc mô hình hóa nghiệp vụ và thiết kế kiến trúc phần mềm cho một trung tâm đào tạo ngoại ngữ. Công trình thể hiện sự chặt chẽ trong việc chuẩn hóa 102 mục thuật ngữ, phân định quyền hạn cho 4 nhóm tác nhân và xây dựng lược đồ cơ sở dữ liệu quan hệ chuẩn hóa. Đặc biệt, phân hệ "Lên lịch lớp mới" đã được phân tích và thiết kế chi tiết thông qua mô hình phân tầng View - DAO và sơ đồ tuần tự xử lý sự kiện, cung cấp nền tảng kỹ thuật rõ ràng cho việc cài đặt và lập trình hệ thống thực tế.