chương 1. Trong chương này, chúng em đã trình bày về bối cảnh, lý do chọn đề tài và các công cụ sử dụng để phát triển ứng dụng. Những nội dung này là cơ sở để thực hiện phân tích và thiết kế hệ thống, sẽ được trình bày chi tiết trong các chương tiếp theo. 11 Chương 2 Tổng quan về ứng dụng 2.1 Giới thiệu về ứng dụng Ứng dụng thi trắc nghiệm là một nền tảng trực tuyến, giúp người dùng thực hiện các bài kiểm tra dưới dạng câu hỏi trắc nghiệm.
Ứng dụng có thể được sử dụng trong nhiều lĩnh vực, từ giáo dục, đào tạo đến các kỳ thi tuyển dụng. Với giao diện thân thiện, người dùng dễ dàng thực hiện các bài thi mọi lúc mọi nơi thông qua các thiết bị như máy tính hoặc điện thoại.2 Một số quy trinh hoạt động 2.1 Quy trình đăng ký tài khoản Khi khách hàng muốn đăng kí tài khoản để sử dụng cho các việc làm bài thi thì khách hàng có thể truy cập vào trang login chọn mục đăng ký sau đó nhập đầy đủ các thông tin mà form đăng ký yêu cầu và ấn vào đăng ký. Sau khi thông tin khách hàng được gửi lên, hệ thống sẽ kiểm và tiến hành đăng kí cho người xem nếu các thông tin hợp lệ và yêu cầu nhập lại nếu thông tin không hợp lệ Hình 2.1: Quy trình đăng ký tài khoản 12 2.2 Quy trình đăng nhập Giao diện đăng nhập chỉ gồm 2 trường thông tin là tên đăng nhập (email) và mật khẩu. Hệ thống quản lý tài khoản của thành viên sẽ kiểm tra thông tin được cung cấp.
Nếu thông tin không đúng thì sẽ quay lại màn hình đăng nhập đồng thời gửi thông báo hiện thị trên giao diện. Nếu thông tin được xác thực sẽ đưa về trang chủ của ứng dụng thi trắc nghiệm.2: Quy trình đăng nhập 13 2.3 Quy trình thêm câu hỏi Admin sau khi ra câu hỏi xong, họ cảm thấy ưng với một câu hỏi nào đó thì họ có thể tiến hành thêm câu hỏi đó vào đề thi và sau đó luu chúng lại để sau này khi người dùng vào làm bài thi sẽ xuất hiện câu hỏi đó trong bộ đề thi và tính năng này có thể giúp admin có thể sửa đổi bộ đề câu hỏi nhằm tăng tính đa dạng và sâu rộng cho bộ câu hỏi.3: Quy trình thêm câu hỏi 14 2.4 Quy trình làm bài thi Người dùng sau khi đăng nhập thành công sẽ hiện thị giao diện gồm các đề thi, sau đó người dùng chọn đề mình muốn thực hiện thi để có thể làm bài. Mỗi câu hỏi được hiển thị kèm theo các tùy chọn (A, B, C, D). Người dùng chọn đáp án phù hợp cho từng câu bằng cách nhấp vào các nút chọn, và mỗi câu hỏi chỉ được chọn duy nhất một đáp án.
Ở phần giao diện thi sẽ có nút để đổi trang câu hỏi gồm: 2 nút “câu trước “ và “ câu tiếp theo”. Sau khi hoàn thành bài thi người dùng bấm vào nút nộp bài để xem mình được bao nhiều điểm và thời gian làm bài trong bao lâu( ứng dụng sẽ hiện thị thời gian làm bài ngay lúc người dùng bấm vào ô Bắt đầu thi ở trang chủ).4: Quy trình làm bài 15 2.5 Quy trình chấm bài thi Hệ thống sẽ lấy dữ liệu từ các đáp án mà người dùng thực hiện chọn để đối chiếu với đáp án mà admin nhập vào và hiện thị đúng sai, số điểm mà người dùng đạt được sau khi nộp bài thi. Sau khi chấm bài hệ thống sẽ trả về kết quả làm bài hiện thị cho người dùng thấy câu đúng, sai, thời gian làm bài, số điểm đạt được của bài thi đó.5: Quy trình chấm bài 16 2.6 Quy trình quản lý tài khoản khách hàng Quản lý tài khoản trong ứng dụng thi trắc nghiệm là một quy trình quan trọng nhằm đảm bảo hoạt động trơn tru và hiệu quả của hệ thống. Admin cần quản lý danh sách tài khoản, bao gồm thông tin cơ bản như họ tên, email, vai trò và lịch sử tham gia thi cử.
Một tính năng thiết yếu là khả năng khóa tài khoản khi phát hiện vi phạm, đảm bảo tính minh bạch và công bằng. Ngoài ra, hệ thống có thể hỗ trợ phân loại người dùng dựa trên tần suất hoạt động hoặc kết quả thi để gửi voucher tri ân, khuyến khích học viên tích cực hơn. Quản lý phân quyền cũng rất cần thiết, đảm bảo chỉ admin mới có thể thực hiện các thao tác nhạy cảm như sửa hoặc xóa tài khoản. Quy trình này không chỉ tăng tính bảo mật mà còn giúp admin dễ dàng theo dõi và hỗ trợ người dùng khi cần thiết, đặc biệt trong môi trường giáo dục trực tuyến.3 Cơ chế tổ chức ứng dụng Cơ cấu tổ chức của ứng dụng như sau: + Admin quản lý các hoạt động chung của ứng dụng.
+ Người dùng là người sử dụng ứng dụng và thao tác với các chức năng cơ bản như:Đăng nhập, đăng kí, làm bài thi. 17 Chương 3 Nghiên cứu tổng quan 3.1 Ngôn ngữ lập trình ứng dụng 3.1 Java swing Java Swing là một thư viện trong Java được sử dụng để phát triển các ứng dụng với giao diện đồ họa (GUI). Nó là một phần của Java Foundation Classes (JFC), cung cấp các thành phần giao diện người dùng độc lập với nền tảng. Swing hoạt động dựa trên AWT (Abstract Window Toolkit) nhưng vượt trội hơn nhờ khả năng tùy chỉnh mạnh mẽ và linh hoạt.
Các thành phần trong Swing được thiết kế để hoạt động nhẹ, không phụ thuộc vào hệ điều hành, và được vẽ bằng mã Java thay vì sử dụng các thư viện GUI gốc. Swing hỗ trợ một số thành phần giao diện phổ biến như JFrame (cửa sổ chính), JPanel (khung chứa), JButton (nút bấm), JLabel (nhãn hiển thị), JTextField (hộp nhập liệu), và JPasswordField (hộp nhập mật khẩu). Với kiến trúc MVC (Model-View-Controller), Java Swing đảm bảo việc xử lý dữ liệu, giao diện, và logic sự kiện một cách tách biệt. Ngoài ra, Swing cũng sử dụng cơ chế xử lý sự kiện đa luồng thông qua Event Dispatch Thread (EDT), giúp giao diện hoạt động mượt mà và ổn định trên nhiều nền tảng.
Nó cung cấp các phương thức tiêu chuẩn để thực hiện các truy vấn SQL, gọi các thủ tục lưu trữ, và xử lý kết quả trả về. JDBC cho phép các ứng dụng Java tương tác với nhiều cơ sở dữ liệu khác nhau như MySQL, PostgreSQL, Oracle, hoặc SQL Server thông qua các driver riêng biệt. Tuy nhiên, việc sử dụng JDBC truyền thống có thể dẫn đến mã lệnh phức tạp, khó bảo trì do cần quản lý kết nối, câu lệnh SQL, và xử lý lỗi thủ công. 18 Để giải quyết nhược điểm này, ORM (Object-Relational Mapping) ra đời, và Hibernate là một trong những framework ORM phổ biến nhất cho Java.
Hibernate cung cấp một lớp trừu tượng cho phép các nhà phát triển làm việc với cơ sở dữ liệu mà không cần viết nhiều câu lệnh SQL. Nó ánh xạ các lớp Java với bảng trong cơ sở dữ liệu, nhờ đó giúp chuyển đổi giữa các đối tượng Java và bản ghi trong cơ sở dữ liệu một cách tự động. Hibernate cũng hỗ trợ các tính năng như lazy loading (tải dữ liệu khi cần), caching (bộ nhớ đệm), transaction management (quản lý giao dịch), và query language (HQL – Hibernate Query Language). Những tính năng này giúp giảm tải công việc thủ công và tăng hiệu suất.
Đồng thời, Hibernate còn mang tính độc lập với hệ quản trị cơ sở dữ liệu, cho phép chuyển đổi giữa các RDBMS dễ dàng mà không cần thay đổi mã nguồn chính. Sự kết hợp giữa JDBC và Hibernate mang lại giải pháp mạnh mẽ để xây dựng các ứng dụng Java với cơ sở dữ liệu, đơn giản hóa việc phát triển, và tăng hiệu quả trong quản lý dữ liệu.2: Jdbc and Hibernate 3.2 Ngôn ngữ thiết kế hệ thống ULM UML (Unified Modeling Language) là ngôn ngữ dành cho việc đặc tả, hình dung, xây dựng và làm tài liệu của các hệ thống phần mền. UML tạo cơ hội để viết thiết kế hệ thống, bao gồm những khái niệm như tiến trình nghiệp vụ và các chức năng của hệ thống. Cách xây dựng các mô hình trong UML phù hợp mô tả các hệ thống thông tin cả về cấu trúc cũng như hoạt động.
Cách tiếp cận theo mô hình của UML giúp ích rất nhiều cho những người thiết kế và thực hiện hệ thống thông tin cũng như những người sử dụng nó; tạo nên một cái nhìn bao quát và đầy đủ về hệ thống thông tin dự định xây dựng. Cách nhìn bao quát này giúp nắm bắt trọn vẹn các yêu cầu của người dùng; phục vụ từ giai đoạn phân tích đến việc thiết kế, thẩm định và kiểm tra sản phẩm ứng dụng công nghệ thông tin. UML sử dụng một hệ thống ký hiệu thống nhất biểu diễn các Phần tử mô hình(model elements). Tập hợp các phần tử mô hình tạo thành các Sơ đồ UML (UMLdiagrams).
Có các loại sơ đồ UML chủ yếu sau : - Sơ đồ lớp (Class Diagram) - Sơ đồ đối tượng (Object Diagram) 19 - Sơ đồ tình huống sử dụng (Use Cases Diagram) - Sơ đồ trình tự (Sequence Diagram) - Sơ đồ cộng tác (Collaboration Diagram hay là Composite Structure Diagram) - Sơ đồ trạng thái (State Machine Diagram) - Sơ đồ thành phần (Component Diagram) - Sơ đồ hoạt động (Activity Diagram) - Sơ đồ triển khai (Deployment Diagram) - Sơ đồ gói (Package Diagram) - Sơ đồ liên lạc (Communication Diagram) - Sơ đồ tương tác (Interaction Overview Diagram - UML 2.0) - Sơ đồ phối hợp thời gian (Timing Diagram - UML 2.3: Ngôn ngữ thiết kế hệ thống ULM 20 Chương 4 Phân tích thiết kế hệ thống 4.1 Biểu đồ use case 4.1 Biểu đồ use case tổng thể Hình 4.1: Biểu đồ use case tổng thể 4.2 Biểu đồ phân rã use case khách hàng 4.1 Tiến trình sử dụng hệ thống Hình 4.2: Biểu đồ tiến trình sử dụng hệ thống.2 Tiến trình đăng nhập Hình 4.3: Biểu đồ tiến trình đăng nhập 4.3 Biểu đồ phân rã use case Admin 4.1 Tiến trình quản lý bài thi Hình 4.4: Biểu đồ quản lý bài thi 22 4.4 Đặc tả một số Use case 4.1 Use case Đăng nhập Use-case: Login (đăng nhập) Actors: Người dùng Objective: Đăng nhập vào tài khoản để truy cập các tính năng của hệ thống. Pre-conditions: Không có Post-conditions: Người dùng đã đăng nhập thành công và có thể truy cập vào tài khoản cá nhân. Description: Là hành động đăng nhập vào hệ thống thông qua liên kết “Đăng nhập” trong hệ thống *Các tương tác chính của use case đăng nhập “Login” Hoạt động của người dùng Hoạt động của hệ thống 1.Người dùng chọn chức năng đăng nhập 2.HIện thị form đăng nhập cho người dùng trên giao diện 3. Điền Tên đăng nhập, mật khẩu vào 4.