Giai đoạn phân tích thiết kế dịch vụ 4ECloud thực hiện theo phương pháp hướng đối tượng. Bước phân tích xác định các chức năng dịch vụ cần đáp ứng thông qua sơ đồ các trường hợp sử dụng (use case[7]). Bước thiết kế bao gồm: thiết kế các thành phần với thiết kế mô hình chung; cơ sở dữ liệu, giải thuật và giao diện cho các chức năng.
.IV.1. Phân tích yêu cầu đối với dịch vụ
Xuất phát từ mục đớch xõy dựng dịch vụ học Tiếng Anh trực tuyến và căn cứ trên kết quả khảo sỏt cỏc hệ thống hiện cú, cỏc đối tượng người dùng của dịch vụ 4ECloud được phân tách tùy theo yêu cầu cụ thể. Trên cơ sở cỏc yêu cầu đó, tiến hành mô hình hóa thành các chức năng mà dịch vụ 4ECloud cần cung cấp, thông qua sơ đồ các trường hợp sử dụng (use case).
Phần tiếp theo đi vào trình bày cỏc yờu cầu hệ thống cần đáp ứng, gồm các mục chính:
• Phân lớp người dùng • Yêu cầu chức năng
• Yêu cầu bảo mật và an toàn thông tin • Yêu cầu sau khi triển khai
.IV.1.1. Phân lớp người dùng
Căn cứ theo mục đích sử dụng, có thể phân loại người dùng sử dụng dịch vụ 4ECloud vào ba lớp như sau:
• User: người dùng sử dụng thành phần ứng dụng khách hàng (website, phần mềm) cho nhu cầu học Tiếng Anh;
• Admin: người quản trị dịch vụ, chịu trách nhiệm nội dung lưu trữ trong thành phần dịch vụ web;
• Developer: nhà phát triển, sử dụng thành phần dịch vụ web để xây dựng ứng dụng.
.IV.1.2. Yêu cầu chức năng
Trong phần trình bày dưới đây:
• Các chức năng cho tác nhân User được hiểu là yêu cầu dành cho ứng dụng, bao gồm website và phần mềm cho di động;
• Các chức năng cho tác nhân Admin được hiểu là yêu cầu cho phần quản trị nội dung dịch vụ 4ECloud;
• Giao diện chuẩn (interface[1]) cũng như chi tiết chức năng bên trong của thành phần dịch vụ web của dịch vụ 4ECloud được xây dựng căn cứ trên hai nhóm chức năng nêu trên.
Các chức năng cung cấp trên cả phần mềm và website gồm: Học ngữ pháp, Kiểm tra và Nhật ký. Riêng chức năng học từ vựng theo mô hình flash card được thiết kế dành riêng cho điện thoại di động; nhằm khai thác lợi điểm từ kích thước nhỏ gọn, khả năng cơ động cao của điện thoại; cho phép người dựng cú thể học mọi lúc mọi nơi. Ngoài ra, các chức năng quản trị thành phần dịch vụ web cho Admin được xây dựng tích hợp trong website. Khi User đăng nhập vào website, dịch vụ sẽ kiểm tra quyền hạn để xác định có cho phép User can thiệp vào dữ liệu của thành phần dịch vụ web hay không.
IV.1.2.1. Chức năng cho tác nhân User
Hình 2 mô tả các chức năng dành cho User, bao gồm Học, Kiểm tra và Nhật ký
Hình 2. Các use case cho tác nhân User
)a Học: Chức năng này cho phép User thực hiện thao tác học Tiếng Anh, bao gồm học từ vựng và học ngữ pháp.
- Học từ vựng: Cho phép User học từ vựng Tiếng Anh, dưới hình thức các bộ từ dạng flash card. Chức năng này được thiết kế phù hợp với học sinh, sinh viên, hoặc trẻ em ở các độ tuổi khác nhau.
Các bước thực hiện:
1. User chọn chức năng Học từ vựng. Danh sách các bộ từ vựng hiện có được hiển thị. Mỗi bộ từ vựng kèm theo thông tin về loại bộ từ (dành cho học sinh, sinh viên hay trẻ em), số từ vựng và mô tả.
2. User bấm chọn bắt đầu học. Các từ trong bộ từ được hiển thị lần lượt. Mỗi từ bao gồm các thông tin từ Tiếng Anh, từ loại, phiên âm, nghĩa Tiếng Việt, file âm thanh phát âm từ, file hình ảnh minh họa (trong trường hợp bộ từ dành cho trẻ em).
- Học ngữ pháp: Cho phép User học các bài ngữ pháp Tiếng Anh theo các chủ đề.
Các bước thực hiện:
1. User chọn chức năng Học ngữ pháp. Danh sách các bài ngữ pháp hiện có được hiển thị.
2. Khi User bấm vào bài ngữ pháp muốn học, thông tin của bài được hiển thị.
)b Kiểm tra: Chức năng này cho phép User làm các bài kiểm tra Tiếng Anh dạng trắc nghiệm, theo từng chủ đề hoặc tổng hợp. Gồm các bước: làm bài và cập nhật kết quả.
- Làm bài: Cho phép User làm bài kiểm tra dạng trắc nghiệm để kiểm tra trình độ Tiếng Anh.
Các bước thực hiện:
1. Sau khi User chọn chức năng kiểm tra, danh sách cỏc trỡnh độ được hiển thị, từ 3 trình độ cơ bản A, B, C.
2. User chọn trình độ phù hợp.
3. Ứng dụng hiển thị ngẫu nhiên bài kiểm tra thuộc trình độ được chọn, có thời gian làm bài. Cỏc cõu hỏi hiển thị dạng trắc nghiệm, có thể bấm chọn một hoặc nhiều đáp án.
4. User có thể lựa chọn kết thúc trước khi hết giờ. Kết quả hiển thị dạng số câu trả lời đỳng trờn tổng số câu hỏi.
- Cập nhật kết quả: Cho phép User lưu trữ kết quả thực hiện bài kiểm tra, phục vụ cho chức năng Nhật ký theo dõi quá trình làm bài kiểm tra về sau.
Các bước thực hiện:
1. Kết thúc bài kiểm tra, User chọn đồng ý cập nhật kết quả.
2. Ứng dụng yêu cầu User nhập thông tin tài khoản, gồm tên đăng nhập và mật khẩu để tiến hành cập nhật kết quả.
Các bước thực hiện:
1. User chọn chức năng Nhật ký, danh sách các bài kiểm tra đã thực hiện được hiển thị, gồm các thông tin: ngày làm bài, trình độ và kết quả.
IV.1.2.2. Chức năng cho tác nhân Admin
Hình 3 mô tả các chức năng cho tác nhân Admin, bao gồm quản lý tài khoản người dùng, quản lý nội dung bài học (gồm ngữ pháp, từ vựng) và quản lý nội dung bài kiểm tra. Các chức năng này được xây dựng tích hợp trong website học Tiếng Anh.
Hình 3. Các use case cho tác nhân Admin
Trong các chức năng này, điều kiện mặc định là Admin đã truy nhập trang web dịch vụ và đăng nhập bằng tài khoản quản trị.
)a Quản lý tài khoản người dùng
Cho phép Admin quản lý danh sách người dùng trong dịch vụ với các thao tác • Xác nhận tài khoản đăng ký mới
• Xóa tài khoản Các bước thực hiện:
1. Admin bấm link hiển thị danh sách User trong dịch vụ. Danh sách User được hiển thị.
2. Trong danh sách hiển thị, Admin thực hiện các thao tác tùy theo yêu cầu.
)b Quản lý nội dung bài học
Cho phép Admin quản lý nội dung bài học Tiếng Anh, gồm nội dung của • Bài học (Lesson)
• Từ vựng (Word)
• Bộ từ vựng (WordGroup) Các bước thực hiện:
1. Admin bấm link hiển thị danh sách của Bài học, Loại bài học, Từ vựng, Bộ từ vựng. Danh sách các đối tượng tương ứng được hiển thị.
2. Trong danh sách, Admin có thể tùy chọn thực hiện các chức năng • Thêm mới, xem thông tin, xóa
• Sửa
o Bài học (Lesson): Mỗi bài học có thể chọn thuộc về một hoặc nhiều Loại bài học
o Từ vựng (Word): Mỗi từ vựng có thể chọn thuộc về một hoặc nhiều Bộ từ vựng
)c Quản lý nội dung bài kiểm tra
Cho phép Admin quản lý nội dung bài kiểm tra Tiếng Anh, gồm nội dung của • Câu hỏi (Question)
• Bài kiểm tra (Test) Các bước thực hiện:
1. Admin bấm link hiển thị danh sách của Câu hỏi, Bài kiểm tra. Danh sách các đối tượng tương ứng được hiển thị.
2. Trong danh sách, Admin có thể tùy chọn thực hiện các chức năng • Thêm mới, xem thông tin, xóa
• Sửa
o Câu hỏi (Question): Mỗi câu hỏi có thể chọn thuộc về một hoặc nhiều Bài kiểm tra
.IV.1.3. Yêu cầu bảo mật và an toàn thông tin
Nhằm ngăn chặn các truy nhập trái phép cũng như giảm thiểu nguy cơ bị lộ thông tin quản trị quan trọng, dịch vụ 4ECloud cần đáp ứng cỏc yờu cầu sau:
• Kiểm soát quyền truy nhập: Đảm bảo chỉ Admin được sử dụng các chức năng quản trị, User chỉ được sử dụng các chức năng học Tiếng Anh.
• Mã hóa thông tin nhạy cảm: Các thông tin nhạy cảm trong dịch vụ cần được mã hóa khi trao chuyển giữa các thành phần, bao gồm thông tin tài khoản người dùng và các dữ liệu sử dụng trong chức năng quản trị.
.IV.1.4. Yêu cầu sau khi triển khai
• Xây dựng đầy đủ, hoàn thiện thành phần dịch vụ web. Cần có tài liệu đầy đủ về các chức năng mà thành phần dịch vụ web cung cấp và hướng dẫn sử dụng chức năng của dịch vụ web. Dịch vụ web hoạt động ổn định, đáp ứng được cỏc yờu cầu về chức năng; yêu cầu sửa chữa, nâng cấp.
• Xây dựng hoàn thiện và triển khai thử nghiệm thành phần ứng dụng khách hàng, gồm phần mềm hỗ trợ học Tiếng Anh cho điện thoại di động Android, website hỗ trợ học Tiếng Anh và phần quản trị dịch vụ.
Tóm lại, phần trờn đó trình bày yêu cầu chức năng các thành phần của dịch vụ 4ECLoud cần đáp ứng. Tổng cộng, các chức năng được chia thành hai bộ phận chính
• Chức năng học Tiếng Anh, phục vụ cho người dùng học Tiếng Anh, gồm các chức năng chính là học từ vựng, học ngữ pháp, kiểm tra và theo dõi nhật ký; • Chức năng quản trị, phục vụ cho người quản trị dịch vụ trong việc quản lý
nội dung dịch vụ.
Căn cứ trờn cỏc yêu cầu nêu trên, phần tiếp theo đi vào trình bày bước thiết kế từ mô hình tổng quát đến thiết kế chi tiết từng thành phần. Kết quả của bước thiết kế là cơ sở phục vụ bước cài đặt dịch vụ sau đó.
.IV.2. Thiết kế các thành phần của dịch vụ
Mụ hình dịch vụ 4ECloud nêu trong phần định hướng giải pháp, bao gồm hai bên là bên cung cấp dịch vụ và bên sử dụng dịch vụ. Thuật ngữ cỏc bờn được dùng khi nói đến khái niệm dịch vụ nói chung. Trong bối cảnh cụ thể của dịch vụ 4ECloud, các phần trình bày về sau theo quy ước: bên cung cấp dịch vụ là thành phần dịch vụ web; bên sử dụng dịch vụ là thành phần ứng dụng khách hàng. Thành phần dịch vụ web, triển khai trên nền tảng đám mây Google App Engine, là phần cốt lõi của dịch vụ 4ECloud; đáp ứng cỏc yờu cầu nghiệp vụ về lưu trữ và truy vấn dữ liệu. Thành phần ứng dụng khách hàng, điểm nhấn là chức năng học từ vựng dạng các bộ từ tiện ích (flash card) được thiết kế nhằm phù hợp với nhiều đối tượng người dùng: sinh viên, trẻ em ở các lứa tuổi khác nhau.
Trong bước phân tích cũng đã nêu, giao diện chuẩn cũng như chi tiết chức năng bên trong của thành phần dịch vụ web của dịch vụ 4ECloud, được xây dựng căn cứ trên hai nhóm chức năng của thành phần ứng dụng khách hàng, dành cho User và Admin.
Phần tiếp theo đây trình bày nội dung thiết kế dịch vụ 4ECloud cho từng thành phần của dịch vụ, theo bố cục:
• Mô hình chung • Thiết kế class • Thiết kế dữ liệu
• Thiết kế giải thuật • Thiết kế giao diện
.IV.2.1. Thành phần dịch vụ web
Thành phần này được cung cấp dưới dạng các dịch vụ web, nên không có thiết kế giao diện đồ họa cho người dùng. Về giải thuật, các hàm chức năng của thành phần này chủ yếu sử dụng lưu trữ và truy vấn dữ liệu, khụng đũi hỏi sử dụng các giải thuật phức tạp.
IV.2.1.1. Mô hình chung
Hình 4 mô tả mô hình chung của thành phần dịch vụ web trong dịch vụ 4ECloud
Hình 4. Các thành phần và cơ chế giao tiếp bên trong thành phần dịch vụ web
Thành phần dịch vụ web được xây dựng dưới dạng các web service trên nền tảng Google App Engine, gồm các thành phần chính:
• DataAccess
o Thành phần này sử dụng class PersistenceManagerFactory[10] để gọi các hàm API[10] do Java Datastore của App Engine cung cấp.
• Entities
o Thành phần này bao gồm các class định nghĩa các lớp đối tượng chủ yếu sử dụng trong dịch vụ, gồm
Loại bài học (LessonType)
Từ vựng (Word)
Bộ từ vựng (WordGroup)
Câu hỏi (Question)
Bài kiểm tra (Test)
Người dùng (User)
o Mọi dữ liệu tương tác trong hệ thống tồn tại dưới dạng các entity của các class nêu trên. Các thao tác có thể thực hiện:
Thêm, sửa, xóa trờn 1 entity;
Kết quả truy vấn là 1 danh sách các entity thuộc class cụ thể. • EnglishOnlineService
o Class này chứa các hàm web service cung cấp cho thành phần ứng dụng khách hàng, bao gồm các thao tác cơ bản: thờm, sửa, xóa và lấy ra danh sách các entity. Chi tiết các hàm chức năng của thành phần dịch vụ web sẽ được trình bày trong phần cài đặt tiếp theo.
IV.2.1.2. Thiết kế class và thiết kế dữ liệu
Thành phần dịch vụ web xây dựng trên nền tảng đám mây Google App Engine, sử dụng GAE Java Datastore là một cơ sở dữ liệu đối tượng. Do đó việc thiết kế dữ liệu cho thành phần này, thực chất là thiết kế các class entity và mối liên hệ giữa chúng, tuân theo ràng buộc của GAE Java Datastore.
Yờu cầu khi thiết kế cơ sở dữ liệu cho ứng dụng GAE là phải thiết lập được mối liên hệ giữa các class entity (tương tự như liên hệ giữa các bảng trong cơ sở dữ liệu quan hệ thông thường) nhằm đảm bảo tính toàn vẹn, không dư thừa dữ liệu và truy vấn hiệu quả.
Căn cứ cỏc yêu cầu đó, thành phần dịch vụ web của dịch vụ 4ECloud dựng các thuộc tớnh khúa để thực hiện liên kết giữa các class entity:
• Liên kết một-một (1-1): Mỗi class entity trong liên kết loại này có một thuộc tính chứa khóa của class entity còn lại;
• Liên kết một-nhiều (1-n): Một class entity trong liên kết loại này có một thuộc tính chứa danh sách khóa của class entity còn lại;
• Liên kết nhiều-nhiều (n-n): Mỗi class entity trong liên kết loại này có một thuộc tính là danh sách cỏc khóa của class entity còn lại;
Tổng cộng thành phần dịch vụ web gồm 8 class entity. Hình 5 mô tả mối liên kết giữa các class entity này.
Hình 5. Mụ hỡnh liên kết giữa các class entity trong dịch vụ
Chi tiết các thuộc tính của các class entity • Class Word
Bảng 1. Các thuộc tính của class Word
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Key Long x Word ID Word String Từ Type String Từ loại Pronunciation String Phiên âm Meaning String Nghĩa
KeyWordGroups List<Long> x Danh sách khóa cỏc bộ từ chứa từ đang xét
• Class WordGroup
Bảng 2. Các thuộc tính của class WordGroup
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Key Long x WordGroup ID Name String Tên
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
NumberOfWords Int Số từ
KeyWords List<Long> x Danh sách khóa cỏc từ thuộc bộ từ đang xét
• Class Lesson
Bảng 3. Các thuộc tính của class Lesson
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Key Long x Lesson ID Title String Tiêu đề bài học Details String Chi tiết
KeyLessonTypes List<Long> x Danh sách khóa cỏc loại bài học chứa bài học đang xét
• Class LessonType
Bảng 4. Các thuộc tính của class LessonType
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Key Long x LessonType ID Name String Tên LessonType Description String Mô tả
KeyLessons List<Long> x Danh sách khóa cỏc bài học thuộc loại bài học đang xét
• Class Question
Bảng 5. Các thuộc tính của class Question
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Key Long x Question ID Question String Nội dung câu hỏi Answers List<String> Danh sách câu trả lời
correctAnswers List<int> Danh sách vị trớ cỏc cõu trả lời đúng KeyTests List<Long> x Khóa của bài kiểm tra chứa câu hỏi
• Class Test
Bảng 6. Các thuộc tính của class Test
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Tên thuộc tính Kiểu Khúa chính
Khóa
ngoài Mô tả
Title String Tiêu đề bài kiểm tra Description String Mô tả
numberOfQuestions Int Số lượng câu hỏi
KeyQuestions List<Long> x Khóa của cỏc cõu hỏi trong bài kiểm