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

Trong bối cảnh hội nhập quốc tế, việc nâng cao năng lực ngoại ngữ, đặc biệt là tiếng Anh, đã trở thành nhiệm vụ cấp thiết tại các trường đại học, cao đẳng và trung học phổ thông. Nhằm đáp ứng yêu cầu chuẩn đầu ra và đánh giá năng lực người học, nhiều cơ sở giáo dục đã tổ chức giảng dạy và kiểm tra trình độ tiếng Anh một cách quyết liệt. Tuy nhiên, qua khảo sát thực tế tại Trường Đại học Bách khoa – Đại học Đà Nẵng, tác giả nhận thấy hoạt động tổ chức thi phần lớn vẫn được tiến hành theo phương thức truyền thống (thi trên giấy, thi tập trung trực tiếp). Phương thức này bộc lộ nhiều điểm hạn chế: tốn kém kinh phí in ấn đề thi và bảng trả lời, tốn thời gian chấm thi và tổng hợp kết quả, rủi ro sai sót trong khâu quản lý điểm số, đồng thời tiềm ẩn nguy cơ thiếu an toàn trong lưu trữ dữ liệu.

Nhằm giải quyết những bất cập trên, đề tài đồ án tốt nghiệp kỹ sư ngành Công nghệ thông tin (chuyên ngành Công nghệ phần mềm) với tên gọi "Xây dựng website thi trắc nghiệm tiếng Anh trực tuyến" được sinh viên Phạm Ngọc Được (lớp 15T2, mã sinh viên 102150093) thực hiện dưới sự hướng dẫn của ThS. Nguyễn Văn Nguyên tại Khoa Công nghệ thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng. Thời gian thực hiện đồ án từ ngày 11/09/2019 đến ngày 19/12/2019.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể trong văn bản như sau:

  1. Hỗ trợ hiệu quả hơn hoạt động quản lý của Nhà trường: Tự động hóa các khâu quản lý người dùng, quản lý danh sách sinh viên, tổ chức kỳ thi, biên soạn đề thi và quản lý dữ liệu điểm thi.
  2. Hỗ trợ sinh viên, học sinh: Tạo môi trường trực tuyến giúp người học tham gia làm bài thi một cách thuận tiện, xem lại kết quả tức thời và tự theo dõi lịch sử điểm thi của chính mình.
  3. Ý nghĩa nghiên cứu: Nâng cao hiệu quả, tính khách quan và giảm thiểu chi phí trong công tác tổ chức, quản lý thi trắc nghiệm tiếng Anh tại các đơn vị đào tạo.

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

  • Đối tượng nghiên cứu: Nghiệp vụ tổ chức và đánh giá thi trắc nghiệm tiếng Anh khách quan; các công nghệ lập trình ứng dụng web trên nền tảng Java hướng đối tượng.
  • Phạm vi không gian: Triển khai thử nghiệm tại Trường Đại học Bách khoa – Đại học Đà Nẵng, với sự hỗ trợ tiếp cận công nghệ từ Công ty Gameloft Vietnam và Công ty FPT Software.
  • Phạm vi nội dung chuyên môn: Tập trung vào hình thức thi trắc nghiệm trực tuyến dành cho hai kỹ năng là phần Đọc (Reading) và phần Nghe (Listening).

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

Để xây dựng hệ thống website thi trực tuyến, tác giả sử dụng các phương pháp nghiên cứu kỹ thuật phần mềm chuẩn hóa:

  1. Phương pháp phân tích tổng hợp: Khảo sát, thu thập tài liệu kỹ thuật từ Internet về các công nghệ lập trình web Java, kiến trúc hướng đối tượng và các framework hỗ trợ.
  2. Phương pháp phân tích thiết kế hệ thống hướng đối tượng (OOAD): Sử dụng ngôn ngữ mô hình hóa thống nhất (UML) để biểu diễn các thành phần hệ thống thông qua biểu đồ phân rã chức năng, biểu đồ ca sử dụng (Use Case), biểu đồ tuần tự (Sequence Diagram), biểu đồ hoạt động (Activity Diagram), biểu đồ lớp (Class Diagram) và sơ đồ cơ sở dữ liệu quan hệ.
  3. Phương pháp thử nghiệm và đánh giá kết quả: Cài đặt hệ thống trên môi trường máy chủ thử nghiệm, chạy kịch bản kiểm thử với dữ liệu người dùng và câu hỏi thực tế để đánh giá tính đúng đắn của các chức năng.

Về khung lý thuyết và công nghệ nền tảng, đồ án tập trung vào các công nghệ và mô hình sau:

  • Mô hình kiến trúc MVC (Model – View – Controller): Chuẩn kiến trúc phân tách ứng dụng thành 3 lớp riêng biệt: Model (chứa nghiệp vụ logic, kết nối và tương tác với hệ quản trị cơ sở dữ liệu), View (chịu trách nhiệm hiển thị giao diện người dùng, tiếp nhận tương tác trực quan) và Controller (tiếp nhận yêu cầu từ người dùng, điều phối dữ liệu từ Model và trả về giao diện View phù hợp).
  • Công nghệ Java Servlet và JSP (JavaServer Pages): Servlet đóng vai trò là thành phần chạy phía máy chủ để tạo trang web động và xử lý các yêu cầu HTTP (sử dụng các lớp và giao diện như Servlet, GenericServlet, HttpServlet, ServletRequest, ServletResponse). JSP là công nghệ mở rộng từ Servlet cho phép kết hợp mã HTML/XHTML với các thẻ nhúng Java đặc biệt, giúp tách biệt logic xử lý khỏi giao diện hiển thị.
  • Apache Struts Framework (phiên bản Struts 1): Framework mã nguồn mở phát triển trên nền mô hình MVC. Thành phần nền tảng là Controller servlet (ActionServlet) điều phối luồng xử lý; các lớp mở rộng bao gồm Action (xử lý logic nghiệp vụ cụ thể) và ActionForm (thu thập dữ liệu từ các biểu mẫu HTML). Struts cung cấp 4 bộ thư viện thẻ JSP (HTML, Bean, Logic, Nested) cùng hai plugin mở rộng là Tiles plugin (tái sử dụng bố cục giao diện) và Validator plugin (kiểm tra tính hợp lệ của dữ liệu ở cả máy trạm và máy chủ).
  • Công nghệ AJAX (Asynchronous JavaScript and XML): Kỹ thuật tương tác dữ liệu không đồng bộ giữa trình duyệt và máy chủ thông qua đối tượng XMLHttpRequest mà không cần tải lại toàn bộ trang web. Tác giả khai thác 4 lợi ích chính của AJAX: Callbacks (truy xuất và lưu dữ liệu cục bộ, giảm thiểu lưu lượng mạng), thực hiện các cuộc gọi không đồng bộ, tăng tính thân thiện với người dùng và cải thiện tốc độ phản hồi của hệ thống.
Thành phần kỹ thuật Công nghệ / Tiêu chuẩn áp dụng Vai trò trong hệ thống
Kiến trúc ứng dụng Mô hình MVC (Model - View - Controller) Tách biệt tầng dữ liệu, giao diện và điều khiển
Tầng điều khiển (Controller) Java Servlet & Struts 1 (ActionServlet, Action) Xử lý yêu cầu HTTP và điều phối luồng nghiệp vụ
Tầng giao diện (View) JSP, Struts Taglib, AJAX (XMLHttpRequest) Hiển thị giao diện động và tương tác không đồng bộ
Tầng dữ liệu (Model) Java Class, JavaBeans Đóng gói nghiệp vụ và tương tác hệ thống
Hệ quản trị CSDL Microsoft SQL Server 2012 Lưu trữ dữ liệu người dùng, đề thi và điểm số
Nguồn dữ liệu kiểm thử Danh sách sinh viên từ file Excel, ngân hàng câu hỏi Dữ liệu đầu vào phục vụ kiểm thử hệ thống

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

Chương 1: Cơ sở lý thuyết

Chương 1 mở đầu bằng việc phân tích thực trạng công tác tổ chức thi trắc nghiệm tiếng Anh tại các trường đại học hiện nay nói chung và Trường Đại học Bách khoa – Đại học Đà Nẵng nói riêng, qua đó khẳng định sự cần thiết của việc xây dựng hệ thống website thi trắc nghiệm trực tuyến. Tiếp đó, tác giả trình bày hệ thống lý thuyết về Java Servlet và JSP, bao gồm sơ đồ kiến trúc Servlet, các nhiệm vụ chính của Servlet (đọc dữ liệu HTTP rõ ràng và ẩn, xử lý nghiệp vụ, gọi cơ sở dữ liệu, gửi dữ liệu phản hồi dạng HTML/XML/nhị phân). Nội dung chương cũng trình bày nguồn gốc và cấu trúc của Struts Framework từ phiên bản 1.0 (Craig McClanahan phát triển năm 2000, phát hành 2001) đến phiên bản 2.33 (năm 2017), chu kỳ sống của ứng dụng Struts, và 6 bước hoạt động tuần tự của AJAX cùng 4 ưu điểm nổi bật khi áp dụng vào ứng dụng web động.

Chương 2: Phân tích và thiết kế hệ thống

Chương 2 tập trung phân tích mô hình nghiệp vụ của hệ thống dựa trên 4 nhóm phân quyền người dùng: Quản trị viên (Admin), Phòng Công tác sinh viên (CTSV), Giảng viên và Sinh viên. Tác giả tiến hành mô hình hóa bằng sơ đồ phân rã chức năng và hệ thống biểu đồ ca sử dụng (Use Case). Điểm trọng tâm của chương là 9 bảng đặc tả ca sử dụng chi tiết (từ Bảng 1 đến Bảng 9):

  • Bảng 1: Ca sử dụng Đăng nhập (dành cho cả 4 tác nhân).
  • Bảng 2: Ca sử dụng Chọn xem danh sách user (Admin quản lý giảng viên và nhân viên phòng ban).
  • Bảng 3: Ca sử dụng Quản lý quyền user (Admin thiết lập các quyền xem, thêm, sửa, xóa).
  • Bảng 4: Ca sử dụng Quản lý danh sách sinh viên (Phòng CTSV xem, thêm, sửa, xóa thông tin sinh viên).
  • Bảng 5: Ca sử dụng Tạo đề (Giảng viên nhập thông tin đề thi và danh sách câu hỏi).
  • Bảng 6: Ca sử dụng Tạo kỳ thi (Giảng viên thiết lập thông tin cần thiết cho kỳ thi).
  • Bảng 7: Ca sử dụng Tổ chức thi (Giảng viên cấu hình bài thi cho các nhóm sinh viên cụ thể).
  • Bảng 8: Ca sử dụng Thi (Sinh viên chọn liên kết bài thi và tiến hành làm bài).
  • Bảng 9: Ca sử dụng Xem lịch sử thi (Sinh viên xem lại danh sách và điểm các lần thi trước).

Bên cạnh đó, chương 2 cung cấp các biểu đồ tuần tự cho chức năng Đăng nhập và Đăng ký bài thi (Tổ chức thi); các biểu đồ hoạt động thể hiện luồng thao tác đăng nhập, giảng viên tổ chức thi, sinh viên vào thi; biểu đồ lớp (Class Diagram) mô tả các thực thể hướng đối tượng; và sơ đồ thiết kế cơ sở dữ liệu quan hệ (CSDL) mô tả các bảng dữ liệu liên kết.

Chương 3: Triển khai thực tế và đánh giá kết quả

(Trong văn bản tại trang 40 tiêu đề đề mục ghi nhầm là Chương 2, nhưng cấu trúc phân bổ chung và mục lục xác định là Chương 3). Chương này trình bày toàn bộ kết quả hiện thực hóa hệ thống trên môi trường máy chủ và giao diện người dùng. Tác giả đưa ra các yêu cầu cấu hình triển khai, mô tả chi tiết từng màn hình chức năng thông qua 15 hình ảnh chụp từ hệ thống thực tế. Nội dung kỹ thuật đáng chú ý nhất trong chương là việc cài đặt thuật toán xáo trộn đề thi không lặp cho phần thi Đọc, giúp tạo ra các mã đề ngẫu nhiên cho từng thí sinh nhằm chống gian lận. Cuối cùng, tác giả trình bày quy trình sinh viên hoàn thành bài thi qua hai phần Đọc - Nghe và hệ thống tự động ghi nhận, hiển thị kết quả điểm số chi tiết.

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

Hệ thống được thiết kế theo mô hình phân tầng hướng đối tượng và triển khai thực tế trên môi trường máy chủ đáp ứng các thông số kỹ thuật được quy định trong đồ án:

  • Hệ điều hành máy chủ: Windows Server 2008 trở lên.
  • Nền tảng môi trường máy ảo: Java 8 trở lên.
  • Framework phát triển web: Apache Struts Framework 1.0.
  • Hệ quản trị cơ sở dữ liệu: Microsoft SQL Server 2012.
  • Môi trường phát triển tích hợp (IDE): Eclipse Neon.

Về quy trình xử lý, hệ thống vận hành theo chu kỳ sống của Struts 1. Khi người dùng gửi yêu cầu từ trình duyệt, ActionServlet đóng vai trò Controller trung tâm sẽ tiếp nhận, sử dụng các đối tượng ActionForm để thu thập dữ liệu từ giao diện, sau đó gọi các lớp con của Action để thực thi logic nghiệp vụ. Các lớp Action kết nối với Microsoft SQL Server 2012 để truy vấn hoặc cập nhật cơ sở dữ liệu, chuẩn bị dữ liệu phản hồi và chuyển hướng điều khiển sang các trang JSP. Tại trang JSP, các thẻ Struts Taglib và mã JavaScript kết hợp AJAX xử lý hiển thị giao diện động.

Hệ thống thiết lập 4 nhóm phân quyền độc lập:

  1. Phân hệ Quản trị viên (Admin): Cung cấp màn hình đăng nhập hệ thống; quản lý danh sách người dùng nội bộ (thêm, sửa, xóa thông tin giảng viên và nhân viên phòng ban); thiết lập và quản lý các quyền truy cập hệ thống.
  2. Phân hệ Phòng Công tác sinh viên: Cung cấp tính năng import danh sách sinh viên hàng loạt từ tệp tin Excel; quản lý thông tin sinh viên; quản lý điểm số và kết xuất bảng điểm của sinh viên ra tệp tin định dạng PDF.
  3. Phân hệ Giảng viên: Cung cấp giao diện tạo kỳ thi mới; tạo đề thi và biên soạn nội dung ngân hàng câu hỏi; quản lý danh sách kỳ thi; cấu hình tổ chức thi (phân bổ bài thi cho các nhóm sinh viên được chỉ định).
  4. Phân hệ Sinh viên: Cung cấp trang cá nhân hiển thị danh sách các bài thi được giảng viên yêu cầu; chức năng xem lại lịch sử các lần thi; giao diện đọc mô tả bài thi và quy chế; giao diện làm bài thi trực tuyến gồm phần Đọc (Reading) và phần Nghe (Listening) tích hợp trình nghe âm thanh; màn hình tổng kết điểm số ngay sau khi nhấn nút nộp bài (Submit).

Nhằm bảo đảm tính khách quan, công bằng và ngăn chặn hành vi gian lận trong phòng thi, tác giả đã cài đặt thuật toán xáo trộn đề thi không lặp cho phần thi Đọc. Thuật toán sử dụng cấu trúc ánh xạ (Map) và hàm sinh số ngẫu nhiên để đảo vị trí các câu hỏi:

Map<int,String> list1;
Int So_min;
Int So_max;
Map<int,bool> list2;
For i=0 to (So_max – So_min){
Do{
R = So_min + rand()%(So_max-So_min);
}while(list2.insert(std::pair<int,string>(I,list1.get_value);
}

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

Đồ án đã hoàn thành các mục tiêu đề ra và ghi nhận những kết quả cụ thể trong văn bản:

Về mặt lý thuyết:

  • Ứng dụng thành công các kiến thức phân tích thiết kế hệ thống hướng đối tượng để giải quyết bài toán nghiệp vụ tổ chức thi trắc nghiệm tiếng Anh trực tuyến.
  • Hiện thực hóa thành công mô hình MVC 3 lớp trên cơ sở nền tảng công nghệ Java Servlet/JSP kết hợp Apache Struts Framework.
  • Xây dựng mô hình tương tác cơ sở dữ liệu hoàn chỉnh sử dụng Microsoft SQL Server 2012.

Về mặt thực tiễn ứng dụng:

  • Xây dựng hoàn chỉnh website thi trắc nghiệm tiếng Anh trực tuyến với đầy đủ 4 phân hệ chức năng (Admin, Phòng CTSV, Giảng viên, Sinh viên) và biên dịch chạy thử nghiệm thành công.
  • Tự động hóa khâu nạp dữ liệu sinh viên bằng cơ chế import từ bảng tính Excel, giảm bớt công đoạn nhập liệu thủ công.
  • Tự động hóa khâu xuất kết quả điểm thi ra file PDF phục vụ công tác lưu trữ của phòng ban.
  • Ứng dụng thuật toán xáo trộn câu hỏi ngẫu nhiên trong bài thi Đọc, giúp tạo mã đề thi khác nhau giữa các thí sinh.
  • Hỗ trợ thi trực tuyến hai kỹ năng Đọc và Nghe với cơ chế chấm điểm tự động và trả kết quả tức thời cho thí sinh.

Về đóng góp so với phương thức cũ (tác giả tự nêu):

  • Cung cấp một giải pháp phần mềm thay thế phương thức thi trắc nghiệm trên giấy truyền thống tại Trường Đại học Bách khoa – Đại học Đà Nẵng, giúp tiết kiệm chi phí in ấn tài liệu, giảm thiểu nhân lực phục vụ kỳ thi.
  • Tăng cường tính minh bạch, chính xác và khách quan trong công tác chấm thi và đánh giá trình độ tiếng Anh của học sinh, sinh viên.

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

Mặc dù đã triển khai thành công các chức năng cơ bản, tác giả thẳng thắn chỉ ra các vấn đề tồn tại trong văn bản đồ án:

  • Phạm vi đánh giá kỹ năng còn hạn chế: Hệ thống mới chỉ hỗ trợ thi trắc nghiệm cho hai kỹ năng Đọc (Reading) và Nghe (Listening); chưa phát triển được các chức năng phục vụ cho phần thi Viết (Writing) và Nói (Speaking).
  • Vấn đề an toàn hệ thống: Cơ chế bảo mật đối với thông tin và dữ liệu trên website còn bộc lộ một số hạn chế, chưa có các giải pháp bảo vệ chuyên sâu chống xâm nhập.

Các hướng nghiên cứu và phát triển tiếp theo được tác giả đề xuất:

  • Mở rộng chức năng tiện ích: Phát triển thêm tính năng tự động gửi thông báo điểm thi về hòm thư điện tử (email) của sinh viên.
  • Cải tiến giải thuật: Nghiên cứu và tích hợp các thuật toán mới vào website, cụ thể là thuật toán tối ưu việc sắp xếp, tổ chức bài thi và thuật toán hỗ trợ chấm thi đạt độ chính xác cao hơn.
  • Hoàn thiện hệ thống khảo thí: Nghiên cứu phương án kỹ thuật để xây dựng thêm phân hệ thi cho hai kỹ năng Nói và Viết nhằm hoàn thiện việc đánh giá toàn diện 4 kỹ năng tiếng Anh.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo thực tế cho các nhóm đối tượng sau:

  • Sinh viên chuyên ngành Công nghệ phần mềm và Công nghệ thông tin: Tài liệu cung cấp ví dụ điển hình về việc xây dựng một hồ sơ phân tích thiết kế hệ thống hướng đối tượng chuẩn hóa bằng UML, bao gồm đầy đủ sơ đồ phân rã chức năng, biểu đồ ca sử dụng, 9 bảng đặc tả ca sử dụng chi tiết, biểu đồ tuần tự, biểu đồ hoạt động và biểu đồ lớp.
  • Lập trình viên nghiên cứu kiến trúc Java Web truyền thống: Đồ án là tài liệu tham khảo trực quan về việc tích hợp Struts 1 Framework, ActionServlet, các bộ thẻ Struts Taglib và AJAX trong việc xây dựng ứng dụng theo mô hình MVC kết nối với Microsoft SQL Server 2012.
  • Cán bộ kỹ thuật và quản lý đào tạo: Tham khảo mô hình phân quyền 4 nhóm tác nhân (Admin, Quản lý sinh viên/Điểm, Giảng viên tạo đề/Tổ chức thi, Sinh viên dự thi) để ứng dụng số hóa các kỳ thi trắc nghiệm nội bộ tại các trường học hoặc trung tâm ngoại ngữ.

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

  1. Hệ thống thi trắc nghiệm này hỗ trợ những kỹ năng tiếng Anh nào? Hệ thống hỗ trợ thi trắc nghiệm khách quan cho hai kỹ năng là phần Đọc (Reading) và phần Nghe (Listening). Hai kỹ năng Viết (Writing) và Nói (Speaking) chưa được phát triển trong đồ án này.

  2. Hệ thống phân chia quyền hạn của người dùng như thế nào? Hệ thống phân chia thành 4 nhóm quyền độc lập: Admin (quản lý tài khoản giảng viên, nhân viên phòng ban và phân quyền hệ thống), Phòng Công tác sinh viên (import sinh viên từ file Excel, quản lý hồ sơ sinh viên và in bảng điểm PDF), Giảng viên (tạo đề thi, tạo kỳ thi và tổ chức thi cho các nhóm sinh viên) và Sinh viên (xem lịch sử thi và trực tiếp làm bài thi).

  3. Yêu cầu cấu hình phần mềm máy chủ để triển khai hệ thống là gì? Cấu hình máy chủ được tác giả nêu trong đồ án bao gồm: Hệ điều hành Windows Server 2008 trở lên, môi trường chạy Java 8 trở lên, framework ứng dụng Struts Framework 1.0, hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2012 và môi trường phát triển Eclipse Neon.

  4. Tác giả sử dụng biện pháp kỹ thuật nào để ngăn chặn gian lận trong quá trình làm bài thi? Tại giao diện thi phần Đọc, tác giả cài đặt "thuật toán xáo trộn không lặp" sử dụng cấu trúc Map và hàm sinh số ngẫu nhiên rand(). Thuật toán này tự động đảo thứ tự các câu hỏi trong đề thi nhằm tạo sự khách quan, công bằng và hạn chế việc sao chép bài giữa các thí sinh.

  5. Phòng Công tác sinh viên thực hiện thao tác nhập danh sách và trích xuất điểm thi bằng định dạng tệp tin nào? Nhân viên phòng Công tác sinh viên có thể thêm hàng loạt danh sách sinh viên vào hệ thống thông qua việc import tệp tin bảng tính Excel, và thực hiện in/xuất bảng điểm của sinh viên ra định dạng tệp tin PDF.

Kết luận

Đồ án tốt nghiệp "Xây dựng website thi trắc nghiệm tiếng Anh trực tuyến" của sinh viên Phạm Ngọc Được tại Trường Đại học Bách khoa – Đại học Đà Nẵng đã hoàn thành việc phân tích, thiết kế và triển khai một giải pháp phần mềm hoàn chỉnh theo mô hình MVC sử dụng Java Servlet/JSP, Struts 1 và Microsoft SQL Server 2012. Hệ thống đáp ứng trọn vẹn quy trình tổ chức thi thông qua 4 phân hệ người dùng, hỗ trợ import danh sách sinh viên từ Excel, xáo trộn đề thi ngẫu nhiên, chấm điểm tự động cho hai phần thi Nghe - Đọc và kết xuất bảng điểm ra định dạng PDF. Dù vẫn còn một số điểm cần phát triển thêm như tính năng an toàn bảo mật và khả năng đánh giá kỹ năng Nói - Viết, công trình đã đóng góp một giải pháp ứng dụng thiết thực, có giá trị học thuật và tài liệu tham khảo cụ thể cho sinh viên ngành Công nghệ phần mềm.