- Thông tin đầu vào: Người học phải chọn vấn đề và nhập câu hỏi về vấn
đề đó để gửi đến hệ thống.
- Thông tin đầu ra: Nếu hệ thống thấy câu hỏi người học nhập vào đã có
câu trả lời tồn tại trong cơ sở dữ liệu các câu trả lời, hệ thống sẽ hiển thị câu trả lời đó cho người học biết
b.Ca sử dụng Give Answer: Đưa ra các phương án trả lời
- Mục đích sử dụng: Đưa phương án trả lời tương ứng cho câu hỏi mà người học đã nhập vào hệ thống.
- Tác nhân: Q&A System, Learner, Expert/Teacher
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1. Gửi câu hỏi đang cần câu trả lời 2. Chuyển câu hỏi đang cần tìm câu trả lời cho tác nhân Learner
3. Chuyển câu hỏi đang cần tìm câu trả lời cho tác nhân Expert/Teacher
4. Nhận câu trả lời từ tác nhân Expert/Teacher 5. Nhận câu trả lời từ tác nhân Learner
6. Chuyển câu trả lời về tác nhân hệ thống
c.Ca sử dụng Get Answer: Nhận các phương án trả lời
- Mục đích sử dụng: Nhận các câu hỏi từ hệ thống để tìm kiếm câu trả lời
trong cơ sở dữ liệu hoặc nhận câu trả lời từ chuyên gia/giáo viên hoặc từ những người học khác để hệ thống chuyển đến cho người đặt ra câu hỏi. - Tác nhân: Learner
- Mô tả chung: Khi tác nhân Q&A System nhận được câu hỏi từ tác nhân
Learner, Q&A System sẽ gửi câu hỏi đó và tìm kiếm trong cơ sở dữ liệu xem đã câu hỏi đó đã được trả lời chưa, nếu câu hỏi đã được trả lời, câu trả lời sẽ được chuyển tới tác nhân Learner.
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
5. Nhận yêu cầu trả lời cho câu hỏi hệ thống chuyển đến
1. Gửi yêu cầu tìm câu trả lời cho câu hỏi
2. Chuyển yêu cầu tới bộ điều khiển tìm kiếm câu hỏi
3. Bộ điều khiển tìm kiếm câu hỏi trong cơ sở dữ liệu các trả lời
4. Nhận lại kết quả tìm kiếm
Bảng 3.4 Luồng sự kiện của ca sử dụng Get Answer
d.Ca sử dụng Post Vote for Answer: Đánh giá các phương án trả lời
- Mục đích sử dụng: Đánh giá các phương án tra lời để giúp cho việc lựa
chọn người trả lời các câu hỏi tốt hơn sau này. - Tác nhân: Learner
- Mô tả chung: Khi Learner nhận đươc yêu cầu đánh giá từ Q&A System,
Learner sẽ đánh giá các câu trả lời thông qua form đánh giá. Hệ thống nhận được thông tin đánh giá đó sẽ tính toán lại độ chính xác của câu trả lời và cập nhật lại vào bảng đánh giá các câu trả lời.
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
2. Đánh giá câu trả lời Q&A System chuyển đến và trả về cho Q&A System
1. Gửi yêu cầu đánh giá câu trả lời đến Learner
3. Tính toán lại độ chính xác của câu trả lời 4. Cập nhật lại bảng Answer Vote
Bảng 3.5 Luồng sự kiện của ca sử dụng Post Vote for Answer
e.Ca sử dụng Building Question Database: Xây dựng cơ sở dữ liệu câu hỏi
- Mục đích sử dụng: Xây dựng lên cơ sở dữ liệu các câu hỏi nhằm đảm
bảo hạn chế sự trùng lặp giữa các câu hỏi trong cùng một vấn đề - Tác nhân: Q&A System
- Mô tả chung: Q&A System gửi yêu cầu cập nhập thêm câu hỏi tới hệ
thống, hệ thống sẽ tìm kiếm câu hỏi đó trong cơ sở dữ liệu các câu hỏi, nếu chưa tồn tại câu hỏi nào trong cơ sở dữ liệu, câu hỏi đó sẽ được thêm vào. Q&A System sẽ nhận được thông báo câu hỏi này đã được chèn vào cơ sở dữ liệu hay câu hỏi đã tồn tại.
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1. Gửi yêu cầu cập nhật câu hỏi mới
2. Kiểm tra sự tồn tại của câu hỏi trong cơ sở dữ liệu các câu hỏi
3. Tìm kiếm câu hỏi trong cơ sở dữ liệu các câu hỏi 4. Nhận kết quả tìm kiếm
5. Chuyển kết quả tìm kiếm
6. Chèn câu hỏi mới vào cơ sở dữ liệu các câu hỏi
Bảng 3.6 Luồng sự kiện của ca sử dụng Building Question Database
f. Ca sử dụng Building Answer Database: Xây dựng cơ sở dữ liệu câu trả lời
- Mục đích sử dụng: Xây dựng cơ sở dữ liệu các câu trả lời nhằm đáp ứng
nhanh các thắc mắc của người học. - Tác nhân: Q&A System
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1. Gửi yêu cầu thêm câu trả lời mới
2. Kiểm tra sự tồn tại cho câu hỏi của câu trả lời 3. Tìm kiếm câu hỏi trong cơ sở dữ liệu các câu hỏi 4. Trả về kết quả tìm kiếm
5. Chuyển kết quả tìm kiếm được cho bộ điều khiển 6. Chèn câu trả lời mới vào cơ sở dữ liệu các câu trả lời
Bảng 3.7 Luồng sự kiện của ca sử dụng Building Answer Database
g.Ca sử dụng Search Question & Answer: Tìm kiếm các câu hỏi và câu trả
- Mục đích sử dụng: Ca sử dụng này nhằm mục đích trợ giúp cho quá trình xây dựng nên các cơ sở dữ liệu các câu hỏi và câu trả lời.
- Tác nhân: Q&A System
- Luồng sự kiện:
Hành động của tác nhân Phản ứng của hệ thống
1. Gửi yêu cầu kiểm tra câu hỏi (câu trả lời) có tồn tại trong cơ sở dữ liệu các câu hỏi (câu trả lời)
2. Tìm kiếm câu hỏi (câu trả lời) trong cơ sở dữ liệu các câu hỏi (câu trả lời)
3. Trả về kết quả tìm kiếm
Bảng 3.8 Luồng sự kiện của ca sử dụng Search Question & Answer
3.2.3. Phân tích hệ thống
Từ những phân tích tổng quát và chi tiết từng ca sử dụng hệ thống ở trên, ta có cái nhìn tổng quát về tác nhân và hành động. Những biểu đồ tuần tự sau đây sẽ miêu tả chi tiết sự tương tác giữa các đối tượng với nhau theo thời gian gửi/nhận thông điệp. Biểu đồ gồm 2 trục: trục dọc biểu diễn thời gian xảy ra các sự kiện, trục ngang từ trái qua phải biểu diễn dãy các đối tượng.
a.Phân tích ca sử dụng Input Question
Từ đặc tả chi tiết ca sử dụng Input Question ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của tác nhân Learner thưc hiện và phản hồi của hệ thống khi người học nhập câu hỏi.
- Tác nhân: Learner (người học)
- Lớp dữ liệu: Lớp dữ liệu Questions chứa các câu hỏi về vấn đề nào đó của người học.
- Lớp giao diện: Lớp giao diện InputQuestionForm cho phép người học
nhập câu hỏi về vấn đề nào đó.
- Lớp điều khiển: Lớp điều khiển InputQuestionCtrl làm nhiệm vụ điều khiển việc truy xuất và cập nhật thông tin về câu hỏi.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau:
: Learner : InputQuestionForm : InputQuestionCtrl : Questions 1: InputQuestion( )
2: CheckQuestionInfo( ) 3: Result( )
4: Insert( )
Hình 3-2 Biểu đồ tuần tự ca sử dụng Input Question
Biểu đồ cộng tác: Tương tự như biểu đồ tuần tự ta suy ra biểu đồ cộng tác biểu thị sự tương tác của các đối tượng trên cơ sở cộng tác với nhau bằng cách trao đổi các thông điệp.
: Learner : InputQuestionForm : InputQuestionCtrl : Questions 1: InputQuestion( ) 2: CheckQuestionInfo( ) 3: Result( ) 4: Insert( )
Hình 3-3 Biểu đồ cộng tác ca sử dụng Input Question
b.Phân tích ca sử dụng Give Answer
Từ đặc tả chi tiết ca sử dụng Give Answer ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của hệ thống chuyển câu hỏi yêu cầu được trả lời cho các Learner và các Expert/Teacher.
- Tác nhân: Learner, Expert/Teacher
- Lớp điều khiển: Lớp điều khiển GiveAnswerCtrl có trách nhiệm điều khiển việc chuyển câu hỏi tới tác nhân Learner (Expert/Teacher) và nhận câu trả lời từ các tác nhân đó.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau:
: System : GiveAnswerCtrl : Learner : Expert/Te... 1: RequestAnswer( ) 2: DeliveryRequestAnswer( ) 3: DeliveryRequestAnswerForTeacher( ) 5: ReplyAnwser( ) 4: ReplyAnwser( ) 6: DeliveryAnswer( )
Hình 3-4 Biểu đồ tuần tự ca sử dụng Give Answer
Biểu đồ cộng tác: : Learner : System : GiveAnswerCtrl : Expert/Teacher 1: RequestAnswer( ) 2: DeliveryRequestAnswer( ) 3: DeliveryRequestAnswerForTeacher( ) 4: ReplyAnwser( ) 5: ReplyAnwser( ) 6: DeliveryAnswer( )
Hình 3-5 Biểu đồ cộng tác ca sử dụng Give Answer
c.Phân tích ca sử dụng Get Answer
Từ đặc tả chi tiết ca sử dụng Get Answer ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động
của tác nhân Learner thưc hiện và phản hồi của hệ thống khi người học nhập câu hỏi.
- Tác nhân: Learner, Q&A System
- Lớp dữ liệu: Lớp dữ liệu Answers chứa các phương án trả lời.
- Lớp điều khiển:
o Lớp điều khiển GetAnswer có nhiệm vụ nhận các yêu cầu về câu trả lời, chuyển tiếp các yêu cầu này tới lớp điều khiển SearchQuestion và nhận kết quả từ đây.
o Lớp điều khiển SearchQuestion có nhiệm vụ nhận các yêu cầu về câu trả lời, tìm kiếm trong lớp dữ liệu Answer và chuyển kết quả về lại cho lớp điều khiển GetAnswer.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau: : System : GetAnswer : SearchQuesti... : Answer : Learner 1: RequestAnswer( ) 2: DeliveryRequest( ) 3: SearchAnswer( ) 4: SearchResult( ) 5: DeliveryAnswer( ) 6: DeliveryAnswer( )
Hình 3-6 Biểu đồ tuần tự ca sử dụng Get Answer
: Learner : System : GetAnswer : Answer : SearchQuestion&Answer 1: RequestAnswer( ) 2: DeliveryRequest( ) 3: SearchAnswer( ) 4: SearchResult( ) 5: DeliveryAnswer( ) 6: DeliveryAnswer( )
Hình 3-7 Biểu đồ cộng tác ca sử dụng Get Answer
d.Phân tích ca sử dụng Post Vote for Answer
Từ đặc tả chi tiết ca sử dụng Post Vote for Answer ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của tác nhân Learner thưc hiện và phản hồi của hệ thống khi người học nhập các đánh giá về câu trả lời nào đó.
- Tác nhân: Learner
- Lớp dữ liệu: Lớp dữ liệu AnswerVote chứa các đánh giá của người học
về các câu trả lời.
- Lớp giao diện: Lớp giao diện VoteForAnswerForm cho phép người học
nhập đánh giá của mình về câu trả lời.
- Lớp điều khiển: Lớp điều khiển VoteForAnswerCtrl có nhiệm vụ yêu cầu
tác nhân Learner đánh giá câu trả lời, tính toán lại đánh giá về các câu trả lời và cập nhật lại thứ tự sắp xếp các câu trả lời.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau:
: Learner : VoteForAnswerForm : VoteForAnswerCtrl : AnswerVote 1: RequestVoteForAnswer( ) 2: VoteForAnswer( ) 3: CalculateRank( ) 4: UpdateRank( )
Hình 3-8 Biểu đồ tuần tự ca sử dụng Post Vote for Answer
Biểu đồ cộng tác: : Learner : VoteForAnswerForm : VoteForAnswerCtrl : AnswerVote 2: VoteForAnswer( ) 3: CalculateRank( ) 1: RequestVoteForAnswer( ) 4: UpdateRank( )
Hình 3-9 Biểu đồ cộng tác ca sử dụng Post Vote for Answer
e. Phân tích ca sử dụng Building Question Database
Từ đặc tả chi tiết ca sử dụng Building Question Database ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của tác nhân Q&A System thưc hiện việc câp nhật câu hỏi vào cơ sở dữ liệu các câu hỏi.
- Tác nhân: Q&A System
- Lớp dữ liệu: Lớp dữ liệu Question chứa các câu hỏi về vấn đề nào đó.
- Lớp điều khiển:
o Lớp điều khiển BuildingQuestionCtrl có nhiệm vụ kiểm tra sự tồn tại hay không tồn tại của câu hỏi trong cơ sở dữ liệu các câu hỏi và chèn câu hỏi mới vào cơ sở dữ liệu.
o Lớp điều khiển SearchQuestion có nhiệm vụ tìm kiếm trong cơ sở dữ liệu các câu hỏi xem đã có câu hỏi được yêu cầu tìm kiếm hay chưa. Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau: : BuildingQuetionCtrl : System SearchQuesti... : : Question 1: RequestAddNewQuestion( ) 2: CheckExistQuestion( ) 3: Search( ) 4: SearchResult( ) 5: DeliverySearchResult( ) 6: Insert( ) 7: InsertMessage( )
Hình 3-10 Biểu đồ tuần tự ca sử dụng Building Question Database
: System : Question : SearchQuestion&Answer : BuildingQuetionCtrl 1: RequestAddNewQuestion( ) 2: CheckExistQuestion( ) 3: Search( ) 4: SearchResult( ) 5: DeliverySearchResult( ) 6: Insert( ) 7: InsertMessage( )
Hình 3-11 Biểu đồ cộng tác ca sử dụng Building Question Database
f. Phân tích ca sử dụng Building Answer Database
Từ đặc tả chi tiết ca sử dụng Building Answer Database ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của tác nhân Q&A System thực hiện việc cập nhật câu trả lời vào cơ sở dữ liệu các câu trả lời.
- Tác nhân: Q&A System
- Lớp dữ liệu:
o Lớp dữ liệu Question chứa các câu hỏi về vấn đề nào đó.
o Lớp dữ liệu Answer chứa các trả lời cho câu hỏi về vấn đề nào đó. - Lớp điều khiển:
o Lớp điều khiển BuildingAnswerCtrl có nhiệm vụ nhận yêu cầu trả lời, kiểm tra câu hỏi và cập nhật câu trả lời vào cơ sở dữ liệu các câu trả lời.
o Lớp điều khiển SearchQuestion&Answer có nhiệm vụ tìm kiếm xem câu hỏi được yêu cầu tìm kiếm có tồn tại hay không tồn tại trong cơ sở dữ liệu các câu hỏi.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau: : System : BuidlingAnswerCtrl : SearchQuesti... : Question : Answer 1: RequestAddNewAnswer( ) 2: CheckExistQuestion( ) 3: Search( ) 4: SearchResult( ) 5: DeliverySearchResult( ) 6: Insert( )
Hình 3-12 Biểu đồ tuần tự ca sử dụng Building Answer Database
Biểu đồ cộng tác: : System : BuidlingAnswerCtrl : SearchQuestion&Answer : Question : Answer 1: RequestAddNewAnswer( ) 2: CheckExistQuestion( ) 3: Search( ) 4: SearchResult( ) 5: DeliverySearchResult( ) 6: Insert( )
Biểu đồ họat động: InputQuesti on Existed in Question DB Delivery Question for Learner Get Answer Evaluate Answer Not Existed Insert Answer >= threshold
Hình 3-14 Biểu đồ hoạt động ca sử dụng Building Answer Database
g.Phân tích ca sử dụng Evaluate and Classify Learner
Ca sử dụng Evaluate and Classify Learner được sử dụng nhằm đánh giá và phân loại người học.
GetLearner Model Classify Learner Evaluate Learner Get Rank ofLearner's Answer
Hình 3-15 Biểu đồ hoạt động ca sử dụng Evaluate and Classify Learner
h.Phân tích ca sử dụng Search Question & Answer
Từ đặc tả chi tiết ca sử dụng Search Question & Answer ta suy ra biểu đồ tuần tự biểu diễn các hành động xảy ra thứ tự theo thời gian. Biểu đồ này cho biết thứ tự hành động của tác nhân Q&A System thưc hiện việc kiểm tra sự tồn tại của câu hỏi và tìm câu trả lời cho câu hỏi đó.
- Tác nhân: Q&A System
- Lớp dữ liệu: Lớp dữ liệu Questions chứa các câu hỏi của người học.
- Lớp điều khiển: Lớp điều khiển SearchQuestion&Answer có nhiệm vụ tìm kiếm sự tồn tại của câu hỏi được yêu cầu và trả về kết quả cho hệ thống.
Trình tự các hoạt động diễn ra trong ca sử dụng này được mô tả trong biểu đồ tuần tự sau:
Hình 3-17 Biểu đồ cộng tác ca sử dụng Search Question & Answer
Biểu đồ cộng tác:
Hình 3-16 Biểu đồ tuần tự ca sử dụng Search Question & Answer
: System
: System SearchQuesti... : : Question
1: CheckExistQuestion( ) 2: Search( ) 3: SearchResult( ) : SearchQuestion&Answer : Question 1: CheckExistQuestion( ) 2: Search( ) 3: SearchResult( )
Courses courseID courseName Insert() Update() Delete() Keyword keywordID keyword insert() update() delete() Questions questionID question problemID learnerID getProblemID() serProblemID() Insert() Question_Keyword questionID keywordID Insert() Delete() 1..* 1..* 1..* 1..* Problems ProblemID ProblemName CourseID getCourseID() setCouseID() Insert() Update() Delete() 1..* 1..* 1..* 1..* Learner_Problem learnerID problemID insert() update() delete() 1..* 1..* Learner learnerID learnerName Insert() Update() Delete() 1..* 1..* 1..* 1..* Answers answerID answer learnerID questionID getLearnerID() setLearnerID() setQuestionID() 1..* 1..* 1..* 1..* AnswerVote answervoteID answerMark answerID learnerID getAnswerMark() insert() update() 1..*