








Preview text:
lOMoAR cPSD| 58493804
# Phân tích và Thiết kế Hệ thống Học tập Trực tuyến
Dựa trên yêu cầu từ tài liệu, tôi sẽ phân tích chi tiết và thiết kế các thành phần của hệ thống học tập trực tuyến.
## 1. Biểu đồ hoạt vụ tổng quát (Use Case Diagram) **Các actor chính:** - Học viên - Giáo viên
- Người quản lý hệ thống **Các use case chính:** **Học viên:** - Đăng ký tài khoản - Đăng nhập - Xem/Tìm kiếm khóa học - Đăng ký khóa học - Học chủ đề - Làm bài thi đánh giá - Xem kết quả thi
- Chat với giáo viên/học viên khác **Giáo viên:** - Đăng nhập
- Xem/Tìm kiếm khóa học giảng dạy lOMoAR cPSD| 58493804
- Quản lý chủ đề (thêm/sửa/xóa)
- Quản lý bài thi (thêm/sửa/xóa)
- Xem kết quả thi của học viên
- Chat với học viên/quản lý **Người quản lý:**
- Quản lý tài khoản (CRUD)
- Quản lý khóa học (CRUD)
- Quản lý chủ đề (CRUD) - Thống kê học viên - Quản lý kết quả thi - Quản lý giáo viên
- Quản lý giảng dạy (phân công giáo viên)
- Chat với học viên/giáo viên
## 2. Biểu đồ hoạt vụ phân rã cho chức năng quản lý khóa học
**Use case chính:** Quản lý khóa học **Các use case con:** 1. Thêm khóa học
- Nhập thông tin khóa học - Kiểm tra hợp lệ - Lưu vào hệ thống 2. Sửa khóa học lOMoAR cPSD| 58493804 - Tìm kiếm khóa học - Chỉnh sửa thông tin
- Cập nhật vào hệ thống 3. Xóa khóa học - Tìm kiếm khóa học - Xác nhận xóa - Xóa khỏi hệ thống 4. Tìm kiếm khóa học
- Nhập tiêu chí tìm kiếm - Hiển thị kết quả
## 3. Phân tích các lớp và biểu đồ lớp **Các lớp chính:** 1. **NguoiDung (Lớp cha)**
- Thuộc tính: maNguoiDung, tenDangNhap, matKhau, vaiTro, hoTen, ngaySinh, queQuan, soDienThoai, diaChi
- Phương thức: dangNhap(), dangXuat(), doiMatKhau()
2. **HocVien (Kế thừa NguoiDung)** - Thuộc tính: maHocVien
- Phương thức: dangKyKhoaHoc(), hocChuDe(), lamBaiThi(), xemKetQuaThi(), chat()
3. **GiaoVien (Kế thừa NguoiDung)** lOMoAR cPSD| 58493804
- Thuộc tính: maGiaoVien, hocVi, hocHam
- Phương thức: quanLyChuDe(), quanLyBaiThi(), xemKetQuaHocVien(), chat()
4. **QuanLy (Kế thừa NguoiDung)**
- Thuộc tính: maQuanLy, thoiGianBatDauLamViec
- Phương thức: quanLyTaiKhoan(), quanLyKhoaHoc(), quanLyChuDe(), thongKe(), quanLyGiaoVien(), chat() 5. **KhoaHoc**
- Thuộc tính: maKhoaHoc, tenKhoaHoc, thoiGianBatDau, thoiGianKetThuc
- Phương thức: themKhoaHoc(), suaKhoaHoc(), xoaKhoaHoc(), timKiemKhoaHoc() 6. **ChuDe**
- Thuộc tính: maChuDe, tenChuDe, noiDung, maKhoaHoc
- Phương thức: themChuDe(), suaChuDe(), xoaChuDe(), timKiemChuDe() 7. **BaiThi**
- Thuộc tính: maHocVien, maChuDe, danhSachCauHoi, danhSachDapAn, diemTungCau,
tongDiem, thoiGianBatDau, thoiGianKetThuc - Phương thức: taoBaiThi(), chamDiem(), xemKetQua() 8. **TinNhan**
- Thuộc tính: maNguoiGui, maNguoiNhan, noiDung, thoiGian
- Phương thức: guiTinNhan(), nhanTinNhan(), xemLichSuChat()
**Quan hệ giữa các lớp:**
- Kế thừa: HocVien, GiaoVien, QuanLy kế thừa từ NguoiDung- Kết hợp: lOMoAR cPSD| 58493804 - KhoaHoc có nhiều ChuDe - KhoaHoc có nhiều HocVien
- KhoaHoc có nhiều GiaoVien - ChuDe có nhiều BaiThi
- NguoiDung có thể gửi/nhận nhiều TinNhan
## 4. Biểu đồ tuần tự
### a. Biểu đồ tuần tự cho chức năng đăng ký học
1. HocVien gửi yêu cầu đăng ký khóa học
2. Hệ thống hiển thị danh sách khóa học 3. HocVien chọn khóa học
4. Hệ thống kiểm tra điều kiện đăng ký
5. Nếu hợp lệ, hệ thống cập nhật thông tin đăng ký
6. Hệ thống gửi thông báo đăng ký thành công
7. Hệ thống cập nhật vào danh sách khóa học của HocVien
### b. Biểu đồ tuần tự cho chức năng thêm mới khóa học
1. QuanLy gửi yêu cầu thêm khóa học
2. Hệ thống hiển thị form nhập thông tin
3. QuanLy nhập thông tin khóa học
4. Hệ thống kiểm tra tính hợp lệ
5. Nếu hợp lệ, hệ thống tạo khóa học mới
6. Hệ thống lưu vào cơ sở dữ liệu lOMoAR cPSD| 58493804
7. Hệ thống gửi thông báo thành công
8. Hệ thống cập nhật danh sách khóa học ## Chi tiết bổ sung
### 1. Chi tiết về thuộc tính và phương thức **Lớp NguoiDung:**
- Thuộc tính bổ sung: email, trangThai (hoạt động/khóa), anhDaiDien
- Phương thức bổ sung: capNhatThongTin(), xemThongTinCaNhan() **Lớp KhoaHoc:**
- Thuộc tính bổ sung: moTa, hinhAnh, soLuongHocVienToiDa, trangThai (đang mở/đóng)
- Phương thức bổ sung: kiemTraTrangThai(), demSoHocVien() **Lớp BaiThi:**
- Thuộc tính bổ sung: thoiGianLamBai (phút), soLanLamBaiToiDa
- Phương thức bổ sung: taoCauHoiNgauNhien(), tinhDiemTrungBinh()
### 2. Chi tiết về quy trình đăng ký học
1. Học viên đăng nhập hệ thống
2. Hệ thống kiểm tra vai trò và trạng thái tài khoản
3. Học viên xem danh sách khóa học với bộ lọc (theo chủ đề, giáo viên...)
4. Học viên xem chi tiết khóa học (thông tin, giáo trình, đánh giá...)
5. Học viên chọn "Đăng ký" lOMoAR cPSD| 58493804 6. Hệ thống kiểm tra:
- Khóa học còn chỗ trống
- Học viên chưa đăng ký khóa học này trước đó
- Không có khóa học nào trùng lịch
7. Nếu đủ điều kiện, hệ thống ghi nhận đăng ký
8. Gửi email/xác nhận đăng ký thành công
### 3. Chi tiết về quy trình thêm khóa học
1. Quản lý đăng nhập hệ thống
2. Chọn chức năng "Quản lý khóa học" -> "Thêm mới"
3. Nhập các thông tin bắt buộc: - Tên khóa học
- Thời gian bắt đầu/kết thúc - Mô tả khóa học - Hình ảnh đại diện
4. Chọn giáo viên phụ trách (có thể nhiều giáo viên)
5. Thiết lập các thông số:
- Số lượng học viên tối đa
- Cấu hình bài thi (nếu có) - Chính sách hoàn trả (nếu có) 6. Hệ thống kiểm tra:
- Tên khóa học không trùng - Thời gian hợp lệ
- Giáo viên không bận lịch dạy trùng
7. Lưu thông tin vào cơ sở dữ liệu
8. Thông báo thành công và hiển thị khóa học vừa tạo lOMoAR cPSD| 58493804
### 4. Chi tiết về quản lý bài thi
1. Giáo viên chọn khóa học -> chủ đề
2. Chọn "Quản lý bài thi" 3. Có thể: - Tạo bài thi mới:
- Nhập thông tin bài thi (tên, thời gian làm bài...)
- Thêm câu hỏi (tự luận/trắc nghiệm)
- Thiết lập đáp án và điểm số - Lưu bài thi - Sửa bài thi hiện có: - Chọn bài thi cần sửa - Chỉnh sửa thông tin
- Cập nhật thay đổi - Xóa bài thi: - Chọn bài thi cần xóa - Xác nhận xóa
- Hệ thống kiểm tra xem đã có học viên làm bài chưa
- Nếu chưa, tiến hành xóa
### 5. Chi tiết về hệ thống chat
1. Người dùng chọn chức năng chat 2. Hệ thống hiển thị:
- Danh sách người có thể chat (theo vai trò và khóa học) - Lịch sử chat gần đây
3. Người dùng chọn người/ nhóm để chat
4. Nhập nội dung tin nhắn và gửi lOMoAR cPSD| 58493804
5. Hệ thống lưu tin nhắn vào cơ sở dữ liệu
6. Gửi thông báo real-time đến người nhận (nếu online)
7. Hiển thị tin nhắn cho cả hai bên
Đây là phân tích chi tiết về hệ thống học tập trực tuyến dựa trên yêu cầu từ tài liệu. Tôi có thể
cung cấp thêm chi tiết hoặc hình ảnh minh họa các biểu đồ nếu cần.