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

Trong bối cảnh khoa học kỹ thuật và công nghệ thông tin phát triển nhanh chóng, các ứng dụng tin học ngày càng đóng vai trò thiết yếu trong việc đáp ứng nhu cầu học tập, ôn luyện và kiểm tra kiến thức của xã hội. Đối với học sinh, sinh viên chuẩn bị bước vào các kỳ thi quan trọng như tốt nghiệp trung học phổ thông, tuyển sinh cao đẳng và đại học, việc tiếp cận nguồn tài liệu ôn tập và phương thức kiểm tra kiến thức nhanh chóng, chính xác là nhu cầu thực tế cấp thiết.

Xuất phát từ thực tiễn đó, tác giả Nguyễn Phi Chương đã thực hiện đề tài "Xây dựng hệ thống thi trắc nghiệm online" trong khuôn khổ Đồ án môn học / Đồ án chuyên ngành tại Viện Kỹ thuật - Công nghệ, Trường Đại học Thủ Dầu Một dưới sự hướng dẫn của Th.S Nguyễn Hữu Vĩnh (hoàn thành vào tháng 11/2020).

Mục tiêu nghiên cứu và thực hiện đề tài bao gồm:

  1. Xây dựng một hệ thống website thi trắc nghiệm trực tuyến hoàn chỉnh nhằm cung cấp cho người học công cụ ôn tập, củng cố kiến thức chính xác, tiện lợi và tiết kiệm thời gian.
  2. Tìm hiểu các công nghệ cơ bản trong xây dựng hệ thống website và phát triển ứng dụng trên nền tảng mạng.
  3. Củng cố và vận dụng các kiến thức chuyên ngành đã học như Hệ quản trị cơ sở dữ liệu SQL Server, công nghệ truy vấn dữ liệu LINQ, Công nghệ Web và ứng dụng, mô hình kiến trúc phần mềm MVC.

Đối tượng và phạm vi nghiên cứu của đồ án:

  • Đối tượng nghiên cứu: Quy trình khảo sát, phân tích yêu cầu nghiệp vụ, phân tích thiết kế hướng đối tượng bằng UML, thiết kế cơ sở dữ liệu quan hệ và xây dựng giao diện cho một hệ thống thi trắc nghiệm trực tuyến.
  • Phạm vi nghiên cứu: Đề tài tập trung vào việc quản lý ngân hàng môn học, câu hỏi phân cấp độ khó, cấu trúc đề thi trắc nghiệm ngẫu nhiên, quy trình làm bài - chấm điểm tự động của thí sinh và các module thống kê xếp hạng, tương tác góp ý trong khuôn khổ đồ án chuyên ngành ngành Kỹ thuật Phần mềm (lớp D17PM01).

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

Đồ án ứng dụng các cơ sở lý thuyết, công nghệ phát triển phần mềm và phương pháp thu thập, phân tích yêu cầu sau:

  • Khung công nghệ và kiến trúc:

    • Mô hình kiến trúc phần mềm: MVC (Model - View - Controller).
    • Nền tảng phát triển ứng dụng Web: ASP / ASP.NET.
    • Ngôn ngữ và công nghệ xử lý dữ liệu: LINQ (Language Integrated Query), hệ quản trị cơ sở dữ liệu SQL Server (từ phiên bản 2005 trở lên).
    • Công nghệ giao diện phía người dùng (Client-side): HTML, CSS, JavaScript, thư viện jQuery.
    • Nền tảng hệ điều hành yêu cầu: Windows, môi trường .NET Framework phiên bản 3.5 trở lên.
  • Phương pháp nghiên cứu:

    • Khảo sát thực tiễn: Do không có địa điểm chuyên biệt để khảo sát hệ thống quản trị chuyên nghiệp, tác giả đã tiến hành khảo sát hệ thống quản trị website tin tức và các thông tin nghiệp vụ về hình thức thi trắc nghiệm trên mạng Internet; tìm hiểu quy trình thiết kế website và cách thức tổ chức theo mô hình MVC, ASP.
    • Kế thừa kinh nghiệm: Tham khảo các mô hình đề tài đã triển khai trong thực tế và kinh nghiệm làm website của các sinh viên khóa trước nhằm xác định rõ nhiệm vụ.
    • Tham vấn chuyên môn: Duy trì các buổi làm việc hàng tuần với giảng viên hướng dẫn để định hướng phân tích, thiết kế hệ thống đi đúng tiến độ và yêu cầu kỹ thuật.
    • Phương pháp phân tích thiết kế hệ thống: Sử dụng ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language) để xây dựng sơ đồ phân cấp chức năng, danh sách tác nhân (Actor), danh sách ca sử dụng (UseCase), biểu đồ Use Case tổng quát và chi tiết, cùng hệ thống biểu đồ tuần tự (Sequence Diagram).

Thiết kế và triển khai

Hệ thống được thiết kế hướng tới môi trường ứng dụng web hoàn chỉnh với các thành phần kỹ thuật, tác nhân và kiến trúc chức năng xác định:

1. Phân định tác nhân (Actors) của hệ thống

Hệ thống xác định 3 nhóm tác nhân chính tham gia tương tác:

Tên Actor Vai trò và phạm vi quyền hạn trong hệ thống
Administrator (Quản trị viên) Nắm giữ vai trò chính và quyền cao nhất trong hệ thống; thực hiện phân quyền cho các thành viên; quản trị tài khoản; quản lý chuyên mục; thêm, sửa, xóa môn học, đề thi, câu hỏi; duyệt câu hỏi đóng góp, quản lý phản hồi; bảo trì hệ thống.
Users (Thành viên / Giáo viên / Thí sinh) Đăng ký tài khoản, đăng nhập hệ thống; biên tập và cập nhật nội dung được cấp quyền; thí sinh trực tiếp tham gia thi trắc nghiệm, nộp bài, xem lịch sử và kết quả bài làm; giáo viên có thêm quyền cập nhật bộ đề thi và ngân hàng câu hỏi.
Visiter (Khách vãng lai) Truy cập website xem thông tin chung, quy chế thi, tìm kiếm thông tin bài viết; gửi đóng góp ý kiến phản hồi (feedback) cho ban quản trị.

2. Các phân hệ chức năng cốt lõi

Hệ thống được cấu trúc thành các module nghiệp vụ liên kết chặt chẽ:

  • Module Quản lý Môn học: Hỗ trợ Admin và người quản lý thêm mới, chỉnh sửa thông tin hoặc xóa môn học trên bảng dữ liệu (grdSubject), kiểm tra ràng buộc không cho sửa mã môn hệ thống tự cấp và ngăn chặn xóa môn học đã có dữ liệu liên kết.
  • Module Quản lý Câu hỏi: Cho phép tạo mới, sửa, xóa câu hỏi trên lưới dữ liệu (grdQuestion). Mỗi câu hỏi có 4 phương án trả lời, 1 đáp án đúng, được gán mã mức độ gồm 3 cấp: Dễ (mức 1), Trung bình (mức 2), Khó (mức 3). Hỗ trợ tính năng nhập câu hỏi hàng loạt từ tệp tin Excel lưu trên máy chủ.
  • Module Quản lý Đề thi: Cho phép tạo đề thi (grdThreadQuestion) cho từng môn học bằng thuật toán lấy ngẫu nhiên (random) số lượng câu hỏi từ ngân hàng câu hỏi theo từng cấp độ khó tương ứng.
  • Module Tổ chức Thi trực tuyến: Hiển thị đề thi, đếm ngược thời gian làm bài, ghi nhận phương án chọn của thí sinh, xử lý nộp bài sớm hoặc tự động nộp bài và khóa thi khi hết giờ; tự động chấm điểm, hiển thị số câu đúng/sai, bôi màu đỏ câu sai và lưu kết quả vào cơ sở dữ liệu.
  • Module Thống kê - Xếp hạng: Thống kê danh sách thành viên, danh sách bộ đề thi; thống kê Top đề thi có lượt truy cập cao nhất; thống kê Top thí sinh có điểm cao nhất theo môn và xếp hạng theo tuần, tháng, năm nhằm phục vụ khen thưởng.
  • Module Góp ý & Phản hồi: Tiếp nhận ý kiến đóng góp, thắc mắc về độ khó câu hỏi và nội dung thi từ người dùng; quản trị viên xét duyệt, trả lời hoặc loại bỏ các nội dung không phù hợp.

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

Chương 1: Khảo sát, xác định yêu cầu và phân tích hệ thống

Chương 1 trình bày kết quả khảo sát quy trình thiết kế website, cách thức làm website với ASP và mô hình MVC, đồng thời xác lập chi tiết các yêu cầu chức năng và phi chức năng của hệ thống.

  • Yêu cầu hệ thống và giao diện: Hệ thống vận hành trên môi trường hệ điều hành Windows, yêu cầu cài đặt .NET Framework phiên bản 3.5 trở lên, hệ quản trị cơ sở dữ liệu SQL Server từ bản 2005 trở lên; giao diện đảm bảo tính thân thiện, dễ sử dụng.
  • Các yêu cầu chức năng chính:
    • Đăng nhập hệ thống: Xác thực tài khoản, bảo mật thông tin và phân quyền chức năng khi người dùng truy cập.
    • Quản lý dữ liệu: Quản lý thông tin tài khoản người quản lý, thành viên, bài viết, bình luận, môn thi, câu hỏi và đề thi.
    • Tìm kiếm: Hỗ trợ tìm kiếm thông tin website tích hợp công cụ tìm kiếm Google.
    • Thống kê - báo cáo: Thống kê thông tin quản trị, số lượng truy cập theo chuyên mục và bài viết theo các mốc thời gian (ngày, tháng, khoảng thời gian cụ thể), số lượng bình luận.
  • Phân tích chi tiết quy trình nghiệp vụ:
    • Chức năng Quản lý đề thi: Tiếp nhận đầu vào gồm mã đề thi, mã câu hỏi, nội dung câu hỏi, danh sách đáp án, đáp án đúng; đầu ra lưu dữ liệu vào cơ sở dữ liệu.
    • Chức năng Quản lý môn học: Tiếp nhận đầu vào là mã môn, tên môn; đầu ra lưu thông tin danh sách môn học vào cơ sở dữ liệu.
    • Chức năng Quản lý thành viên: Phân quyền tài khoản (cập nhật môn học, đề thi, câu hỏi, quản lý bài làm thí sinh, quản trị tài khoản người dùng).
    • Chức năng Trắc nghiệm: Đầu vào gồm tên thí sinh, đề thi lựa chọn, các phương án lựa chọn; đầu ra hiển thị số câu đúng/sai, tổng điểm và lưu kết quả vào hệ thống.
    • Chức năng Thống kê: Xem danh sách thành viên, danh sách bộ đề thi/câu hỏi, xem lại bài làm của từng cá nhân, duyệt ngân hàng câu hỏi đóng góp, xếp hạng điểm số thí sinh.
    • Chức năng Đóng góp câu hỏi và Phản hồi: Cho phép người dùng gửi câu hỏi mới (kèm phương án và đáp án) cùng các góp ý về độ khó, hướng dẫn làm bài để quản trị viên thẩm định trước khi đưa vào ngân hàng đề.

Chương 2: Phân tích thiết kế với UML

Chương 2 là phần trọng tâm của báo cáo, mô hình hóa toàn bộ cấu trúc và hành vi hệ thống thông qua hệ thống sơ đồ UML:

  • Sơ đồ phân cấp chức năng: Hệ thống hóa các nhánh chức năng tổng thể từ trang người dùng đến trang quản trị.
  • Bảng danh mục Use Case:
    1. Đăng ký thành viên: Đăng ký tài khoản thành viên chính thức.
    2. Góp ý kiến: Gửi thắc mắc, đóng góp ý kiến từ khách và thành viên.
    3. Thi trắc nghiệm: Thực hiện bài thi trắc nghiệm trực tuyến.
    4. Cập nhật đề thi: Tạo mới, chỉnh sửa, xóa bộ đề thi.
    5. Cập nhật các câu hỏi trắc nghiệm: Quản lý thông tin câu hỏi, phương án chọn, đáp án đúng.
    6. Quản lý thành viên: Quản lý thông tin và cấp quyền hạn tương ứng cho người dùng.
    7. Quản lý môn học: Quản lý danh mục các môn học tổ chức thi trắc nghiệm.
    8. Đăng nhập thành viên: Đăng nhập với quyền thành viên thông thường.
    9. Đăng nhập quản lý: Đăng nhập dành cho Giáo viên (cập nhật đề, câu hỏi) và Admin (toàn quyền hệ thống).
  • Đặc tả các Use Case chính:
    • Biểu đồ Use Case tổng quát: Bao quát toàn bộ luồng chức năng từ trang chủ, ôn luyện, xem quy chế, thi online, quản lý đề thi đại học/cao đẳng, quản lý danh mục đến quản trị tài khoản và thống kê.
    • Use Case Quản lý danh mục: Bao gồm quản lý môn học, quản lý câu hỏi, quản lý đề thi và quản lý hình thức thi; mô tả chi tiết dòng sự kiện chính (đăng nhập $\rightarrow$ hiển thị giao diện $\rightarrow$ thêm/sửa/xóa $\rightarrow$ kiểm tra và lưu CSDL $\rightarrow$ thông báo kết quả) và dòng sự kiện phụ khi người dùng hủy thao tác.
    • Use Case Thi online: Đặc tả luồng làm bài của thí sinh, xử lý đếm ngược thời gian, nộp bài chủ động hoặc tự động nộp khi hết giờ, thuật toán so khớp đáp án, chấm điểm, bôi màu đỏ câu sai và cập nhật điểm số vào CSDL để phục vụ lưu trữ, xếp hạng.
    • Use Case Thống kê: Đặc tả ca sử dụng "Top đề thi nhiều người truy cập nhất" và "Điểm của thí sinh trong các môn cao nhất" dựa trên số lượng top (ví dụ top 10, top 20) do Admin nhập vào.
    • Use Case Quản lý câu hỏi, Quản lý môn học, Quản lý đề thi, Quản lý ý kiến và Đăng nhập: Trình bày chi tiết điều kiện tiên quyết, luồng sự kiện chính, luồng phụ, kiểm tra ràng buộc khóa và xử lý ngoại lệ (thông báo lỗi khi dữ liệu đang được sử dụng hoặc đăng nhập thất bại).
  • Hệ thống Biểu đồ tuần tự (Sequence Diagram):
    • Mô tả tương tác giữa các đối tượng trong các chức năng: Đăng ký thành viên, Đăng nhập, Phản hồi ý kiến, Thêm câu hỏi, Cập nhật câu hỏi, Xóa câu hỏi, Thêm mới đề thi, Cập nhật đề thi, Xóa đề thi, Thi trắc nghiệm, Thêm môn học, Sửa/xóa thông tin môn học.

Chương 3: Phân tích thiết kế cơ sở dữ liệu

Chương 3 trình bày cấu trúc lưu trữ dữ liệu của hệ thống:

  • Các bảng dữ liệu: Xây dựng các thực thể lưu trữ thông tin về môn học, ngân hàng câu hỏi (nội dung, 4 đáp án, đáp án đúng, mức độ khó 1-2-3), cấu trúc bộ đề thi, tài khoản người dùng/thành viên, kết quả thi và dữ liệu ý kiến đóng góp/phản hồi.
  • Mô hình quan hệ giữa các bảng (ERD): Thiết lập các khóa chính, khóa ngoại và ràng buộc toàn vẹn giữa bảng môn học với câu hỏi, đề thi; giữa đề thi và chi tiết câu hỏi; giữa thành viên và kết quả bài làm nhằm đảm bảo tính nhất quán của dữ liệu.

Chương 4: Giao diện chương trình

Chương 4 mô tả thiết kế và các thành phần giao diện của ứng dụng:

  • Hệ thống chức năng giao diện: Bố cục các phân hệ điều hướng rõ ràng giữa khu vực dành cho thí sinh/khách và khu vực trang quản trị (Dashboard).
  • Thiết kế chi tiết các trang giao diện:
    • Giao diện Trang chủ, Trang đăng ký tài khoản, Trang đăng nhập.
    • Giao diện Trang quản lý môn học: Hiển thị danh sách trên grdSubject, các điều khiển thêm, sửa, xóa thông tin môn.
    • Giao diện Trang quản lý câu hỏi: Hiển thị danh sách câu hỏi trên grdQuestion, bảng nhập liệu câu hỏi, phương án, mức độ khó và nút chức năng nhập từ file Excel.
    • Giao diện Trang quản lý đề thi: Bảng điều khiển grdThreadQuestion hỗ trợ thiết lập thông số môn, số lượng câu và tạo đề ngẫu nhiên.
    • Giao diện Thi trực tuyến: Khu vực hiển thị đồng hồ đếm ngược, danh sách câu hỏi trắc nghiệm kèm các nút chọn (radio button), nút nộp bài và màn hình hiển thị kết quả chi tiết sau khi nộp bài.

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

Dựa trên nội dung báo cáo đồ án, các kết quả cụ thể đạt được bao gồm:

  • Kết quả thiết kế và xây dựng hệ thống:

    • Hoàn thành đầy đủ bộ tài liệu phân tích và thiết kế phần mềm bằng UML, bao gồm sơ đồ phân cấp chức năng, danh mục tác nhân, bảng Use Case, các biểu đồ Use Case chi tiết và 11 biểu đồ tuần tự cho các chức năng nghiệp vụ trọng yếu.
    • Xây dựng thành công cơ sở dữ liệu trên SQL Server lưu trữ đầy đủ các bảng dữ liệu môn học, câu hỏi, đề thi, thành viên và kết quả thi.
    • Thiết kế các giao diện người dùng và quản trị trực quan, đáp ứng các chức năng: đăng ký/đăng nhập, quản lý danh mục (môn, câu hỏi, đề thi), thi trực tuyến tự động chấm điểm và thống kê top truy cập/điểm cao.
    • Tích hợp thành công tính năng nhập ngân hàng câu hỏi hàng loạt từ tệp Excel và cơ chế tự động lấy câu hỏi ngẫu nhiên (random) theo 3 cấp độ khó (dễ, trung bình, khó) khi tạo đề thi.
  • Đóng góp của đồ án:

    • Về mặt lý luận và học tập: Đề tài giúp sinh viên củng cố, tổng hợp toàn diện các kiến thức nền tảng về cơ sở dữ liệu (SQL Server), truy vấn LINQ, lập trình web theo mô hình MVC, JavaScript/jQuery và phương pháp luận thiết kế phần mềm hướng đối tượng.
    • Về mặt thực tiễn: Cung cấp một giải pháp phần mềm website thi trắc nghiệm trực tuyến có tính ứng dụng, hỗ trợ quy trình ôn tập, kiểm tra kiến thức cho học sinh, sinh viên và giảm thiểu công sức quản lý, chấm thi thủ công cho người quản trị/giáo viên.

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

Tác giả đã chỉ ra các mặt hạn chế và đề xuất hướng phát triển tiếp theo của đề tài trong văn bản:

  • Hạn chế:
    • Việc tối ưu hóa hệ thống chưa thực sự tốt do kinh nghiệm và kiến thức thực tế của sinh viên còn hạn chế.
    • Quá trình khảo sát ban đầu chưa được thực hiện tại một đơn vị/địa điểm quản trị website chuyên nghiệp thực tế mà chủ yếu dựa trên khảo sát website tin tức và thông tin trên Internet.
  • Hướng nghiên cứu và phát triển tiếp theo:
    • Tiếp tục tối ưu hóa hiệu năng và mã nguồn hệ thống để tăng tốc độ xử lý khi có lượng truy cập lớn.
    • Nâng cấp và hoàn thiện thêm các tính năng nâng cao nhằm đưa phần mềm vào ứng dụng thực tế tại các kỳ kiểm tra, thi cử tại các trường học.

Giá trị tham khảo

Báo cáo đồ án chuyên ngành này mang lại giá trị tham khảo hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin, Kỹ thuật phần mềm: Là tài liệu mẫu tham khảo trực tiếp về cấu trúc một đồ án chuyên ngành/đồ án môn học theo chuẩn phân tích thiết kế hướng đối tượng; hữu ích cho những sinh viên đang thực hiện đề tài về hệ thống thi trắc nghiệm trực tuyến, website giáo dục hoặc hệ thống quản lý học tập (LMS).
  • Phần nội dung có giá trị tham khảo cao:
    • Chương 2 với quy trình đặc tả Use Case chi tiết (dòng sự kiện chính, dòng sự kiện phụ, điều kiện tiên quyết) và hệ thống biểu đồ tuần tự chuẩn xác cho các nghiệp vụ thêm, sửa, xóa, nộp bài, tính điểm.
    • Thiết kế logic phân cấp câu hỏi theo 3 mức độ khó (1, 2, 3) kết hợp thuật toán tạo đề ngẫu nhiên và giải pháp nhập liệu câu hỏi nhanh qua tệp Excel.

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

1. Hệ thống phân chia các cấp độ khó của câu hỏi như thế nào và phục vụ mục đích gì?

Hệ thống phân chia câu hỏi thành 3 mức độ: Dễ (mức 1), Trung bình (mức 2), Khó (mức 3). Việc phân cấp này giúp hệ thống tự động tạo đề thi theo các mức độ yêu cầu khác nhau bằng cách lấy ngẫu nhiên câu hỏi từ ngân hàng dữ liệu, đồng thời giúp học sinh ôn luyện từ kiến thức cơ bản đến nâng cao để tự đánh giá năng lực bản thân.

2. Chức năng quản lý câu hỏi hỗ trợ các phương thức nhập liệu nào?

Chức năng quản lý câu hỏi hỗ trợ hai phương thức: nhập thủ công từng câu hỏi trực tiếp trên giao diện web (nhập nội dung, 4 phương án, đáp án đúng và cấp độ) hoặc nhập hàng loạt nhanh chóng thông qua tệp tin Excel có sẵn được lưu đường dẫn trên máy chủ.

3. Quy trình tính điểm và trả kết quả thi trực tuyến diễn ra như thế nào?

Khi thí sinh làm bài, hệ thống hiển thị đồng hồ đếm ngược. Nếu hết giờ làm bài hoặc thí sinh nhấn "Nộp bài" sớm, hệ thống sẽ tự động so sánh các đáp án đã chọn với đáp án đúng trong CSDL, tính tổng điểm, hiển thị số câu đúng/sai, bôi màu đỏ cho các câu làm sai và cập nhật điểm số vào CSDL để lưu trữ và xếp hạng.

4. Hệ thống gồm những nhóm tác nhân (Actor) nào và quyền hạn của mỗi nhóm ra sao?

Hệ thống gồm 3 nhóm tác nhân:

  • Administrator: Quản lý toàn bộ hệ thống, phân quyền, quản lý chuyên mục, môn học, câu hỏi, đề thi, duyệt phản hồi và bảo trì.
  • Users: Bao gồm Giáo viên (có quyền cập nhật đề thi, câu hỏi) và Thí sinh/Thành viên (đăng nhập, làm bài thi, nộp bài, xem lại kết quả).
  • Visiter: Khách truy cập xem thông tin chung, tìm kiếm bài viết và gửi phản hồi cho ban quản trị.

5. Yêu cầu kỹ thuật tối thiểu về môi trường phần mềm để cài đặt hệ thống là gì?

Hệ thống yêu cầu máy chủ/máy vận hành sử dụng hệ điều hành Windows, cài đặt .NET Framework từ phiên bản 3.5 trở lên và hệ quản trị cơ sở dữ liệu SQL Server từ phiên bản 2005 trở lên.


Kết luận

Đồ án "Xây dựng hệ thống thi trắc nghiệm online" do sinh viên Nguyễn Phi Chương thực hiện đã hoàn thành các mục tiêu đề ra về việc khảo sát, phân tích yêu cầu, thiết kế UML và xây dựng cơ sở dữ liệu cho một hệ thống thi trắc nghiệm trực tuyến trên nền tảng ASP MVC và SQL Server. Công trình đã chuẩn hóa các quy trình nghiệp vụ cốt lõi từ quản lý môn học, nhập câu hỏi từ Excel, sinh đề ngẫu nhiên theo độ khó đến tổ chức thi, tự động chấm điểm và thống kê xếp hạng. Mặc dù hệ thống còn hạn chế về mặt tối ưu hóa hiệu năng, đề tài là nguồn tài liệu học thuật và kỹ thuật có giá trị tham khảo tốt cho sinh viên ngành Công nghệ thông tin khi thực hiện các đồ án phần mềm cùng chuyên ngành.