3.2.1.Kiến trúc hệ thống
Hình 3.3. Mô hình kiến trúc hệ thống
Khi người dùng tương tác với ứng dụng, Client sẽ gửi yêu cầu đến Server. Server sử dụng luật ngữ cảnh để lấy ra số lượng từ gơi ý cho người dùng học, sau đó truy cập vào cơ sở dữ liệu để lấy về nội dung bài học. Server gửi nội dung này về cho Client, Client hiển thị ra cho người dùng.
3.2.2.Mô hình người học
Mô hình người học bao gồm những thông tin về người học dùng để biểu diễn những đặc trưng của người học. Các thông tin chúng tôi dùng để biểu diễn ở đây bao gồm những thông tin cá nhân của người dùng, thông tin về ngữ cảnh, kiến thức, trình độ của người dùng.
a. Thông tin cá nhân của người học
Thông tin cá nhân người học bao gồm những thông tin mang tính định danh, dùng để xác định xem người học đó là ai, và để phân biệt những người học với nhau.
STT Thuộc tính Mô tả
1 Tên đăng nhập Tên dùng để đăng nhập vào ứng dụng, có tính duy nhất, không trùng lặp
2 Mật khẩu Mật khẩu đi kèm với tên đăng nhập khi người dùng đăng ký tài khoản, dùng để đăng nhập vào ứng dụng.
3 Họ và tên Họ và tên của người dùng
4 Ngày sinh Ngày, tháng, năm sinh của người dùng 5 Số điện thoại Số điện thoại của người dùng
6 Giới tính Giới tính của người dùng (Nam/Nữ) Bảng 3.1. Thông tin cá nhân người học
Những thông tin này có thể được thay đổi bởi người dùng trong quá trình sử dụng ứng dụng.
b. Thông tin người dùng liên quan đến ngữ cảnh
Như đã trình bày trong phần Mô hình ngữ cảnh cho bài toán thử nghiệm, các yếu tố ngữ cảnh trong ứng dụng này là các thông tin liên quan đến vị trí, thời gian học, mức độ tập trung của người học. Chúng tôi sử dụng các giá trị rời rạc để biểu diễn chúng.
STT Thuộc tính Mô tả Giá trị (p)
1 Office Ở nơi công sở 1
2 Home Ở nhà 2
3 Public Ở nơi công cộng 3
Bảng 3.2. Tham số ngữ cảnh xác định vị trí của người dùng
STT Thuộc tính Mô tả Giá trị (t)
1 15 Người học có thể học trong vòng 15 phút 1
2 30 Người học có thể học trong vòng 30 phút 2
3 45 Người học có thể học trong vòng 45 phút 3
Bảng 3.3. Tham số ngữ cảnh xác định thời gian học của người dùng
STT Thuộc tính Mô tả Giá trị (c)
1 High Mức độ tập trung cao 1
2 Normal Mức độ tập trung vừa phải 2
3 Low Mức độ tập trung thấp 3
Bảng 3.4. Tham số ngữ cảnh xác định mức độ tập trung của người dùng Kết hợp 3 yếu tố ngữ cảnh: vị trí, thời gian học, mức độ tập trung của người học với nhau, chúng tôi đưa ra hàm xác định luật lấy số lượng từ để học ứng với các yếu tố ngữ cảnh như sau:
f = p*wp + t*wt + c*wc
Trong đó:
• p là giá trị của tham số địa điểm, t là giá trị của tham số thời gian, c là giá trị của tham số độ tập trung của người dùng.
• wp là trọng số của yếu tố ngữ cảnh Place (= 0.2), wt là trọng số yếu tố ngữ cảnh Time (=0.5), wc là trọng số yếu tố ngữ cảnh Concentration (=0.3).
Dựa vào giá trị hàm f, kết hợp với trình độ kiến thức của người học, chúng tôi sẽ đưa ra những bài học phù hợp với từng người dùng cụ thể.
c. Thông tin về trình độ kiến thức của người dùng
Về trình độ kiến thức của người dùng, chúng tôi phân ra 5 mức độ: Beginner (1), Pre-intermediate (2), Intermediate (3), Upper-intermediate (4) và Advance (5); ký hiệu
là u_level. Với mỗi mức độ này, người dùng sẽ được học những nội dung phù hợp với trình độ kiến thức của họ.
Các từ trong cơ sở dữ liệu cũng có 5 mức độ khó tương ứng là 1, 2, 3, 4, 5.
Kết hợp với giá trị hàm f đã nêu ở trên, chúng tôi đưa ra luật như sau:
STT f Số lượng từ Độ khó của từ
1 f < 1.7 10 <= u_level
2 1.7 <= f < 2.4 15 <= u_level
3 f >= 2.4 20 <= u_level
Bảng 3.5. Luật dựa trên ngữ cảnh
3.2.3.Mô hình nội dung
Nội dung của bài học bao gồm các khái niệm về từ vựng. Mỗi từ vựng sẽ thuộc một chủ đề nhất định. Người dùng sẽ học các từ vựng thông qua việc trả lời các câu hỏi liên quan đến từ vựng đó. Các câu hỏi có thể là dạng câu hỏi có nhiều lựa chọn, câu hỏi điền từ vào chỗ trống, nghe và đoán từ.
Nội dung được chia ra thành các chủ đề và các khái niệm. Ký hiệu chủ đề Ti là chỉ đề con của chủ đề T, tương tự chủ đề Tij là chủ đề con của chủ đề Ti (i = 1…n; j = 1…
m). Các chủ đề được sắp xếp theo một cây từ trên xuống dưới theo nội dung của chủ đề. Những chủ đề mà không có chủ đề con được xem là một nút của cây. Cây ở mức chủ đề trên có nội dung bao gồm các nội dung của các nút con.
Khái niệm là đơn vị kiến thức nhỏ nhất mà người dùng cần phải học, trong ứng dụng này thì khái niệm chính là các từ vựng tiếng Anh. Đối với mỗi khái niệm, người dùng sẽ được học, sau đó làm các bài tập liên quan đến khái niệm đó. Các khái niệm có sự liên quan với nhau sẽ được nhóm vào cùng một chủ đề.
Trong ứng dụng này, chúng tôi chia các từ vựng thành 5 chủ đề: Food and drink, Animals, Health, Transport, People. Trong đó, mỗi chủ đề sẽ bao gồm một số chủ đề con. Trong các chủ đề con là các từ vựng thuộc mức khái niệm. Dưới đây là hình mô tả mô hình nội dung học bao gồm 5 chủ đề chính như đã nói.
Hình 3.4. Mô hình cây nội dung
3.2.4.Phân tích thiết kế hệ thống a. Phân tích chức năng hệ thống
Xác định các Actor và Use Case
Actor
- Người dùng
- Webservice
Use Case Một số use case:
- Đăng ký tài khoản.
- Đăng nhập vào ứng dụng khi đã có tài khoản.
- Đăng xuất khỏi ứng dụng.
- Thay đổi thông tin người dùng.
- Thay đổi mật khẩu.
- Học từ vựng theo chủ đề.
- Lựa chọn ngữ cảnh.
- Học từ vựng theo ngữ cảnh.
- Làm bài test đầu vào.
- Làm bài test sau mỗi bài học.
- Cập nhật độ khó của từ.
- Cập nhật level người dùng.
Xây dựng biểu đồ Use Case cho toàn hệ thống
Hình 3.5. Biểu đồ Use Case toàn hệ thống
Đặc tả danh sách các Use Case
Use Case đăng ký
- Mục đích: Cho phép người dùng đăng ký tài khoản mới khi lần đầu tiên sử dụng ứng dụng.
- Tác nhân: Người dùng ứng dụng/Webservice.
- Điều kiện trước: Người dùng phải có kết nối internet để sử dụng ứng dụng.
- Điều kiện sau: Tạo tài khoản mới cho người dùng nếu đăng ký thành công, thông báo không đăng ký được nếu xảy ra lỗi.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Khởi động chương trình, lựa chọn chức năng đăng ký tài khoản.
3. Nhập các thông tin cần thiết vào form đăng ký và nhấn nút đăng ký.
2. Hiển thị màn hình đăng ký.
4a. Tạo tài khoản mới cho người dùng, lưu vào cơ sở dữ liệu, đăng nhập vào ứng dụng với tên truy cập vừa đăng ký.
- Luồng thay thế
Người dùng Hệ thống
4b. Nếu tên đăng nhập đã tồn tại thì đưa ra thông báo và yêu cầu người dùng lựa chọn lại tên đăng nhập khác.
Use Case đăng nhập
- Mục đích: Cho phép người dùng đăng nhập vào và sử dụng ứng dụng đối với người dùng đã đăng ký tài khoản.
- Tác nhân: Người dùng ứng dụng/Webservice.
- Điều kiện trước: Người dùng phải có kết nối internet để sử dụng ứng dụng, phải có tài khoản đăng nhập vào ứng dụng.
- Điều kiện sau: Người dùng được xác thực, các chức năng của ứng dụng sẽ được hiển thị theo quyền của người dùng thông qua tên đăng nhập.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chức năng đăng nhập.
3. Nhập tên đăng nhập và mật khẩu vào form đăng nhập, sau đó nhấn nút đăng nhập.
2. Hiển thị màn hình đăng nhập.
4a. Xác thực người dùng qua tên đăng nhập và mật khẩu; hiển thị màn hình chính với các chức năng tương ứng với người dùng.
- Luồng thay thế
Người dùng Hệ thống
4b. Nếu tên đăng nhập hoặc mật khẩu không đúng, đưa ra thông báo và yêu cầu người dùng nhập lại.
Use Case đăng xuất
- Mục đích: Cho phép người dùng đăng xuất khỏi ứng dụng khi muốn hoặc không sử dụng nữa.
- Tác nhân: Người dùng ứng dụng/Webservice.
- Điều kiện trước: Người dùng phải có kết nối internet và đã đăng nhập trước đó.
- Điều kiện sau: Người dùng được thoát khỏi ứng dụng với tư cách thành viên.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chức năng đăng xuất.
3a. Người dùng lựa chọn đăng xuất
2. Hiển thị màn hình xác nhận có đăng xuất hay không.
4a. Đăng xuất khỏi ứng dụng với tên người dùng đó.
- Luồng thay thế
Người dùng Hệ thống
3b. Người dùng lựa chọn không đăng xuất.
4b. Trở lại màn hình cũ với tên đăng nhập đó.
Use Case đổi thông tin
- Mục đích: Cho phép người dùng thay đổi thông tin cá nhân của mình.
- Tác nhân: Người dùng ứng dụng/Webservice.
- Điều kiện trước: Người dùng phải có kết nối internet và đã đăng nhập vào ứng dụng trước đó.
- Điều kiện sau: Thông tin của người dùng được thay đổi.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chức năng thay đổi thông tin.
3. Người dùng thay đổi thông tin và nhấn nút lưu lại.
2. Hiển thị màn hình cho phép người dùng thay đổi thông tin cá nhân.
4. Hệ thống cập nhật lại thông tin của người dùng vào cơ sở dữ liệu và hiển thị lại thông tin mới đó cho người dùng.
- Luồng thay thế: không có.
Use Case đổi mật khẩu
- Mục đích: Cho phép người dùng thay đổi mật khẩu tài khoản đăng nhập.
- Tác nhân: Người dùng ứng dụng/Webservice.
- Điều kiện trước: Người dùng phải có kết nối internet và đã đăng nhập vào ứng dụng trước đó.
- Điều kiện sau: Mật khẩu đăng nhập của tài khoản được thay đổi và sử dụng cho những lần đăng nhập sau.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chức năng thay đổi mật khẩu.
3. Người dùng nhập mật khẩu mới và xác nhận lại mật khẩu mới, sau đó nhấn thay đổi.
2. Hiển thị form đổi mật khẩu.
4a. Cập nhật lại mật khẩu mới cho tên đăng nhập đó, thông báo thay đổi thành công.
- Luồng thay thế
Người dùng Hệ thống
4b. Nếu mật khẩu mới và mật khẩu xác nhận không trùng khớp với nhau thì đưa ra thông báo lỗi, yêu cầu người dùng nhập lại.
Use Case làm bài test đầu vào
- Mục đích: Cho phép người dùng thực hiện bài test đầu vào khi lần đầu tiên đăng nhập vào ứng dụng.
- Tác nhân: Người dùng ứng dụng.
- Điều kiện trước: Người dùng phải có kết nối internet và đó là lần đăng nhập đầu tiên của người dùng vào ứng dụng.
- Điều kiện sau: Người dùng được thông báo kết quả bài test và bắt đầu học trên ứng dụng; bước đầu đánh giá được level người dùng dựa trên kết quả test.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn làm bài test đầu vào.
3. Người dùng thực hiện bài test.
2. Hiển thị bài test cho phép người dùng làm.
4. Tính điểm và hiển thị kết quả cho người dùng. Hệ thống sử dụng điểm này để đánh giá level người dùng bước đầu.
- Luồng thay thế: không có.
Use Case làm bài test sau mỗi lần học
- Mục đích: Cho phép người dùng thực hiện bài test sau mỗi lần học để củng cố lại kiến thức.
- Tác nhân: Người dùng ứng dụng.
- Điều kiện trước: Người dùng đã thực hiện bài học.
- Điều kiện sau: Người dùng được thông báo kết quả bài kiểm tra, từ đó biết được mức độ học của mình đến đâu.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chức năng làm bài test.
3. Người dùng thực hiện bài test.
2. Hiển thị bài test cho người dùng làm.
4. Hệ thống tính điểm và hiển thị kết quả cho người dùng; đồng thời kết quả này cũng được sử dụng để đánh giá lại level người dùng.
- Luồng thay thế: không có.
Use Case học theo chủ đề
- Mục đích: Cho phép người dùng có thể học từ theo từng chủ đề mà không cần có tài khoản, không cần đăng nhập vào ứng dụng.
- Tác nhân: Người dùng ứng dụng.
- Điều kiện trước: Người dùng ứng dụng phải có kết nối internet.
- Điều kiện sau: Không có.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn chủ đề để học.
2. Hiển thị các câu hỏi theo chủ đề để người dùng học từ thông qua các câu hỏi đó.
- Luồng thay thế: không có.
Use Case lựa chọn ngữ cảnh
- Mục đích: Cho phép người dùng lựa chọn ngữ cảnh (thời gian học, địa điểm học, mức độ tập trung học) để bắt đầu bài học một cách phù hợp nhất.
- Tác nhân: Người dùng ứng dụng.
- Điều kiện trước: Người dùng lựa chọn hình thức học theo ngữ cảnh.
- Điều kiện sau: Người dùng được bắt đầu việc học thích nghi theo ngữ cảnh.
- Luồng sự kiện chính:
Người dùng Hệ thống
1. Lựa chọn học theo ngữ cảnh.
3. Người dùng chọn ngữ cảnh và nhấn nút tiếp theo.
2. Hiển thị màn hình cho phép người dùng lựa chọn ngữ cảnh.
4. Hệ thống cập nhật ngữ cảnh của người dùng.
- Luồng thay thế: không có.
Use Case học thích nghi theo ngữ cảnh
- Mục đích: Cho phép người dùng học từ vựng theo phương pháp học thích nghi.
- Tác nhân: Người dùng ứng dụng.
- Điều kiện trước: Người dùng đã lựa chọn ngữ cảnh.
- Điều kiện sau: không có.
- Luồng sự kiện chính:
Người dùng Hệ thống
2. Người dùng học thông qua việc trả lời các câu hỏi hệ thống đưa ra.
1. Hệ thống hiển thị các câu hỏi để người dùng học từ thông qua các câu hỏi. (Số lượng từ và độ khó của từ sẽ phụ thuộc vào ngữ cảnh của người dung. Hệ thống sử dụng các luật như trong bảng 3.6 để đưa ra số lượng từ với độ khó phù hợp.)
- Luồng thay thế: không có.
Use Case cập nhật độ khó của từ
- Mục đích: Cho phép hệ thống cập nhật lại độ khó của từ dựa trên kết quả học của nhiều người dùng.
- Tác nhân: Webservice.
- Điều kiện trước: Đã có một số lượng người dùng nhất định thực hiện việc học từ trên ứng dụng, việc cập nhật này được thực hiện trong khoảng thời gian định kỳ.
- Điều kiện sau: Độ khó của từ được thay đổi cho phù hợp.
- Luồng sự kiện chính:
Người dùng Hệ thống
Đánh giá lại độ khó của từ và cập nhật vào cơ sở dữ liệu; đồng thời xóa những dữ liệu của người dùng liên quan đến những từ được cập nhật độ khó.
- Luồng thay thế: không có
Use Case cập nhật level người dùng
- Mục đích: Cho phép hệ thống cập nhật lại level của người dùng thông qua quá trình sử dụng ứng dụng.
- Tác nhân: Webservice.
- Điều kiện trước: Người dùng đã sử dụng ứng dụng.
- Điều kiện sau: Trình độ của người dùng được điều chỉnh phù hợp.
- Luồng sự kiện chính:
Người dùng Hệ thống
Hệ thống dựa vào các kết quả thực hiện bài test của người dùng để đánh giá lại trình độ của người dùng.
- Luồng thay thế: không có.
b. Thiết kế một số giao diện chính của ứng dụng
Giao diện màn hình đăng ký
Hình 3.7. Màn hình đăng ký không thành công
Khi truy cập lần đầu vào ứng dụng, người dùng sẽ được yêu cầu đăng ký một tài khoản để tham gia vào khóa học. Người dùng sẽ phải nhập một số thông tin cá nhân cần thiết như tên đăng nhập (User Name), họ tên đầy đủ (Full name), ngày tháng năm sinh (birthday), giới tính (sex), số điện thoại (Phone number), mật khẩu truy cập (Password). Sau khi nhập xong những thông tin trên, người dùng bấm nút register để thực hiện đăng ký tài khoản. Nếu đăng ký thành công, người dùng sẽ được đăng nhập vào ứng dụng và thực hiện bài test đầu vào như hình 3.10 bên dưới. Nếu tên đăng nhập mà người dùng vừa nhập vào bị trùng với tên đăng nhập của người dùng trước đó thì Hình 3.7. Màn hình đăng ký không
thành công Hình 3.6. Màn hình đăng ký tài khoản
ứng dụng sẽ đưa ra thông báo và yêu cầu người dùng thực hiện đăng ký lại.
Giao diện màn hình đăng nhập
Nếu người dùng đã có tài khoản, người dùng sẽ phải đăng nhập vào ứng dụng bằng tên đăng nhập và mật khẩu mà họ đã đăng ký. Việc đăng nhập thành công khi tên đăng nhập và mật khẩu đăng nhập là đúng, khi đó ứng dụng sẽ hiển thị lên màn hình chính bao gồm các chủ đề cho người dùng lựa chọn như hình 3.11 bên dưới. Nếu người dùng nhập tên tài khoản hoặc mật khẩu không chính xác thì hệ thống đưa ra thông báo lỗi và yêu cầu đăng nhập lại.
Hình 3.9. Màn hình đăng nhập không thành công
Hình 3.8. Màn hình đăng nhập thành công