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

Trong bối cảnh công nghệ thông tin ngày càng đóng vai trò quan trọng trong giáo dục, việc xây dựng các hệ thống quản lý học tập trực tuyến (E-learning) nhằm hỗ trợ công tác giảng dạy và học tập trở thành nhu cầu thiết yếu. Đồ án tốt nghiệp "Tài liệu mô tả thiết kế phần mềm (Software Design Description – SDD) Phát triển hệ thống E-learning phục vụ công việc giảng dạy và học tập" (Hệ thống ELCs – E-learning Courses, Phiên bản 1.2) do sinh viên Nguyễn Đình Quang thực hiện dưới sự hướng dẫn khoa học của TS. Nguyễn Nhật Quang tại Hà Nội (tháng 8/2020), tập trung vào việc mô hình hóa và đặc tả chi tiết thiết kế kỹ thuật cho hệ thống đào tạo trực tuyến.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Xây dựng tài liệu mô tả thiết kế phần mềm (SDD) chuẩn mực, đóng vai trò làm tài liệu tham khảo kỹ thuật phục vụ hoàn thành đồ án tốt nghiệp cũng như cung cấp tài liệu cho các nhà phát triển, kiểm thử viên, nhà quản lý dự án và các bên liên quan.
  2. Mô hình hóa cấu trúc và tương tác của toàn bộ các ca sử dụng (Use Cases) trong hệ thống phục vụ hai nhóm tác nhân chính: Giảng viên – Quản trị viên (GV – QTV) và Học viên (User/Student).
  3. Thiết kế kiến trúc tổng thể, phân rã các gói hệ thống theo mẫu thiết kế Model-View-Controller (MVC).
  4. Đặc tả chi tiết các lớp điều khiển (Controllers), lớp thực thể (Models), lớp biên giao diện (Views/Boundaries) cùng cấu trúc cơ sở dữ liệu quan hệ từ mức khái niệm, mức logic đến mức vật lý.

Đối tượng nghiên cứu là quy trình thiết kế kỹ thuật hệ thống phần mềm E-learning. Phạm vi nghiên cứu bao gồm toàn bộ các khía cạnh thiết kế kiến trúc phần mềm, mô hình hóa tương tác qua ngôn ngữ UML và thiết kế chi tiết 15 bảng cơ sở dữ liệu quản lý khóa học, bài giảng, bài tập, câu hỏi, tương tác thảo luận và quản trị người dùng.

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

Đồ án áp dụng các tiêu chuẩn quốc tế và nền tảng lý thuyết kỹ thuật phần mềm chính thống:

  • Tiêu chuẩn thiết kế: Tài liệu được xây dựng theo chuẩn IEEE STD 1016-2009 (IEEE Standard for Information Technology – Systems Design – Software Design Descriptions).
  • Học liệu tham khảo chuyên ngành: Tài liệu học phần IT4490: Software Design and Construction của TS. Nguyễn Thị Thu Trang (Viện Công nghệ Thông tin và Truyền thông – SOICT).
  • Mẫu kiến trúc phần mềm: Kiến trúc Model-View-Controller (MVC), phân tách rõ ràng trách nhiệm giữa lưu trữ/xử lý dữ liệu (Model), điều phối luồng nghiệp vụ (Controller) và hiển thị giao diện (View).
  • Ngôn ngữ mô hình hóa: Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) theo chuẩn của tổ chức OMG.

Phương pháp nghiên cứu và thiết kế hệ thống được triển khai dựa trên ba quan điểm thiết kế kỹ thuật:

  • Quan điểm tương tác (Behavioral/Interaction View): Sử dụng biểu đồ tuần tự (Sequence Diagram) và biểu đồ giao tiếp (Communication Diagram) để biểu diễn luồng trao đổi thông điệp giữa các đối tượng theo từng ca sử dụng.
  • Quan điểm cấu trúc (Structural View): Sử dụng biểu đồ lớp (Class Diagram) để xác định cấu trúc bên trong, thuộc tính, phương thức, phạm vi truy cập và mối quan hệ giữa các đối tượng.
  • Quan điểm thông tin và dữ liệu (Data/Information View): Biểu diễn cấu trúc dữ liệu qua ba cấp độ gồm mô hình dữ liệu mức khái niệm, mô hình dữ liệu mức logic và mô hình dữ liệu mức vật lý (Entity-Relationship Diagram / Data Tables).

Thiết kế và triển khai

Hệ thống ELCs được tổ chức theo kiến trúc MVC với luồng xử lý khép kín: Yêu cầu từ trình duyệt phía người dùng gửi lên hệ thống được tiếp nhận bởi Controller tương ứng. Controller điều phối nghiệp vụ, tương tác với Model để truy vấn hoặc cập nhật dữ liệu trong cơ sở dữ liệu, sau đó nhận dữ liệu trả về từ Model và kết xuất sang View dưới định dạng HTML Document để phản hồi lại trình duyệt.

Hệ thống phân rã thành 4 gói thành phần chính:

  1. Gói Admin (Phía Quản trị viên và Giảng viên): Gồm 10 lớp điều khiển đảm nhiệm quản lý người dùng, khóa học, bài giảng, tin tức, hỏi đáp và báo cáo.
  2. Gói Student (Phía Học viên): Gồm 5 lớp điều khiển phụ trách hiển thị trang chủ, đăng ký/học tập, bình luận thảo luận, đăng nhập và thiết lập lại mật khẩu.
  3. Gói Models: Gồm 15 lớp thực thể ánh xạ trực tiếp đến các bảng dữ liệu nghiệp vụ.
  4. Gói Views: Gồm 43 lớp biên giao diện đại diện cho các màn hình chức năng.
Tên gói Thành phần lớp điều khiển / thực thể chính Chức năng kỹ thuật cốt lõi
Admin Package AdminController, CourseController, LoginController, FaqController, NewsController, UserController, SubjectController, DashboardController, LectureController, HistoryCourseController Tiếp nhận và xử lý các yêu cầu nghiệp vụ quản trị, quản lý bài giảng, khóa học, danh mục, tin tức và báo cáo tổng hợp.
Student Package HomeController, UserController, CommentsController, LoginController, PasswordResetEmailsController Xử lý yêu cầu duyệt khóa học, đăng ký học, làm bài tập trắc nghiệm, nộp bài, bình luận và quản lý tài khoản học viên.
Models Package Admin, Course, Lecture, Exercise, Question, Answer, CourseLecture, User, CourseUser, AnswerUser, Comment, Subject, CourseLectureUser, News, Faq Giao tiếp với cơ sở dữ liệu, định nghĩa thuộc tính thực thể, ràng buộc quan hệ và các phương thức truy xuất dữ liệu động.
Views Package 43 lớp biên (admin_list, course_list, lecture_detail, create_exercise, episodes, series, dashboard,...) Hiển thị giao diện người dùng, thu thập sự kiện tương tác và chuyển đổi dữ liệu thành cấu trúc HTML Document.

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

Phần 1: Tổng quan về tài liệu mô tả thiết kế phần mềm

Phần này xác định mục đích, phạm vi của tài liệu thiết kế SDD đối với hệ thống ELCs, đưa ra bảng từ điển thuật ngữ chuyên ngành (SDD, MVC, UML, HTML Document, GV – QTV) và các tài liệu tham khảo theo tiêu chuẩn IEEE 1016-2009.

Phần 2: Mô hình hóa cấu trúc

Trình bày 13 biểu đồ lớp phân tích tham gia vào các ca sử dụng chính của hệ thống, bao gồm:

  • Quản lý tài khoản (Đăng nhập, thay đổi mật khẩu, thiết lập lại mật khẩu)
  • Đăng ký tài khoản
  • Cập nhật thông tin cá nhân
  • Tìm kiếm giảng viên và học viên
  • Quản lý giảng viên, khóa học, học viên, bài giảng
  • Quản lý tin tức, câu hỏi thường gặp (FAQ), thể loại khóa học (Subject)
  • Lịch sử khóa học và xem thông tin học viên
  • Sử dụng chức năng hệ thống của học viên

Phần 3: Mô hình hóa sự tương tác

Đặc tả chi tiết 16 biểu đồ tương tác tuần tự mô tả quy trình gửi nhận thông điệp giữa các đối tượng:

  • Đăng nhập, thay đổi mật khẩu, thiết lập lại mật khẩu, đăng ký tài khoản, cập nhật thông tin cá nhân
  • Tìm kiếm giảng viên và học viên
  • Quản lý giảng viên, khóa học, bài giảng và quản lý bài tập của bài giảng
  • Quản lý tin tức, quản lý FAQ, quản lý thể loại khóa học
  • Chức năng hệ thống của học viên, thảo luận trong bài giảng, xem lịch sử khóa học và thông tin học viên

Phần 4: Kiến trúc tổng thể của hệ thống

Mô tả chi tiết nguyên lý hoạt động của kiến trúc MVC trong hệ thống ELCs, sơ đồ kiến trúc các gói (Admin, Student, Models, Views) và mối liên kết dữ liệu giữa các tầng kiến trúc.

Phần 5: Thiết kế chi tiết lớp

Đặc tả tường minh các thuộc tính, phương thức, kiểu dữ liệu, phạm vi truy cập (Public, Protected, Private) và tham số truyền vào cho:

  • 10 lớp điều khiển gói Admin: AdminController (listAdmins, deleteAdmin, detail, edit, add, validate), CourseController (list, destroy, create, show, edit, validate, courseAddLecture, deleteLecture, courseReport, courseLectureList), LoginController, FaqController, NewsController, UserController, SubjectController, DashboardController, LectureController, HistoryCourseController.
  • 5 lớp điều khiển gói Student: HomeController, UserController (showProfile, updateProfile, sendVerifyLinkToUserEmail, registerAccount, submitAnswer, showTemporarilyAnswers, markCompleteAnswers, markCompleteLecture, checkRegistedCourse, showSeriesLectureOfCourse, showLectureContent, showUsersCourses, registerCourse), CommentsController, LoginController, PasswordResetEmailsController.
  • 15 lớp thực thể gói Models: Định nghĩa các thuộc tính ánh xạ trường cơ sở dữ liệu và các phương thức quan hệ thực thể (Course, Lecture, Exercise, Question, Answer, User, CourseLectureUser, AnswerUser,...).
  • 43 lớp biên gói Views: Đặc tả các phần tử giao diện người dùng (bảng dữ liệu, nút bấm, biểu mẫu nhập liệu, thẻ hiển thị) và các sự kiện onClick gửi yêu cầu đến lớp điều khiển.

Phần 6: Thiết kế giao diện

  • Biểu đồ dịch chuyển màn hình: Biểu diễn sơ đồ luồng chuyển trang cho giao diện trang chủ và giao diện trang quản trị.
  • Thiết kế chi tiết giao diện người dùng: Bao gồm 51 màn hình giao diện từ Hình 6.3 đến Hình 6.51, bao quát toàn bộ các thao tác nghiệp vụ của Quản trị viên, Giảng viên và Học viên (quản lý danh sách, thêm/sửa/xóa bài giảng, tạo bài tập trắc nghiệm, xem bài giảng dạng video/pdf/docx, màn hình làm bài và thảo luận).

Phần 7: Thiết kế dữ liệu

Phần này cung cấp mô hình dữ liệu ở 3 mức: khái niệm, logic và vật lý, đồng thời đặc tả chi tiết cấu trúc 15 bảng cơ sở dữ liệu:

STT Tên bảng Số lượng cột chính Mô tả chức năng lưu trữ
1 admins 18 Lưu thông tin tài khoản Quản trị viên và Giảng viên, phân quyền (type), trạng thái khóa tài khoản (locked).
2 faq 7 Lưu trữ danh mục câu hỏi thường gặp và nội dung câu trả lời.
3 news 8 Lưu trữ bài viết tin tức, tiêu đề, nội dung và người tạo.
4 subjects 7 Lưu danh mục các thể loại khóa học.
5 courses 16 Lưu thông tin khóa học (mã, tên, mô tả, ngày bắt đầu/kết thúc, giá, trạng thái công khai/riêng tư).
6 lectures 10 Lưu nội dung bài giảng, loại tài liệu (video, pdf, word, file) và đường dẫn tài liệu (document_url).
7 course_lecture 8 Bảng trung gian liên kết bài giảng vào khóa học và thứ tự bài giảng (order_num).
8 exercises 10 Lưu danh sách bài tập gắn liền với từng bài giảng.
9 questions 8 Lưu trữ các câu hỏi trắc nghiệm thuộc từng bài tập.
10 answers 8 Lưu các phương án trả lời của câu hỏi, gắn cờ đáp án đúng (correct_flag).
11 users 16 Lưu trữ thông tin tài khoản học viên, email xác thực, mật khẩu và trạng thái hoạt động.
12 course_user 8 Quản lý thông tin đăng ký khóa học của học viên, chi phí, trạng thái đơn hàng (order_status) và hình thức thanh toán (order_type).
13 course_lecture_user 7 Theo dõi tiến độ học tập và trạng thái hoàn thành bài giảng/khóa học của từng học viên (is_completed).
14 answer_user 9 Lưu các đáp án do học viên lựa chọn cho từng câu hỏi và kết quả đánh giá đúng/sai (correct_answer).
15 comments 9 Lưu trữ bình luận, trao đổi thảo luận phân cấp theo bài giảng (parent_id).

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

Đồ án đã đạt được các kết quả kỹ thuật cụ thể theo đúng nội dung văn bản:

  • Hoàn thành tài liệu đặc tả thiết kế phần mềm (SDD) phiên bản 1.2 với quy mô 111 trang, tuân thủ cấu trúc chuẩn IEEE STD 1016-2009.
  • Xây dựng hệ thống biểu đồ mô hình hóa hoàn chỉnh gồm 13 biểu đồ lớp phân tích ca sử dụng và 16 biểu đồ tương tác tuần tự.
  • Đặc tả chi tiết kiến trúc MVC với 15 lớp điều khiển (10 Admin Controllers, 5 Student Controllers), 15 lớp thực thể dữ liệu và 43 lớp biên giao diện.
  • Thiết kế 51 màn hình giao diện trực quan và 2 biểu đồ dịch chuyển màn hình phân tách cho trang chủ và trang quản trị.
  • Thiết kế cơ sở dữ liệu quan hệ hoàn chỉnh gồm 15 bảng với đầy đủ kiểu dữ liệu, khóa chính, khóa ngoại, giá trị mặc định và các ràng buộc toàn vẹn.
  • Đóng góp chính của tài liệu là cung cấp một bản thiết kế chi tiết, chuẩn hóa ở mức kỹ thuật cao, giúp thu hẹp khoảng cách giữa pha phân tích yêu cầu phần mềm và pha lập trình hiện thực hóa, hỗ trợ trực tiếp cho các nhà phát triển và kiểm thử viên trong quá trình xây dựng hệ thống E-learning.

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

  • Hạn chế: Phạm vi tài liệu tập trung hoàn toàn vào pha thiết kế phần mềm (SDD), chưa bao gồm mã nguồn cài đặt thực tế của các framework lập trình cụ thể, các kịch bản kiểm thử tự động (Unit Test/Integration Test) cũng như các tham số cấu hình hạ tầng máy chủ hay môi trường triển khai thực tế.
  • Hướng phát triển:
    1. Hiện thực hóa mã nguồn (Software Construction) cho toàn bộ các lớp điều khiển, thực thể và giao diện đã được đặc tả trong tài liệu.
    2. Tích hợp chi tiết cổng thanh toán trực tuyến dựa trên các trường cấu trúc dữ liệu đã thiết kế sẵn trong bảng course_user (order_type, payment_date_time).
    3. Xây dựng tài liệu kiểm thử phần mềm (Software Test Documentation) để kiểm chứng tính đúng đắn của các phương thức và ca sử dụng.

Giá trị tham khảo

Tài liệu là nguồn tư liệu kỹ thuật hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Tham khảo phương pháp xây dựng tài liệu mô tả thiết kế phần mềm (SDD) chuẩn IEEE 1016-2009 phục vụ đồ án tốt nghiệp hoặc bài tập lớn các học phần Thiết kế và Xây dựng phần mềm.
  • Nhà phát triển và Kỹ sư phần mềm: Tham khảo cấu trúc thiết kế hướng đối tượng cho hệ thống đào tạo trực tuyến, đặc biệt là cách phân rã các lớp điều khiển và thiết kế cơ sở dữ liệu cho các tính năng học tập theo chuỗi bài giảng, câu hỏi trắc nghiệm, ghi nhận tiến độ học và thảo luận phân cấp.

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

1. Hệ thống ELCs được thiết kế dựa trên tiêu chuẩn tài liệu và mẫu kiến trúc nào?
Tài liệu được xây dựng dựa trên tiêu chuẩn quốc tế IEEE STD 1016-2009 (IEEE Standard for Information Technology – Systems Design – Software Design Descriptions) kết hợp tài liệu học phần IT4490 (SOICT), và áp dụng mẫu kiến trúc phần mềm Model-View-Controller (MVC).

2. Các lớp điều khiển (Controllers) trong hệ thống được phân chia như thế nào?
Hệ thống gồm 15 lớp điều khiển chia làm 2 gói: Gói Admin gồm 10 lớp điều khiển (AdminController, CourseController, LoginController, FaqController, NewsController, UserController, SubjectController, DashboardController, LectureController, HistoryCourseController) và Gói Student gồm 5 lớp điều khiển (HomeController, UserController, CommentsController, LoginController, PasswordResetEmailsController).

3. Cơ sở dữ liệu của hệ thống quản lý tiến độ học tập và câu trả lời của học viên qua các bảng nào?
Tiến độ học tập và trạng thái hoàn thành khóa học/bài giảng được quản lý qua bảng course_lecture_user (với trường is_completed). Việc lưu vết lựa chọn đáp án trắc nghiệm của học viên được quản lý qua bảng answer_user (liên kết user_id, answer_id, question_id, lecture_id, course_id và cờ correct_answer).

4. Cấu trúc bài giảng và bài tập trắc nghiệm được mô hình hóa qua các thực thể nào?
Được mô hình hóa qua chuỗi liên kết các lớp thực thể: Course (Khóa học) $\rightarrow$ CourseLecture (Liên kết bài giảng vào khóa học) $\rightarrow$ Lecture (Bài giảng) $\rightarrow$ Exercise (Bài tập) $\rightarrow$ Question (Câu hỏi) $\rightarrow$ Answer (Đáp án với cờ correct_flag).

5. Bảng admins và bảng users trong cơ sở dữ liệu phân biệt vai trò người dùng như thế nào?
Bảng admins quản lý tài khoản quản trị và giảng viên thông qua trường type (phân biệt Admin hay Teacher). Bảng users quản lý tài khoản học viên độc lập, có trường email_verified_at phục vụ xác thực email đăng ký và trường locked để ghi nhận trạng thái khóa tài khoản.

Kết luận

Đồ án tốt nghiệp "Tài liệu mô tả thiết kế phần mềm Phát triển hệ thống E-learning phục vụ công việc giảng dạy và học tập" của tác giả Nguyễn Đình Quang là một công trình đặc tả kỹ thuật phần mềm có cấu trúc hoàn chỉnh và chặt chẽ. Bản thiết kế tuân thủ tiêu chuẩn IEEE STD 1016-2009, giải quyết bài toán đào tạo trực tuyến qua mô hình kiến trúc MVC với 15 bộ điều khiển, 15 lớp thực thể, 43 lớp biên giao diện và 15 bảng cơ sở dữ liệu quan hệ. Toàn bộ các quy trình nghiệp vụ từ quản trị nội dung khóa học, tổ chức bài giảng, bài tập trắc nghiệm đến theo dõi kết quả học tập đều được mô hình hóa chi tiết, đảm bảo tính khả thi cao cho quá trình lập trình và triển khai hệ thống.