5. BỐ CỤC ĐỀ TÀI
2.2 PHÂN TÍCH HỆ THỐNG VỀ CHỨC NĂNG
2.2.1 Sơ đồ phân rã chức năng
Hình 2.1 Sơ đồ phân rã chức năng
2.2.2 Sơ đồ ngữ cảnh
2.2.3 Sơ đồ dòng dữ liệu mức đỉnh
Hình 2.3 Sơ đồ dòng dữ liệu mức đỉnh
2.2.4 Biểu đồ Activity
a. Học tiếng Nhật
b. Luyện tập
Hình 2.5 Biểu đồ Activity “Luyện tập”
c. Tải dữ liệu từ Web API
d. Tìm kiếm
Hình 2.7 Biểu đồ Activity “Tìm kiếm”
e. Đăng ký Google Cloud Messaging
2.2.5 Một số kịch bản đa sử dụng
a. Chức năng học tiếng Nhật
Tên chức năng Học tiếng Nhật Tác nhân Người dùng
Mô tả Chức năng này cho phép người dùng học tiếng Nhật. Điều kiện ban đầu Không có
Luồng sự kiện chính:
1. Hệ thống sẽ hiện ra danh sách các bài học. 2. Người dùng chọn bài học muốn học.
3. Hệ thống sẽ hiện ra nội dung bài học mà người dùng chọn.
Ngoại lệ: Người dùng có thể chọn bài học khác bằng cách bấm nút menu
Bảng 2.1 Kịch bản sử dụng chức năng học tiếng Nhật
b. Chức năng luyện tập
Tên chức năng Luyện tập Tác nhân Người dùng
Mô tả Chức năng này cho phép người dùng luyện tập.
Điều kiện ban đầu Không có
Luồng sự kiện chính:
1. Hệ thống sẽ hiện ra danh sách các bài luyện tập. 2. Người dùng chọn bài luyện tập muốn luyện tập.
3. Hệ thống sẽ hiện ra bài luyện tập mà người dùng chọn.
Ngoại lệ: Người dùng có thể chọn bài học khác bằng cách bấm nút menu
c. Chức năng tìm kiếm
Tên chức năng Tìm kiếm Tác nhân Người dùng
Mô tả Chức năng này cho phép người dùng tìm kiếm từ.
Điều kiện ban đầu Không có
Luồng sự kiện chính:
1. Người dùng nhập vào từ cần tìm.
2. Hệ thống sẽ xử lý và hiển thị kết quả ra màn hình.
Bảng 2.3 Kịch bản sử dụng chức năng tìm kiếm
2.3 PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 2.3.1 Sơ đồ thực thể liên kết (ERD) 2.3.1 Sơ đồ thực thể liên kết (ERD)
2.3.2 Sơ đồ quan hệ dữ liệu
Hình 2.10 Sơ đồ quan hệ dữ liệu
2.3.3 Các lược đồ quan hệ
a. Lesson
Lược đồ quan hệ:
Lesson (LessonID, LessonName, Description) Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: LessonID là khóa chính - Toàn vẹn tham chiếu:
Thuộc tính Ý nghĩa Kiểu dữ liệu Kích thước Giá trị
duy nhất Null LessonID Mã bài học Int 11 x
LessonName Tên bài học Varchar 40
Description Mô tả Varchar 40 x
Phụ thuộc hàm: LessonID LessonName, Description Dạng chuẩn: Boyce-Codd.
b. Vocabulary
Lược đồ quan hệ:
Vocabulary (VocabularyID, LessonID, Word, Meaning, Description, SoundUrl, ImageUrl, SoundFile, ImageFile)
Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: VocabularyID là khóa chính
- Toàn vẹn tham chiếu: Thuộc tính LessonID của quan hệ Vocabulary là khóa ngoại tham chiếu đến khóa chính LessonID của quan hệ Lesson.
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ liệu Kích thước Giá trị duy nhất Null VocabularyID Mã từ vựng Int 11 x
LessonID Mã bài học Int 11 Word Từ vựng Varchar 100 Meaning Nghĩa từ vựng Varchar 100
SoundUrl Link âm thanh Varchar 100 ImageUrl Link hình ảnh Varchar 100 SoundFile Tên âm thanh Varchar 10 ImageFile Tên hình ảnh Varchar 10
Phụ thuộc hàm:
VocabularyID LessonID, Word, Meaning, Description, SoundUrl, ImageUrl, SoundFile, ImageFile
Dạng chuẩn: Boyce-Codd.
c. Grammar
Lược đồ quan hệ:
Grammar (GrammarID, LessonID, Title, Content) Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: GrammarID là khóa chính
- Toàn vẹn tham chiếu: Thuộc tính LessonID của quan hệ Grammar là khóa ngoại tham chiếu đến khóa chính LessonID của quan hệ Lesson.
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ
liệu Kích thước
Giá trị
duy nhất Null GrammarID Mã ngữ pháp Int 11 x
LessonID Mã bài học Int 11 Title Tiêu đề ngữ pháp Varchar 250 Content Nội dung ngữ pháp Varchar 2048
Phụ thuộc hàm: GrammarID LessonID, Title, Content Dạng chuẩn: Boyce-Codd.
d. Grammar Example
Lược đồ quan hệ:
Grammar_Example (ExampleID, GrammarID, Sentence_Jp, Sentence_Vn)
Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: ExampleID là khóa chính
- Toàn vẹn tham chiếu: GrammarID của quan hệ Grammar_Example là khóa ngoại tham chiếu đến khóa chính GrammarID của quan hệ Grammar.
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ liệu Kích thước
Giá trị
duy nhất Null ExampleID Mã ví dụ Int 11 x
GrammarID Mã ngữ pháp Int 11 Sentence_Jp Ví dụ tiếng Nhật Varchar 2048 Sentence_Vn Ví dụ tiếng Việt Varchar 2048
Phụ thuộc hàm:
ExampleID GrammarID, Sentence_Jp, Sentence_Vn Dạng chuẩn: Boyce-Codd.
e. Question
Lược đồ quan hệ:
Question (QuestionID, LessonID, PractiseTypeID, Content, QuestionTypeID, Answer1, Answer2, Answer3, Answer4, CorrectAnswer)
- Toàn vẹn thực thể: QuestionID là khóa chính - Toàn vẹn tham chiếu:
+ Thuộc tính LessonID của quan hệ Question là khóa ngoại tham chiếu đến khóa chính LessonID của quan hệ Lesson.
+ Thuộc tính PractiseTypeID của quan hệ Question là khóa ngoại tham chiếu đến khóa chính PractiseTypeID của quan hệ PractiseType.
+ Thuộc tính QuestionTypeID của quan hệ Question là khóa ngoại tham chiếu đến khóa chính QuestionTypeID của quan hệ QuestionType.
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ liệu
Kích thước
Giá trị
duy nhất Null QuestionID Mã câu hỏi Int 11 x
LessonID Mã bài học Int 11 PractiseTypeID Mã loại luyện tập Int 11 QuestionTypeID Mã loại câu hỏi Int 11 Content Nội dung câu hỏi Int 350 Answer1 Đáp án 1 Varchar 150 Answer2 Đáp án 2 Varchar 150 Answer3 Đáp án 3 Varchar 150 Answer4 Đáp án 4 Varchar 150 CorrectAnswer Đáp án đúng Varchar 150 Phụ thuộc hàm:
QuestionID QuestionTypeID, PractiseTypeID, LessonID, Content, Answer1, Answer2, Answer3, Answer4, CorrectAnswer
Dạng chuẩn: Boyce-Codd.
f. Practise Type
Lược đồ quan hệ:
PractiseType (PractiseTypeID, PractiseTypeName) Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: PractiseTypeID là khóa chính - Toàn vẹn tham chiếu:
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ liệu
Kích thước
Giá trị
duy nhất Null PractiseTypeID Mã loại luyện tập Int 11 x
PractiseTypeName Tên loại luyện tập Varchar 100
Phụ thuộc hàm:
PractiseTypeID PractiseTypeName Dạng chuẩn: Boyce-Codd.
g. Question Type
Lược đồ quan hệ:
QuestionType (QuestionTypeID, QuestionTypeName) Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: QuestionTypeID là khóa chính - Toàn vẹn tham chiếu:
Thuộc tính Ý nghĩa Kiểu dữ liệu Kích thước Giá trị duy nhất Null QuestionTypeID Mã loại câu hỏi Int 11 x
QuestionTypeName Tên loại câu hỏi Varchar 100
Phụ thuộc hàm: QuestionTypeID QuestionTypeName Dạng chuẩn: Boyce-Codd.
h. GCM Users
Lược đồ quan hệ:
Gcm_Users (ID, Gcm_RegID, Created_At) Ràng buộc toàn vẹn dữ liệu
- Toàn vẹn thực thể: ID là khóa chính - Toàn vẹn tham chiếu:
- Toàn vẹn giá trị:
Thuộc tính Ý nghĩa Kiểu dữ liệu Kích thước Giá trị duy nhất Null ID Số thứ tự đăng ký Int 11 x
Gcm_RegID Mã đăng ký GCM Text Created_At Thời gian đăng ký Timestamp
Phụ thuộc hàm: ID Gcm_RegID, Created_At Dạng chuẩn: Boyce-Codd.
CHƯƠNG 3
KẾT QUẢ ĐẠT ĐƯỢC
3.1 WEBSITE QUẢN LÝ ỨNG DỤNG HỌC TIẾNG NHẬT 3.1.1 Bài học 3.1.1 Bài học
Ở trang này người quản lý có thêm mới bài học, chỉnh sửa các thông tin liên quan về bài học.
Người dùng nhập tên bài học, mô tả bài học rồi chọn nút “Add new” để nhập bài học.
Hình 3.1 Giao diện phần bài học
3.1.2 Từ vựng
Ở trang này người quản lý có thêm mới từ vựng, chỉnh sửa các thông tin liên quan về từ vựng.
Người dùng nhập mã bài học, nhập từ vựng, nhập nghĩa từ vựng, nhập file âm thanh, file hình ảnh… rồi bấm chọn nút “Add new” để thêm mới từ vựng.
Hình 3.2 Giao diện phần từ vựng
3.1.3 Ngữ pháp
Người dùng nhập mã bài học, tiêu đề ngữ pháp, nội dung ngữ pháp rồi bấm chọn nút “Add new” để thêm mới ngữ pháp.
3.1.4 Ví dụ ngữ pháp
Người dùng nhập mã ngữ pháp, ví dụ ngữ pháp tiếng Nhật, nghĩa tiếng Việt của ví dụ rồi bấm chọn nút “Add new” để thêm mới ví dụ.
Hình 3.4 Giao diện phần ngữ pháp
3.1.5 Gởi thông báo
Người dùng nhập nội dung thông báo rồi bấm chọn nút “Send” để gởi thông báo đến các thiết bị Android đã đăng ký.
3.1.6 Câu hỏi luyện tập
Ở trang này người quản lý có thể thêm mới câu hỏi luyện tập, chỉnh sửa các thông tin liên quan về câu hỏi luyện tập.
Người dùng nhập mã bài học, loại luyện tập, loại câu hỏi, các câu trả lời, đáp án đúng rồi bấm chọn nút “Add new” để thêm mới câu hỏi. Người dùng bấm chọn mã câu hỏi thì sẽ chuyển sang trang chỉnh sửa
thông tin câu hỏi luyện tập
Hình 3.6 Giao diện phần câu hỏi luyện tập
3.1.7 Web API
Ở trang này sẽ hiển thị ra cơ sở dữ liệu của ứng dụng học tiếng Nhật dưới dạng Json. Điện thoại sẽ kết nối đến API này, lấy dữ liệu xuống điện thoại.
3.2 GIAO DIỆN ỨNG DỤNG HỌC TIẾNG NHẬT TRÊN ANDROID 3.2.1 Splash screen 3.2.1 Splash screen
Hình 3.8 Màn hình Splash Screen
Ở màn hình này sẽ thực hiện các chức năng sau: Gọi API lấy chuỗi Json về, lưu vào file json.txt. Parse Json.
Tải âm thanh, hình ảnh lưu vào thẻ nhớ điện thoại Đăng ký Google Cloud Message
Gởi RegID lên Web Server
3.2.2 Menu
Ở giao diện này sẽ có năm nút chức năng chính của chương trình: Bài học, luyện tập, video, tìm kiếm, thông tin.
Hình 3.9 Giao diện menu
3.2.3 Menu bài học
Đây là màn hình menu các bài học. Khi người dùng lựa chọn bài học nào thì sẽ hiển thị ra nội dung bài học tương ứng. Có tất cả 10 bài học: hiragana, katakana, phát âm, chào hỏi cơ bản, số đếm, thời gian, từ vựng, ngữ pháp, 60 chữ Hán Tự, 70 bộ Hán Tự.
Hình 3.10 Giao diện menu bài học
3.2.4 Popup menu
Ở mỗi phần bài học, sẽ có một button menu. Nếu người dùng bấm vào button đó sẽ hiện ra một popup menu, giúp người dùng có thể chọn bài học khác nhanh mà không cần phải bấm back trở lại menu bài học.
3.2.5 Học bảng chữ cái
Giao diện học bảng chữ cái gồm có 3 tab: học bảng chữ cái, học trọc âm, học ảo âm.
Người dùng khi bấm vào chữ cái ở phía dưới sẽ hiển thị cách viết chữ cái đó lên và phát âm chữ cái đó.
Người dùng lướt màn hình để chuyển qua hàng bảng chữ cái khác.
Hình 3.12 Giao diện học bảng chữ cái
3.2.6 Học phát âm
Giao diện học phát âm tiếng Nhật gồm 3 tab: hướng dẫn cách đọc trường âm, cách đọc xúc âm và cách đọc ghép âm.
Phía dưới 3 tab là phần hướng dẫn cách phát âm.
Tiếp theo là phần ví dụ, người dùng bấm vào biểu tượng âm thanh để nghe phát âm ví dụ.
Hình 3.13 Giao diện học phát âm
3.2.7 Học chào hỏi cơ bản
Giao diện học chào hỏi gồm có danh sách các câu chào hỏi, người dùng bấm vào một câu chào hỏi thì sẽ hiển thị chữ tiếng Nhật, phiên âm và sẽ đọc câu chào hỏi đó lên.
Hình 3.14 Giao diện học chào hỏi cơ bản
3.2.8 Học số đếm
Giao diện học số đếm gồm có 3 tab: học số đếm cơ bản, học cách đếm tuổi và học cách đếm tầng.
Ở tab học số đếm, sẽ phân ra hướng dẫn học sáu loại số đếm. Người dùng bấm vào loại mình muốn học sẽ hiển thị là danh sách các số đếm của loại đó.
Hình 3.15 Giao diện phần học số đếm
3.2.9 Học cách nói thời gian
Giao diện học thời gian gồm có 3 tab: hướng dẫn đếm giờ, hướng dẫn đếm phút và hướng dẫn cách nói thời gian.
Ở mỗi tab sẽ có phần hướng dẫn và danh sách các ví dụ kèm theo âm thanh.
Hình 3.16 Giao diện phần học thời gian
3.2.10 Học từ vựng
Người dùng khi chọn học từ vựng sẽ hiển thị ra danh sách các bài học từ vựng, chọn bài học muốn học sẽ hiển thị ra các từ vựng trong bài. Người dùng bấm nút next để chuyển qua từ vựng tiếp theo, bấm back
để quay lại từ vựng trước đó.
Hình 3.17 Giao diện phần học từ vựng
3.2.11 Học ngữ pháp
Người dùng khi chọn học ngữ pháp sẽ hiển thị ra danh sách các bài học ngữ pháp, chọn bài học muốn học sẽ hiển thị ra các ngữ pháp trong bài. Người dùng chọn nội dung để xem nội dung ngữ pháp, chọn ví dụ để
xem các ví dụ của ngữ pháp đang học
Hình 3.18 Giao diện phần học ngữ pháp
3.2.12 Notification
Khi người quản lý chọn phần Push Notification trên Server, nhập nội dung thông báo và gởi thì ở điện thoại sẽ hiện lên một notification.
3.2.13 Học Hán Tự
Người dùng khi chọn học Hán Tự sẽ hiển thị ra danh sách các Hán Tự. Ở đây có chức năng ghi nhớ Hán Tự đã học qua.
Hình 3.20 Giao diện phần học Hán Tự
3.2.14 Menu luyện tập
Đây là màn hình menu các bài luyện tập. Khi người dùng lựa chọn bài học nào thì sẽ hiển thị ra nội dung luyện tập tương ứng. Có tất cả 8 bài luyện tập: hiragana, katakana, chào hỏi cơ bản, số đếm, thời gian, từ vựng, ngữ pháp, Hán Tự.
Hình 3.21 Giao diện menu luyện tập
3.2.15 Luyện tập bảng chữ cái
Người dùng nghe phát âm chữ cái rồi chọn đáp án đúng. Nếu chọn đúng sẽ được 1 điểm.
Mỗi lần vào luyện tập sẽ hiển thị ngẫu nhiên 15 câu hỏi với các câu trả lời ngẫu nhiên, không trùng lặp.
Hình 3.22 Giao diện phần luyện tập chữ cái
3.2.16 Luyện tập chào hỏi
Ở phần luyện tập này, người dùng chọn câu chào hỏi tiếng Nhật. Trả lời đúng sẽ được 1 điểm.
Hình 3.23 Giao diện luyện tập chào hỏi
3.2.17 Luyện tập số đếm
Người dùng nghe số đếm rồi điền số đếm vào ô trả lời. Nếu chọn đúng sẽ được 1 điểm.
Mỗi lần vào luyện tập sẽ hiển thị ngẫu nhiên 15 câu hỏi với các câu trả lời ngẫu nhiên, không trùng lặp.
Hình 3.24 Giao diện phần luyện tập số đếm
3.2.18 Luyện tập thời gian
Ở phần luyện tập này, người dùng chọn cách nói thời gian tiếng Nhật đúng.
Trả lời đúng sẽ được 1 điểm.
Hình 3.25 Giao diện luyện tập thời gian
3.2.19 Luyện tập từ vựng
Người dùng nghe phát âm từ vựng rồi chọn đáp án đúng. Nếu chọn đúng sẽ được 1 điểm.
Mỗi lần vào luyện tập sẽ hiển thị ngẫu nhiên 15 câu hỏi với các câu trả lời ngẫu nhiên, không trùng lặp.
Hình 3.26 Giao diện luyện tập từ vựng
3.2.20 Luyện tập ngữ pháp
Người dùng điền một chữ Hiragana đúng vào mỗi ô trống. Nếu chọn đúng sẽ được 1 điểm.
Mỗi lần vào luyện tập sẽ hiển thị ngẫu nhiên câu hỏi và câu trả lời. Người dùng có thể bấm vào xem đáp án để xem đáp án đúng.
Hình 3.26 Giao diện luyện tập ngữ pháp
3.2.21 Luyện tập Hán Tự
Người dùng điền một chữ Hán Tự đúng với âm Hán. Nếu chọn đúng sẽ được 1 điểm.
Mỗi lần vào luyện tập sẽ hiển thị ngẫu nhiên 15 câu hỏi với câu trả lời ngẫu nhiên.
Hình 3.28 Giao diện luyện tập Hán Tự