4.1.1 Biểu đồ ngữ cảnh hệ thống
Do trong khuôn khổ khóa luận , nội dung và các ngữ liệu học tập không nhiều do vậy ta tạm thời xây dựng hệ thống với Hệ thống cung cấp dịch vụ nhận thêm chức năng cung cấp nội dung. Với nội dung được lưu vào database.
Mô hình gồm 2 thành phần chính đó là Client chạy trên máy di động người dùng và Server cung cấp dịch vụ. Client cung cấp giao diện tương tác và thu thập thông tin ngữ
cảnh và gửi lên server. Server chịu trách nhiệm xử lý thông tin và xuất nội dung về cho client. NHÀ CUNG CẤP NỘI DUNG 0 HỆ THỐNG CUNG CẤP DỊCH VỤ NGƯỜI SỬ DỤNG Thông tin ngữcảnh Ngữliệu học tập Thông tin điều khiển
Yêu cầu
Nội dung yêu cầu
33
4.1.2 Biểu đồ phân rã chức năng
4.1.3 Chức năng chi tiết hệ thống
4.1.3.1 Đăng nhập và đăng ký
Như ta đã nói ở trên, với mục tiêu người dùng là trung tâm và thông tin về người dùng là thông tin quan trọng trong quá trình xác định ngữ cảnh cũng như nội dung bài học. Do vậy, quá trình đăng ký thông tin người sử dụng và quá trình đăng nhập chính là quá trình thu thập thông tin do người dùng cung cấp và quá trình xác nhận lại thông tin đó nếu người dùng sử dụng dịch vụ lần sau.
Quá trình đăng nhập yêu cầu tên đầy đủ của người dùng, tên đăng nhập, mật khẩu truy cập, tuổi tác, giới tính. Khi đăng nhập cần sử dụng tên đăng nhập và mật khẩu.
4.1.3.2 Xây dựng nội dung bài học theo người dùng
Chức năng xây dựng nội dung bài học theo người dùng thực hiện thu thập từng thông tin về vị trí hiện tại của người dùng ( ở đây ta coi như vị trí hiện tại là một trường hợp đặc biệt của một mô hình ngữ cảnh trong thực tế ) đồng thời thêm các yêu cầu của người dùng từđó xác định ra nội dung cần hiển thị.
Do thời gian và công nghệ có hạn nên khóa luận chưa thể ứng dụng trực tiếp phương pháp xác định tọa độ A-GPS vào thực nghiệm để đoán nhận vị trí người dùng
5.Trợ giúp
HỆ THỐNG CUNG CẤP DỊCH VỤ
1.Đăng nhập, đăng ký 2.Xây dựng nội dung 3.Tìm kiếm 4.Loại bỏ bài học
1.1 Đăng nhập
1.2 Đăng ký
4.1 Loại bỏ
4.2 Khôi phục
34
được, và thay vào đó là ta sẽ nhận thông tin đó từ người sử dụng cung cấp bằng các thao tác chọn locaction cho bài học.
Nội dung được xây dựng theo tiêu chí : thông tin người dùng (tuổi tác, giới tính ), vị trí hiện tại, lịch sử các lần học trước, thời gian mà người học có thể bỏ ra để học bài học này.
Sau mỗi lần xây dựng nội dung bài học cho người học, hệ thống sẽ ghi nhận lại bài học này trong cơ sở dữ liệu để sử dụng tiếp cho lần sau. Nếu lần sau người học yêu cầu nôi dung đó thì hệ thống sẽ xem xét xem nội dung đó người học đã học nhiều chưa, đã thành thục chưa, nếu là thành thục rồi thì sẽ không đưa nội dung đó vào bài học nữa.
4.1.3.3 Tìm kiếm bài học theo vị trí
Do có thể rất nhiều địa điểm khác nhau nên rất khó để tìm một vị trí cố định nào
đó. Do vậy chức năng tìm kiếm thực hiện tìm kiếm trong cơ sở dữ liệu các vị trí phù hợp để người sử dụng lựa chọn.
4.1.3.4 Loại bỏ bài học đã học
Trong quá trình học tập thì có những bài học mà người học cảm thấy mình đã khá thành thục rồi nên không cần học nưa. Do vậy chương trình cung cấp chức năng loại bỏ những bài học mà học viên đã học kỹ rồi. Khi đã loại bỏ bài học này thì từđó về
sau, bài học bị loại bỏ sẽ ko bao giờ được cung cấp lại cho người học nữa. Bên cạnh
đó, nếu người học muốn học lại các bài học mà mình đã bỏ qua thì chương trình có thêm chức năng khôi phục lại hiện trạng các bài học ban đầu. Tất cả các bài học bị loại bỏ sẽ khôi phục và sẽđươc đưa cho người sử dụng.
4.1.3.5 Trợ giúp
Đối với người mới sử dụng thì các chức năng, cách thức hoạt động của dịch vụ và cách sử dụng dịch vụ có thể là mới. Do vây, phần trợ giúp sẽ cung cấp thông tin chương trình và hướng dẫn sử dụng để có thể hỗ trợ việc sử dụng chương trình của người dùng.
35
4.1.4 Cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống bao gồm tất cả các thông tin về tài khoản người dùng, quá trình học tập của người dùng, các nội dung để xây dựng lên bài học tiếng anh( Do
ởđây nhà cung cấp dịch vụ sẽ kiêm cung cấp nội dung nên cơ sở dữ liệu của bên cung cấp dịch vụ sẽ bao gồm cả nội dung bài học). Dữ liệu được quản lý bằng hệ quản trị cơ
sở dữ liệu MYSQL.
Cơ sở dữ liệu gồm có các bảng :
Context_members (uname, pword, name, sex, age) Context_group(gr_id, gr_name)
Context_name(name_id, ct_name, gr_id)
Context_detail(ct_id, name_id, ct_viet_conver, ct_eng_conver, sex, age, time, rank)
Context_session_element(element_id, record_id, ct_id)
Context_session_records(record_id, record_time, uname, name_id, session_time) Context_exception( uname, ct_id )
36
4.1.4.1 Biểu đồ dữ liệu
Hình 4.1-3 Biểu đồ dữ liệu
4.1.4.2 Cơ sở dữ liệu chi tiết
CONTEXT_MEMBERS
(Lưu trữ thông tin người dùng)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
uname varchar(100) Khóa chính Tên đăng nhập của người dùng
pword varchar(100) Mật khẩu người dùng
name varchar(200) Tên đầy đủ của người dùng
sex int(11) Giới tính
37
CONTEXT_GROUP
(Mô tả thông tên về một nhóm các ngữ cảnh nào đó)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
gr_id int(11) Khóa chính Mã của nhóm các ngữ cảnh
gr_name varchar(200) Tên của nhóm ngữ cảnh
CONTEXT_NAME
(Mô tả một ngữ cảnh)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
name_id int(11) Khóa chính Mã của ngữ cảnh
ct_name varchar(200) Tên của ngữ cảnh
gr_id int(11) Khóa ngoài Mã nhóm ngữ cảnh
CONTEXT_DETAIL
(Lưu trữ về nội dung cấu thành lên 1 bài học trong một ngữ cảnh xác đinh)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
ct_id int(11) Khóa chính Mã của nội dung chia tiết
name_id int(11) Khóa ngoài Mã của ngữ cảnh
ct_viet_conver varchar(300) Nội dung bài học ( Tiếng Việt)
ct_eng_conver varchar(300) Nội dung bài học (Tiếng Anh)
sex int(11) Giới tính bài học hướng dến
age int(11) Độ tuổi mà bài học hướng đến
time int(11( Thời gian ( sáng , chiều, tối)
38
CONTEXT_SESSION_ELEMENT
(Mô tả chi tiết nội dung bài học trong một record)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
element_id int(11) Khóa chính Mã của một element
record_id int(11) Khóa ngoài context_session_records(record_id)
ct_id int(10) Khóa ngoài context_detail(ct_id)
CONTEXT_SESSION_RECORDS
(Lưu trữ thông tin về một phiên học của người sử dụng, lưu trũ thời gian, và nội dung đã học của người đùng)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
record_id int(11) Khóa chính Mã của một bản ghi
record_time datetime Thời gian lưu
uname varchar(100) Khóa ngoài context_members(uname)
name_id int(11) Khóa ngoài context_name(name_id)
session_time int(10) Lượng thời gian dùng để học
CONTEXT_EXCEPTION
(Tập hợp các nội dung mà người dùng loại bỏ trong quá trình học)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
uname varchar(100) Khóa chính, ngoài ref context_members(uname)
39
4.1.5 Luồng xử lý phía client
40
4.2 Cài đặt
4.2.1 Yêu cầu phần cứng và phần mềm
Đối với client phải là dòng máy hỗ trợ Java và hỗ trợ kết nối mạng.
Đối với server
Phần cứng phải đáp ứng cấu hình để có thể chạy các ứng dụng java và server.
Phần mềm : Netbean, thư viện kết nối cơ sở dữ liệu (MySQL JDBC), hệ quản trị cơ sở
dữ liệu MySQL, SunGlassFish Server 3.
4.2.2 Client
Client được cài đặt trên điện thoại có hỗ trợ java với cấu hình CLDC 1.1 và MIDP 2.0 trở lên . Trong khóa luận này ta chạy ứng dụng client trên một bộ mô phỏng (emulator) có sẵn trên netbean 6.7 . Ứng dụng gồm có 2 gói chính : gói hello và gói newwebserviceservice
4.2.2.1 Gói hello
Gói Hello gồm 1 lớp HelloMIDlet duy nhất. Lớp được kế thừa từ lớp MIDlet bao gồm tất cả các tính năng chính của chương trình như : tìm kiếm, xây dựng nội dung.. và hiển thị nội dung bài học.
4.2.2.2 Gói newwebserviceservice
Gói newwebserviceservice chứa các lớp NewWebServiceService và
NewWebServiceService_Stub.
Lớp NewWebServiceService là lớp khai báo các phương thức được cung cấp bởi Webservice.
Lớp NewWebServiceService_Stub là lớp kế thừa lớp NewWebServiceService
trong đó nó mô tả chi tiết các phương thức đã khai báo trong lớp
NewWebServiceService. Các phương thức này có thể coi như một bản sao của các phương thức được thực hiện trên server. Tuy nhiên thay vì chạy trên client thì khi
client gọi phương thức này, nó sẽ dựa trên các mô tả trong tập tin
NewWebServiceService.wsdl và giao thức SOAP để gửi thông tin (các biến, tham số) lên server và nhờ server chạy giúp và trả về kết quả cũng theo định dạng xml.
41
4.2.3 Server
Trên server cung cấp service bao gồm 2 lớp chính :
Lớp GetMysqlConnection chịu trách nhiệm kết nối với hệ quản trị cơ sở dữ liệu
thông qua thư viện MYSQL JDBC.
Lớp NewWebService bao gồm các phương thức minh họa cho các Operator mà
webservice cung cấp cho client gọi. Nó bao gồm một số phương thức sau :
addContextException : đưa một nội dung nào đó vào danh sách các nội dung học mà người học đã học kỹ, hoặc không muốn học nữa.
addUser : thêm một người sử dụng vào hệ thống
checkLogin : kiểm tra xem tên đăng nhập và mật khẩu có phù hợp để đăng nhập vào hệ thống không
clearAllException : Phục hồi lại tất cả các nội dung học đã xóa.
findName : tìm địa điểm theo tên
getNameOfUser : Lấy tên đầy đủ của người dùng
getCtNameByWidthCondition : lấy ra nội dung phù hợp theo một điều kiện nào
đó
Ngoài ra còn một số các phương thức khác nhằm cung cấp thông tin chi tiết khi client muốn truy vấn.
4.2.3.1 Kịch bản và giao diện ứng dụng trên client.
Client được chạy trên emulator mặc định được tích hợp trong Netbean 6.7 với CLDC 1.1 và MIDP 2.0.
Khi bắt đầu vào chương trình sẽ hiện ra một màn hình đăng nhập gồm tên đăng nhập và mật khẩu để người dùng nhập tên đăng nhập và mật khẩu của mình. Nếu tên
đăng nhập đúng thì chuyển về màn hình hiển thị các vị trí để người dùng lựa chọn. Nếu tên đăng nhập hoặc mật khẩu sai thì sẽ xuất hiện thông báo là tên đăng nhập và mật khẩu không đúng.
42
Hình 4.2-1 Màn hình đăng nhập và màn hình thông báo đăng nhập lỗi
Nếu đây là lần đầu tiên và người sử dụng chưa có tài khoản thì sẽ phải đăng ký một tài khoản. Đểđăng ký tài khoản thì người sử dụng chọn Menu và chọn đăng ký ở
màn hình đăng nhập. Lúc này màn hình đăng ký hiện ra với các ô textfield để người dùng nhập thông tin về Họ tên, tên đăng nhập, mật khẩu, tuổi tác và giới tính. Khi nhấn vào command ‘Đăng ký’ chương trình sẽ gửi thông tin tới server yêu cầu đăng ký người dùng vào hệ thống. Nếu đăng ký thành công màn hình sẽ chuyển về màn hình chứa các vị trí để người dùng lựa chọn. Tương tự như khi đăng nhập thành công. Nếu trong quá trình đăng ký lỗi xảy ra lỗi khác hoặc người dùng chưa điền đầy đủ thông tin thì sẽ hiện ra thông báo lỗi.
43
Màn hình ‘Nhóm lĩnh vực’ sẽ hiển thị danh sách các lĩnh vực mà người sử dụng cần học. Trong ứng dụng thí nghiệm này nội dung bao gồm các câu nói thông dụng hoặc giải trí hoặc mua sắm hoặc sức khỏe. Người dùng có thể chọn trực tiếp 1 trong các lĩnh vực hoặc là nhập các chữ cái đầu của lĩnh vực vần tìm vào ô textfield. Chương trình sẽ tựđộng lọc cho bạn. Sau khi chọn lĩnh vực, màn hình sẽ chuyển tiếp sang màn hình chứa danh sách các ngữ cảnh ( các địa điểm ) mà có nội dung trong lĩnh vực đó.
Hình 4.2-3 Màn hình hiển thị nhóm lĩnh vực và màn hình hiển thịđịa điểm thuộc lĩnh vực đó
Sau khi chọn xong ngữ cảnh chương trình sẽ hiện ra màn hình hỏi xem bạn sẽ dùng bao nhiêu thời gian cho bài học này. Chương trình có 3 tùy chọn là 5 phút, 10 phút và xem hết. Nếu thời gian xem ngắn thì nội dung bài học càng cô đọng xúc tích, còn nếu thời gian dài hơn thì nội dung sẽ tăng lên, phong phú hơn, khó hơn.
44
Hình 4.2-4 Màn hình hỏi thời gian dành cho bài học và màn hình hiển thị nội dung chi tiết bài học
Sau khi chọn xong thời gian xem thì chương trình sẽ đưa ra nội dung bài học cụ
thể. Trong mô hình thực tế này, ta chọn nội dung đơn giản là những câu giao tiếp trong
đời sống, tương tự như hình trên.
Nếu người học muốn loại bỏ những câu mà người học cảm thấy đã quá quen thuộc thì người học có thể chọn “Menu -> Loại bỏ”. Chương trình sẽ đưa ra một cảnh báo với thông tin rằng các câu đã chọn sẽ bị loại khỏi nội dung đào tạo nếu người học chọn loại bỏ.
Còn nếu người học muốn học lại những nội dung đã loại bỏ từ trước thì có thể chọn “Menu Æ Xóa bỏ ngoại lệ”. Tất cả nội dung mà đã loại bỏ từ trước sẽ trở lại trạng thái ban đầu.
45
Hình 4.2-5 Màn hình hiển thị thông báo confirm loại bỏ bài học và màn hình thông báo khôi phục lại bài học
Mặt khác, nếu người sử dụng muốn tìm kiếm theo địa điểm (ngữ cảnh ) thì tại menu chọn tìm kiếm. Màn hình tìm kiếm hiển thị ô nhập nội dung địa điểm cần tìm. Nếu có kết quả thì chương trình sẽđưa ra danh sách các kết quảđể người sử dụng lựa chọn. Nếu không có kết quả chương trình sẽđưa ra thông báo rằng không có địa điểm trong cơ sở dữ liệu. Các màn hình hiển thị nội dung chi tiết tương tự như hình dưới.
46
Hình 4.2-7 Màn hình hiển thị nội dung chi tiết bài học tìm được và hướng dẫn sử dụng
Màn hình trợ giúp chỉ hiển thị nếu người sử dụng đang ở màn hình đầu tiên( tức là màn hình đăng nhập ). Khi người dùng chọn “Menu Æ Trợ giúp”.
4.3 Thử nghiệm
4.3.1 Dữ liệu thử nghiệm
Tên Tuổi Giới tính
Thanh Niên 23 Nam
Cụ Già 60 Nữ
Bảng 4-1 Dữ liệu thử nghiệm
Trong dữ liệu thử nghiệm ta sử dụng dữ liệu có sự khác biệt cơ bản để kiểm chứng các tính năng của chương trình. Mục đích của cuộc thử nghiệm là cho thấy được sự khác nhau giữa nội dung bài học trả về đối với mỗi người dùng, mỗi ngữ cảnh và sau mỗi lần học tập.
47
4.3.2 Kết quả thử nghiệm
Người học : Thanh niên
Lần xem : 1
Ngữ cảnh : Đi xem phim
Thời gian : 5 phút
Số kết quả trả về : 2
Người học : Cụ già
Lần xem : 1
Ngữ cảnh : Đi xem phim
Thời gian : 5 phút
Số kết quả trả về : 2
Người học : Thanh niên
Lần xem : 2 Ngữ cảnh : Trong bệnh viện Thời gian : 5 phút Số kết quả trả về : 6 Người học : Cụ già Lần xem : 2 Ngữ cảnh : Trong bệnh viện Thời gian : 5 phút Số kết quả trả về : 8
48
Người học : Thanh niên
Lần xem : 3 Ngữ cảnh : Trong bệnh viện Thời gian : 10 phút Số kết quả trả về : 11 Người học : Cụ già Lần xem : 3 Ngữ cảnh : Trong bệnh viện Thời gian :10 phút Số kết quả trả về : 10
Người học : Thanh niên
Lần xem : 7 Ngữ cảnh : Trong bệnh viện Thời gian : 10 phút Số kết quả trả về : 5 Người học : Cụ già Lần xem : 7 Ngữ cảnh : Trong bệnh viện Thời gian :10 phút Số kết quả trả về : 6
49
4.3.3 Nhận xét
Như kết quả trên ta thấy với mỗi lần học nội dung bài học đều thay đổi tương ứng với các thay đổi của ngữ cảnh. Ngay kể cả lần đầu tiên sử dụng, nội dung là bài học giữa ‘Thanh niên’ và ‘Cụ già’ là giống nhau tuy nhiên là cách hiển thị có khác đi, do người già nên màn hình hiển thị bài học với font chữ lớn hơn bình thương.
Hoặc trong lần thứ 2 học của cả ‘Thanh niên’ và ‘Cụ già’ trong cùng hoàn cảnh là trong bệnh viện tuy nhiên kết quả là có sai khác nhau. Và sai khác cả với nội dung bài học lần 1. Tương tự với lần học thứ 3 tuy nhiên lần 3 ta thử ngiệm với thời gian học lâu hơn ta thấy nội dung của bài học được tăng lên. Cụ thể là đối với ‘Thanh niên’